Control the front RGB light bar on Intel NUC M15 and compatible Uniwill-based laptops under Linux.
This project documents the reverse engineered WMI interface used by Intel NUC Software Studio and provides tools to control light bar states directly from Linux. No Windows software, Wine or proprietary services required.
Features:
- Reverse engineered WMI protocol
- Documented LED state mapping
- Python command line utility
- Kernel helper module
- Linux-first implementation
Linux control for the front RGB light bar found on Intel NUC M15 / related Uniwill-based laptop platforms.
Current status:
- working Linux-side control path found
- no Windows runtime dependency required
- multiple visual states confirmed on real hardware
Current working stack:
- kernel helper module:
kernel/intel_lightbar_wmi.c - userland helpers in
tools/ - raw WMI transport through GUID
F3517D45-0E66-41EF-8472-FCB7C98AE932 - lightbar method family
0x0603(AlexaLedControlin newer Intel NSS packages)
Basic usage:
sudo python tools/lightbar_ctl.py talking
sudo python tools/lightbar_ctl.py off
sudo python tools/lightbar_ctl.py --list-stateskernel/- minimal Linux WMI helper module used for method invocation
tools/lightbar_ctl.py: high-level CLIraw_f351_call.py: raw method callerrun_f351_packet.py: packet runnerwmi_call.py: low-level debugfs caller
docs/state-map.md: visually confirmed state behaviorreverse-notes.md: condensed reverse summaryru-setup.md: Russian setup and deployment guide
Requirements:
- matching kernel headers
make
Build:
cd kernel
makeLoad:
sudo insmod intel_lightbar_wmi.koThe helper exposes debugfs entries under:
/sys/kernel/debug/intel_lightbar_wmi/See docs/state-map.md.
Highlights from current testing:
talking: purple/cyan smooth cyclic blendthinking: cyan expands from center across a purple basenotification_incoming: one soft yellow flashnotification_unheard: slow yellow pulsebluetooth_connect: three quick blue flasheserror: three red pulses
This repo does not require vendor binaries at runtime. Vendor binaries were used only as reverse sources to recover method names, state ids, and transport semantics.
See docs/ru-setup.md.
This code is hardware-specific. It targets the currently tested Intel/Uniwill laptop revision and may not behave the same on earlier HID-based light bar implementations.
- package installation and DKMS-friendly module build
- hook lightbar states to Linux desktop/system events
- determine whether
active_directioncan be driven meaningfully from Linux context