/*@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 nowRP2350 (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.

ComponentRP2350 pins
Display - 2.8" ST7789V, 320x240 (8-bit parallel 8080)
BL / CS / DC / WR / RD / D0-D7GP26 / 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 PWMGP12
Amp enableGP13
I2C (QwSTEMMA - unused by the firmware, free for sensors)
SDA / SCLGP20 / GP21
Controls
ButtonAction
Aplay / stop
Btap tempo
Cmenu (Settings / Practice log / Help / About)
Xprev track (hold to repeat)
Znext track (hold to repeat)
Ytempo -1 (hold = -5 after 1.5 s)
X + Z (chord)tempo +1 (same hold rule as Y)
In a menu
X / Zmove cursor up / down (Help: prev / next page)
Ydecrement the focused value
Acycle / increment / select
Bback (cancel)
Cclose the menu
Parts

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

PartQty~$
Pimoroni Explorer Kit (PIM744) - RP2350B, 2.8" ST7789V, 6 buttons, piezo + amp, USB-C160
USB-C cable - power + flashing12
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 CPractice 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@*/