

RP2040 Audio
A Eurorack module for stereo audio effects based on the Raspberry Pi RP2040 MCU
- Size
- 38.1 × 101.6 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 121
- Nets
- 109
- Pads
- 402
- Tracks, vias
- 925, 114
- Pours
- 3
- Routed
- Yes
- KiCad
- KiCad 6 (file 20211014)
- Created
- 11 Apr 2022
- Updated
- 11 Apr 2022
Overview
RP2040 Audio is an open-source printed circuit board by emeb, from the emeb/RP2040_Audio repository on GitHub, published under the MIT licence. It is a 2-layer board of 38.1 × 101.6 mm with 121 parts on 109 nets, routed with 925 tracks and 114 vias.
It is built around the RP2040, MCP6004-E/P and W25Q32JVSSIQ, with the LM1117-5.0, LP2985-33DBV and BAT54C among its other parts. Its parts include 50 capacitors, 31 resistors, 11 connectors, 9 ICs and 3 diodes. It belongs with the audio and music boards and the RP2040 boards of this library.
Main components
6RP2040
LQFN-56(7x7)12bit 133MHz 30 LQFN-56(7x7) Microcontrollers (MCU/MPU/SOC) ROHSRaspberry PiMicrocontrollers (MCU/MPU/SOC)MCP6004-E/P
PDIP-14-40℃~+125℃ 1.8V~6V 100uA 1MHz 1pA 1pA 23mA 28nV/√Hz@1kHz 2uV/℃ 4 4.5mV 600V/ms 76dB ESD protection Rail-to-Rail Input, Rail-to-Rail Output PDIP-14 Operational Amplifier ROHSMicrochip TechnologyOperational AmplifierW25Q32JVSSIQ
SOIC-8-208mil-40℃~+85℃ 100,000 cycles 133MHz 1uA 2.7V~3.6V 20 Years 32Mbit 3ms SPI SOIC-8-208mil NOR FLASH ROHSWinbondNOR FLASHLM1117-5.0
SOT-2231 1.3V@(1000mA) 15V 1A 2mA 5V Fixed Over Current Protection、Short Circuit Protection、Thermal shutdown Positive SOT-223 Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHShongjiachengUncategorisedLP2985-33DBV
SOT-23-5-40℃~+125℃@(Tj) 1 150mA 16V 3.3V 30uVrms 45dB@(1kHz) 575mV@(150mA) 850uA Fixed Over Current Protection、Short Circuit Protection、Thermal shutdown、Enable control、Noise bypass terminal Positive SOT-23-5 Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHSTexas InstrumentsVoltage Regulators - Linear, Low Drop Out (LDO) RegulatorsBAT54C
SOT-231 Pair Common Cathode 200mA 2uA@25V 30V 600mA 800mV@100mA SOT-23 Schottky Diodes ROHSNexperiaSchottky Diodes
README
README.mdRP2040_Audio
A Eurorack module for stereo audio effects based on the Raspberry Pi RP2040 MCU

