Working 10-zone plugin using the 0x44 live colour reports on the 0xFF90 vendor interface (data then commit). Includes Python tools used to identify the device, confirm the protocol and map zones. Output is dimmer than onboard effects; investigation pending. Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01EcbUcbNpyPn7cGpe4t6y5y
31 lines
1.0 KiB
Python
31 lines
1.0 KiB
Python
"""Set every LED slot of the HyperX Eve 1800 to one colour (report 0x44 only).
|
|
|
|
python tools/test_color.py # all red
|
|
python tools/test_color.py --color 000000 # all off
|
|
python tools/test_color.py --order primer # header-first order (does NOT work on the Eve)
|
|
python tools/test_color.py --dry-run # print packets, send nothing
|
|
"""
|
|
import argparse
|
|
|
|
import eve
|
|
|
|
|
|
def main():
|
|
ap = argparse.ArgumentParser()
|
|
ap.add_argument("--color", default="ff0000", help="hex RRGGBB (default red)")
|
|
ap.add_argument("--leds", type=int, default=20, help="LED slots to fill (default 20)")
|
|
ap.add_argument("--order", choices=["commit", "primer"], default="commit")
|
|
ap.add_argument("--dry-run", action="store_true")
|
|
args = ap.parse_args()
|
|
|
|
colors = [eve.hex_rgb(args.color)] * args.leds
|
|
if args.dry_run:
|
|
for p in eve.build_packets(colors, args.order):
|
|
print("TX", p.hex(" "))
|
|
return
|
|
eve.send(colors, args.order)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|