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

a keyboard i soldered, and the firmware that made it mine

Building a mechanical keyboard from a kit, where the soldering was the easy half and flashing custom firmware was the rest.

A soldering iron working on an electronics board

I built a keyboard this week from a kit, switch by switch, and it works, which still surprises me a little every time I press a key. The soldering was the part I was nervous about and it turned out to be the calm, meditative half: clip a switch into the plate, flip the board, touch the iron to the pad, feed the solder, move on. Sixty-odd times. Podcast on, mind off.

The half that actually made it feel like mine was the firmware. The board runs QMK, which is the open-source firmware that an awful lot of these custom boards have standardised on, and the whole point of it is that the layout lives in code rather than being burned into the hardware. You describe your keymap in C, compile it, and flash it over USB.

[_BASE] = LAYOUT(
    KC_ESC,  KC_Q, KC_W, KC_E, KC_R, KC_T,
    KC_TAB,  KC_A, KC_S, KC_D, KC_F, KC_G,
    MO(_FN), KC_Z, KC_X, KC_C, KC_V, KC_B
),

The thing that sold me was layers. That MO(_FN) key means "while held, switch to the function layer", so a single physical key becomes ten keys depending on what else I'm holding. Arrows live under the home row now, no reach to the corner of the desk. Once you've felt that, a fixed layout feels like a constraint you'd merely tolerated.

Flashing is the small ceremony at the end: hold the reset, the board appears as a flashing target, the tool writes the new firmware, and a second later the keymap is whatever I last decided it should be. The soldering made the object. The firmware made it mine.