metronome/pico-wm8960/README.md
Me Here 33dc5ff5cb PM_K-1 Phase 1: bench prototype firmware + doc (Pico 2 + WM8960, transformer-isolated XLR)
Per the approved audio re-architecture (prototype-first): prove the click -> codec ->
transformer-isolated XLR chain on bought boards before any custom PCB, keeping the RP2350
firmware.

- pico-wm8960/code.py: CircuitPython bring-up for Pico 2 + SparkFun WM8960 breakout.
  Synthesizes the click (familiar piezo pitches) -> I2S -> WM8960 -> HP/speaker; line-in
  monitor hook; stereo/pan ready for polymeter spatialization. Uses the proven adafruit_wm8960
  driver (no hand-rolled register driver).
- hardware/PROTOTYPE.md: shopping list, wiring, and bench milestones M1-M5 (M4 = the no-buzz
  ground-loop test = acceptance gate).

Key findings baked in:
- Buzz was a ground loop; cure = transformer galvanic isolation, NOT +/-15 V (which was only
  studio headroom and is dropped).
- WM8960 needs MCLK (CircuitPython I2SOut doesn't emit it); the SparkFun breakout's onboard
  24 MHz oscillator supplies it -> resolves Risk R1 with zero extra parts.

Track-format conformance (node tests/run.mjs) stays green; DSL untouched.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 09:15:26 -05:00

989 B
Raw Blame History

pico-wm8960 — Phase-1 audio-chain bench prototype

A focused bring-up for Raspberry Pi Pico 2 (RP2350) + SparkFun WM8960 codec breakout that validates the new audio path (click → I²S codec → transformer-isolated XLR) before any custom PCB. Not a form-factor firmware — it's the audio-chain validator from the approved plan.

  • Hardware, wiring, shopping list, and the M1M5 bench milestones: see ../hardware/PROTOTYPE.md.
  • Firmware: code.py — CircuitPython 9.x+.
  • Dependency: the adafruit_wm8960 library (circup install adafruit_wm8960, or copy adafruit_wm8960/ into CIRCUITPY/lib). The SparkFun breakout's onboard 24 MHz oscillator supplies the WM8960 MCLK, so no host master clock is needed.

code.py boots a steady 120 BPM click (accent every 4) so you can hear the chain and run the no-buzz test (M4). The polymetric track engine and Bluetooth (BM83) drop in once the chain is proven.