PicoDSP
The PicoDSP is a Raspberry Pi RP2040 based Audio DSP Board. It has the same form factor like the Raspberry Pico, but has an additional PCM5102 32-bit I2S Audio Codec.
- RP2040 Dual Core 133MHz Cortex M0+ (running at 2x 400MHz Overclocked in the RTOS Template)
- 2MB Flash (plenty for synthesizers based on Vult)
- PCM5102 32-bit Audio Codec
- SWD Debug Port
- Pin-compatible with RP2040 besides a few pins
- Reset Button (double-acting as Boot button, using bootsel_via_double_reset hook (see below))
Instructions
Software
You can find software examples at https://github.com/DatanoiseTV/RP2040-DSP-FreeRTOS-Template
This template contains the I2S codec drivers, A custom build step for Vult DSP based projects and a synthesizer as an example and should be a good starting point for most projects.
First Flashing / Getting started
If you initially get the PicoDSP, you will need to flash your firmware and make sure you include pico_bootsel_via_double_reset in the target_link_libraries( ... ) in the CMakeLists.txt and bridge the BOOT and GND pins, then connect USB and flash the firmware
After that, you can remove the bridge and you will be able to boot into the USB disk mode by fast double pressing reset.
Caveats
Make sure your software controls the XSMT and DEMP pins. The XSMT needs to be controled by the software to mute/unmute the audio output. With the DEMP pin you can control the Deemphasis for 44100 Hz.
Pinout
Pin | Function / Mapping |
---|---|
1 | GP0 |
2 | GP1 |
3 | GND |
4 | GP2 |
5 | GP3 |
6 | GP4 |
7 | GP5 |
8 | GND |
9 | GP6 |
10 | GP7 |
11 | GP8 |
12 | GP9 |
13 | GND |
14 | GP10 |
15 | GP11 |
16 | GP12 |
17 | GP13 |
18 | GND |
19 | GP14 |
20 | GP15 |
21 | Audio Output L |
22 | Audio Output r |
23 | GND |
24 | GP29 |
25 | GP19 |
26 | GP20 |
27 | GP21 |
28 | GND |
29 | GP22 |
30 | RST |
31 | GP26 |
32 | GP27 |
33 | GND |
34 | GP28 |
35 | BOOT |
36 | 3.3V |
37 | Not Connected |
38 | GND |
39 | VSYS |
s | VBUS (5V In) |