Skip to the content
PCBKitNew board
2 layers177.8 × 114.3 mmSynthiota1, the printed circuit board in 3D

Pico/Pico2-based board for playing with synthesizers in CircuitPython

Size
177.8 × 114.3 mm
Copper layers
2
Thickness
1.6 mm
Parts
112
Nets
151
Pads
460
Tracks, vias
837, 103
Pours
4
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
22 Jun 2025
Updated
6 Nov 2026

Overview

Synthiota1 is an open-source printed circuit board by todbot, from the todbot/synthiota repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 177.8 × 114.3 mm with 112 parts on 151 nets, routed with 837 tracks and 103 vias.

It is built around the MPR121QR2, 74HC4051 and H11L1, with the SK6812MINI-E among its other parts. Its parts include 33 capacitors, 28 diodes, 8 resistors, 4 ICs and 2 connectors. It belongs with the audio and music boards and the RP2040 boards of this library.

Main components

4

README

README.md

synthiota

Pico/Pico2-based board for playing with synthesizers in CircuitPython.

https://github.com/user-attachments/assets/3d1baa3f-af72-41ba-9afe-a45eea070c66

Video demos:

Apps

Each app's folder has a README with its controls. To install, find the corresponding UF2 in the Releases section and copy the UF2 to the board in BOOT mode. Or look in the app's directory for how to install it.

CircuitPython, in circuitpython/:

  • polysynth -- two-oscillator subtractive polysynth. The pads are a chromatic keyboard and the pots edit 16 params over 2 pages.
  • wavesynth -- wavetable polysynth. The pads are a scale keyboard, with chords on the top row, and the pots edit 24 params over 3 pages.
  • swarmsynth -- Swarmatron-style drone: eight oscillators on one pitch, fanned apart by the right slider.
  • dronesynth -- eight drone oscillators, each tuned by its own knob, each with its own LFO.
  • dronesynth_wt -- dronesynth with each oscillator at its own place in a shared wavetable.
  • tbish2 -- TB-303-style acid bassline with a 16-step sequencer you can edit on the board.
  • tbish -- the original TB-303-style synth, a technology demo with no pattern editing or MIDI in.
  • hwtest -- hardware bring-up tests and the reference pin setup.

Arduino, in arduino/:

  • wavesynth -- a Mozzi port of the CircuitPython wavesynth, in progress. It serves the CIRCUITPY drive over USB for wavetables and patches.
  • hwtest -- a board test, plus simple mono MIDI synths using M16 and Mozzi.

See Getting to BOOT mode via commandline for another way to install these apps.

Assembling

The PCBAs come with all SMD parts assembled. The components you will need to supply:

For the knobs, you can buy knobs off Amazon or you can 3d print them. Some 3D printable knobs I like are these 6mm Vintage Synth Knob.

PCM5102 DAC setup

Before soldering down the PCM5102 DAC, solder bridge the jumpers to be 1L/2L/3H/4L, as in this picture:

The PCM5102 DAC should have standard header pins soldered to it, on the 6-pin header row. For extra stability, you can also solder one of the G pins behind the audio jack.

More inforomation about the PCM5102 can be found in this blog post.

Header sockets and header pins

You will also need some headers and header sockets to attach the modules to the PCB. If using the enclosure, the top part expects the header arrangement to be:

  • Pico:
    • Short socket headers for Pico on synthiota board
    • Standard header pins on Pico (Pico H sold w/ these pins soldered)
  • OLED display:
    • Short socket headers for OLED display on synthio - Standard header pins on OLED display (usually sold w/ these pins soldered) ta board
  • PCM5102 I2S DAC
    • Standard header pins on PCM5102 I2S DAC board (usually sold w/ these pins soldered)
    • I2S DAC w/ header pins is soldered directly to the synthiota board, no socket

When soldering down the jacks and sockets, holding them in place with masking tape or blutack makes things easier. For the Pico header sockets, sticking them into a Pico and hold the Pico onto the board with masking tape or blutack can be helpful.

After soldering everything, the result will look like:

Pico pins used

CircuitPython naming. See hwtest/synth_setup_synthiota.py for how they're used.

Encoder

  • board.GP28 - encoder B pin
  • board.GP27 - encoder A pin

ADC input for pots

  • board.GP26 - ADC input for pot knobs

I2S DAC

  • board.GP22 - I2S DAT pin to PCM5102 DAC
  • board.GP21 - I2S LCK pin to PCM5102 DAC
  • board.GP20 - I2S BCK pin to PCM5102 DAC

Encoder switch

  • board.GP19 - encoder SW pin

NeoPixel LEDs

  • board.GP18 - NeoPixel LEDs pin

UART MIDI In/Out

  • board.GP17 - UART RX pin to MIDI input
  • board.GP16 - UART TX pin to MIDI output

SPI for display

  • board.GP13 - SPI DC for SH1106 display
  • board.GP12 - SPI RES for SH1106 display
  • board.GP11 - SPI MOSI for SH1106 display
  • board.GP10 - SPI SCK for SH1106 display

Pot mux select

  • board.GP9 - SEL A pin to 4051 mux for pot knobs
  • board.GP8 - SEL B pin to 4051 mux for pot knobs
  • board.GP7 - SEL C pin to 4051 mux for pot knobs

I2C for MPR121 touch sensors

  • board.GP3 - I2C SCL to MPR121 touch sensors
  • board.GP2 - I2C SDA to MPR121 touch sensors

Free pins: GP0,GP1, GP4,GP5,GP6, GP14,GP15. Feel free to use for other purposes.

