SteelSeries Apex 3 TKL Support
Did not contribute to this project yet, but I got a fairly robust implementation of support for the SteelSeries APEX 3 TKL keyboard.
Relates to issue CalcProgrammer1/OpenRGB#1902 (closed)
Disclaimer: I saw the branch of @Dr_No (https://gitlab.com/Dr_No/OpenRGB/-/tree/1902) after the fact. I am not sure what a better approach is here. I think Dr_No was going for merging the protocol into the ApexTZone-Controller, but when I was working on reverse engineering, I found that the protocols did not seem to be compatible at all. Also, I cannot compare the controller to any "TZone"-SteelSeries keyboards, so I implemented it as a separate keyboard controller.
What does work/is included?
- Controlling the 8 RGB zones of the keyboard
- Switching the keyboard back into "rainbow animation mode" (sort of the idle state of this thing)
-
Just realized while writing, that I forgot to enable brightness controls in this mode - will check if that works and commit
-
- I added my findings about the reverse engineered protocol to the end of the Controller-header file
Brightness handling
This part is still a bit incomplete because I was not yet able to reverse engineer how to read back the brightness value from the keyboard. This is possible, and the keyboard is clearly setup in a way so that it allows a user to change its overall brightness settings without changing the keyboard "mode" or RGB-pattern.
When this is figured out, the brightness can be read from the keyboard and handled as a "global" setting for all modes. Anyway, the current version is already very serviceable, I think, therefore the PR!