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

# PM_X-1 Explorer

The off-the-shelf Pimoroni Explorer Kit (RP2350, 2.8" LCD, 6 buttons, piezo) as a polymeter metronome - sibling to the PM_K-1 Kit, sharing the engine, program-string grammar, and live-sync protocol with the web editor.

## What it is

Buildable now RP2350 (Pico 2 class)Pimoroni Explorer PIM744~$60

The Pimoroni Explorer Kit (PIM744) is a finished development board: RP2350B built in, 2.8" ST7789V 320x240 IPS LCD, 6 user buttons (A/B/C on the left of the screen, X/Y/Z on the right), a piezo speaker, USB-C, a JST-PH battery connector, and a mini breadboard with 6 GPIOs / 3 ADCs broken out for sensor projects. No soldering; you flash CircuitPython and drop the firmware on. No touchscreen, no joystick, no RGB LED - everything is driven from the 6 buttons.

It runs the same polymeter engine and the same program strings as the web editor. Beat editing is done in the browser; Live sync mirrors edits to the device in real time (HELLO/FULL/DELTA over USB-MIDI), and the device mirrors play/stop/tempo/track changes back. The piezo clicks; a tiny on-screen dot shows run state.

Wiring - the Pimoroni Explorer fixed pinout (no breadboarding required)

Everything is wired on the board; this is what the firmware reads. The display is driven by an 8-bit parallel bus initialised by CircuitPython's official board definition - we use `board.DISPLAY` directly.

Component | RP2350 pins
--- | ---
Display - 2.8" ST7789V, 320x240 (8-bit parallel 8080)
BL / CS / DC / WR / RD / D0-D7 | GP26 / GP27 / GP28 / GP30 / GP31 / GP32-GP39 (board.c)
Buttons (digital, pull-up)
A (play/stop) / B (tap tempo) / C (menu) | GP16 / GP15 / GP14 (left side, top to bottom)
X (prev track) / Y (-bpm) / Z (next track) | GP17 / GP18 / GP19 (right side, top to bottom)
Audio
Piezo PWM | GP12
Amp enable | GP13
I2C (QwSTEMMA - unused by the firmware, free for sensors)
SDA / SCL | GP20 / GP21

Controls

Button | Action
--- | ---
A | play / stop
B | tap tempo
C | menu (Settings / Practice log / Help / About)
X | prev track (hold to repeat)
Z | next track (hold to repeat)
Y | tempo -1 (hold = -5 after 1.5 s)
X + Z (chord) | tempo +1 (same hold rule as Y)
In a menu
X / Z | move cursor up / down (Help: prev / next page)
Y | decrement the focused value
A | cycle / increment / select
B | back (cancel)
C | close the menu

Parts

A finished development board, not a custom build - ballpark one-off price (USD).

Part | Qty | ~$
--- | --- | ---
Pimoroni Explorer Kit (PIM744) - RP2350B, 2.8" ST7789V, 6 buttons, piezo + amp, USB-C | 1 | 60
USB-C cable - power + flashing | 1 | 2
Total (one-off) |  | ≈ $62

Reference: Pimoroni Explorer product page · vendor code · CircuitPython for Pimoroni Explorer (RP2350).

Firmware - self-contained appliance (USB drive · web-driven editing via Live sync · MIDI audio · practice log)

The firmware turns the Explorer into a self-contained appliance: it mounts as a USB drive carrying the (precompiled) firmware, your tracks and an offline copy of this editor; drives a lanes/pads display with web-driven editing via Live sync; logs your practice to `history.json`; 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).

Download CircuitPython bundle ↓ Source + README ↗

1. Flash CircuitPython for Pimoroni Explorer (RP2350) (download) via BOOTSEL, unzip the bundle onto `CIRCUITPY`, and power-cycle. It boots into appliance mode.
2. Edit on the web: open the editor (beta) in Chrome / Edge / Firefox, click 🔗 Live sync, and the Explorer mirrors your edits live (beats, tempo, track changes).
3. Save a set list to the device for offline use: set-list ··· menu → 📟 Save to device. It's pushed over USB-MIDI; the device persists it to `/programs.json`.
4. Play through your computer: click 🎹 Device audio, then press A on the device - the full groove sounds through your speakers over USB-MIDI, in sync. A MIDI badge appears in the header and the piezo auto-mutes.
5. Practice log: press C → Practice log. Plays over 5 s appear (time · BPM · duration · bars).
6. Firmware updates: ··· menu → ⬆ Update firmware - the editor reads the device id (X = Explorer), fetches the matching `pico-explorer-app.mpy`, and pushes it over USB-MIDI. The device A/B-updates with automatic rollback if a build won't boot.

Pairs with the touch-driven PM_K-1 Kit - same engine, same programs.json, same web editor.

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