Attempting to reverse engineer the DX-Light App to control a generic monitor backlight strip. This software will control a generic light strip monitor backlight frequently found under various brand names on amazon. Kudos go out to this reddit user for the idea of capturing usb packets via wireshark and replaying them.
- allows for setting a static color
- cross-platform
- program stays alive in system tray (can be exited and light should remain)
- uses a basic color picker
- persists selected color and reads it on next start
- auto-detects when the light is attached and re-executes last known color (useful when system is waking up from sleep)
At over 100MB unzipped, this project is admittedly large for its functionality. It was developed primarily as a personal learning exercise rather than an optimized utility.
Future Plans: I hope to eventually port the core functionality to OpenRGB, which is the more appropriate ecosystem for this tool.
For Contributors:
If you wish to integrate this protocol into other projects, the essential logic is contained within constants.py and
hid_light.py (approx. 100 lines of code). Those files include documentation on the USB HID byte sequences I
reversed-engineered.
Disclaimer:
This software has been manually verified only on the specific hardware described above (Vendor ID: 0x1A86, Product ID:
0xFE07, 80-LED variant). Use this tool at your own risk; transmitting raw byte commands to USB HID devices carries a
small but inherent risk of causing permanent hardware failure (bricking).
install uv based on platform (command below is for macOS, for others see https://github.com/astral-sh/uv?tab=readme-ov-file#installation)
curl -LsSf https://astral.sh/uv/install.sh | sh
git clone https://github.com/tanmaster/light-control.git && cd light-control
uv run python src/light_control/main.pyuv will download all required dependencies and run light-control.
- create proper releases on all platforms
- autostart application
- actually add this device to the openRGB project and make this project obsolete