A split, columnar-staggered keyboard built around a nice!nano MCU with a rotary encoder, laid out with ergogen and routed in KiCad. It's based on/inspired by josukey (MIT licensed), an ergogen-based Corne clone.
Firmware (ZMK, with a custom keymap tuned for Swedish input and coding symbols) lives in its own repo: martisak/zmk-config.
- Node
- KiCad (to open/edit the PCB)
git clone https://github.com/martisak/skoldpad.git
cd skoldpad
npm iThe layout lives in ergogen/config.yaml.
Runs Ergogen and builds all of the output files (outlines, case, PCB skeleton) into ergogen/output.
npm run ergogen:buildWatches config.yaml and the footprints directory and re-runs the build on changes.
npm run ergogen:watchThe hand-routed PCB lives at ergogen/kicad/skoldpad.kicad_pcb
(along with the schematic, 3D step model, and the custom Skoldpad.pretty footprint library it
depends on) — open ergogen/kicad/skoldpad.kicad_pro in KiCad.
Regenerate these from the routed board with make schematics (requires kicad-cli and Python 3
on PATH); see the Makefile.
Firmware and keymap are maintained separately at martisak/zmk-config:
git clone git@github.com:martisak/zmk-config.gitIt's a nice!nano ZMK build with its own keymap (not
based on Miryoku), tuned for the macOS Swedish layout — base layer plus NUM, FUNC, and
directional layers. Builds run in GitHub Actions on every push; grab the .uf2 artifacts from
the latest successful run.
The PCB footprints support a nice!view display — this should work but hasn't been tested yet.
The case is designed in Shapr3D
(viewable in 3D at that link) and 3D printed. STL files for both halves (top and bottom shells)
are in case/:
Quantities below are per half; this design is one hand's PCB, fabricated twice (one normal, one mirrored) for a complete pair — double everything for a full two-hand build.
This PCB is Choc v1 (PG1350) only. The switch footprint's center hole and stabilizer-leg positions don't match Choc v2 or MX, so neither is a drop-in substitution — see Future Work.
| Part | Qty/half | Notes |
|---|---|---|
| nice!nano | 1 | MCU, one per half (each half is an independent BLE unit) |
| nice!view | 1 | Display — untested, see Known Issues; optional |
| Panasonic EVQWGD001 rotary encoder | 1 | |
| Kailh Choc v1 switch | 23 | See Future Work — v2 is the recommended switch going forward |
| Kailh PG1350 hotswap socket | 23 | Choc v1 hotswap socket, e.g. Chosfox |
| SOD-123W diode (e.g. 1N4148W) | 23 | Standard keyboard-matrix switching diode |
| JST PH 2-pin connector (S2B-PH-K, 2.0mm) | 1 | Battery connector |
| LiPo battery (JST PH 2-pin) | 1 | Capacity not specified by the design — pick to fit the case |
| Kailh PCM12 SPDT slide switch | 1 | Power on/off |
| Würth WS-TASV SMT tactile switch (434121025816) | 1 | Reset button |
| M2 screws + threaded inserts/standoffs | 11 sets | One per mounting point in config.yaml (screw_* positions) |
| 1u keycap (Choc profile) | 21 | |
| 1.5u keycap (Choc profile) | 2 | Thumb keys — see Known Issues re: rotation |
Not in the PCB itself but needed to finish a build: the 3D-printed case (see Case section above) and a filament of your choice.
- The two thumb keys should be rotated to accept a 1.5u keycap, as shown in the renders.
- nice!view support is untested — should work per the footprint, but not confirmed on hardware.
- The case's screw posts are thin and prone to cracking when installing the threaded inserts (see Bill of Materials — M2 screws + threaded inserts/standoffs); consider thickening the posts in the Shapr3D model or heat-setting inserts more carefully.
- Move to Choc v2 switches — currently on v1, which has a smaller center post than v2.
- Test compatibility with full-size MX switches.
- Test nice!view once one arrives (currently on order).
- Update the BOM's rotary encoder — the specified Panasonic EVQWGD001 is discontinued; find and validate a pin-compatible replacement.
- Consider per-key LEDs instead of underglow — underglow would need a transparent case, which the current 3D-printed design isn't.
Code (footprint generator scripts, build tooling) is MIT. The hardware design (PCB, schematic, case, and ergogen layout) is CERN-OHL-P v2.
- Ergogen
- Absolem Club Discord
- V4 Migration Guide
- Claw
- MrKeyboard
- Corne keyboard
- Ben Vallack
- ZMK
- josukey — the base this board started from
- Västergötlands landskapsvapen — inspiration for the logo
- Chakra Petch — typeface used for PCB text and case engraving
Claude (Anthropic) assisted with README and documentation polish — drafting and formatting text (including the BOM table and general presentation of this repo) from the author's own notes and decisions. The design, PCB, firmware, fabrication work, and content substance (including Known Issues and Future Work) are the author's own.




