Breadboard Prototype
Build guide for the full hardware prototype — matching the interactive mockup on the home page
BRAIN + AUDIO
ENCODERS (13)
BUTTONS (16)
PADS + LEDS
DISPLAYS + WIFI
NAV + MIXER
I/O + STATUS
+5V
GND
+5V
GND
AUDIO SHIELD
SGTL5000 (stacked)
TEENSY 4.1
600MHz ARM Cortex-M7
Main MCU + SD card
VOL
PAN
FILT
FX
DECAY
CUT
RES
ATK
REL
DLY
GLT
GRN
CRU
5x CTRL
4x SYNTH
4x FX
▶
■
●
PIC
SND
INT
JRN
BACK
SHFT
PAGE
DUB
FILL
CLR
SCN
BANK
TRANSPORT / MODE / NAV
FUNC
5" IPS LCD
800x480 SPI
Main Display (ILI9488)
128x64
SSD1306
Map OLED
ESP32
WiFi + BT + GPS
ESP32-WROOM DevKit
NAV Joystick
PREV
NEXT
MIC
SMP
SYN
RAD
X-FADE
MPR121
Touch Sensor I2C
1
2
3
4
5
6
7
8
WS2812B x8
OUT
Audio Out
HP
Headphones
IN
Audio In
STATUS
5V Power
Ground
I2C (SDA/SCL)
SPI (LCD)
GPIO (encoders/buttons)
ADC (faders)
UART (ESP32)
NeoPixel Data
Wiring 41 pins used
Pin assignments matching the interactive mockup. I2C devices share pins 18/19. Audio Shield I2S pins are reserved. Encoders and faders connect via MCP23017 I/O expanders + ADS1115 ADCs on the I2C bus.
| Component | Teensy Pin(s) | Bus | Notes |
|---|---|---|---|
| Audio Shield (I2S) | 2, 7, 20, 21, 23 | I2S | SGTL5000 codec — RESERVED, do not reuse |
| 5" LCD (ILI9488) | 36 CS, 37 DC, 38 RST | SPI | 800x480, shares SPI bus (MOSI=11, SCK=13) |
| SSD1306 OLED | 18 SDA, 19 SCL | I2C | Address 0x3C, 128x64 map display |
| MPR121 Touch | 18 SDA, 19 SCL, 15 IRQ | I2C | Address 0x5A, 8 copper tape pads |
| 5x Main Encoders | 3-6, 8-12, 14, 24, 25 | GPIO | VOL, PAN, FILT, FX, DECAY (3 pins each) |
| 8x Synth/FX Encoders | via MCP23017 | I2C | CUT, RES, ATK, REL, DLY, GLT, GRN, CRU |
| 16x Buttons | 26-29 + via MCP23017 | GPIO/I2C | Transport, Mode, Nav, Func (4 direct + 12 expanded) |
| 5-Way Joystick | via MCP23017 | I2C | Up/Down/Left/Right/Select + PREV/NEXT |
| 4x Mixer Faders | via ADS1115 | I2C/ADC | MIC, SMP, SYN, RAD (10K linear pots) |
| Crossfader | via ADS1115 | I2C/ADC | X-FADE (10K linear slide pot) |
| WS2812B LEDs | 30 | Data | 8-LED ring, 5V logic |
| ESP32 (Serial2) | 16 RX, 17 TX | UART | WiFi/BT/GPS @ 115200 baud |
| Status LEDs (3) | 31, 32, 33 | GPIO | GPS, WiFi, Error indicators |
| MCP23017 #1 | 18 SDA, 19 SCL | I2C | Address 0x20 — 16 extra GPIO for encoders |
| MCP23017 #2 | 18 SDA, 19 SCL | I2C | Address 0x21 — 16 extra GPIO for buttons + joystick |
| ADS1115 | 18 SDA, 19 SCL | I2C | Address 0x48 — 4-ch 16-bit ADC for faders |
Bill of Materials — Diotronic Barcelona
Diotronic — Carrer Muntaner 49, 08011 Barcelona. Mon-Fri 9:00-13:30 & 16:00-19:15, Sat 10:00-13:30. All prices include 21% IVA.
| # | Component | Diotronic Ref | Qty | Unit | Total |
|---|---|---|---|---|---|
| Core Boards (order online) | |||||
| 1 | Teensy 4.1 | PJRC / BricoGeek | 1 | €29.75 | €29.75 |
| 2 | Audio Shield (Rev D) | PJRC / BricoGeek | 1 | €13.75 | €13.75 |
| 3 | ESP32-WROOM DevKit | BricoGeek / Amazon | 1 | €8.00 | €8.00 |
| 4 | MPR121 Breakout | BricoGeek / AliExpress | 1 | €5.00 | €5.00 |
| 5 | 5" IPS LCD 800x480 (ILI9488 SPI) | AliExpress / Amazon | 1 | €28.00 | €28.00 |
| 6 | MCP23017 I/O Expander | BricoGeek / AliExpress | 2 | €3.00 | €6.00 |
| 7 | ADS1115 16-bit ADC | BricoGeek / AliExpress | 1 | €4.00 | €4.00 |
| 8 | 5-Way Joystick Module | AliExpress | 1 | €2.00 | €2.00 |
| From Diotronic | |||||
| 9 | Breadboard 830pts | VTBB2N | 2 | €6.53 | €13.06 |
| 10 | Jumper wires 140pcs | WJW140 | 2 | €5.63 | €11.26 |
| 11 | OLED SSD1306 0.96" I2C | MDIO9092 | 1 | €8.29 | €8.29 |
| 12 | Rotary encoder EC11 w/switch | EC11E2020SW | 13 | €4.54 | €59.02 |
| 13 | Tactile button 6x6mm | DTS61N | 16 | €0.24 | €3.84 |
| 14 | Slide potentiometer 45mm 10K | Diotronic / AliExpress | 5 | €2.50 | €12.50 |
| 15 | WS2812B 8-LED NeoPixel ring | MDIO3212 | 1 | €5.87 | €5.87 |
| 16 | Copper tape 5mm x 25m | VTCFT1 | 1 | €8.45 | €8.45 |
| 17 | Jack 3.5mm stereo chassis | CBS35 | 3 | €0.76 | €2.28 |
| 18 | Pin header male 40-pin | 40PY | 3 | €0.79 | €2.37 |
| 19 | Pin header female 40-pin | 40SYA | 3 | €0.99 | €2.97 |
| 20 | Resistor 10K 1/4W (pull-ups) | 1035025 | 20 | €0.02 | €0.40 |
| 21 | Capacitor 100nF ceramic (decoupling) | CER10463 | 10 | €0.12 | €1.20 |
| 22 | Capacitor 10uF electrolytic | ELR10025 | 5 | €0.05 | €0.25 |
| 23 | USB cable A to Micro-B 1m | AK300110010S | 1 | €1.94 | €1.94 |
| Tools (if you don't have them) | |||||
| 24 | Soldering station 48W | VTSS4N | 1 | €17.15 | €17.15 |
| 25 | Solder wire 1mm 100g | HIF00637 | 1 | €7.50 | €7.50 |
| 26 | Flux paste | PDS | 1 | €3.18 | €3.18 |
| 27 | Third hand 4-arm + solder holder | VTHH7 | 1 | €24.95 | €24.95 |
| Core boards + modules (items 1-8) | €96.50 | ||||
| Diotronic parts (items 9-23) | €133.70 | ||||
| Tools (items 24-27, if needed) | €52.78 | ||||
| TOTAL (parts only) | €230.20 | ||||
MPR121 breakout is not stocked at Diotronic — order from BricoGeek, AliExpress, or Amazon. 5" LCD and MCP23017/ADS1115 modules also sourced online. Faders: look for 45mm 10K linear slide potentiometers at Diotronic or order from AliExpress (~€2.50 each).
Quick Start
- Solder headers onto Teensy 4.1, Audio Shield, ESP32, MCP23017s, and ADS1115. Stack the Audio Shield on top of the Teensy.
- Place boards on breadboards. Teensy + Audio Shield on the left breadboard, ESP32 + displays on the right. Bridge 5V and GND rails between both boards.
- Wire the I2C bus. Connect Teensy pin 18 (SDA) and pin 19 (SCL) to: SSD1306 OLED, MPR121, both MCP23017s, and the ADS1115. Add 4.7K pull-ups on SDA/SCL to 3.3V.
- Wire the 5" LCD. Connect via SPI: CS to pin 36, DC to pin 37, RST to pin 38, MOSI to pin 11, SCK to pin 13. Power from 3.3V.
- Wire the 5 main encoders directly to Teensy GPIO (VOL: 3/4/5, PAN: 6/14/8, FILT: 9/10/11, FX: 12/24/25, DECAY: via MCP). Use internal pull-ups.
- Wire the 8 synth/FX encoders to MCP23017 #1 (addr 0x20). Each encoder needs CLK + DT + SW on MCP port pins.
- Wire the buttons. 4 direct to Teensy (MODE: 26, SHIFT: 27, REC: 28, PLAY: 29), remaining 12 + joystick via MCP23017 #2 (addr 0x21).
- Wire the 4 faders + crossfader. Connect wiper pins to ADS1115 channels A0-A3 (addr 0x48). Crossfader on A3 or second ADS1115. Power from 3.3V reference.
- Wire the touch pads. 8 copper tape strips to MPR121 channels 0-7. Add a ground plane of copper tape underneath for better sensitivity.
- Wire the LED ring + jacks. WS2812B data to pin 30 with 330Ω series resistor. Connect the 3 jacks (Audio Out, Headphones, Audio In) to the Audio Shield headers.
- Connect ESP32. Teensy pin 17 (TX) to ESP32 RX, pin 16 (RX) to ESP32 TX. Share 3.3V and GND.
- Prepare the SD card. Format microSD as FAT32. Create:
/samples/,/patterns/,/recordings/,/presets/. Add WAV files (44.1kHz, 16-bit) to/samples/. - Flash and test. Run
pio run -e teensy41 -t upload. Both displays should light up. Test pads, encoders, faders, and buttons. Press PLAY to start the sequencer.