Files
seedbox/docs/hardware/pinout.md
Gee 2196633ed5
Some checks failed
check / check (push) Has been cancelled
Seedbox v0.1 + firmware, generic kit/synth, ROOT/SCALE pages
First commit of the repo. Contents beyond the v0.1 simulator and layout:

- Full Pico 2 W firmware (firmware/app, drivers, engine port, host test).
- BANK page and 404 mode A/B removed; learned pads play exactly what was learned.
- 404/MiniFreak renamed to KIT/SYNTH throughout (jacks, code, sim, docs,
  layout labels; wiring rebuilt).
- ROLL returns to page select after a re-roll; a freshly learned track turns on.
- LCD contrast 66.
- ROOT and SCALE pages: 21 scales, AUTO = the seed picks; global and sticky.

Intended music change: the scale table grew from 8 to 21 and AUTO picks from
all of them, so every seed's scale changed. Vectors regenerated with
npm run vectors, plus new key-override cases. Flash record is now version 2.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 20:39:36 +03:00

2.7 KiB
Raw Blame History

Pinout (Pico 2 W)

Pico pin GPIO Function Goes to Notes
1 GP0 UART0 TX OUT KIT tip, via 10 Ω drive strength 8–12 mA
2 GP1 UART0 RX 6N137 output (pin 6), 1 kΩ pull-up to 3.3 V MIDI IN
4 GP2 matrix row 1 KICK, KICK 2, SNARE (col 4 empty) input, pull-up
5 GP3 matrix row 2 HAT, HAT 16, PERC, GHOST input, pull-up
6 GP4 UART1 TX OUT SYNTH tip, via 10 Ω drive strength 8–12 mA
7 GP5 matrix row 3 BASS, MEL A, MEL B, PAD input, pull-up
9 GP6 matrix column 1 KICK, HAT, BASS driven low one at a time, else Hi-Z
10 GP7 matrix column 2 KICK 2, HAT 16, MEL A 〃
11 GP8 matrix column 3 SNARE, PERC, MEL B 〃
12 GP9 matrix column 4 GHOST, PAD 〃
14 GP10 encoder A (SIA) encoder pull-up
15 GP11 encoder B (SIB) encoder pull-up
16 GP12 encoder push (SW) encoder pull-up
17 GP13 SEED button to ground pull-up
19 GP14 RUN toggle to ground pull-up
22 GP17 SPI0 CSn LCD SCE (pin 3) can be tied to GND instead
24 GP18 SPI0 SCK LCD SCLK (pin 7)
25 GP19 SPI0 TX LCD DN / MOSI (pin 6)
26 GP20 GPIO LCD D/C (pin 5)
27 GP21 GPIO LCD RST (pin 4)
31 GP26 ADC0 ENERGY pot wiper
32 GP27 ADC1 DRIFT pot wiper
33 AGND pots, left lugs
36 3V3 3V3 strip (AB): LCD, encoder, pots, MIDI OUT rings via 33 Ω, opto pull-up
40 VBUS 5 V strip (Z): 6N137 VCC and enable only powered from the Pico's USB
23 GND GND strip (AA) all Pico GND pins are common

Free: GP15, GP16, GP22, GP28 (ADC2), and GP17 if SCE is tied to ground. The LCD backlight runs straight from 3.3 V through 330 Ω; GP22 could dim it later through a transistor.

Firmware notes for these pins

  • Pull-ups, not pull-downs. RP2350 erratum E9 makes the internal pull-downs unreliable on inputs, so every input here is active-low with a pull-up.
  • Drive strength. GP0 and GP4 drive the MIDI current loops directly, about 6–8 mA. That's above the RP2350's default 4 mA drive, so set them to 8 or 12 mA with gpio_set_drive_strength().
  • Matrix.
    • Drive one column low at a time and leave the others Hi-Z, then read the three rows. On the idle columns, disable the input buffer (gpio_set_input_enabled(pin, false)) or enable the pull-up, so erratum E9 leakage can't hold them at a middle level.
    • The diode bands point to the column.
    • A short settle (a few µs) after switching columns helps.
    • Debounce in software.
  • UART. Both UARTs run at 31 250 baud, 8N1. MIDI IN is only used to learn pads, so it can be polled.
  • Nokia 5110. It runs at 3.3 V on SPI up to 4 MHz.