

Controller
Audio synthesizer running on a Raspberyy Pi Pico device.
- Size
- 96 × 96 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 40
- Nets
- 28
- Pads
- 144
- Tracks, vias
- 247, 15
- Pours
- 2
- Routed
- Yes
- KiCad
- KiCad 8.0 (file 20240108)
- Created
- 9 Jul 2023
- Updated
- 20 Sep 2024
Overview
Controller is an open-source printed circuit board by benmcevoy, from the benmcevoy/pico-synth repository on GitHub. It is a 2-layer board of 96 × 96 mm with 40 parts on 28 nets, routed with 247 tracks and 15 vias.
It is built around the MCP3008-I/P. Its parts include 14 resistors, 4 diodes, 4 switches, 3 capacitors and 2 ICs.
Main components
1README
README.mdRaspberry Pi Pico "pico-synth"
Audio synthesizer running on a Raspberyy Pi Pico device.
Currently monophonic with TWO voices.
You WILL need to make a little circuit to drop the PWM voltage from 3.3 volts to about 1.1 volts and filter low/high noise out. Or just risk it and plug in a speaker :)
Here is an example circuit: https://learn.adafruit.com/adding-basic-audio-ouput-to-raspberry-pi-zero/pi-zero-pwm-audio#low-pass-filter-wiring-1960165
I use qjackctl on linux to connect a midi keyboard via my PC. I have not tested it directly with a MIDI controller directly attached (no PC involved), I assume it will work :)
You can find a synth.uf2 file in the build folder which can be copied onto the Pico (hold bootsel while powering on connecting to a PC).
This is about the third C project I have written in the last thirty years, so you know... all bugs are my own.
Pico-SDK
For PIO USB needs to be on develop, at milestone 2.1 release should be back on master.
TinyUSB
pico-sdk ships an older version of tinyusb, so i have pulled latest of that module in order to get the newer usb host code.
Must be >= v0.17
# update sdk
cd pico-sdk
git submodule update --init --recursive
# update tiny-usb
cd pico-sdk/lib/tinyusb
git pull origin masterRun to get the dependances for pio usb.
python3 tools/get_deps.py rp2040midi host code from: https://github.com/rppicomidi/usb_midi_host
Parts
40| Qty | Value | Footprint | References |
|---|---|---|---|
| 8 | 100K | Resistor_SMD:R_0805_2012Metric | R0, R1, R2, R3, R4, R5, R6, R7 |
| 8 | R_Pot | Potentiometer_THT:Potentiometer_Bourns_PTV09A-1_Single_Vertical | RV0, RV1, RV2, RV3, RV4, RV5, RV6, RV7 |
| 4 | 1K | Resistor_SMD:R_0805_2012Metric | R11, R13, R15, R17 |
| 4 | LED | LED_THT:LED_D3.0mm_FlatTop | D1, D3, D5, D7 |
| 4 | MountingHole | MountingHole:MountingHole_2.7mm_M2.5 | H1, H2, H3, H4 |
| 4 | SW_SPST | Button_Switch_THT:SW_PUSH-12mm | SW1, SW2, SW4, SW5 |
| 3 | 100nf | Capacitor_SMD:C_0805_2012Metric | C1, C2, C3 |
| 2 | 100k | Resistor_SMD:R_0805_2012Metric | R12, R22 |
| 1 | Conn_02x04_Top_Bottom | Connector_IDC:IDC-Header_2x04_P2.54mm_Vertical_SMD | J1 |
| 1 | MCP23S08T-E/SO | Custom:SOIC18-W_MC_MCH | U1 |
| 1 | MCP3008 | Package_SO:SOIC-16_3.9x9.9mm_P1.27mm | U2 |
Questions
How big is the Controller PCB?
It measures 96 × 96 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Controller use?
40 parts, built around the MCP3008-I/P. 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 Controller KiCad files?
From the benmcevoy/pico-synth repository on GitHub, at the commit this page was made from: the board is kicad/controller/controller.kicad_pcb and its schematic kicad/amp/amp.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Controller design in my own project?
Its repository states no licence, so its author keeps all rights: ask benmcevoy before reusing the design.
More from benmcevoy/pico-synth
2- 2 layers96 × 96 mm

- 2 layers71.9 × 39.7 mm

Similar boards
- 2 layers380 × 148.5 mm

- 2 layers100 × 100 mm

RecurBOY
cyberboy666/recurBOY
a rpi0 video-instrument – created in collaboration with Guergana Tzatchkova
35 parts122GPL-3.0 - 4 layers43.2 × 43.2 mm

Pogobot head
nekonaute/pogobot
Pogobot is an open-source open-hardware robotic platform for swarm robotics
140 parts21 - 2 layers100 × 100 mm

I n c u r
cyberboy666/i_n_c_u_r
a r_e_c_u_r video sampler extension circuit - adding knobs, cv and serial midi control
38 parts16GPL-3.0 - 4 layers101.6 × 141.7 mm

- 2 layers111.4 × 40.9 mm

Rainworks Electrical
IceyPlazza/EWB-EPA-Rainworks
26-27 EWB EPA Rainworks project; We're putting a sensor box in the ground!
29 parts7 - 2 layers150 × 69 mm

Programming jig r1.0
butterstick-fpga/programming-jig
A FT232H based production programming jig for the ButterStick
50 parts6 - 2 layers56 × 65 mm

DataHat
challengerjdb/RaspberryPiHat-datalogger
My name is Jacob Bendell, and I’m a student at the University of Pennsylvania studying Electrical Engineering. I took this past year off from school to avoid online classes and intern at Amped Innovation, a start-up in…
22 parts6