Ohmic Limited
Audio & Music
ESP32
Funding ended on Sep 16, 2021 at 04:59 PM PDT.
PICO DSP is an open-source, Arduino-compatible ESP32 development board for audio and digital signal processing (DSP) applications. It offers an expansive audio-processing feature set on a small-format, breadboard-friendly device that provides audio inputs, audio outputs, a low-noise microphone array, an integrated test-speaker option, additional memory, battery-charge management, and ESD protection all on one tiny PCB.
PICO DSP can be used for a wide range of DSP applications, including but not limited to those in the fields of music, art, creative technology, and adaptive technology. Music-related examples include digital-music synthesis, mobile recording, Bluetooth speakers, wireless line-level directional microphones, and the design of smart musical instruments. Art-related examples include acoustic sensor networks, sound-art installations, and Internet-radio applications. Examples related to creative and adaptive technology include voice user interface (VUI) design and Web audio for the Internet of Sounds.
PICO DSP was designed for portability. When used with an external 3.7 V rechargeable battery, it can be deployed almost anywhere or integrated into just about any device, instrument, or installation. Its design emerged from months of experimentation with various ESP32 development boards, DAC breakout boards, ADC breakout boards, Microphone breakout boards, and audio-connector breakout boards, and—despite its diminutive size—it manages to provide all of that functionality in a single board. And it dos so without compromising signal quality.
Processor & Memory
Audio
Form Factor & Connectivity
Power
PICO DSP Original | PICO DSP Strawberry Edition | TinyPICO Collection | ESP32-PICO Kit Collection | TTGO T-Audio | AI Thinker A1S | LyraT Mini | WVR | |
---|---|---|---|---|---|---|---|---|
ESP32 IC | PICO-D4 | PICO-D4 | PICO-D4 | PICO-D4 | Wrover-B | Wrover-B | Wrover-B | Wrover-B |
Additional Boards | None | None | VS1053 & 2x ICS 40180 | WM8371 Codec & 2x SPW2430 | None | None | None | None |
Compactness | 70 x 24 mm | 70 x 24 mm | Four boards | Four boards | 70 x 70 mm | 64 x 58 mm | 77 x 72 mm | 55 x 26 mm |
Flash Memory | 4 MB | 16 MB | 4 MB | 4 MB | 4 MB | 4 MB | 8 MB | 4 MB |
PSRAM | 8 MB | 0 MB | 8 MB | 0 MB | 8 MB | 8 MB | 8 MB | 8 MB + 8 GB ECC |
Open Source | Yes | Yes | Yes | No | Schematic only | No | Schematic only | Yes |
Audio In | ✓ | ✓ | GPIO only | ✓ | ✓ | ✓ | ||
Audio Out | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Mic Array | ✓ | ✓ | ||||||
Breadboard | ✓ | ✓ | ✓ | ✓ | ✓ | |||
Battery Powered | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
Price | $34 | $34 | $61 | $39 | $18 | $25 | $22 | $30 |
On the back of the PICO DSP PCB, there is room for one external memory IC. We are offering two different models of this board, and they differ only by the type and amount of memory they provide by means of this socket.
This model utilizes the internal ESP32 PICO 4 MB Flash memory and an external 64 MB pseudo-static (PSRAM) chip, of which up to 8 MB is currently supported by ESP-IDF. The PSRAM can be made available by enabling various options in the configuration menu in ESP-IDF, PlatformIO, or Arduino. See the Espressif documentation for more information on using external RAM with ESP32.
This model has 16 MB of external NOR Flash instead of the PSRAM described above. The EFUSES in the ESP32 are burnt with a new flash CS pin configuration, and the 2nd-stage bootloader will load the partition table and the main application image from the 16 MB external Flash memory. The EFUSES can be burnt only once. With this configuration, you will be unable to revert back to using the internal 4 MB Flash with PSRAM.
The Strawberry Edition is a more experimental hardware configuration that is intended for more experienced developers who are familiar with the memory requirements of their application and who know that they need more than the 4 MB provided by the ESP32 PICO D4. In addition, the two models provide different types of memory. Depending on the firmware application, NOR Flash might be more appropriate than PSRAM or vice versa. (Your application might require a certain read/write speed, for example.) See the Espressif documentation for more information on ESP32 memory.
For new users who are looking to get started with audio programming on ESP32 and are using Arduino IDE for programming, we recommend the Original Edition. The same is true if you do not know the size requirements of your application. All of the sample code in our GitHub repository was written using the Original Edition, and all of the examples have additional memory available for use. You can write many applications using this memory configuration.
The Original and Strawberry Editions have a big sister, as well. It combines PICO DSP with an Expansion Module to create a user-programmable, multi-functional, networked synthesis module for the Eurorack Format. The Eurorack Expansion Module is 6 HP and can draw power from a Eurorack Power Supply. When powering your PICO DSP this way, you can program it using either USB or over the air (OTA). You can also remove the PICO DSP board for development and slot it back into the Expansion Module when you’re done programming. Any PICO DSP board can be slotted neatly into the back of the Eurorack Expansion Module using stackable headers. Like our other modules, it includes reverse polarity protection and overcurrent protection as standard.
The Eurorack Expansion Module is just one example of how PICO DSP can be integrated into a larger application or instrument. You can find its schematics and PCB design files in our GitHub repository.
PICO DSP can be programmed in C/C++ using Arduino IDE, Espressif IDF, or the open-source PlatformIO IDE extension for VS Code, which allows for combinations of development environments. You can flash it using Esptool.py.
During the campaign, to help you get started straight away, we will publish sample code for Arduino, Arduino-ESP32, and ESP-IDF in our GitHub repository. Examples will include:
Above is a short audio clip of a Faust DSP patch running on PICO DSP. The PCB design has separate analog and digital regulators as well as separate analog and digital ground planes to ensure low noise and signal integrity.
PICO DSP has two Knowles SPM0687LR5H-1 MEMS microphones that are routed in a differential configuration to the left and right microphone inputs of the codec. The distance between the microphones on the PCB is related to the minimum delay time of a single sample for a sampling rate (fs) of 48 kHz, and the speed of sound in air, making it possible to adjust the microphone pickup pattern using DSP algorithms.
The audio clip below was made using the microphones in a broadside array configuration:
A few options are available for MIDI input and output. The ESP32 PICO D4 chip features Wi-Fi and BLE, allowing for Web MIDI or BLE MIDI. In this design, the main RX and TX pins on the MCU (UOTXD and UORXD) are used by the USB-to-serial converter to allow programming over USB. however, there are three hardware serial ports on the ESP32, and it is possible to re-assign them to different GPIO pins in order to receive MIDI RX and TX data.
A small MIDI adapter before the input to the GPIO header would be required to plug a MIDI TRS or DIN cable directly into to PICO DSP with an optocoupler and the MIDI jack. It’s possible that we could design a MIDI Shield or adapter. If you are interested, please send us a quick note and let us know!
PICO DSP’s GPIOs are carefully selected to allow access to ESP32 peripherals, including ADC1, ADC2, RTC, Capacitive Touch, and JTAG for debugging. Some of the pins from the audio codec—including Mono output, Auxiliary L & R inputs, and 1 W speaker outputs—are broken out as well.
On the final production board, both analog and digital 3.3 V regulator outputs will be broken out to GPIO so they can be used for peripherals integration. The analog 3.3 V pin can be used for low-noise analog applications, for example, such as connecting a potentiometer to the ADC inputs of the ESP32. The digital 3.3 V pin can be used to connect digital peripherals such as I²C temperature sensors.
PICO DSP is an open-source project released under the CERN Open Hardware License v1.2. We believe strongly in the benefits of open-source design, and if you are reading this, we hope you will contribute to the project! Our goal is to create a reliable development board for audio applications and to provide all of the necessary documentation for it. There are unexplored applications for this hardware, and we invite you to help us find them!
We have squeezed as much hardware functionality as possible into PICO DSP. Due to its compact form factor and reliance on small-pitch SMD components, it is relatively advanced in terms of hardware development, and we are not seeking contributions on the hardware front. We are publishing our schematic and PCB design files primarily for transparency and reference purposes—so that you can trace the signal routing—and to support your Right to Repair. This level of transparency allows us to push back against recent trends toward planned obsolescence while simultaneously paying our respects to the many open-source projects (such as Unexpected maker’s TinyPICO) that have inspired and informed PICO DSP.
There is, however, a great deal of unexplored territory in the realms of firmware and software! Examples might include the development of an architecture for switching between different DSP classes, a REST API, a MicroPython DSP architecture, or a voice-to-speech application. The sample code in our GitHub repository—such as the microphone-array examples—are intended as starting points for further application development.
When crowdfunding goes live, we will make all of our hardware design files and sample firmware applications available in our GitHub repository. As we progress through the campaign, we will take a closer look at various aspects of the PICO DSP hardware design and share insights through weekly updates. If you have any questions at all, please reach out using the Ask a technical question form on our campaign page.
PICO DSP will be manufactured, to the IPC-A-610 standard, at Qualitas Electronics in Ireland. We have a track record of successful PCB design for professional audio and IoT applications, and we have worked with this manufacturer before, both on commercial products and on PICO DSP prototypes.
After testing and packaging the production batch of PICO DSP boards, we will send them on to Crowd Supply’s fulfillment partner, Mouser Electronics, who will distribute them to backers worldwide. You can learn more about Crowd Supply’s fulfillment service under Ordering, Paying, and Shipping in their guide.
PICO DSP has been in development for over 12 months. Risk to backers for this project is low. Our final prototype and production time frames have been checked for component availability, and we anticipate shipping to backers in line with the time frames specified above. However, supply chains are currently experiencing significant uncertainty, and a few of this project’s key components are currently subject to long lead times. As a result, it is entirely possible that we will run into one or two unforeseen availability issues. If we do, we will keep you informed through regular campaign updates!
PICO DSP was designed by electronic engineer Andy Wilson. Previous to this project, Andy worked as a professional audio developer and collaborator with Mindflood, Ltd. / Patchblocks (Minijam Studio, PBMIX3, and the Patchblocks Eurorack Module). He also worked as an electronic engineer for IoT applications with Wia Technologies, Ltd.
If you’ve made it this far, thanks for reading! And please don’t forget to subscribe for the weekly campaign updates. We’ll be doing some deep dives into different aspects of the PICO DSP hardware design, including the audio codec, the microphone array, and some of the firmware sample code. If you like this campaign, but aren’t in a position to back it right now, please consider sharing a link to the project with your friends or with someone you think might be interested. We’re super grateful to anyone who helps us spread the word about this project, so thank you! Lastly, we intend to make a contribution to MASI, the Movement of Asylum Seekers in Ireland, to support their work to end Direct Provision in Ireland. You can find out more about MASI’s work and support it via a direct donation at https://www.masi.ie.
"Equipped with a Wolfson WM9878 stereo audio codec, the breadboard-friendly, Arduino compatible board includes two MEMS microphones, audio in and out jacks, a speaker header, plus other audio signals routed to a GPIO header."
"Built around an Espressif ESP32 PICO D4, the board comes with a choice of 4MB of flash and 8MB PSRAM or 16MB of flash."
Produced by Ohmic Limited in Dublin, Ireland.
Sold and shipped by Crowd Supply.
A PÚCA DSP board with 16 MB of external flash. Ships with unsoldered male pin headers, a JST battery connector, and a test firmware application installed. Intended for advanced users.
Want to buy this item? Check the current project page for the latest information.
A PÚCA DSP board with 4 MB of flash memory and 8 MB PSRAM. Ships with unsoldered male pin headers, a JST battery connector, and a test firmware application installed.
Want to buy this item? Check the current project page for the latest information.
A PÚCA DSP board with 16 MB of external flash. Ships with unsoldered male pin headers, a JST battery connector, and a test firmware application installed. Intended for advanced users.
Want to buy this item? Check the current project page for the latest information.
An Original or Strawberry Edition PÚCA DSP with a Eurorack modular synthesizer instrument interface. Ships with a Eurorack power cable and a sample oscillator firmware application pre-installed
Want to buy this item? Check the current project page for the latest information.
A PÚCA DSP board with 4 MB of flash memory and 8 MB PSRAM. Ships with unsoldered male pin headers, a JST battery connector, and a test firmware application installed.
Want to buy this item? Check the current project page for the latest information.