This DIY Mechanical Keyboard Looks Fantastic
Thomas Rinsma wanted a way to learn more about electronics and PCB design, so he built this nifty DIY mechanical keyboard.
We love mechanical keyboards around here. They provide a much more satisfying tactile and auditory experience than their membrane cousins, and may even reduce RSI (repetitive strain injury) risks. They’re also far more DIY-friendly than membrane designs, since each key has its own self-contained switch. Wire those together by hand or with a basic PCB and you’ve got a functional keyboard matrix. Thomas Rinsma took advantage of that fact to build this nice-looking DIY mechanical keyboard.
Rinsma works as a security analyst, but his hobbies are much more varied. He’s been learning more about electronics and PCB design, and wanted a project that would give him some much-needed practice in that arena. This keyboard, which Rinsma calls “kb1,” was the perfect choice. It helped him gain some experience and he got a useful device out of it.
The kb1 keyboard has a standard tenkeyless layout compatible with Cherry MX switches. Each key has its own RGB LED backlight that can be controlled independently of the others. A 16×2 character LED display in the function key row can show information and a rotary encoder knob provides an interface for functions like volume control.
The keyboard’s controller is a Raspberry Pi Pico development board and that runs KMK firmware. That is CircuitPython-based firmware created specifically for keyboard microcontrollers and it offers a ton of flexibility. If a user wants their keyboard to do something, KMK probably supports it.
Rinsma’s biggest challenge was designing the keyboard’s PCBs. The kb1 has two large PCBs forming a sandwich. Most of the components solder onto the bottom PCB, with the top PCB acting more like a mechanical plate. Rinsma designed those PCBs in KiCAD and found two tools that were very helpful. The first is marbastlib, which has a bunch of different footprints for Cherry MX switches and stabilizers. The second is kicad-kbplacer, which positions the switches based on a file from an online keyboard layout editor.
This does require quite a lot of delicate SMD (surface-mount device) soldering work, but anyone who wants to build this keyboard can have all of that done by the PCB fabricator. The result is a keyboard that looks pretty nifty. It doesn’t do anything new or groundbreaking, but it helped Rinsma learn some new skills and that’s what really matters.