Build Log: Custom Mechanical Keyboard

Let me start off by making one thing perfectly clear: this post is not meant as a guide on how to build the best keyboard money can buy. With subjects like these I find there is no best, only a best for you as a person and whatever use case you have in mind. So instead, this is a recollection of my journey building my first “custom” mechanical keyboard after having used the basic mechanical keyboards with brown switches for over a decade. And no, you also don’t need a mechanical keyboard but I would lie if I said it isn’t a much more pleasant typing experience coming from someone who grew up behind an Amiga 500.

Figuring out what I want

To build a keyboard I needed 4 things: the base keyboard, switches, keycaps and a budget. All of these have a huge impact on your typing experience and complete feature set. Setting a budget was easy: €100 max and it needs to be an improvement over my previous Keychron C1 and Corsair Strafe RGB (both with Brown switches) that I’ve been using for over a decade. So with a budget in mind, let’s move on to the switches.

Switches

The world of switches is huge and can be quite overwhelming if you’re new to it. So to help preserve and sanity and given my low budget, I stuck with the basic options by Gateron. These are relatively cheap switches and come in 3 different types, each offering a different typing experience:

  • Tactile switches (brown): Require little force to press halfway, then hits a bump you need to press harder down to get through as physical feedback. Think of it as popping bubblewrap with each keystroke.
  • Linear switches (red, yellow, white, black): Require the same force pressing all the way down, offer little audible nor physical feedback upon keystrokes.
  • Clicky switches (blue, green): Require the same force pressing all the way down, provide audible feedback with a loud “clack” with each keystroke.
screenshot of ali express listing featuring a keyswitch tester set.

As I’ve only had experience with brown/tactile switches, I decided to order a sample set containing all of the mentioned options from Ali Express for €6.17. After some fidgeting, I blindfolded myself for the ultimate test. I would go through all of them, remove the switch I liked the least and repeated this until there were only 3 left. These were, from favourite to least favourite, green (heavy clicky), brown (tactile) and black (heavy linear). Rather valuable information, as it showed I like heavier switches and switches that offer some form of feedback. With this knowledge I ordered a set of 110 green switches of Ali Express for €28.76. When they arrived roughly a week later and quickly made their way into my Keychron C1. Typing on the green switches was nice and the modifier keys especially were pleasant to use with the additional force required to press down. However, I also noticed my left hand was tiring out too quickly while typing longer texts. To reduce strain, I decided to replace the letter and symbol switches to blue switches which I got from Amazon for €17.93 as I didn’t felt like waiting another week for delivery. Using the keyboard like this was perfect and I was tempted to just call it right there. But with all the Black Friday coupons on Ali Express it was simply too tempting to not treat myself to a new keyboard body…

Keyboard form factor and base body

I have to admit I didn’t really do a lot of research for a new keyboard base. All I knew was I wanted to stick with TKL (no numpad), backlighting and the option to go wireless with a 2.4GHz receiver. Browsing around, the Zuoya GMK87 caught my eye for meeting these requirements and being okay priced at ~€40. It also had plenty of positive reviews on YouTube and Reddit and a battery that’s easy to replace once the old one goes bad. Well that, and it has the ultimate silly gimmick: a tiny TFT LCD display which can display any GIF you want. Yes, I am trash like that and proud of it.

Keycaps

This was the one part of the build I really didn’t think through. I didn’t bother comparing keycap profiles which is an entire rabbit hole of its own. Instead I went with what looked cool and realized I coudln’t decide on anything. So as a placeholder, I opted for a cheap set of OEM gradient keycaps. They serve their purpose just fine until I find the time (and money) to dive into the keycap profile rabbit hole to figure out which fit me best.

The build

The build was simple. I opened the keyboard up using guitar pics to undo the plastic clips inside the case and took the keyboard apart. To me this was nothing special. A ribbon cable for the display and 2 more cables to undo. Once I made it to the PCB I removed the PET film covering it. All of this this is completely optional, but as Reddit was filled with complaints about switch connectivity issues caused by the film I decided to just remove it pre-emptively. Going in reverse, I put the keyboard back together.

Adding the switches made me realise I ordered green switches without a SMD LED window, while the blue switches did have them. This meant half the keys would be extremely dim. While the easiest solution would had been to purchase the correct switches, I said fuck it. Using a soldering iron and an old tip, I carefully melted away some plastic to DIY a SMD LED window onto a green switch. This turned out to be good enough, and thus I performed the mod on all the green switches required. With the switches in place I added the keycaps, tested each key and smiled: everything worked.

Firmware update, VIA and adding my own GIF to the LCD display

During my research on YouTube, it was mentioned the keyboard supports VIA but can be flaky. One video by MechTech Keyboards addressed this issue and provided the solution. Upgrade the firmware (link in their video description) and in VIA, load a JSON file included in the firmware update zip file. While normally I am weary of downloading random unverified files, let alone device firmware updates, none of the other solutions or json files on the internet worked. As there no complaints and the channel seemed trustworthy I bit the bullet and I can confirm, this worked perfectly fine.

As for changing the animation on the LCD display, I downloaded the “Image Custom Tool” and ran it. While clunky, it got the job done allowing me to put the best Evangelion waifu on my keyboard LCD screen. Writing that, I am sure the teenage me from 15 years ago wouldn’t believe this was possible or remotely affordable haha.

Total costs and lessons learned

  • Switch sample set: €6.17
  • Fancy cap+switch puller (optional): €3.04
  • 110 5pin Gateron Green switches: €28.76
  • 36 5pin Gateron G Blue Pro SMD: €17.93
  • GMK87 keyboard: €43.23
  • Gradient PBT keycap set, OEM profile: €10.27
  • Total: €109.40
  • Total if I didn’t make a bunch of mistakes: €81.74

Looking back at this project I have no regrets. The typing experience is nice, the mistakes made weren’t too costly and in overall I would say it was an educative experience. I now know to keep things like PCB LED placement in mind when buying keycaps, how switches may come with SMD windows and diffusers. I now have a keyboard that fits my typing needs perfectly and the option to switch back to my Keychron C1 if I ever need to or feel like experimenting with switches again. If anything I’m excited to jump down the next rabbit hole: keycap profiles. But, that’s something that will have to wait until 2025…