Initial support for StreamDeck Neo
For all users that try to use the new StreamDeck Neo, I would like to provide this very simple patch that just adapts the XL device code for the Neo and adds the USB product id. I have tested the provided examples successfully with a Neo device, but of course the 2 additional touch buttons of the Neo are not supported yet, as there seems to be no documentation for them.
Notes:
- I do no longer have the Neo since the owner has exchanged it for a Mk2. It would make sense to reduce the new file for the Neo to contain just the code that is different from the XL code.
- you will have to add these lines to /etc/udev/rules.d/50-elgato-stream-deck-user.rules, e.g. SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="009a", MODE="660", TAG+="uaccess" KERNEL=="hidraw*", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="009a", MODE="660", TAG+="uaccess"
(the product id is case-sensitive in the rules file, BTW...)
Maybe Julusian/node-elgato-stream-deck@65197a7 helps to implement the rgb buttons
the 2 additional touch buttons of the Neo are not supported yet, as there seems to be no documentation for them.
A quick summary of how they work in https://github.com/Julusian/node-elgato-stream-deck
The touch buttons report and can be addressed as buttons 9 & 10. Their colour can be set by sending a feature report [0x03, 0x06, keyIndex, r, g, b]. I recently discovered that this colour message also works for the normal buttons, going back to the XL, which makes it useful elsewhere for efficiently blanking the streamdeck.
For the LCD segment, it doesnt support any presses. It has to be drawn to as a single segment (not like the plus which lets you draw regions). With usual 1kb packets of data, it has a simpler header of https://github.com/Julusian/node-elgato-stream-deck/blob/16efb4e8f79054246af6678899b6292824bd9921/packages/core/src/imageWriter/headerGenerator.ts#L89-L94. that lcd has dimensions 248x58
I just received a Neo and tested this PR on a Raspberry Pi 5. Having run the example_base.py I can confirm that it works with the device.
Got it working on PopOS. Basic example displayed icons and keypress logged on terminal.
Can you review it ? @abcminiuser
Apologies everyone for dropping the ball on this project due to ongoing family medical issues. @TheSchmidt thank you very much for your hard work! I'll merge in https://github.com/abcminiuser/python-elgato-streamdeck/pull/151 which is a continuation of this and cut a new release.