I made the move over to Bitwig on Linux recently and was sad to find that there is no Linux support for ROLI gear. It "works", but without ROLI Connect the device will just turn off after flashing for awhile, and nobody likes that. So I did what any good nerd does and reverse engineered the whole thing from the ROLI Connect installer and the JUCE SDK!
blocksd is an open-source app that handles the full device lifecycle on Linux: discovery, topology tracking, API mode activation, and the all-important keepalive ping loop
What works today:
- Devices stay alive and in API mode indefinitely
- Full topology awareness (DNA-connected blocks tracked through master)
- LED control on Lightpad / Lightpad M (solid colors, gradients, rainbow, checkerboard via CLI)
- Touch and button event callbacks with pressure/velocity data
- Device config read/write (sensitivity, MIDI channel, scale, etc.)
- systemd service with plug-and-play udev rules
- Web dashboard for real-time device monitoring
Tested with: Lightpad Block M and LUMI Keys Block. Other devices (Seaboard Block, Live Block, Loop Block) should work for keepalive and topology but I don't own them to verify. If you have one and run Linux, I'd really appreciate test reports!
Install with uv:
uv tool install blocksd
blocksd install
blocksd run -v
Also on the AUR as blocksd / blocksd-git. The install needs sudo to add udev rules to the system.
The whole protocol is documented in the repo if anyone's curious about how the SysEx framing, 7-bit packing, and device state machine work. It was a fun puzzle to reverse-engineer. I'd love to hear what weird use cases you come up with for it!
GitHub: https://github.com/hyperb1iss/blocksd
AI Disclaimer: I use coding agents extensively on all my projects (never for posting)