[Solved] Advanced customization of the RGB Keyboard Options

I picked up the RGB keyboard, and I would like to make some very custom modifications to it. In particular, these are the things I’m interested in:

  • Using the RGB lights as PC status indicators (battery %, temperature, utilization, etc.)
    • On top of having zones of the keyboard certain color, I could also envision lighting up the numbers in order to give specific numeric readouts. E.g., if the battery is at 95%, flash the 9 led and then flash the 5 led. That could be triggered when the % goes down, or when a macro is pressed.
  • RGB indication of discord mic active/muted
  • Flash if my total power consumption goes over a certain threshold while on battery. E.g., I want to know if I’m drawing >15W while on battery, as there is definitely something wrong at that given my workflows.
  • Wifi connection status/strength
  • Dedicated keys for showing fault flags such as PROCHOT.
  • Whether the dGPU is in D0 or d3Cold state.
  • Automatically turn all lights on/off depending on battery power (e.g. via bash script to turn on/off)

I am capable of writing custom software if need be, and I understand the keyboard firmware is opensource, however I am not sure what my options are for implementing these features. I am not terribly entrenched in the keyboard community. Just looking for someone to guide me to the right rabbit hole.

  1. Does this functionality already exist somewhere?
  2. Are there alternate OSS firmware’s I can install that would allow me to more easily implement the features? If there are, what are they called so I may find them? I see terms like QMK, VIA, and VIAL come up a lot, but other than knowing the FW 16 is QMK based (I’m not familiar with QMK either), these don’t mean much to me.
  3. Could I achieve this by modifying the existing FW firmware?
  4. Is it even possible at all to send data/commands to the keyboard live while it is in use?
  5. How likely am I to brick the keyboard in such a way that even plugging in a 2nd keyboard can’t get it working again?

Keyboards to me have always been a simple input device to me, so with all these fancy new features I’m not sure where the boundaries of possible are. Thanks!

A helpful folk on the QMK discord was able to answer my question, looks like this kind of functionality is possible through the HID interface as long as someone writes the supporting code:
Raw HID | QMK Firmware

Those are some good ideas that I think would work well on that macro keyboard as well. Good luck!

2 Likes