So me and one of my friends are currently building our own keyboard. You can find it on
https://github.com/Skaytacium/Skayboard.
Currently, we are on revision 3 and we recently ran into a problem which we just cannot seem to find the solution to. We need to power 76 per-key RGB SK6812 LEDs and 44 underglow SK6812 LEDs. USB 2.0 only supports 500mA at high power mode and sometimes devices can even switch to low power mode (100mA) if they need to.
Our original plan was to multiplex these LEDs, so we only power one column at a time (~6-7 LEDs per column), but then my friend suggested that we just turn off the LEDs rather than use an external multiplexing IC and add complexity.
This seemed like a good idea at first but after some calculations, I soon realized that we cannot do that as it would effectively make all of the LEDs work at ~12-13Hz.
Then I had an epiphany and thought why not just separate the 120 LEDs into groups of 30, and concurrently send data to that, but well sadly, theoretically if I could do that I would get exponentially good performance per pins, but practically, not many microcontrollers can parallelly output to 4 data pins.
What I really want to know is what companies like Ducky/Razer/Corsair do. Their keyboards might not be the best, but their PCB design has to be pretty good if they are retailing at such a high volume.
Any responses, suggestions, or answers, will be welcomed and appreciated.