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!

Edited by Paul Konstantin Gerke

Merge request reports

Loading