Seedbox v0.1 + firmware, generic kit/synth, ROOT/SCALE pages
Some checks failed
check / check (push) Has been cancelled

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>
This commit is contained in:
2026-10-11 20:39:36 +03:00
commit 2196633ed5
77 changed files with 52207 additions and 0 deletions

26
docs/hardware/bom.csv Normal file
View File

@@ -0,0 +1,26 @@
group,id,part,spec,qty,status,notes
"Core","pico","Raspberry Pi Pico 2W","RP2350, micro-USB","1","have","The whole engine runs on it with lots of headroom."
"Core","lcd","Nokia 5110 LCD module","PCD8544, 84×48, SPI","1","have","The module you used with Arduino."
"Core","box","Enclosure","","1","have","About 80 × 150 × 40 mm. Panel layout: tools/panel.html."
"Controls","enc","Rotary encoder with push","KY-040 module or bare EC11","1","have","Power it from 3V3."
"Controls","pots","Potentiometer, linear","B10K (anything 5k–50k linear works)","2","have","Energy and Drift."
"Controls","knobs","Knobs","to fit the pot and encoder shafts","3","check","Shaft types differ (D, knurled, 6 mm). Match them."
"Controls","btn","Momentary push button, panel mount","~12 mm, non-latching","11","check","7 kit + 4 line tracks."
"Controls","seedbtn","Momentary push button, large","16–22 mm, non-latching","1","check","SEED. Any big momentary works."
"Controls","tog","Toggle switch, SPDT","","1","have","RUN / STOP. Your old bypass switch."
"Controls","dio","1N4148 diode","or 1N4448 / 1N914 / any small-signal diode","12","buy","11 for the button matrix + 1 for MIDI IN. 1N4448 works too. Every button needs one: a missing diode gives phantom presses with three buttons held."
"MIDI","trs","3.5 mm stereo (TRS) jack, panel mount","3 lugs: tip, ring, sleeve. Not mono.","3","check","IN, OUT KIT, OUT SYNTH. MIDI TRS Type A. 6 mm hole each."
"MIDI","adapt","TRS-to-DIN MIDI adapter, Type A","female DIN, 3.5 mm plug","1","buy","For a DIN synth or sampler (e.g. MiniFreak). Must say Type A (Type B swaps tip and ring). Type A TRS gear (e.g. SP-404MKII) takes a plain stereo 3.5 mm cable."
"MIDI","opto","6N137 optocoupler","DIP-8 (6N138 also works: then drop the pin 7 link)","1","have","MIDI IN. You have three; one is used."
"MIDI","sock","DIP-8 IC socket","","1","buy","So the opto can be swapped."
"MIDI","r330","Resistor 330 Ω","220–470 Ω","1","check","LCD backlight (LED pin) to 3.3 V, inline at the module."
"MIDI","r220","Resistor 220 Ω","150–220 Ω","1","have","MIDI IN, in series with the opto LED. The 6N137 wants a bit more LED current: use 150 Ω if learning misses notes."
"MIDI","r1k","Resistor 1 kΩ","470 Ω–2.2 kΩ is fine","2","have","Opto output pull-up, NPN base."
"MIDI","r33","Resistor 33 Ω, ½ W","27–47 Ω is fine","2","buy","MIDI OUT ring (pin 4) line, per the MIDI 3.3 V spec. ½ W because a mono plug in an OUT jack shorts it straight to ground (0.33 W); a ¼ W one would cook."
"MIDI","r10","Resistor 10 Ω","10–22 Ω is fine","2","check","MIDI OUT tip (pin 5) line, from TX. Don't replace with a wire: it protects the pin."
"MIDI","cap","Ceramic capacitor 100 nF","anything 47–220 nF","3","check","C1 on the board (6N137 supply bypass, required). Optional: one per pot, soldered at the pot from wiper to the left lug, if the readings jitter."
"Screen extras","blt","NPN or PNP transistor","2N3904 / BC547 (NPN) or 2N3906 / BC557 (PNP)","1","opt","Only for a dimmable backlight. NPN if your BL lights when grounded, PNP if it lights from 3.3 V. Otherwise hard-wire it."
"Power and assembly","perf","Stripboard","at least 34 × 28 holes (about 86 × 71 mm)","1","check","Pico socketed at the top edge, so its USB port meets a slot in the back wall."
"Power and assembly","hdr","Female header strip, 1 × 20","2.54 mm","2","check","Socket the Pico instead of soldering it in."
"Power and assembly","mhdr","Male header strip, 1 × 20","2.54 mm","2","check","Soldered to the Pico so it plugs into the female headers. Skip if yours is a Pico 2 WH (headers fitted)."
"Power and assembly","tape","Double-sided foam tape or hot glue","","—","check","Holds the stripboard and the screen without screws."
1 group id part spec qty status notes
2 Core pico Raspberry Pi Pico 2W RP2350, micro-USB 1 have The whole engine runs on it with lots of headroom.
3 Core lcd Nokia 5110 LCD module PCD8544, 84×48, SPI 1 have The module you used with Arduino.
4 Core box Enclosure 1 have About 80 × 150 × 40 mm. Panel layout: tools/panel.html.
5 Controls enc Rotary encoder with push KY-040 module or bare EC11 1 have Power it from 3V3.
6 Controls pots Potentiometer, linear B10K (anything 5k–50k linear works) 2 have Energy and Drift.
7 Controls knobs Knobs to fit the pot and encoder shafts 3 check Shaft types differ (D, knurled, 6 mm). Match them.
8 Controls btn Momentary push button, panel mount ~12 mm, non-latching 11 check 7 kit + 4 line tracks.
9 Controls seedbtn Momentary push button, large 16–22 mm, non-latching 1 check SEED. Any big momentary works.
10 Controls tog Toggle switch, SPDT 1 have RUN / STOP. Your old bypass switch.
11 Controls dio 1N4148 diode or 1N4448 / 1N914 / any small-signal diode 12 buy 11 for the button matrix + 1 for MIDI IN. 1N4448 works too. Every button needs one: a missing diode gives phantom presses with three buttons held.
12 MIDI trs 3.5 mm stereo (TRS) jack, panel mount 3 lugs: tip, ring, sleeve. Not mono. 3 check IN, OUT KIT, OUT SYNTH. MIDI TRS Type A. 6 mm hole each.
13 MIDI adapt TRS-to-DIN MIDI adapter, Type A female DIN, 3.5 mm plug 1 buy For a DIN synth or sampler (e.g. MiniFreak). Must say Type A (Type B swaps tip and ring). Type A TRS gear (e.g. SP-404MKII) takes a plain stereo 3.5 mm cable.
14 MIDI opto 6N137 optocoupler DIP-8 (6N138 also works: then drop the pin 7 link) 1 have MIDI IN. You have three; one is used.
15 MIDI sock DIP-8 IC socket 1 buy So the opto can be swapped.
16 MIDI r330 Resistor 330 Ω 220–470 Ω 1 check LCD backlight (LED pin) to 3.3 V, inline at the module.
17 MIDI r220 Resistor 220 Ω 150–220 Ω 1 have MIDI IN, in series with the opto LED. The 6N137 wants a bit more LED current: use 150 Ω if learning misses notes.
18 MIDI r1k Resistor 1 kΩ 470 Ω–2.2 kΩ is fine 2 have Opto output pull-up, NPN base.
19 MIDI r33 Resistor 33 Ω, ½ W 27–47 Ω is fine 2 buy MIDI OUT ring (pin 4) line, per the MIDI 3.3 V spec. ½ W because a mono plug in an OUT jack shorts it straight to ground (0.33 W); a ¼ W one would cook.
20 MIDI r10 Resistor 10 Ω 10–22 Ω is fine 2 check MIDI OUT tip (pin 5) line, from TX. Don't replace with a wire: it protects the pin.
21 MIDI cap Ceramic capacitor 100 nF anything 47–220 nF 3 check C1 on the board (6N137 supply bypass, required). Optional: one per pot, soldered at the pot from wiper to the left lug, if the readings jitter.
22 Screen extras blt NPN or PNP transistor 2N3904 / BC547 (NPN) or 2N3906 / BC557 (PNP) 1 opt Only for a dimmable backlight. NPN if your BL lights when grounded, PNP if it lights from 3.3 V. Otherwise hard-wire it.
23 Power and assembly perf Stripboard at least 34 × 28 holes (about 86 × 71 mm) 1 check Pico socketed at the top edge, so its USB port meets a slot in the back wall.
24 Power and assembly hdr Female header strip, 1 × 20 2.54 mm 2 check Socket the Pico instead of soldering it in.
25 Power and assembly mhdr Male header strip, 1 × 20 2.54 mm 2 check Soldered to the Pico so it plugs into the female headers. Skip if yours is a Pico 2 WH (headers fitted).
26 Power and assembly tape Double-sided foam tape or hot glue — check Holds the stripboard and the screen without screws.