Building a Keyboard

4 minute read


Besides coffee, I have been obsessed with all things workstations (such as desks and chairs). This also includes computer peripherals, my favorite of which being mechanical keyboards.

Mechanical keyboards started off as slightly more than an afterthought. They were just to help me find more joy in writing up my OCaml homework (or to distract me from it). Now a full blown obsession, I have decided to build my first mechanical keyboard.

I will continuously update this post as I make progress towards building my keyboard. Of course, depending on new parts that become available, the final build will differ. For example, what if a keycap set that appeals more to me than GMK Alter comes out?

I will later update this post with my reasonings for each decision!


Holy Panda switches

  • Invyr Panda Mechanical Switches
  • Halo Clear Mechanical Switches


GMK Alter Keycap Set

  • Preordered: Baseset
  • Preordered: Novelties
  • Ships: Mid April 2020
    Update: 2020/05/25: Shipping late may due to covid19




Tofu 60% aluminum case with a brass plate

Update: 2019/11/27

I recieved my DZ60RGB-ANSI PCB from KBDFans a couple days ago. My past keyboards have all been pre-built, thus worked out the box. With this new keyboard, I knew that I would have to be sure to check that all the parts are functional (mainly the PCB). “No problem”, I thought. I got the PCB out, plugged it in with the USB-C to USB-A cable provided with the order, and began to test the keyboard using SWITCH HITTER.

A side note for those who want to test their own hot-swap PCB (Kailh hot swap sockets in the case of DZ60RBGs): I would use an actual switch to test the PCB. I was impatient and used a loose staple, which was the only thing I had on hand which would fit into the sockets. I accidentally stabbed myself with that staple more times than I am proud to admit.

SWITCH HITTER was telling me that none of my keys were working. Uh oh! Some quick googling told me that I had to flash the firmware on the PCB. Easy enough right? NO. It took me around 2 hours and a lot of trial and error to correctly update the firmware. Here are the steps that worked for me.


  • Dependencies:
    • I chose
    • Unzipped and ran qmk_driver_installer/install_all_drivers.bat
    • I chose qmk_toolbox_install.exe from the most recent release

Plug in PCB in bootloader mode

  • Hold ESC while plugging in PCB OR
  • Use BL switch on the back of the PCB


  • Installed WinUSB driver as recommended on the KBD Fans product page
  • I have no idea if this means the keyboard only works with Windows. I am unfamiliar with drivers…

Get the DZ60RGB bin file

  • Compile and download the firmware

Flash with QMK TOOLBOX

  • Select the bin file
  • Select the atmega32u4 microcontroller

It literally took seconds to flash, but took 2 hours to get there…

Oh, and side note #2: Be sure that the USB-C cable you are using can be used for data transfer (necessary to flash). cable provided with my order was charging only. Luckily, I had also ordered a custom cable, which supported data transfer.

Update: 2020/02/19

I recieved the Halo Clear and Invyr Panda switches in the past month. I decided to go with the ‘holy panda’ switch instead of the ‘holier pandas’ for no real reason. I also caved and decided to lube all 61 switches using Tribosys 3204. Definitely a great choice! I don’t know if I can go back to un-lubed switches anymore.

Putting the keyboard together was fairly simple. But, I immediately noticed that the stabilizers that I were using were awful. Luckily, a friend gave me some dielectric grease, which when mixed with the band-aid mod silenced those pesky stabs.

Now, just waiting for the keycaps!