I built a keyboard. Not bought, built: a bag of switches, a PCB, a controller, a pile of keycaps, and an evening with a soldering iron. The hardware was the fun, obvious part. The thing that actually changed how I type was the firmware, and I didn't expect that going in.
The build
The kit was a 60% board, which means no number row dedicated function keys and no arrow cluster, just the core block of keys. That sounds like a loss until you realise your hands barely move. The switches push into a metal plate, the plate sits over the PCB, and each switch has two legs that poke through to be soldered on the back. Sixty-odd switches, two joints each, so a couple of hundred little blobs of solder. It's repetitive and weirdly meditative, and the only real skill is making a joint that's shiny and volcano-shaped rather than a dull grey ball, which usually means you didn't heat the pad long enough.
A few things I'd tell my past self before starting:
- Solder the controller socket first and test the board with a pair of tweezers before you commit all the switches. Bridge each switch's two pads with the tweezers and you should see a keypress register. Finding a dead row after you've soldered everything is miserable.
- Tin the iron, wipe it, keep it clean. A dirty tip doesn't transfer heat and you'll sit there cooking a pad wondering why the solder won't flow.
- A helping-hands clamp or a bit of putty to hold the board is worth more than any fancy iron.
I had exactly one cold joint, on the spacebar of all keys, and it announced itself by the spacebar simply not working. Reflow, done. The satisfying moment is plugging it in for the first time and watching a text editor fill with letters as you mash the keys. It lives.
The firmware is the actual product
Here's the part I underrated. The board runs QMK, an open-source keyboard firmware, and QMK is where a 60% board stops being a compromise and becomes better than a full-size one. The trick is layers. You hold a key, and the entire keyboard temporarily becomes a different keyboard.
So my missing arrow keys aren't missing. I hold a thumb key and HJKL become left/down/up/right, vim-style, right under my fingers on the home row. The number row I "lost" comes back on another layer. Function keys, media controls, brightness, all of it lives a layer-hold away. My hands stop wandering off to the corners of a big board to find Home or Page Down, because everything is within one key of where they already rest.
You define all this in a keymap.c file and compile it. A layer looks roughly like this, with MO(1) meaning "momentarily switch to layer 1 while held":
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Base layer
[0] = LAYOUT_60(
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, /* ... */ KC_BSPC,
MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, /* ... */ KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, /* ... */ KC_RSFT,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL
),
// Fn layer: arrows on HJKL, numbers up top
[1] = LAYOUT_60(
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, /* ... */ KC_DEL,
_______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, /* ... */ _______,
_______, _______, _______, _______, _______, _______, /* ... */ _______,
_______, _______, _______, _______, _______, _______
),
};
That _______ is "transparent", meaning fall through to whatever the layer below does. You build the whole thing as a stack.
What it changed
I expected to enjoy the soldering and then have a nice keyboard. What I got was a keyboard I keep editing. A week in I've already moved a few keys around twice, because flashing new firmware takes thirty seconds and there's no reason not to experiment. Caps Lock is now Escape when tapped and Control when held, which is the single best change I've made to how I type in years and costs nothing on a normal keyboard except that you can't usually do it.
The hardware is lovely and tactile and I'm glad I built it by hand. But the lesson is that the customisation people associate with these boards, the bit that actually fits the keyboard to you, is software. You could buy a pre-built board and a third of this still applies the moment it runs QMK. The soldering just makes it feel earned.