home.social

#rp2040 — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #rp2040, aggregated by home.social.

  1. Got the start of an #ARGB #WS2812 signal parser working using #RaspberryPi #RP2040 PIO. Going to use this with my #OpenRGB RP2040 ARGB splitter project to send configuration data (LED channel counts) using a standard ARGB controller output. RP2040 PIO is awesome for dealing with high speed serial signals!

  2. My #RP2040 #OpenRGB Smart ARGB Splitter PCBs came! #OSHPark did a great job on them and they work as expected. Splitting one ARGB/WS2812 signal into up to 8 output channels.

  3. I just released the new version of Mousefood 🐭✨

    🧀 Mousefood — A no_std/embedded-graphics backend for @ratatui_rs

    💯 Render TUIs on microcontrollers
    🌀 Supports ESP32 / RP2040 / STM32, even e-ink & more!
    🦀 Powered by Rust!

    ⭐ GitHub: github.com/ratatui/mousefood

  4. My current success rate with #MechanicalKeyboard PCB soldering is currently only 2 out of 5, well 40% is a pass mark - just.

    The #RaspberryPiPico #RP2040 ‘Gamma Omega TC36K’ board worked (an easy build, could probably have socketed it). 💚

    One success, one failure with #SeeedStudio #Xiao BLE castellated in Forager ‘Acid’ PCB (some fiddly back pads). 🧡

    Two failures with #ProMicro #nRF52840 BLE in ‘Gamma Omega Hesse’ board attempting faux-castellation💔

    Just as well custom PCBs are fabricated in batches of five - waiting on spare parts to try again - #LearningByDoing or #LearningByFailing ?

  5. A new pedal for a friend, this one is just an elementary #MIDI controller. It alternatively sends Start and Stop messages when the footswitch is pressed so he can run his #MPC with it.

    The microcontroller is an #RP2040 from a Seeed #Xiao board. For this project I had all the parts in stock excepted the MIDI socket and the 1590B enclosure. The circuit was simple enough to be implemented on a stripboard (with SMD ferrite beads on the copper side).

    Edit: I also had to bend the top of the poor LM7805 regulator to make it fit into the enclosure. 😅

    #electronics #stompbox #audio

  6. The SpaceMouse Wireless

    This is a tale of ancient wizardry, yearning for control, failed prototypes, and just plain bad timing. Let us begin.(...)

    #3d #circuitpython #diy #hardware #hid #mpu6050 #rp2040 #spacemouse #usb

    taoofmac.com/space/blog/2024/0

  7. New #MechanicalKeyboard day! It's a #Kiser Monorail 45% #keyboard which I recently bought from @opendev on #40sDay in the Fediverse. I've put #HolyBoba switches in the #Kailh #hotswap sockets and put MiTo's GMK Laser keycap set plus some novelties on.

    And yes, the #KiserMonorail is #V4N4G0N compatible, so it's my fifth keyboard with #TheVanKeyboards #Minivan-style layout.

    It runs #QMK on an #RP2040 and uses easy peasy #Vial for configuration!

    #TVK #TVKMinivan #NewKeyboardDay #40percent

  8. Hackaday Prize 2023: Pi Pico Measures Volts, Amps and Watts - Measuring a voltage is pretty easy: just place your multimeter’s probes across the... - hackaday.com/2023/07/16/hackad #powermeter #toolhacks #wattmeter #ina219 #rp2040

  9. Hackaday Prize 2023: Pi Pico Measures Volts, Amps and Watts - Measuring a voltage is pretty easy: just place your multimeter’s probes across the... - hackaday.com/2023/07/16/hackad #powermeter #toolhacks #wattmeter #ina219 #rp2040

  10. Hackaday Prize 2023: Pi Pico Measures Volts, Amps and Watts - Measuring a voltage is pretty easy: just place your multimeter’s probes across the... - hackaday.com/2023/07/16/hackad #powermeter #toolhacks #wattmeter #ina219 #rp2040

  11. Hackaday Prize 2023: Pi Pico Measures Volts, Amps and Watts - Measuring a voltage is pretty easy: just place your multimeter’s probes across the... - hackaday.com/2023/07/16/hackad #powermeter #toolhacks #wattmeter #ina219 #rp2040

  12. Arduino Audio and MIDI Frameworks

    I’ve been collecting bookmarks for interesting Arduino audio projects for a while now, and having now played with the XIAO SAMD21 I started looking back over my list for other things to try.  One thing that occurred to me is that there are a now a number of more powerful audio frameworks available for a range of microcontrollers, so in this post I’m doing an introductory “look see” at some of them, largely as “notes to self” to come back to them for some more detailed projects in the future.

    Note: Many of these require a 32-bit processor, which is one of the reasons I’ve not looked at them so far.

    Warning! I strongly recommend using old or second hand equipment for your experiments.  I am not responsible for any damage to expensive instruments!

    If you are new to microcontrollers, see the Getting Started pages.

    Mozzi

    I’ve spent quite a bit of time with Mozzi of course, the synthesis library for Arduino that supports a large range of microcontrollers, including the “original” 8-bit Arduino ATmega328P, so I won’t go over that again here.

    For a starting point with Mozzi, see: Arduino PWM MIDI Synthesis with Mozzi.  For using Mozzi on a 32-bit SAMD processor, there is more here and here.

    But Mozzi isn’t the only game in town, especially if we’re expanding out to 32-bit microcontrollers.

    The Arduino Sound Library

    https://www.arduino.cc/reference/en/libraries/arduinosound/

    This is an official Arduino library that supports SAMD21 based microcontrollers using an I2S digital to analog converter. It is designed for the MKR series of official Arduino boards.

    Interestingly it appears to only support I2S audio devices for sound input and output.  That seems like a little bit of a missed opportunity to me in that the SAMD21 has a built-in DAC, but I guess analogWrite() deals with access to the DAC relatively easily.

    It is designed for official Arduino SAMD architecture boards – so those in the MKR series.  It might work on other SAMD architecture boards, I haven’t looked into it in detail.

    Phil Schatzmann’s Arduino Audio Tools

    https://github.com/pschatzmann/arduino-audio-tools

    This is a suite of open source code for audio stream processing, providing a range of audio sources (e.g. microphones, Internet streams, files, sensors, and so on) and sinks (e.g. DACs, PWM audio, MP3, codecs, audio modules, etc).

    It can be used to build audio players, processors, effects, file processors, audio visualisers, networked audio tools, and so on.

    I believe it supports the following microcontroller architectures:

    • ESP32 (S and C variants)
    • ESP8266
    • RP2040 (MBED and non-MBED)
    • AVR
    • STM32
    • SAMD

    It supports several audio output boards too, including: ESP32-A1S based boards (ES8388 or AC101 codecs); VS1053 modules; and WM8960 modules.

    I believe this is a library for audio processing, not necessarily audio synthesis.

    Marcel Licence’s ML Synth Tools

    https://github.com/marcel-licence/ML_SynthTools

    This is a comprehensive synth library for producing synthesizers, organs and effects.  Most of the code is open source, but there are certain key elements that are provided only in pre-built library form.

    It provides libraries for the following microcontrollers:

    • ESP32
    • ESP8266
    • XIAO SAMD21
    • Teensy 4.1
    • Daisy Seed
    • Raspberry Pi Pico RP2040
    • STM32F407

    As well as the synthesizer core oscillators there are modules for arpeggiators, effects, meters, scopes, and MIDI file playing.  Here are some example builds using the library:

    Although it isn’t fully open source, this non-the-less looks like it would be worth taking a more detailed look.  The provided videos of Marcel playing are particularly excellent.

    MIDI Controller Libraries

    There are a number of Arduino libraries for building MIDI controllers. Here are a selection of some that I’ve found so far.

    OpenDesk MIDI Platformhttps://github.com/shanteacontrols/OpenDeck

    This is a set of firmware and two official PCB designs for MIDI controllers. In addition to the official boards, it also supports many microcontrollers, including:

    • Arduino Mega 2560
    • Arduino Nano 33 BLE
    • Raspberry Pi Pico
    • XIAO RP2040
    • Teensy++ 2.0

    And many others. It includes a web-based configuration utility for defining the MIDI commands for the controls.  Official boards are available on Tindie and you can read more about them here: https://shanteacontrols.com/.

    It supports a range of buttons, encoders, potentiometers, force sensitive resistors, certain touchscreens and can provided feedback using LEDs and displays.

    Control Surfacehttps://github.com/tttapa/Control-Surface

    This is a general purpose library for building MIDI input and output control devices.  It supports a wide range of microcontrollers, including:

    • AVR (Uno, Mega, Leonardo).
    • Arduino Nano Every and 33.
    • Teensy.
    • ESP8266
    • ESP32
    • Raspberry Pi Pico

    It supports a range of MIDI transports, including serial, USB, “direct serial” (using Hairless MIDI) and MIDI BLE. It also supports a range of buttons, potentiometers, rotary encoders, switches, keyboard matrices, and so on and can provide visual feedback using a range of LEDS and displays.  It has built-in support for multiplexers, shift registers and LED drivers.

    It includes a huge number of example projects to browse.

    MIDIPalhttps://github.com/pichenettes/midipal

    This is a “MIDI Swiss Army Knife” that, with the additional of a display and rotary encoder, can provide a wide range of MIDI processing functions.  It includes an editor application for programming MIDI filters.

    This is a “native” AVR application, not for the Arduino environment.

    Notes and Volts MIDI Controllerhttps://www.notesandvolts.com/2016/04/arduino-midi-controller-buttons.html

    This is provided for completeness as it is a fairly common codebase for people to find and use with an Arduino. It supports a range of potentiometers and buttons and makes the task of configuring them as a MIDI control device relatively straight forward.

    Closing Thoughts

    As I say, this post is really almost a bit of a “to-do list” of things that look interesting and that I might try to take a more detailed look at, at some point.

    If you have experience of any of these frameworks or libraries; or have suggestions of others that might be worth a look, do let me know in the comments!

    Kevin

    #ArduinoAudioTools #ControlSurface #dac #esp32 #fmSynthesis #i2s #midi #midiController #MIDIPal #MLSynthTools #mozzi #OpenDesk #pwm #rp2040 #samd21 #synthesis #xiao
  13. Arduino Audio and MIDI Frameworks

    I’ve been collecting bookmarks for interesting Arduino audio projects for a while now, and having now played with the XIAO SAMD21 I started looking back over my list for other things to try.  One thing that occurred to me is that there are a now a number of more powerful audio frameworks available for a range of microcontrollers, so in this post I’m doing an introductory “look see” at some of them, largely as “notes to self” to come back to them for some more detailed projects in the future.

    Note: Many of these require a 32-bit processor, which is one of the reasons I’ve not looked at them so far.

    Warning! I strongly recommend using old or second hand equipment for your experiments.  I am not responsible for any damage to expensive instruments!

    If you are new to microcontrollers, see the Getting Started pages.

    Mozzi

    I’ve spent quite a bit of time with Mozzi of course, the synthesis library for Arduino that supports a large range of microcontrollers, including the “original” 8-bit Arduino ATmega328P, so I won’t go over that again here.

    For a starting point with Mozzi, see: Arduino PWM MIDI Synthesis with Mozzi.  For using Mozzi on a 32-bit SAMD processor, there is more here and here.

    But Mozzi isn’t the only game in town, especially if we’re expanding out to 32-bit microcontrollers.

    The Arduino Sound Library

    https://www.arduino.cc/reference/en/libraries/arduinosound/

    This is an official Arduino library that supports SAMD21 based microcontrollers using an I2S digital to analog converter. It is designed for the MKR series of official Arduino boards.

    Interestingly it appears to only support I2S audio devices for sound input and output.  That seems like a little bit of a missed opportunity to me in that the SAMD21 has a built-in DAC, but I guess analogWrite() deals with access to the DAC relatively easily.

    It is designed for official Arduino SAMD architecture boards – so those in the MKR series.  It might work on other SAMD architecture boards, I haven’t looked into it in detail.

    Phil Schatzmann’s Arduino Audio Tools

    https://github.com/pschatzmann/arduino-audio-tools

    This is a suite of open source code for audio stream processing, providing a range of audio sources (e.g. microphones, Internet streams, files, sensors, and so on) and sinks (e.g. DACs, PWM audio, MP3, codecs, audio modules, etc).

    It can be used to build audio players, processors, effects, file processors, audio visualisers, networked audio tools, and so on.

    I believe it supports the following microcontroller architectures:

    • ESP32 (S and C variants)
    • ESP8266
    • RP2040 (MBED and non-MBED)
    • AVR
    • STM32
    • SAMD

    It supports several audio output boards too, including: ESP32-A1S based boards (ES8388 or AC101 codecs); VS1053 modules; and WM8960 modules.

    I believe this is a library for audio processing, not necessarily audio synthesis.

    Marcel Licence’s ML Synth Tools

    https://github.com/marcel-licence/ML_SynthTools

    This is a comprehensive synth library for producing synthesizers, organs and effects.  Most of the code is open source, but there are certain key elements that are provided only in pre-built library form.

    It provides libraries for the following microcontrollers:

    • ESP32
    • ESP8266
    • XIAO SAMD21
    • Teensy 4.1
    • Daisy Seed
    • Raspberry Pi Pico RP2040
    • STM32F407

    As well as the synthesizer core oscillators there are modules for arpeggiators, effects, meters, scopes, and MIDI file playing.  Here are some example builds using the library:

    Although it isn’t fully open source, this non-the-less looks like it would be worth taking a more detailed look.  The provided videos of Marcel playing are particularly excellent.

    MIDI Controller Libraries

    There are a number of Arduino libraries for building MIDI controllers. Here are a selection of some that I’ve found so far.

    OpenDesk MIDI Platformhttps://github.com/shanteacontrols/OpenDeck

    This is a set of firmware and two official PCB designs for MIDI controllers. In addition to the official boards, it also supports many microcontrollers, including:

    • Arduino Mega 2560
    • Arduino Nano 33 BLE
    • Raspberry Pi Pico
    • XIAO RP2040
    • Teensy++ 2.0

    And many others. It includes a web-based configuration utility for defining the MIDI commands for the controls.  Official boards are available on Tindie and you can read more about them here: https://shanteacontrols.com/.

    It supports a range of buttons, encoders, potentiometers, force sensitive resistors, certain touchscreens and can provided feedback using LEDs and displays.

    Control Surfacehttps://github.com/tttapa/Control-Surface

    This is a general purpose library for building MIDI input and output control devices.  It supports a wide range of microcontrollers, including:

    • AVR (Uno, Mega, Leonardo).
    • Arduino Nano Every and 33.
    • Teensy.
    • ESP8266
    • ESP32
    • Raspberry Pi Pico

    It supports a range of MIDI transports, including serial, USB, “direct serial” (using Hairless MIDI) and MIDI BLE. It also supports a range of buttons, potentiometers, rotary encoders, switches, keyboard matrices, and so on and can provide visual feedback using a range of LEDS and displays.  It has built-in support for multiplexers, shift registers and LED drivers.

    It includes a huge number of example projects to browse.

    MIDIPalhttps://github.com/pichenettes/midipal

    This is a “MIDI Swiss Army Knife” that, with the additional of a display and rotary encoder, can provide a wide range of MIDI processing functions.  It includes an editor application for programming MIDI filters.

    This is a “native” AVR application, not for the Arduino environment.

    Notes and Volts MIDI Controllerhttps://www.notesandvolts.com/2016/04/arduino-midi-controller-buttons.html

    This is provided for completeness as it is a fairly common codebase for people to find and use with an Arduino. It supports a range of potentiometers and buttons and makes the task of configuring them as a MIDI control device relatively straight forward.

    Closing Thoughts

    As I say, this post is really almost a bit of a “to-do list” of things that look interesting and that I might try to take a more detailed look at, at some point.

    If you have experience of any of these frameworks or libraries; or have suggestions of others that might be worth a look, do let me know in the comments!

    Kevin

    #ArduinoAudioTools #ControlSurface #dac #esp32 #fmSynthesis #i2s #midi #midiController #MIDIPal #MLSynthTools #mozzi #OpenDesk #pwm #rp2040 #samd21 #synthesis #xiao
  14. Arduino Audio and MIDI Frameworks

    I’ve been collecting bookmarks for interesting Arduino audio projects for a while now, and having now played with the XIAO SAMD21 I started looking back over my list for other things to try.  One thing that occurred to me is that there are a now a number of more powerful audio frameworks available for a range of microcontrollers, so in this post I’m doing an introductory “look see” at some of them, largely as “notes to self” to come back to them for some more detailed projects in the future.

    Note: Many of these require a 32-bit processor, which is one of the reasons I’ve not looked at them so far.

    Warning! I strongly recommend using old or second hand equipment for your experiments.  I am not responsible for any damage to expensive instruments!

    If you are new to microcontrollers, see the Getting Started pages.

    Mozzi

    I’ve spent quite a bit of time with Mozzi of course, the synthesis library for Arduino that supports a large range of microcontrollers, including the “original” 8-bit Arduino ATmega328P, so I won’t go over that again here.

    For a starting point with Mozzi, see: Arduino PWM MIDI Synthesis with Mozzi.  For using Mozzi on a 32-bit SAMD processor, there is more here and here.

    But Mozzi isn’t the only game in town, especially if we’re expanding out to 32-bit microcontrollers.

    The Arduino Sound Library

    https://www.arduino.cc/reference/en/libraries/arduinosound/

    This is an official Arduino library that supports SAMD21 based microcontrollers using an I2S digital to analog converter. It is designed for the MKR series of official Arduino boards.

    Interestingly it appears to only support I2S audio devices for sound input and output.  That seems like a little bit of a missed opportunity to me in that the SAMD21 has a built-in DAC, but I guess analogWrite() deals with access to the DAC relatively easily.

    It is designed for official Arduino SAMD architecture boards – so those in the MKR series.  It might work on other SAMD architecture boards, I haven’t looked into it in detail.

    Phil Schatzmann’s Arduino Audio Tools

    https://github.com/pschatzmann/arduino-audio-tools

    This is a suite of open source code for audio stream processing, providing a range of audio sources (e.g. microphones, Internet streams, files, sensors, and so on) and sinks (e.g. DACs, PWM audio, MP3, codecs, audio modules, etc).

    It can be used to build audio players, processors, effects, file processors, audio visualisers, networked audio tools, and so on.

    I believe it supports the following microcontroller architectures:

    • ESP32 (S and C variants)
    • ESP8266
    • RP2040 (MBED and non-MBED)
    • AVR
    • STM32
    • SAMD

    It supports several audio output boards too, including: ESP32-A1S based boards (ES8388 or AC101 codecs); VS1053 modules; and WM8960 modules.

    I believe this is a library for audio processing, not necessarily audio synthesis.

    Marcel Licence’s ML Synth Tools

    https://github.com/marcel-licence/ML_SynthTools

    This is a comprehensive synth library for producing synthesizers, organs and effects.  Most of the code is open source, but there are certain key elements that are provided only in pre-built library form.

    It provides libraries for the following microcontrollers:

    • ESP32
    • ESP8266
    • XIAO SAMD21
    • Teensy 4.1
    • Daisy Seed
    • Raspberry Pi Pico RP2040
    • STM32F407

    As well as the synthesizer core oscillators there are modules for arpeggiators, effects, meters, scopes, and MIDI file playing.  Here are some example builds using the library:

    Although it isn’t fully open source, this non-the-less looks like it would be worth taking a more detailed look.  The provided videos of Marcel playing are particularly excellent.

    MIDI Controller Libraries

    There are a number of Arduino libraries for building MIDI controllers. Here are a selection of some that I’ve found so far.

    OpenDesk MIDI Platformhttps://github.com/shanteacontrols/OpenDeck

    This is a set of firmware and two official PCB designs for MIDI controllers. In addition to the official boards, it also supports many microcontrollers, including:

    • Arduino Mega 2560
    • Arduino Nano 33 BLE
    • Raspberry Pi Pico
    • XIAO RP2040
    • Teensy++ 2.0

    And many others. It includes a web-based configuration utility for defining the MIDI commands for the controls.  Official boards are available on Tindie and you can read more about them here: https://shanteacontrols.com/.

    It supports a range of buttons, encoders, potentiometers, force sensitive resistors, certain touchscreens and can provided feedback using LEDs and displays.

    Control Surfacehttps://github.com/tttapa/Control-Surface

    This is a general purpose library for building MIDI input and output control devices.  It supports a wide range of microcontrollers, including:

    • AVR (Uno, Mega, Leonardo).
    • Arduino Nano Every and 33.
    • Teensy.
    • ESP8266
    • ESP32
    • Raspberry Pi Pico

    It supports a range of MIDI transports, including serial, USB, “direct serial” (using Hairless MIDI) and MIDI BLE. It also supports a range of buttons, potentiometers, rotary encoders, switches, keyboard matrices, and so on and can provide visual feedback using a range of LEDS and displays.  It has built-in support for multiplexers, shift registers and LED drivers.

    It includes a huge number of example projects to browse.

    MIDIPalhttps://github.com/pichenettes/midipal

    This is a “MIDI Swiss Army Knife” that, with the additional of a display and rotary encoder, can provide a wide range of MIDI processing functions.  It includes an editor application for programming MIDI filters.

    This is a “native” AVR application, not for the Arduino environment.

    Notes and Volts MIDI Controllerhttps://www.notesandvolts.com/2016/04/arduino-midi-controller-buttons.html

    This is provided for completeness as it is a fairly common codebase for people to find and use with an Arduino. It supports a range of potentiometers and buttons and makes the task of configuring them as a MIDI control device relatively straight forward.

    Closing Thoughts

    As I say, this post is really almost a bit of a “to-do list” of things that look interesting and that I might try to take a more detailed look at, at some point.

    If you have experience of any of these frameworks or libraries; or have suggestions of others that might be worth a look, do let me know in the comments!

    Kevin

    #ArduinoAudioTools #ControlSurface #dac #esp32 #fmSynthesis #i2s #midi #midiController #MIDIPal #MLSynthTools #mozzi #OpenDesk #pwm #rp2040 #samd21 #synthesis #xiao
  15. Arduino Audio and MIDI Frameworks

    I’ve been collecting bookmarks for interesting Arduino audio projects for a while now, and having now played with the XIAO SAMD21 I started looking back over my list for other things to try.  One thing that occurred to me is that there are a now a number of more powerful audio frameworks available for a range of microcontrollers, so in this post I’m doing an introductory “look see” at some of them, largely as “notes to self” to come back to them for some more detailed projects in the future.

    Note: Many of these require a 32-bit processor, which is one of the reasons I’ve not looked at them so far.

    Warning! I strongly recommend using old or second hand equipment for your experiments.  I am not responsible for any damage to expensive instruments!

    If you are new to microcontrollers, see the Getting Started pages.

    Mozzi

    I’ve spent quite a bit of time with Mozzi of course, the synthesis library for Arduino that supports a large range of microcontrollers, including the “original” 8-bit Arduino ATmega328P, so I won’t go over that again here.

    For a starting point with Mozzi, see: Arduino PWM MIDI Synthesis with Mozzi.  For using Mozzi on a 32-bit SAMD processor, there is more here and here.

    But Mozzi isn’t the only game in town, especially if we’re expanding out to 32-bit microcontrollers.

    The Arduino Sound Library

    https://www.arduino.cc/reference/en/libraries/arduinosound/

    This is an official Arduino library that supports SAMD21 based microcontrollers using an I2S digital to analog converter. It is designed for the MKR series of official Arduino boards.

    Interestingly it appears to only support I2S audio devices for sound input and output.  That seems like a little bit of a missed opportunity to me in that the SAMD21 has a built-in DAC, but I guess analogWrite() deals with access to the DAC relatively easily.

    It is designed for official Arduino SAMD architecture boards – so those in the MKR series.  It might work on other SAMD architecture boards, I haven’t looked into it in detail.

    Phil Schatzmann’s Arduino Audio Tools

    https://github.com/pschatzmann/arduino-audio-tools

    This is a suite of open source code for audio stream processing, providing a range of audio sources (e.g. microphones, Internet streams, files, sensors, and so on) and sinks (e.g. DACs, PWM audio, MP3, codecs, audio modules, etc).

    It can be used to build audio players, processors, effects, file processors, audio visualisers, networked audio tools, and so on.

    I believe it supports the following microcontroller architectures:

    • ESP32 (S and C variants)
    • ESP8266
    • RP2040 (MBED and non-MBED)
    • AVR
    • STM32
    • SAMD

    It supports several audio output boards too, including: ESP32-A1S based boards (ES8388 or AC101 codecs); VS1053 modules; and WM8960 modules.

    I believe this is a library for audio processing, not necessarily audio synthesis.

    Marcel Licence’s ML Synth Tools

    https://github.com/marcel-licence/ML_SynthTools

    This is a comprehensive synth library for producing synthesizers, organs and effects.  Most of the code is open source, but there are certain key elements that are provided only in pre-built library form.

    It provides libraries for the following microcontrollers:

    • ESP32
    • ESP8266
    • XIAO SAMD21
    • Teensy 4.1
    • Daisy Seed
    • Raspberry Pi Pico RP2040
    • STM32F407

    As well as the synthesizer core oscillators there are modules for arpeggiators, effects, meters, scopes, and MIDI file playing.  Here are some example builds using the library:

    Although it isn’t fully open source, this non-the-less looks like it would be worth taking a more detailed look.  The provided videos of Marcel playing are particularly excellent.

    MIDI Controller Libraries

    There are a number of Arduino libraries for building MIDI controllers. Here are a selection of some that I’ve found so far.

    OpenDesk MIDI Platformhttps://github.com/shanteacontrols/OpenDeck

    This is a set of firmware and two official PCB designs for MIDI controllers. In addition to the official boards, it also supports many microcontrollers, including:

    • Arduino Mega 2560
    • Arduino Nano 33 BLE
    • Raspberry Pi Pico
    • XIAO RP2040
    • Teensy++ 2.0

    And many others. It includes a web-based configuration utility for defining the MIDI commands for the controls.  Official boards are available on Tindie and you can read more about them here: https://shanteacontrols.com/.

    It supports a range of buttons, encoders, potentiometers, force sensitive resistors, certain touchscreens and can provided feedback using LEDs and displays.

    Control Surfacehttps://github.com/tttapa/Control-Surface

    This is a general purpose library for building MIDI input and output control devices.  It supports a wide range of microcontrollers, including:

    • AVR (Uno, Mega, Leonardo).
    • Arduino Nano Every and 33.
    • Teensy.
    • ESP8266
    • ESP32
    • Raspberry Pi Pico

    It supports a range of MIDI transports, including serial, USB, “direct serial” (using Hairless MIDI) and MIDI BLE. It also supports a range of buttons, potentiometers, rotary encoders, switches, keyboard matrices, and so on and can provide visual feedback using a range of LEDS and displays.  It has built-in support for multiplexers, shift registers and LED drivers.

    It includes a huge number of example projects to browse.

    MIDIPalhttps://github.com/pichenettes/midipal

    This is a “MIDI Swiss Army Knife” that, with the additional of a display and rotary encoder, can provide a wide range of MIDI processing functions.  It includes an editor application for programming MIDI filters.

    This is a “native” AVR application, not for the Arduino environment.

    Notes and Volts MIDI Controllerhttps://www.notesandvolts.com/2016/04/arduino-midi-controller-buttons.html

    This is provided for completeness as it is a fairly common codebase for people to find and use with an Arduino. It supports a range of potentiometers and buttons and makes the task of configuring them as a MIDI control device relatively straight forward.

    Closing Thoughts

    As I say, this post is really almost a bit of a “to-do list” of things that look interesting and that I might try to take a more detailed look at, at some point.

    If you have experience of any of these frameworks or libraries; or have suggestions of others that might be worth a look, do let me know in the comments!

    Kevin

    #ArduinoAudioTools #ControlSurface #dac #esp32 #fmSynthesis #i2s #midi #midiController #MIDIPal #MLSynthTools #mozzi #OpenDesk #pwm #rp2040 #samd21 #synthesis #xiao
  16. Arduino Audio and MIDI Frameworks

    I’ve been collecting bookmarks for interesting Arduino audio projects for a while now, and having now played with the XIAO SAMD21 I started looking back over my list for other things to try.  One thing that occurred to me is that there are a now a number of more powerful audio frameworks available for a range of microcontrollers, so in this post I’m doing an introductory “look see” at some of them, largely as “notes to self” to come back to them for some more detailed projects in the future.

    Note: Many of these require a 32-bit processor, which is one of the reasons I’ve not looked at them so far.

    Warning! I strongly recommend using old or second hand equipment for your experiments.  I am not responsible for any damage to expensive instruments!

    If you are new to microcontrollers, see the Getting Started pages.

    Mozzi

    I’ve spent quite a bit of time with Mozzi of course, the synthesis library for Arduino that supports a large range of microcontrollers, including the “original” 8-bit Arduino ATmega328P, so I won’t go over that again here.

    For a starting point with Mozzi, see: Arduino PWM MIDI Synthesis with Mozzi.  For using Mozzi on a 32-bit SAMD processor, there is more here and here.

    But Mozzi isn’t the only game in town, especially if we’re expanding out to 32-bit microcontrollers.

    The Arduino Sound Library

    https://www.arduino.cc/reference/en/libraries/arduinosound/

    This is an official Arduino library that supports SAMD21 based microcontrollers using an I2S digital to analog converter. It is designed for the MKR series of official Arduino boards.

    Interestingly it appears to only support I2S audio devices for sound input and output.  That seems like a little bit of a missed opportunity to me in that the SAMD21 has a built-in DAC, but I guess analogWrite() deals with access to the DAC relatively easily.

    It is designed for official Arduino SAMD architecture boards – so those in the MKR series.  It might work on other SAMD architecture boards, I haven’t looked into it in detail.

    Phil Schatzmann’s Arduino Audio Tools

    https://github.com/pschatzmann/arduino-audio-tools

    This is a suite of open source code for audio stream processing, providing a range of audio sources (e.g. microphones, Internet streams, files, sensors, and so on) and sinks (e.g. DACs, PWM audio, MP3, codecs, audio modules, etc).

    It can be used to build audio players, processors, effects, file processors, audio visualisers, networked audio tools, and so on.

    I believe it supports the following microcontroller architectures:

    • ESP32 (S and C variants)
    • ESP8266
    • RP2040 (MBED and non-MBED)
    • AVR
    • STM32
    • SAMD

    It supports several audio output boards too, including: ESP32-A1S based boards (ES8388 or AC101 codecs); VS1053 modules; and WM8960 modules.

    I believe this is a library for audio processing, not necessarily audio synthesis.

    Marcel Licence’s ML Synth Tools

    https://github.com/marcel-licence/ML_SynthTools

    This is a comprehensive synth library for producing synthesizers, organs and effects.  Most of the code is open source, but there are certain key elements that are provided only in pre-built library form.

    It provides libraries for the following microcontrollers:

    • ESP32
    • ESP8266
    • XIAO SAMD21
    • Teensy 4.1
    • Daisy Seed
    • Raspberry Pi Pico RP2040
    • STM32F407

    As well as the synthesizer core oscillators there are modules for arpeggiators, effects, meters, scopes, and MIDI file playing.  Here are some example builds using the library:

    Although it isn’t fully open source, this non-the-less looks like it would be worth taking a more detailed look.  The provided videos of Marcel playing are particularly excellent.

    MIDI Controller Libraries

    There are a number of Arduino libraries for building MIDI controllers. Here are a selection of some that I’ve found so far.

    OpenDesk MIDI Platformhttps://github.com/shanteacontrols/OpenDeck

    This is a set of firmware and two official PCB designs for MIDI controllers. In addition to the official boards, it also supports many microcontrollers, including:

    • Arduino Mega 2560
    • Arduino Nano 33 BLE
    • Raspberry Pi Pico
    • XIAO RP2040
    • Teensy++ 2.0

    And many others. It includes a web-based configuration utility for defining the MIDI commands for the controls.  Official boards are available on Tindie and you can read more about them here: https://shanteacontrols.com/.

    It supports a range of buttons, encoders, potentiometers, force sensitive resistors, certain touchscreens and can provided feedback using LEDs and displays.

    Control Surfacehttps://github.com/tttapa/Control-Surface

    This is a general purpose library for building MIDI input and output control devices.  It supports a wide range of microcontrollers, including:

    • AVR (Uno, Mega, Leonardo).
    • Arduino Nano Every and 33.
    • Teensy.
    • ESP8266
    • ESP32
    • Raspberry Pi Pico

    It supports a range of MIDI transports, including serial, USB, “direct serial” (using Hairless MIDI) and MIDI BLE. It also supports a range of buttons, potentiometers, rotary encoders, switches, keyboard matrices, and so on and can provide visual feedback using a range of LEDS and displays.  It has built-in support for multiplexers, shift registers and LED drivers.

    It includes a huge number of example projects to browse.

    MIDIPalhttps://github.com/pichenettes/midipal

    This is a “MIDI Swiss Army Knife” that, with the additional of a display and rotary encoder, can provide a wide range of MIDI processing functions.  It includes an editor application for programming MIDI filters.

    This is a “native” AVR application, not for the Arduino environment.

    Notes and Volts MIDI Controllerhttps://www.notesandvolts.com/2016/04/arduino-midi-controller-buttons.html

    This is provided for completeness as it is a fairly common codebase for people to find and use with an Arduino. It supports a range of potentiometers and buttons and makes the task of configuring them as a MIDI control device relatively straight forward.

    Closing Thoughts

    As I say, this post is really almost a bit of a “to-do list” of things that look interesting and that I might try to take a more detailed look at, at some point.

    If you have experience of any of these frameworks or libraries; or have suggestions of others that might be worth a look, do let me know in the comments!

    Kevin

    #ArduinoAudioTools #ControlSurface #dac #esp32 #fmSynthesis #i2s #midi #midiController #MIDIPal #MLSynthTools #mozzi #OpenDesk #pwm #rp2040 #samd21 #synthesis #xiao