A 32x32 pixel LED grid visualizer that runs in the browser and can drive a physical RGB LED matrix via USB serial.
- Displays a 32x32 pixel canvas in the browser, styled like an LED screen
- Runs particle animations (shooting stars, sparkles) in real time
- Streams frames over USB serial to a Pimoroni Interstate 75 board driving a HUB75 RGB LED matrix
- Uses Web Serial API (Chrome/Edge) — no drivers or native apps needed
- Pimoroni Interstate 75 (RP2040-based HUB75 driver board)
- 32x32 HUB75 RGB LED matrix panel
- USB-C cable to connect the board to your computer
- Download the Pimoroni MicroPython firmware (
.uf2file for Interstate 75) - Hold BOOT on the board, plug in USB — it mounts as
RPI-RP2 - Drag the
.uf2file onto the drive
- Open Thonny → Tools → Options → Interpreter → MicroPython (Raspberry Pi Pico)
- Open
interstate75/main.py - File → Save As → Raspberry Pi Pico → save as
main.py - Close Thonny (only one app can use the serial port)
- Unplug/replug the board so
main.pystarts automatically - Open
index.htmlin Chrome - Click Connect to Interstate 75 and select the USB serial port
- The animation plays on both the browser and the physical LED matrix
Fire-and-forget streaming at 1.5 Mbaud:
| Byte(s) | Description |
|---|---|
0xFF |
Sync byte (frame start marker) |
| 1024 bytes | RGB332 pixel data (1 byte per pixel, 32x32) |
- RGB332 encoding: 3 bits red, 3 bits green, 2 bits blue per pixel
- Pixel values are capped at
0xFEso the sync byte0xFFis unambiguous - No ACK — the board resyncs on the next
0xFFif any data is lost - The board expands RGB332 → RGB888 directly into the PicoGraphics framebuffer using Viper-compiled blitting (near-C speed)
index.html Web visualizer + serial streaming
interstate75/main.py MicroPython firmware for the Interstate 75