Keyboards: First Build

I decided to build my own keyboard, almost entirely inspired by posts seen on Reddit's r/mk community.
Photos all on Flickr in this set.
Parts List
KBDfans provided all of the parts. I've ordered from them from both the US and UK and, while it takes a little while, the stuff they have available is excellent, and generally it's actually in stock that they can ship rather than being part of a group buy.
- Keycaps: DSA Lazer Etched PBT Keycaps in Blue/Yellow. Had these on a different keyboard for quite a while now, but whilst I wait for some fancier keycaps to be delivered these ones are great.
- Case: KBDfans 5° 60% keyboard aluminum case
- PCB: DZ60 Rev 2.0 60% Mechanical Keyboard PCB. This included the switches and stabilizers.
- Switches: Kailh Box Royals. I likely have the old version, whereas this link is for the new one.
- Stabilizers: PCB stabilizers black color
The Process
I've got a bag of switches, a PCB and a borrowed soldering iron. What more could I need? I'd already used a pair of ordinary tweezers to test each key against KeyboardTester.com.

J tests the first switch we soldered successfully. We confirm that with a real switch in place, the "Esc" key works as advertised.

We continue soldering switches, though we quickly become aware that we don't have any good technique to keep them straight. Due to this, we start to solder just one leg to try and get everything on, but still give us the capability to rotate things a little later before we do the second leg. Some switches are already completely soldered though, and they're certainly not completely straight.


Ashlyn helped with the best technique we found to readjust the keys; trying to get the keys to sit flush against a metal ruler by applying pressure and resoldering the first joint before soldering the second.

Eventually they're all soldered.

Not all the keycaps are in the right place, but all the switches are in and work.

And once I'd put it in a case, we get our first look at a finished product (bar reprogramming the firmware). Still some wonky keys, especially the "H" right in the middle, but overall I'm really happy with the appearance.

What I'm not happy with however is the sound of the stabilized keys. I'm not super bothered about how they feel, but they sound horrible, rattly and scratchy. To fix this I turn to topclack.com's "The Stab Lab: A living stabilizer modification guide. The stabilizers I have don't require "clipping", but I decided to try my hand at "lubing" and "band-aid modification". That required buying some lubricant, I went with Silverhook SGPGT90 Silicone Grease.

I applied the lubricant with a small brush that Ashlyn had lying around.

Here's my poor attempt at the band-aid mod. Looking at it afterwards I think I should have cut the pieces a little bit bigger. I have absolutely no idea how much difference they're making.


With those modifications a huge difference was made. I can barely tell any difference at all sound wise between the stabilized keys and the non-stabilized keys!
Here's another shot of the final product.

Flashing the firmware
The keyboard uses the open source QMK firmware.
To create my own custom layout I forked the QMK github repo, and added my own layout to the DZ60 keymaps directory.
Link to my fork, Link to the commit where I added my custom layout.
There's nothing too interesting about my keymap, but it does show how you can get exactly what you're after if you are able to use QMK. I've been using software to make "some modifier + arrow key" be home/end/page up/page down for years, now I can add it directly to the keyboard firmware!
Once you've got a custom keymap, the process to flash the firmware to the keyboard is pretty simple. Start by making sure you've got the prerequisites installed to be able to build the firmware. In the directory where you have qmk_firmware checked out:
$> ./util/qmk_install.sh
$> export PATH="/usr/local/opt/avr-gcc@7/bin:$PATH"
$> make dz60:mjwbenton
That will build the firmware with the custom keymap. If it's successful then you're ready to actually do the flashing.
Plug the keyboard in whilst holding down "Space+b", then flash the firmware with:
$> make dz60:mjwbenton:dfu
2020 Update
Update written 2020-08-02
This keyboard is still going strong as my daily driver, now with XDA Oblique keycaps. The latest version of the layout that I use is in this commit.