Streamdeck uses Hex HID values to map to its buttons. Their Hex values range from 01
- 0F
.
Capture software adds junk to the copied output of bytes this regex can remove it in vscode: .{8} (.*) .* $
After sending the initial data set the streamdeck software sends this report: [0x05, 0x55, 0xAA, 0xD1, 0x01, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]
I don't know what this does.
On startup Streamdeck device sends the current state as a Report, with id 2. Its the exact same format as the write operation.
Image format is BGR NOT RGB.
72 x 72
Writing an image is sent as an OUPUT report. The first few bytes are easy to figure out, here's the first page of our red square:
02 01 01 00 00 06
02
: This is the report id, for writing an image its always 2.01
: Unknown but never changes01
: "Page" number. Each image is sent as 2 pages.00
: This is padding00
: This is01
on the second page, Presumeably its used to signal that the data is a contiuation from the first page06
: Hex value for the Button
The rest of the data before image data is uknown but a second page's prefix bytes look like this:
02 01 02 00 01 06
Where the only two changes are items 3 and 5.
02 01 01 00 00 06 00 00 00 00 00 00 00 00 00 00 42 4D F6 3C 00 00 00 00 00 00 36 00 00 00 28 00 00 00 48 00 00 00 48 00 00 00 01 00 18 00 00 00 00 00 C0 3C 00 00 C4 0E 00 00 C4 0E 00 00 00 00 00 00 00 00 00 00 00 00
02 01 02 00 01 06 00 00 00 00 00 00 00 00 00 00 00 00