Howdy
Lately, procrastinating on a personal project has seemed to be the leitmotif of my existence! I don’t know if it’s the new job or the recent DIY home renovation, but this project has been sitting stalled on my shelf for months—ever since I started it last summer.
While working on the Ampere Pad, I began thinking about how I could improve it. I wanted to overcome some of the limitations of the Arduino Pro Micro, such as limited space for my code-kubwa (big code), slow compile times, and toolchain quirks. After some research, I came across KMK.fw, written in CircuitPython and perfect for RP2040 boards. Since I already had a couple of those chips lying around, I jumped straight into the design phase.
My goal was to take everything I’d learned from building and modding the Redox, and create something more aligned with how I use a keyboard—while matching my skills. Those became the pillars of the Ampere Board: a 5x7 columnar staggered split keyboard.
From day one, one feature I really wanted was “hot-splittability”—a way to combine the two halves on the go. Thanks to my hoarder tendencies, I found a few male/female pogo pin pairs in my components drawer, ready to go!
Other features I added—mainly because they’re just cool—included OLED displays and a couple of rotary encoders. I also included a hint of hot-swappability. Not that I needed it much since I’m hand-wiring everything, but it seriously speeds up prototyping. If I mess something up (and let’s be honest, I will), I don’t have to desolder every switch.
Luckily, the RP2040 has a ton of pins, so combining all these features was doable during the design phase. Even better, the chip’s pins are flexible—you can remap I²C lines and other functions easily. Gone are the days of tough compromises!
Encumbrance Underestimated: An Announced Disaster
Designing anything is hard—no matter how simple it seems. I can’t think of another project I’ve printed and reprinted as much as this keyboard. A mix of enthusiasm and overlooked details led to a lot of wasted plastic.
One particularly tricky challenge was fitting all the wiring into such a small, constrained space. In fact, the latest prototype iteration doesn’t even close properly. I suspect the ultimate solution is to design a PCB, but that’s something for the future. Another design misstep was using an Ethernet cable to connect the two halves. While it’s secure, versatile, and kind of cute, the connectors are huge. I might revisit that choice.
Time for Assembly
As with every hand-wired keeb, the most tedious part is wiring the matrix—rows and columns—then connecting them to the microcontroller, along with the encoders and displays.
This time, I used very thin enameled wire for the matrix, which worked great. But for the rest, I used standard jumper wires (like the ones for breadboards), and that turned out to be counterproductive—the gauge is too thick to route efficiently in such tight space.
What made the biggest difference was the programming experience. Unlike traditional compile-upload-repeat workflows, I could just open my IDE and edit the firmware directly on the board. KMK is still under active development, so some features aren’t super straightforward and need workarounds. One thing I really missed from QMK was the ability to print custom info on the OLED display depending on the active layer.
Road Test
This post took me over a year to write—mainly because I wanted to thoroughly test the keeb. Overall, it runs pretty smoothly, but not without quirks.
The main issue: boot time. It’s not as immediate as any QMK keyboard I’ve used. That’s the trade-off—you gain flexibility from an interpreted language like Python, but lose some speed.
Sometimes the keyboard doesn’t boot correctly and needs a restart. Occasionally, it disconnects—especially when software polls external memory. I noticed this particularly with Cura, the slicer I use for 3D printing.
Ergonomically, I think there’s room for improvement—like rethinking internal layout, moving to a PCB, and maybe switching to slim switches and keycaps. But honestly, my wrists are still thanking me.
All in all, I’m still waiting for KMK to reach a more mature state—but even as-is, this board is solid and has been my daily driver the whole time.
Happy building ⚒