Keyboard Miscoloring – Just how does this Bug Happen?

I have a documented love for keyboards with RGB lighting. So I was rather annoyed when one of my Corsair K65 keyboards suddenly seemed to lose its entire red color component. The keyboard is supposed to default to all-red color scheme with the WASD and arrow keys highlighted in white when no user is logged in to the machine it is connected to – but all of a sudden, it went all dark except a light-blue color on the “white” keys. I guessed it was just a random misconfiguration, but it turned out to be worse than that.

I went into the iCUE program to adust the settings, and realized that the keyboard color I got on the board did not match what the software was telling me it should be. With some experimentation, I quickly came to realize that all the red color had been taken out of the keyboard. No key could display any amount of red. This did not look good in two ways. It did not look good aesthetically, and it did not look good for the life of my keyboard. Did it have a warranty still that would cover a return and replacement?

Reset Rescue

Doing a bit of web searching, I found a series of similar problems being reported to Corsair. Most of them ended in “I contacted supported and I got a special hard-reset download”. The process seemed a bit bothersome, but fortunately there was an easier way.

A soft reset is realized by unplugging the keyboard’s USB connections, holding down ESC, and plugging it back into the computer. Keep ESC down for about five seconds, and the keyboard should flash the lights to indicate a reset.

This worked and got the red color back onto my keyboard. Great!

Wait a Second

What I do wonder is just how did this could happen. Sure, the software embedded on the keyboard (i.e., firmware) can misbehave and stop working and have to be reset. That is part of how things work today.

But just how does the software manage to lose the red color but keep the green and blue colors in action? I would love to see the code underlying this issue – is there some kind of calibration table to determine how hard to drive each color, and it got corrupted?  Is there some kind of feedback loop where the software measures the output to the LEDs on the keys?

Indeed, how can the software control the colors of each key individually – I don’t think a single controller can drive what must be three lines to each LED (one for each of red, green, and blue, likely driven using pulse-width modulation). Would be fun to know more about just how complex we can make something like a keyboard today.

Some More Investigation

I have a second K65 keyboard with a couple of keys that have started to get discolored. Resetting that keyboard did not cure the issue, but instead it has a couple of keys that seem to have lost their red. The yellow color that the keys are supposed to have come out as greenish instead:

Going to all red and popping some keycaps shows this very starkly:

Since each RGB LED is really three separate LEDs inside the same capsule, maybe in this case there are a couple of keys where the red portion has indeed been physically damaged. Not fatal but annoying.

And then…

Photographing the keyboard with a short exposure time (1/2000 of a second) revealed an interesting effect too. The color that we perceive as humans is indeed produced thanks to our eyes not seeing really fast changes. This photo shows what I see as a uniform yellow color:

Lots of different colors on display here – the camera sees uniform yellow if I increase the exposure time to about 1/250 of a second.

You can do Anything in Software

I guess the conclusion of this somewhat rambling piece is that it is amazing what you can do when software is connected to the physical world – but that such software can also go wrong in amazingly unexpected ways.  Losing the red color from all keys is a bizarre effect of embedded software, but there must be many other such effects out there where software meets physics.

 

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.