/*@BUILD:include:src/header.html@*/

PM_K‑1 Kit

Build it yourself: a Raspberry Pi Pico on the 52Pi breadboard kit becomes a touchscreen polymeter metronome — same engine, same program strings, with MicroPython firmware you flash in two minutes.

/*@BUILD:include:src/infoembed.html@*/

What it is

Buildable nowRaspberry Pi Pico52Pi EP‑0172 kit~$45 incl. Pico

This is the first member of the family you can actually build today from off‑the‑shelf parts: a Raspberry Pi Pico seated on the 52Pi EP‑0172 "Pico Breadboard Kit Plus", which carries a 3.5″ ST7796 320×480 capacitive‑touch screen (GT911), a PSP joystick, a WS2812 RGB LED, a buzzer and two buttons — all pre‑wired, so you don't solder anything; you just seat the Pico and copy one file onto it.

It runs the same polymeter engine and the same program strings as the web editor: design a groove on the site, copy its program string into the firmware's PROGRAMS list, and it plays on the device. Tap the screen, nudge tempo with the joystick; the RGB flashes each beat (amber accent / cyan normal / violet ghost) and the buzzer clicks. Powered over the Pico's USB.

Wiring — the EP‑0172 fixed pinout (Raspberry Pi Pico)

Everything is wired on the board; this is just what the firmware drives. No breadboarding required.

ComponentRaspberry Pi Pico pins
Display — 3.5″ ST7796, 320×480 (SPI0)
SCK / MOSIGP2 / GP3
CS / DC / RSTGP5 / GP6 / GP7
Touch — GT911 capacitive (I2C0)
SDA / SCL — addr 0x5DGP8 / GP9
Controls & feedback
PSP joystick X / YADC0 (GP26) / ADC1 (GP27)
Button A (play/stop) / Button B (tap)GP15 / GP14
WS2812 RGB LEDGP12
BuzzerGP13
Parts

An off‑the‑shelf kit, not a custom board — ballpark one‑off prices (USD).

PartQty~$
Raspberry Pi Pico (or Pico W / Pico 2) — the brain15
52Pi EP‑0172 "Pico Breadboard Kit Plus" — 3.5″ ST7796 cap‑touch, GT911, PSP joystick, WS2812 RGB, buzzer, 2 buttons, breadboard, acrylic panel138
USB cable — power + flashing12
Total (one‑off)≈ $45

Reference: 52Pi EP‑0172 wiki · vendor code. Lots may ship the screen as ST7796 (320×480) — this build targets that.

Firmware — flash it in two minutes

Download main.py ↓ Source + README ↗

Two separate steps — and main.py is not a drag‑and‑drop file. The RPI‑RP2 drive only accepts a .uf2 firmware file; a .py copied there is discarded on reboot. You drag‑and‑drop the firmware once, then copy main.py over USB serial.

  1. Install MicroPython (drag‑and‑drop, one time): hold BOOTSEL, plug the Pico into USB, and drop the MicroPython .uf2 onto the RPI‑RP2 drive (Pico / Pico 2). It reboots on its own and the drive disappears — that's correct.
  2. Copy main.py (the Pico is no longer a USB drive, so use a serial tool): in Thonny pick the interpreter MicroPython (Raspberry Pi Pico), then File ▸ Save as ▸ Raspberry Pi Pico as main.py; or mpremote cp main.py :main.py.
  3. Reset — it boots straight into the metronome.
  4. Add your own grooves by pasting program strings from the editor into the PROGRAMS list at the top of main.py. If colours, touch, or the joystick look off, flip a flag in the CONFIG block (see the README's calibration notes).

It's one self‑contained file — the ST7796 driver, GT911 touch, WS2812 RGB, buzzer and the polymeter engine, no external libraries.

CircuitPython edition — self‑contained appliance (USB drive · push programming · MIDI audio · practice log)

An alternative firmware that turns the Pico into a self‑contained appliance: it mounts as a USB drive carrying the firmware, your tracks and an offline copy of this editor; drives a full lanes/pads touchscreen; logs your practice to history.json on the device; takes new set lists pushed from the editor over USB‑MIDI; and plays out your computer's speakers over USB‑MIDI. By default the firmware owns the drive (read‑only to the computer — so it can log and can't be accidentally erased); hold button A at power‑on for editor mode (drive writable). The MicroPython firmware above stays the simple, rock‑solid option.

Download CircuitPython bundle ↓ Source + README ↗

  1. Flash CircuitPython (raspberry_pi_pico) via BOOTSEL, unzip the bundle onto CIRCUITPY, and power‑cycle. It boots into appliance mode.
  2. Program it from the web: build a set list in the editor (Chrome/Edge/Firefox), then the set‑list menu → 📟 Save to device. It's pushed over USB‑MIDI and the device shows Saved ✓. (Fallback for any browser: it downloads programs.json — boot holding A and drag it on.)
  3. Play through your computer: click 🎹 Device audio, then press play on the device — the full groove sounds through your speakers over USB‑MIDI, in sync; the screen shows a MIDI badge and the buzzer mutes.
  4. Practice log: plays over 5 s appear at the bottom of the screen (time · BPM · duration · track); tap a row twice to delete.
  5. Firmware updates: ⋯ menu → ⬆ Update firmware — it checks your version, pushes the latest over USB‑MIDI, and the device A/B‑updates with automatic rollback if a build won't boot.

Embed this widget elsewhere with one <div> + a script — see the embed docs.

/*@BUILD:include:src/footer.html@*/