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.
What it is
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.
| Component | Raspberry Pi Pico pins |
|---|---|
| Display — 3.5″ ST7796, 320×480 (SPI0) | |
| SCK / MOSI | GP2 / GP3 |
| CS / DC / RST | GP5 / GP6 / GP7 |
| Touch — GT911 capacitive (I2C0) | |
| SDA / SCL — addr 0x5D | GP8 / GP9 |
| Controls & feedback | |
| PSP joystick X / Y | ADC0 (GP26) / ADC1 (GP27) |
| Button A (play/stop) / Button B (tap) | GP15 / GP14 |
| WS2812 RGB LED | GP12 |
| Buzzer | GP13 |
Parts
An off‑the‑shelf kit, not a custom board — ballpark one‑off prices (USD).
| Part | Qty | ~$ |
|---|---|---|
| Raspberry Pi Pico (or Pico W / Pico 2) — the brain | 1 | 5 |
| 52Pi EP‑0172 "Pico Breadboard Kit Plus" — 3.5″ ST7796 cap‑touch, GT911, PSP joystick, WS2812 RGB, buzzer, 2 buttons, breadboard, acrylic panel | 1 | 38 |
| USB cable — power + flashing | 1 | 2 |
| 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.
- Install MicroPython (drag‑and‑drop, one time): hold BOOTSEL, plug the Pico into USB, and drop
the MicroPython
.uf2onto theRPI‑RP2drive (Pico / Pico 2). It reboots on its own and the drive disappears — that's correct. - 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 asmain.py; ormpremote cp main.py :main.py. - Reset — it boots straight into the metronome.
- Add your own grooves by pasting program strings from the editor into the
PROGRAMSlist at the top ofmain.py. If colours, touch, or the joystick look off, flip a flag in theCONFIGblock (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 ↗
- Flash CircuitPython (raspberry_pi_pico)
via BOOTSEL, unzip the bundle onto
CIRCUITPY, and power‑cycle. It boots into appliance mode. - 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.) - 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.
- Practice log: plays over 5 s appear at the bottom of the screen (time · BPM · duration · track); tap a row twice to delete.
- 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.