/ Tech

Giving an old keyboard a modern twist

I spend far too much of my time using a keyboard: my entire job revolves around typing, and often my leisure time keeps me busy researching or writing. Needless to say, I geek out on keyboards.

That's why I was excited when I was given an old-school bulky office keyboard: similar to a Mechanical Keyboard in that (a) it's loud, and (b) your fingers know when they've been typing. This enhanced tactile feedback makes a huge difference.

So it came to be that after a few weeks of solely focusing my DIY skills on a motorcycle (fuel pump replacement, rear brake rod replacement, some rewiring, and a good ol' fuel changin'-spark plug replacin'-oil spillin' service!) I was keen to get started on something a little more fiddly...

Beginning with a deep clean

Keyboards are quite a personal item; we use them when we're hard at work, we use them when we're alone and no one can see us, we use them when we're stressed, and we use them when we're relaxing... needless to say, they go through a lot.

The first task was to clean this particular one up as it showed some fairly heavy nicotine staining. To do this I completely disassembled it, where I was pleasantly surprised to find it relatively clean underneath: a minor amount of grime and dust. This was simply rinsed under the shower, whilst I left the keys to soak in some soapy water.

Whilst doing this I decided to remove the "Gateway" branding, this was trivial with a cotton pad and some nail varnish remover; the acetone contained in this made easy work of the print, and within a few rubs it was off. It was at this moment I realised just how bad the yellow staining was!

Although my plan was to dye and paint all the various bits of the keyboard, it felt a bit wrong to simply leave the staining underneath the paint - not to mention I was concerned about how the dye would function when the plastic was underneath a layer of smoke residue.

As per usual, Amazon came to save the day, and I ordered this plastics cleaner and some scouring pads: after using a bit of elbow grease, the end result was no more nicotine stains!

Second steps: Adding a bit of colour

Now that the keyboard was looking a little more presentable, it was time to get on to the important stuff: a colour scheme. Using a tool developed by a Mechanical Keyboard vendor, aimed at allowing their customers to design their own keyboards for production, I was able to come up a suitable scheme that was loosely based around the existing layout.


I opted to switch the non-printable keys to crimson (from dark grey), make the alphabetical keys grey, use green for the function keys, and blue for the numerical pad. In total, I'd need 4 lots of dye.

On top of that, I wanted black casing - so also required some black spray paint. Whilst the dye is suitable for the keys - as it seeps in to the plastic - I felt the casing would be better suited to spray paint due to it's size.

Spraying the casing

I've never been particularly good with spray paint - an attempt at spraying the internals of a computer case when I was around 14 resulted in quite a mess! Needless to say, I was a bit apprehensive to begin with.

Before I cracked on and "did a banksy", I had some preparation to do: mainly sanding all the exposed areas of the casing - to allow the paint to latch on, before applying masking tape over the internal panel where the actual keys sit. Not doing this would've likely made no real difference, but I wanted to get everything as perfect as I could.

With the masking tape set, I donned my scruffy clothes and headed out to the garden to do some painting! I used Plasti-Kote Super Matt, once again bought from Amazon and delivered the next day thanks to Prime.

Dying the keys

Over on the /r/MechanicalKeyboards subreddit I'd done some reading on the correct way to colour the keys on a keyboard, and contrary my natural instinct of liberally spraying paint all over them - the advised method was to use dye.

Despite seeing impressive results online, I still struggled to see quite how the plastic would take the dye on - and I felt as though all I was going to do was waste a perfectly useful cooking pot.

Much to my surprise though, it worked.. and I didn't even need to purchase any new decals, as they'd stayed on the keys. Although it was a time consuming process, it was satisfying to finally see the main part of the restoration/upcycle come to life: I had cool looking keys, and I had no more nicotine staining at all.

Now came the first part of the re-assembly: re-seating the keys.

Interfacing with the modern world

There was one final issue though: a keyboard of this age relies upon PS2 as a connector, and not the common USB standard of today. Whilst I could've bought a simple adapter and it would've likely worked, there was no guarantee that the keyboard would support USB. As most commonly available PS2-to-USB solutions are adapters - and not converters - they simply re-pin the wires in the cable.. meaning the keyboard itself has to be sending signals that a USB keyboard would.

I did a quick test by splicing the end of a USB cable, and manually attaching it to the connectors in the keyboard - as per the correct pin-out - and unfortunately it didn't seem to work. I'd need to go a bit deeper, and either buy a converter or build my own.. so I broke out my Arduino and set to work.

Youtube user fermyon had posted a very informative video on making such a converter, and furthermore he'd even shared his code on Github: result! If you're reading this, dude - you're awesome.

With some example code to work with, I had one more decision: go all out and use a ESP8266 based NodeMCU, or opt for one of the smaller Arduino boards I had. Having a WiFi interface the ESP8266 would allow me to build a simple REST API to allow me to copy/paste from my phone. In reality though, this seemed like a niche use-case - not to mention there are better solutions out there.

Perhaps I'll use the ESP8266 at a later date, perhaps for a keyboard mounted LCD showing system stats or notifications via dbus; until then though - let's keep it simple.

...and this is where the project is up to.

The final task is tweaking the code, compiling it, soldering the relevant wires in to the relevant holes, heatshrinking all the connections, and epoxying the arduino in the rather spacious casing of the keyboard.

When this is done I'll come back and complete this project log (it's been a busy few hours!) and include all the relevant pictures. So stay tuned!


Contract Software Developer and DevSecOps Consultant, based out of London in England. Interests include information security, current affairs, and photography.