19
HID lights
bicarus edited this page 2026-06-08 16:07:11 -07:00

This information is for developers and controller makers.

Spice can translate cabinet light output to USB HID output.

HID specification

The HID usage spec is maintained by the USB-IF.

For lights, the LED Page (0x08) is the most commonly used, but you are not limited to those.

It also helps to understand how Windows HID API works, which is what spice uses. Both OutputButtonCaps and OutputValueCaps are used. Button caps are on/off values, and value caps are range values (variable brightness).

Dumping USB capabilities and testing

Launch spice.exe -cfg -sysdump all to show a dump of HID devices detected by spice.

To test, go to Lights tab, and open the drop down. Your device should appear there, and you should be able to see the list of output capabilities of your device. Press Turn On to have spice send "on" signal to your device over the Windows HID stack, or use the slider for variable brightness (for output value caps).

Sample USB code

Arduino-HID-Lighting - read this first.

Arduino code in UltimatePopnController

Arcin code in arcin-infinitas

Beef-board

Hardware reference

Rhythm cons wiki

Other lights supported by spice that are not USB HID

Proprietary protocols

Some proprietary protocols are supported:

  • LIT board (sextet) for DDR cabs
  • PIUIO
  • SMX stage / cab (requires custom DLL)

SpiceAPI

API is a good way to extend lights support; implement the client code (using the provided samples) and have it directly interact with your device. The API doc is here.

Please add support for insert device here !!

We're not going to add code to support your proprietary protocol. But you are always welcome to write your own code & submit a pull request.

It might be easier to write a hook DLL using the SDK.