Field Notes: Building the Sputnik
Handwiring a wireless split keyboard from Vostok Labs, dual nice!nano, ZMK firmware, one dead key, one fix.

A wireless split keyboard, handwired, THOCK sound.
Why this build
I finished a small handwired macropad and wanted to build something more substantial. After looking around a lot I found this project. The Sputnik from Vostok Labs is a 42-key Corne-style split, designed specifically for sound: a felt-damped sandwich case and thick printed keycaps to get that deep THOCK. Files are open (MakerWorld + GitHub), with a wiring guide, a BOM, and prebuilt firmware for the reference wiring, which meant I could get it running before writing a single line of my own config.
The parts
- 2x nice!nano clone (nRF52840 v2), one per half
- ~42x 1N4148 diodes for the matrix
- 22 AWG solid-core wire
- MX switches from my spares bin
- 2x battery, one per half
- M2 heat-set inserts and screws
- Thick 3D-printed keycaps, done on the P1S
The firmware reality check
This is a ZMK build, not KMK. Wireless splits on nRF52840 run ZMK, configured through devicetree and Kconfig files, built via GitHub Actions.
How it works: Push a keymap config to a repo, GitHub Actions compiles the UF2. And ZMK Studio covers keymap changes without touching code at all, so tweaking should be possible without re-flashing.
Build log
Handwiring both halves went cleanly, following the guide's diagram. The diode orientation is the thing to double and triple check before soldering anything permanent, a wrong diode is a much bigger pain to fix than a wrong wire.

Assembled, flashed the prebuilt firmware, and one key came up dead: the "D" key. Reflowed the solder joint on that switch and it came back to life.
The nice!nano has a USB-C port, so I could plug in a cable and flash the prebuilt firmware to both halves. The left half is the master, the right half is the slave. The two halves pair over BLE.

Would do differently
- Order batteries before building. Waiting on the batteries while everything else is ready is frustrating.
- Soldering on the pins of the nice!nano is a pain, the 3D-printed case can easily melt if exposed to too much heat. I should have used a socket or header pins to make it easier, but not sure if that would fit in the case.
- Spend more time on ZMK Studio before touching the raw config files. It's the faster path for anything that isn't a structural keymap change.
Links
- Sputnik (Vostok Labs) on GitHub — github.com/vostoklabs/Sputnik-Handwired-Split-Corne-Keyboard-