Ramblings of an aging IT geek
← Ramblings of an aging IT geek
hardware

i built a keyboard and then spent a week on the firmware

Building a small mechanical keyboard took an afternoon, and then the QMK firmware and its layers quietly ate the rest of the week.

A soldering iron and switches during a keyboard build

The hardware was the easy part, which surprised me. I expected the soldering to be the hurdle and the firmware to be an afternoon. It was precisely the other way round. Sixty-odd switches, a controller, a kit board with the holes already plated, an evening with a soldering iron and some podcasts. Then I plugged it in, and it did nothing useful at all, because a keyboard with no firmware is just a grid of switches having an existential crisis.

The build itself is honest work. Seat the switches in the plate, flip it, solder each one, two joints apiece, and try not to let your attention wander on switch fifty when the first forty-nine went fine. The diodes, if your board needs them by hand, are the only place polarity bites you, and like every through-hole component they care which way round they go. Test continuity as you go rather than at the end, because finding one cold joint among sixty after final assembly is a special kind of misery.

A close-up of a keyboard circuit board with switches

Then QMK. The firmware is where a mechanical keyboard stops being a commodity and starts being yours. You describe the physical matrix once, and after that the keyboard is software: layers, where holding one key shifts the whole board into a second meaning, like a fancier Fn; tap-hold keys that send one thing tapped and act as a modifier held, so the same key is Escape when you brush it and Control when you lean on it; and the small mercy of putting symbols and arrows on a layer under the home row so your hands never leave it.

The trap is that all of this is configurable, so all of it tempts you to keep configuring. I rebuilt my layout four times in a week. Moved the layer key, regretted it, moved it back. Discovered that aggressive tap-hold timing turns ordinary typing into a minefield of accidental modifiers, then spent an evening tuning the timeout until normal speed stopped misfiring. Compile, flash, type for an hour, find the one key that is now in the wrong place, change it, compile, flash again. It is enormously satisfying and a complete sink for time, and I regret none of it.

What I ended up with is a board that fits my hands and my habits rather than the other way round, and the firmware lives in a git repo so the next build inherits years of small fixes. The keyboard took an afternoon. Making it mine took the week, and that was rather the point.