Schematics

Getting to BOOT mode via commandline

If you don't want to hold the BOOT button down while powering on, you can usually get the synthiota board into BOOT mode via the commandline with:

sh
PORT=/dev/cu.usbmodem21301   # the COM port of the Pico
python3 -c "import serial;serial.Serial('$PORT',1200).close()"

If you don't want to use Python, one of these should work:

text
stty -f $PORT 1200  # MacOS 
stty -F $PORT 1200  # Linux

To install a UF2 once in BOOT mode, you can do (this flashes and starts the program):

sh
picotool load -x file.uf2

Or picotool reboot to reset board.

(if you need, pip3 install pyserial and brew install picotool)

(note most product links are Amazon affiliate links)

https://github.com/user-attachments/assets/1fe45b23-2a2a-41f4-9afe-203840c703e8

Parts

112
QtyValueFootprintReferences
33100nCapacitor_SMD:C_0603_1608MetricC1, C2, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19, C20, C21, C22, C23 +17
27SK6812MINI-EPCM_marbastlib-various:LED_6028RLED1, LED2, LED10, LED11, LED12, LED13, LED14, LED15, LED16, LED17, LED18, LED19, LED20, LED21, LED22, LED23 +11
16Capacitive_Buttontodbot_eagle2023:TOUCHPAD_KEY_0.5IN_LEDHOLETP1, TP2, TP3, TP4, TP5, TP6, TP7, TP8, TP9, TP10, TP11, TP12, TP13, TP14, TP15, TP16
8R_Potentiometer_MountingPintodbot_stuff:Potentiometer_Alps_RK09K_Single_VerticalRV1, RV2, RV3, RV4, RV5, RV6, RV7, RV8
4MountingHoleMountingHole:MountingHole_2.7mm_M2.5H1, H2, H3, H4
34.7kResistor_SMD:R_0603_1608MetricR4, R22, R23
275k 1%Resistor_SMD:R_0603_1608MetricR5, R6
2Capacitive_Buttontodbot_stuff:Pad-CapTouch-8mm-roundrectTP17, TP18
2MPR121QR2Package_DFN_QFN:UQFN-20_3x3mm_P0.4mmU3, U4
2PJ-320A-4P DIPeasyeda2kicad:AUDIO-TH_PJ-320A-4P-DIPJ1, J2
2~todbot_stuff:TouchSlider3_50x8mm_tiSLIDER1, SLIDER2
110Resistor_SMD:R_0603_1608MetricR1
11N4148Diode_SMD:D_SOD-123D1
1200Resistor_SMD:R_0603_1608MetricR3
133Resistor_SMD:R_0603_1608MetricR2
174HC4051easyeda2kicad:SOIC-16_L9.9-W3.9-P1.27-LS6.0-BLU2
1H11L1easyeda2kicad:SMD-6_L7.3-W6.5-P2.54-LS10.2-BLU1
1Picotodbot_RPI_Pico:RPi_Pico_SMD_THMODULE1
1RotaryEncoder_Switch_MPPCM_marbastlib-various:ROT_Alps_EC11E-SwitchSW1
1SolderJumper_3_Bridged12Jumper:SolderJumper-3_P1.3mm_Bridged12_RoundedPad1.0x1.5mmJP1
1~todbot_eagle2023:I2S_PCM_5100_SOUNDCARDMODULE2
1~todbot_eagle2023:DISPLAY-OLED-128X64-1.3INDISP1

Questions

How big is the Synthiota1 PCB?

It measures 177.8 × 114.3 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Synthiota1 use?

112 parts, built around the MPR121QR2, 74HC4051, H11L1 and SK6812MINI-E. 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 Synthiota1 KiCad files?

From the todbot/synthiota repository on GitHub, at the commit this page was made from: the board is schematics/synthiota1/synthiota1.kicad_pcb and its schematic schematics/synthiota1/synthiota1.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Synthiota1 design in my own project?

Its repository publishes it under the GPL-3.0 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 layers97.3 × 120.4 mmController, the printed circuit board in 3D

    Controller

    bjonnh/2024_emmg_workshop_midi

    56 parts3CC0-1.0
  • 2 layers150 × 150 mmDk2 00, the printed circuit board in 3D

    Dk2 00

    mattybrad/drumkid2

    140 parts12GPL-3.0
  • 2 layers180 × 110 mmPicotouch grid, the printed circuit board in 3D

    Picotouch grid

    todbot/picotouch_grid

    170 parts2GPL-3.0
  • 4 layers227.3 × 85 mmLe capybara, the printed circuit board in 3D

    Le capybara

    sporkus/le_capybara_keyboard

    Capactive sensing (EC) pcb for Le Chiffre keyboard

    118 parts58CERN-OHL-W-2.0
  • 2 layers132 × 94 mmHelix niz, the printed circuit board in 3D

    Helix niz

    ginjake/ec_helix_build

    商用利用したい場合は twitter @sirojake にご相談ください please contact me for commercial use. ## developer ginjake

    200 parts40
  • 2 layers273.8 × 109 mmTrueStrike42, the printed circuit board in 3D

    TrueStrike42

    byungyoonc/TrueStrike42

    TrueStrike42 is a columnar staggered unibody split keyboard designed to maximize performance and minimize finger fatigue.

    167 parts24
  • 2 layers278.9 × 138.4 mmTrueStrike56, the printed circuit board in 3D

    TrueStrike56

    byungyoonc/TrueStrike56

    TrueStrike56 is a columnar staggered unibody split hall effect keyboard with popular 4x6_4 layout.

    211 parts3MIT