Host Lighting (HLP v1.0) test builds - 11 Aug 2026
Pre-releaseTest builds of the Host Lighting add-on for GP2040-CE, covering every board configuration in the project on both LED pipelines.
Host Lighting adds an optional vendor HID interface (usage page 0xFF47) that lets host software drive a board's RGB LEDs live, alongside the normal controller interface. The board describes its own LED layout over the same interface, so hosts need no per-board data, and on-board animations resume whenever the host releases control or goes quiet.
The add-on is disabled by default. While disabled, every input mode presents byte-identical USB descriptors to stock firmware.
Which archive do I want?
| Archive | Use it for | Version string |
|---|---|---|
GP2040-CE-HostLighting-v1.0-classic.zip |
Normal testing. Built from the add-on pull request on top of current upstream main. | g7081de7 |
GP2040-CE-HostLighting-v1.0-refactor.zip |
Testing the add-on together with the pending LED refactor. Experimental. | g8922fab |
Both archives contain one UF2 per board and a README with flashing and setup steps. The refactor archive splits boards into refactor-native/ and refactor-legacy/ folders.
If you only need one board, every UF2 is also attached individually below, named GP2040-CE_0.7.12_2026.08.11_<tier>_<board>.uf2 - download just yours instead of the whole archive. The archives are the same files, and their READMEs are worth reading either way.
hlp-tools.zip holds small Python reference clients: discovery, capability decode, streaming and per-button tests. Running hlp-ping.py against a board with the add-on enabled gives a conformance pass in a few seconds.
flash_nuke.uf2 is the standard Raspberry Pi flash-erase utility (not part of GP2040-CE). Running it before installing these builds is recommended: it clears anything left behind by the previous firmware, which is the usual source of odd behaviour after a version change. It erases the entire flash chip - the firmware and every stored setting, including button mappings and profiles - so back up first if you need them. It covers both RP2040 and RP2350 boards.
Quick start
- Back up your settings if the board holds mappings or profiles you want to keep: web configurator, Configuration -> Backup -> Backup To File.
- Erase the board with
flash_nuke.uf2(recommended). Hold BOOT while plugging in the USB cable, copyflash_nuke.uf2onto theRPI-RP2drive that appears, and wait a moment for the drive to come back. This clears any configuration left by the previous firmware. - Flash your board's UF2 onto the
RPI-RP2drive. The board reboots into the new firmware by itself. - Hold Start while plugging in to reach the web configurator, then enable the add-on under Configuration -> Add-Ons -> Host Lighting. Hard-refresh the page (Ctrl+F5) after any reflash.
- Run
hlp-ping.pyfrom the tools archive to confirm the interface is live.
After a full erase the board's first boot occasionally enumerates oddly; unplug and replug once if that happens.
Validation
Hardware tested on a Haute42 COSMOX (16 LEDs) and a COSMOX M-Ultra (46 LEDs including a 30-LED case strip), on both render pipelines, plus a real Xbox 360 console for console-safety. Streaming holds a sustained 60 fps with every commit acknowledged, input latency is unchanged from stock within measurement error, and two boards connected at once are driven independently. All 55 board configurations compile for RP2040 and RP2350 on both pipelines.
Where this is being submitted
- Add-on: OpenStickCommunity#1691
- Documentation: OpenStickCommunity/Site#119
- Packaged host tools: OpenStickCommunity/gp2040ce-binary-tools#12
- Add-Ons save fix for the LED refactor branch: Podbod12#67
These archives are convenience builds from this fork. For the classic pipeline, the artifacts attached to the add-on pull request's own CI run are built by GitHub from the pull request source and are the canonical binaries; the refactor builds exist only here, since that pipeline has no CI.