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

PM_G-1 Grid

The off-the-shelf Pimoroni Pico Scroll Pack (a 17×7 white LED matrix + 4 buttons) on a plain Raspberry Pi Pico - sibling to the PM_K-1 Kit and PM_X-1 Explorer, sharing the engine, program-string grammar, and live-sync protocol with the web editor.

What it is

Buildable nowRP2040 (Raspberry Pi Pico)Pimoroni Pico Scroll Pack PIM545~$30

The Pico Scroll Pack (PIM545) plugs straight onto a Raspberry Pi Pico's headers: 119 white LEDs in a 17×7 matrix driven by an IS31FL3731 over I²C (individually brightness-controlled), and 4 buttons (A / B / X / Y). No soldering, no touchscreen, no joystick, no RGB - and no onboard speaker. About 65 × 25 × 10 mm on top of the Pico. Power is over VSYS (USB or battery).

It runs the same polymeter engine and program strings as the web editor. The 7-row × 17-column matrix maps directly onto the editor's lane × step pad grid: each lane is a row, each step a column, and LED brightness encodes accent / normal / ghost. 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 back. Audio is over USB-MIDI - turn on the editor's 🎹 Device audio to hear the clicks through your computer (or solder a piezo to a free GPIO and set P_BUZZER in app.py).

Wiring - the Pico Scroll Pack fixed pinout (just press it onto the Pico)

Everything is wired through the header; this is what the firmware reads. Pins verified against Pimoroni's pico_scroll library.

ComponentPico pins
LED matrix - 17×7 white, IS31FL3731 (I²C @ 0x74)
SDA / SCLGP4 / GP5
Buttons (digital, pull-up)
A (play/stop) / B (track)GP12 / GP13
X (-bpm) / Y (+bpm)GP14 / GP15
Audio (optional - not on the Scroll Pack)
Piezo PWM - only if you wire one; set P_BUZZERany free GPIO
Controls & views
ButtonTapHold
Aplay / stopcycle view (Grid → Pendulum → BPM)
Bnext tracknext set list
Xtempo -1repeat (-5 after ~1.5 s)
Ytempo +1repeat (+5 after ~1.5 s)
ViewWhat the 17×7 matrix shows
Gridlanes as rows, steps as columns; brightness = accent / normal / ghost; a bright playhead column tracks the beat (bars > 17 steps scale to fit - no steps dropped)
Penduluma column bounces across the bar like a metronome arm, full-height flash on each beat
BPMthe current tempo as three 3×5 digits

Tap tempo lives in the web editor. The mapping is deliberately simple (this is a UI prototype) and easy to re-bind at the top of app.py.

Parts

Two off-the-shelf parts, no soldering - ballpark one-off price (USD).

PartQty~$
Pimoroni Pico Scroll Pack (PIM545) - 17×7 white LED matrix (IS31FL3731) + 4 buttons122
Raspberry Pi Pico - RP2040; pre-soldered headers so the pack presses on15
USB cable - power + flashing (micro-USB)12
Total (one-off)≈ $29

Reference: Pico Scroll Pack product page · vendor code (pico_scroll) · CircuitPython for Raspberry Pi Pico.

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

The firmware turns the Pico + Scroll Pack 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 the 17×7 matrix 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 Raspberry Pi Pico (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 matrix 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 (the Scroll Pack has no speaker of its own).
  5. Firmware updates: ··· menu → ⬆ Update firmware - the editor reads the device id (G = Grid), fetches the matching pico-scroll-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 and the button-driven PM_X-1 Explorer - same engine, same programs.json, same web editor.

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