Skip to content

Supported Devices ​

ROLI shipped a surprisingly diverse family of Blocks devices: pressure-sensitive pads, keyboard strips, control surfaces, loop controllers, and more. blocksd identifies known Blocks serial prefixes and manages discovered devices through the topology and keepalive protocol. Compatibility must be checked per device and firmware. Lightpad devices expose a bitmap grid; LUMI Keys uses a separate per-key lighting surface.

Device Matrix ​

DeviceUSB PIDSerial PrefixLED GridStatus
Lightpad Block0x0900LPB15x15✅ Tested
Lightpad Block M0x0900LPM15x15✅ Tested
LUMI Keys Block0x0E00LKB:✅ Tested
Seaboard Block0x0700SBB:🔲 Untested
Live Block:LIC:🔲 Untested
Loop Block:LOC:🔲 Untested
Developer Control Block:DCB:🔲 Untested
Touch Block:TCB:🔲 Untested
Seaboard RISE 250x0200::🔲 Untested
Seaboard RISE 490x0210::🔲 Untested
ROLI Piano (49-key)0x0F00::🔲 Untested
ROLI Airwave Pedal0x1000::🔲 Untested

What "Tested" Means ​

Tested records prior project hardware reports, not a release-by-release certification. Visible RGB patterns were confirmed on Lightpad Block M firmware 1.1.0 and LUMI Keys firmware 1.3.9 on September 7, 2026. The original Lightpad has no new rendering validation from that session. Live MIDI/MPE preservation during LUMI lighting, sustained frame timing, and physical color calibration remain unverified.

Untested means no hardware validation is recorded here. A USB PID or serial prefix in the source does not guarantee discovery or support. Non-Blocks products in the table are identification references only; the MIDI scanner requires a matching Blocks port name.

LED Capabilities ​

The first frame loads the appropriate LittleFoot renderer. Pixel delivery waits for complete upload acknowledgement and a matching renderer challenge reply. Accepted API frames confirm daemon acceptance, not visible output (see LittleFoot status).

DeviceDiscovery capabilityFrame APICLI
Lightpad / Lightpad Mgrid_width = 15, grid_height = 15, key_count = 0Binary bitmap or JSON frameled solid, rainbow, gradient, checkerboard, off
LUMI Keysgrid_width = 0, grid_height = 0, key_count = 24JSON key_frameled keys

Key lighting requires LUMI firmware 1.3.0 or newer. Other recognized Blocks can participate in discovery and keepalive, but do not expose a supported lighting surface.

Touch and Button Events ​

The decoder handles Blocks touch and button messages when a device emits them. Touch coordinates and pressure are normalized; velocity is signed. The API exposes touch position, pressure, velocity, and contact index, plus button press/release actions. The protocol button ID is not currently included in the API event. Ordinary MIDI notes and MPE events are not translated into touch events by this API.

DNA Mesh Networking ​

Blocks devices with DNA magnetic connectors can form a mesh. When blocks are physically connected:

  • The USB-connected block becomes the master (topology index 0)
  • DNA-connected blocks get indices 1+
  • All protocol messages to non-master blocks are routed through the master
  • Touch events from DNA blocks arrive through the master's USB connection

blocksd tracks the full mesh topology and maintains keepalive for all devices in the chain.

Device Memory ​

Devices have limited memory for LittleFoot programs:

Device TypeProgram + HeapStack
Pad Block (Lightpad)7200 bytes800 bytes
Control Block3000 bytes800 bytes

The Lightpad renderer occupies 145 bytes plus a 450-byte pixel heap. The LUMI renderer occupies 130 bytes plus a 48-byte pixel heap.

USB Identification ​

ROLI's vendor ID is 0x2AF4. The daemon scans MIDI port names for the words "BLOCK" or "Block", pairs matching inputs and outputs, and uses serial prefixes to identify device types. The current detector does not inspect USB IDs or sysfs.

Released under the ISC License.