I recently bought a Lioncast LK200 RGB keyboard which is a nice piece of hardware and has exactly the look and feel I want. All basic functions work well under Linux. Unfortunately the manufacturer only provides user software to upload/download profiles and control the LEDs for Windows. The device can be configured and operates autonomously from any OS but color setup is a PITA and it's very easy to factory-reset, and lose all config.
I approached them but Lioncast seems neither interested to support native Linux nor to provide protocol specs so one can implement it. I thought to take this as an example to learn about reading and reverse-engineering USB device software.
I have the hardware at hand and I can connect it to a suitable Windows-VM to control it with the original (closed source) application from the manufacturer. But I need a solid portion of handholding, preferably from someone who already did something similar.
A good result would be to have demo code to be able to modify individual keys, or have the basic profile upload working from Linux with information from a (whatsoever) text file.
This project is part of:
Hack Week 19