I’ve been typing on keyboards since I was around 5, but the hardware was never something I considered and I can’t even remember which brand of keyboard we had on our first PC back in the early 90’s.
Recently I have been converted from using thin laptop-style keyboards to mechanical keyboards and thought I’d write a post with some information about why I switched and what’s different for me.
I got my first new computer around 2004, a Fujitsu Siemens Amilo laptop. Since then I’ve had a few other laptops and never found I had issues with the keyboard hardware. In the above photo of my desk circa 2007 you can see 2 laptops open, a third one underneath the one on the left and a separated IBM thinkpad laptop keyboard component over on the right.
Below is my current, and only, laptop which has a fairly average modern laptop keyboard. The keycaps are slightly curved and have a much more defined point for when they actuate compared to other laptops I’ve used which I find is fine for developing on.
When I bought my first desktop PC in 2007 I opted for the cheapest rubber dome keyboard I could, not bothering to compare any or see what else I could choose from. This was fine for a while but eventually I was effected enough by the advertising hype of Razer and upgraded to a Razer Lycosa. The reason I went for the Lycosa was that it was similar in construction to a laptop keyboard and had nice shallow key-travel. This was definitely an improvement over my previous keyboard but could occasionally get key-jams when not pressing keycaps dead-centre which was very frustrating.
I recently felt the need to upgrade again and now that I’m a full time software developer who spends at least 7.5 hours a day typing at work, and many hours a day typing at home, I thought I should actually do some reasearch this time and buy something decent.
Researching online I found out about mechanical keyboards and the cult-like status they seem to hold. Most people either don’t care about the keyboard they use or they think that mechanical keyboards are archaic, expensive or pointless. Luckily for me I work with a couple of people who had the Corsair K65 with Cherry MX Red keys however which, after trying, definitely left me more interested.
A few days of researching online led me to think that Cherry MX Brown key switches would be best for me. While perhaps not as fast to repeatedly press as Reds, Browns have a slight clicky feel to them which makes typing easier as you can really feel the activation point. While there are clickier switches which might arguably be better for typing I didn’t want to annoy my colleagues or housemates with the sound while working.
More research led to me finding out about the Corsair RGB keyboards coming out; with a programmable API for setting the backlight colour for each key individually it seemed like the funkiest keyboard I could get in my budget.
The keyboard I ended up buying was the Corsair K70 RGB, in UK layout. The hardware quality feels fantastic. The palm rest has a nice soft rubbery texture, the keycaps are fairly small and that leads to accurate fingers from me. The volume scroll wheel top right feels excellent and the braided cable that comes from the keyboard is excessively thick and sturdy.
In the dark the individual key colouring looks fantastic. However there is a huge issue from my point of view that Corsair advertised and sold the keyboard with marketing that each key had a colour range of 16.8 million colours. In reality, thanks to some online reverse engineering mentioned later, the keyboard only supports 512 colours. This means any smooth gradient transitions look quite choppy, but Corsair are currently promising a firmware update to fix this.
Speaking of false advertising and reverse engineering, Corsair also said the keyboard software would launch with an API to program and make use of all those colours per key. They haven’t released one.
Thankfully people have already managed to reverse engineer the USB protocol which means a couple of people have managed to make programs which can programmatically set the key colours. However the projects that resulted from the initial reverse engineering effort weren’t very useful for others who wanted to develop software for the keyboard without dropping down to the USB protocol themselves.
So I decided to take the work done figuring out the USB protocol for the keyboard and wrap it inside a library, LibCorsairRGB, written in C++ so that other developers could easily get started developing effects for their own keyboards.
With the library you set the colours for individual keys, accessing them by name, keycode or position in a keymap matrix. See below for a demo video showing setting individual keys and then horizontal fills and gradients using the keymap matrix indexing:
I also tested the library out by making the classic Snake game, using the arrow keys as input and the main key-section of the keyboard as a “screen”:
Since I had the Corsair K70 RGB at home I soon got used to the lovely feeling of typing on Cherry MX Browns and every day spent using my work keyboard, an old Cherry Stream XT, was like torture to my now more refined typing tastes. What I needed was a new keyboard for the office, ideally with Cherry MX Brown switches in. Another K70 RGB was out of the question due to the price and not needing any fancy features or ridiculous LEDs while at work.
The best, simplest and most reasonably priced keyboard I could find was the CM Storm Quickfire XT. It comes with Cherry MX Brown switches, a UK layout and not much else! I expected it to feel much cheaper but it actually feels great. The general weight is good, the keycaps are wider-feeling than my K70 but otherwise okay. My only complaint is the horrible “gamer” font they used for the keycap markings, but if I carry on down the mechanical keyboard rabbit hole I might be buying custom keycap sets next…
Some people have asked if it was worth spending all the time researching and all the money. My answer would definitely be yes. Not only do I now notice my typing and take a lot more care to type better, I also had a lot of fun playing around with my RGB keyboard too.
If you’re thinking about getting a new keyboard I’d highly suggest trying a mechanical keyboard to get a feel for it, and do some research in to what you can get for your budget. If you’re like me and spend at least 8-10 hours every day using a keyboard you should definitely get the best keyboard you can.