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

a keyboard build, and the part where the firmware fought back

Building a 65% mechanical keyboard was the easy half; flashing QMK and laying out the keymap was where the real evening went.

A hot-swap keyboard PCB mid-build with switches and a soldering iron

The physical build of a keyboard is genuinely the easy bit, which nobody tells you. A hot-swap PCB, a tray of tactile switches, lube if you're feeling keen, stabilisers that you will spend longer tuning than everything else combined. An hour of pressing switches into sockets and you've got a working keyboard. It even types.

Then comes QMK, and that's where the evening actually went.

The board takes standard QMK firmware, so the loop is: edit a keymap.c, build, flash, test, discover you put the layer-toggle somewhere your thumb can't reach, repeat. A 65% layout means there's no number row given over to function keys, so half the work is designing a sensible second layer. Arrows on hjkl under a hold, function keys across the top, media controls somewhere I'll actually remember.

[1] = LAYOUT_65(
  KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, /* ... */
  KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT
)

The bit that fought back was a stuck modifier after flashing, where the board behaved as if Shift was permanently held. The fix was unglamorous: clear the EEPROM with the bootmagic reset, reflash, and stop hot-reflashing while a key was bottomed out. Once it settled, it settled. Three days of typing on it now and the layout fits my hands. The firmware was the project. The keyboard was the excuse.