The spacebar on my mechanical keyboard started acting up, and while trying to repair it I broke the original keycap. So I modeled and 3D printed a new one from scratch.
The keyboard: Krom Kernel TKL
The keyboard is a Krom Kernel TKL. Krom is a Spanish brand (part of Nox / Tacens) that makes affordable gaming peripherals. This model is a tenkeyless board with hot-swappable switches, which is the feature I like most about it: you can pull a switch and drop in a different one without soldering. It has served me well.
In the future I would like to move to something with a lower profile, but for now this one stays.
The problem
While working on it I damaged the original spacebar keycap beyond repair. At that point the only options were to source a replacement 6.25u keycap or make my own, so I made my own.
Measuring the part
I took the key dimensions off the broken keycap and the switch/stabilizer layout with a caliper: overall length, stem spacing, the width and depth of the cross-shaped (Cherry MX) stems, and the stabilizer stem positions.
Modeling and slicing
Print settings on the Bambu Lab A1 mini:
- Filament: PETG HF
- Layer height: 0.2 mm
- Wall loops: 6
- Sparse infill: 25 %
Enable “Detect thin wall”
This one is important. The stems and the thin internal ribs of the keycap are narrower than two perimeters, so without Detect thin wall enabled (OrcaSlicer → Process → Strength → Walls) the slicer simply skips them and you get a keycap that won’t clip onto the switch. With it enabled, those features get a single-line path and print correctly.
Iterations
It took three prints to get the fit right — mostly tuning the stem tolerances and the overall height.
Result
The final version clips onto the switch and stabilizers and feels solid. It is a printed textured surface rather than a smooth ABS keycap, but it works.
The nice side effect of all this: I now have a parametric model and a working process, so if any other keycap breaks I can just print a replacement.