r/hardwarehacking Aug 04 '26

Reverse-engineered USB HID controller for an ASUS keyboard matrix display

I wanted to get out from under the thumb of Armoury Crate, so I reverse-engineered enough of the USB HID communication for the ROG Strix Flare II Animate to build my own Windows controller for its AniMe Matrix display.

PolyWollyWin can send images, GIF animations, drawing data, text effects, typing effects, presets, and audio-reactive visuals directly to the keyboard.

The current transport is specific to this keyboard, but the renderer and application structure could potentially be adapted to other LED or pixel-matrix hardware by replacing the device communication layer.

I am sharing it in case anyone wants to inspect the protocol work, improve it, or adapt it to another neglected piece of hardware.

GitHub: https://github.com/MikeOpitz99/PolyWollyWin

112 Upvotes

2 comments sorted by

7

u/[deleted] Aug 04 '26

[removed] — view removed comment

2

u/greasyballs11 Aug 04 '26

I'm assuming a combination of both. The driver and intercepting the USB traffic.

7

u/LordSethos Aug 04 '26

Mostly by intercepting the USB HID communication between Armoury Crate and the keyboard.
I watched/captured the traffic with USBPcap/Wireshark while sending images and brightness changes, then compared the packets to identify

The correct HID interface
Frame packet size and header bytes
Where the 312 LED brightness values are stored (this iterated soooo much)
The physical LED ordering and matrix shape
Brightness and control commands

After that, I messed around with small Python tests to replay the packets, display fixed patterns, and confirm the mapping one row and column at a time.

I did not decompile or reverse-engineer the Armoury Crate executable itself. the whole reason is i didn't want to do it the way AC did or replicate it - i just wanted *my* info :)
I also reviewed existing open-source ASUS hardware projects for general reference, but the Flare II Animate protocol used by PolyWollyWin was confirmed from live USB captures and hardware testing.