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

45 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.