Abstract
I've been doing audio synthesis and effects in the Eurorack modular market for a number of years. I started out in the late 2000's using the Microchip dsPIC and migrated over to ARM Cortex M devices, mostly STM32 in order to get access to higher speeds, more memory and floating point math. This was my main platform for most of the 2010's until the great silicon drought of the 2020's made high-end STM32 devices almost impossible to get. Into the vacuum stepped the good folks at the Raspberry Pi Foundation with the RP2040 MCU which has a fair chunk of on-chip SRAM, dual ARM Cortex M0 cores and a decent complement of peripherals.
This project is a feasibility study of using the RP2040 MCU as an audio effects processor, with particular emphasis on performance with challenging DSP.
Hardware
The complete design consists of two PCBs:
- The system PCB - a single board containg all electrical components. Find it in the Hardware directory.
- The Front Panel - a PCB-based front panel that conforms to the Eurorack physical mounting standard. Found in the Hardware/audio_panel directory.
The system PCB has the following features:
- Standard Eurorack 16-pin shrouded power connector
- Two +/-5V CV inputs and associated analog signal conditioning
- Two +/-7V Audio inputs and associated analog signal conditioning
- Two +/-7V Audio outputs and associated analog drivers
- WM8731 stereo audio codec
- RP2040 and 4MB SPI flash with USB, SWD and serial interfaces for development
- 160 x 80 IPS LCD
- UI button
Firmware
A demonstration firmware is included that exercises all of the capabilities of the system, including the LCD, UI button, CV inputs and stereo audio I/O. It is a basic multi-effects unit that supports a complement of audio DSP algorithms that are easily extended by adding standardized modules to a data structure. As provided here just three algorithms are available:
- Simple pass-thru with no processing
- Simple gain control
- Basic "clean delay" with crossfaded deglitching during delay changes.
Other algorithms have been tested including phasers, flangers, frequency shifters, resampling delays and reverbs, but these are not publicly released at this time.
Findings
Overall the RP2040 is a capable device that can do a reasonable amount of audio DSP. The lack of floating point is not a huge incovenience if one is handy with fixed point arithmetic and the large on-chip SRAM is sufficiently large for reasonable audio data buffers. The PIO is handy for building interfaces and is capable of full-duplex I2S with no difficulty. The on-chip ADC underperforms its 12-bit data width however and requires a fair bit of post-processing to remove noise and jitter in the conversion results. The dual ARM cores are useful in dividing up user interface and DSP tasks to keep a snappy response, but even with two cores the system struggles to compete with higher-spec ARM systems.
TL;DR - you can use it for DSP, but I'd prefer a Cortex M7.
Parts
121| Qty | Value | Footprint | References |
|---|---|---|---|
| 19 | 0.1uf | Capacitors_SMD:C_0603 | C4, C6, C10, C24, C25, C31, C32, C33, C34, C35, C38, C39, C40, C41, C46, C47 +3 |
| 7 | 10uf | Capacitors_SMD:C_0805 | C1, C5, C30, C36, C37, C44, C45 |
| 6 | 100k | Resistors_SMD:R_0603 | R2, R4, R6, R7, R22, R23 |
| 6 | 1uf | Capacitors_SMD:C_0603 | C19, C20, C23, C28, C42, C43 |
| 6 | AudioJack2_SwitchT | footprints:Jack_3.5mm_QingPu_WQP-PJ398SM_Vertical_CircularHoles | J4, J5, J6, J7, J9, J10 |
| 6 | TestPoint | Measurement_Points:Measurement_Point_Round-SMD-Pad_Small | TP1, TP2, TP3, TP4, TP5, TP6 |
| 5 | 330pf | Capacitors_SMD:C_0603 | C11, C12, C13, C14, C48 |
| 4 | 100 | Resistors_SMD:R_0603 | R16, R17, R24, R25 |
| 4 | 1uf | Capacitors_SMD:CP_Elec_4x5.3 | C21, C22, C49, C50 |
| 4 | 20k | Resistors_SMD:R_0603 | R12, R13, R20, R21 |
| 3 | 0.01uf | Capacitors_SMD:C_0603 | C15, C16, C29 |
| 2 | 10k | footprints:Potentiometer_TT_P0915N | RV1, RV2 |
| 2 | 180 | Resistors_SMD:R_0603 | R14, R15 |
| 2 | 1k | Capacitors_SMD:C_0603 | FB1, FB4 |
| 2 | 1k | Resistors_SMD:R_0603 | R28, R30 |
| 2 | 220 | Resistors_SMD:R_0805 | FB2, FB3 |
| 2 | 220pf | Capacitors_SMD:C_0603 | C17, C18 |
| 2 | 27.5 | Resistors_SMD:R_0603 | R34, R35 |
| 2 | 27pf | Capacitors_SMD:C_0603 | C2, C3 |
| 2 | 33k | Resistors_SMD:R_0603 | R10, R11 |
| 2 | 4.7k | Resistors_SMD:R_0603 | R31, R32 |
| 2 | 49.9k | Resistors_SMD:R_0603 | R3, R5 |
| 2 | 60.4k | Resistors_SMD:R_0603 | R8, R9 |
| 2 | 68pf | Capacitors_SMD:C_0603 | C26, C27 |
| 2 | D | Diodes_SMD:D_SMA | D1, D2 |
| 2 | SW_Push | Buttons_Switches_SMD:SW_SPST_KMR2 | SW1, SW2 |
| 1 | 1.5k | Resistors_SMD:R_0603 | R1 |
| 1 | 10k | Resistors_SMD:R_0603 | R29 |
| 1 | 49 | Resistors_SMD:R_0603 | R33 |
| 1 | BAT54C | Package_TO_SOT_SMD:SOT-23 | D3 |
| 1 | Conn_02x08_Odd_Even | footprints:5103308-3 | J8 |
| 1 | Crystal_4pin_SMD | Crystals:Crystal_SMD_3225-4pin_3.2x2.5mm | Y1 |
| 1 | LCD | footprints:LCD_80x160_0.96 | J3 |
| 1 | LM1117-5.0 | TO_SOT_Packages_SMD:SOT-223-3_TabPin2 | U8 |
| 1 | LM4040DBZ-5 | Package_TO_SOT_SMD:SOT-23 | U6 |
| 1 | LP2985-3.3 | TO_SOT_Packages_SMD:SOT-23-5 | U10 |
| 1 | MCP1802x-xx02xOT | TO_SOT_Packages_SMD:SOT-23-5 | U2 |
| 1 | MCP6004 | Housings_SSOP:TSSOP-14_4.4x5mm_Pitch0.65mm | U7 |
| 1 | RP2040 | footprints:RP2040 | U1 |
| 1 | SWD | Pin_Headers:Pin_Header_Straight_1x05_Pitch2.54mm | J2 |
| 1 | SW_Push | footprints:SW_PUSH_6mm_Center | SW4 |
| 1 | Serial | Pin_Headers:Pin_Header_Straight_1x03_Pitch2.54mm | J1 |
| 1 | TL072PW | Housings_SSOP:TSSOP-8_4.4x3mm_Pitch0.65mm | U9 |
| 1 | USB_B_Micro | footprints:USB_Micro-B_10103594-0001LF_actual_outline | J11 |
| 1 | Val** | footprints:avatar_small | Ref** |
| 1 | W25Q32JVSS | Package_SO:SOIC-8_5.23x5.23mm_P1.27mm | U4 |
| 1 | WM8731 | Housings_SSOP:SSOP-28_5.3x10.2mm_Pitch0.65mm | U3 |
Questions
How big is the RP2040 Audio PCB?
It measures 38.1 × 101.6 mm and has 2 copper layers, 1.6 mm thick.
What parts does the RP2040 Audio use?
121 parts, built around the RP2040, MCP6004-E/P, W25Q32JVSSIQ and LM1117-5.0. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
Where can I download the RP2040 Audio KiCad files?
From the emeb/RP2040_Audio repository on GitHub, at the commit this page was made from: the board is Hardware/rp2040_audio.kicad_pcb and its schematic Hardware/Euro.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the RP2040 Audio design in my own project?
Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).
Similar boards
- 2 layers27.9 × 101.6 mm

- 4 layers38.1 × 101.6 mm

ESP32S2 Audio
emeb/ESP32S2_Audio
A Eurorack module demonstrating the use of the ESP32S2 as an audio effects processor
124 parts8MIT - 4 layers58.4 × 101.9 mm

Up5k osc
emeb/up5k_osc
The brute-force approach is to synthesize these analog waveforms at sufficiently high sample rates that the timing jitter becomes imperceptible.
137 parts36MIT - 2 layers229.5 × 81.2 mm

- 4 layers65 × 100 mm

- 4 layers65 × 100 mm

Audcalc
sinitsinmike/Audcalc2
I'm happy with this, but its not 100% feature complete on the firmware side. Its really neat though, and I think you'll like it.
218 partsMIT - 2 layers40.6 × 51 mm

- 2 layers50 × 50 mm

Flight Controller PCB
MarkSherstan/Drone
Mechanical, electrical, and software package for a custom quadcopter drone.
78 parts3MIT