Skip to content

A few months back I stumbled upon the world of mechanical keyboards. After a trip down the rabbit hole reading about the different “clicky-ness” of the various switches and about ortholinear vs staggered layouts, I thought it might be fun to put one together. 

I don’t really need a new keyboard as the Apple Magic Keyboard I have is just fine for my daily use, and considering how expensive some custom keyboard setups can get, I wasn’t really prepared to spend $200+ just for the fun of soldering some switches and building macros in QMK.

I had the idea to put together a small “macro pad” keyboard with 9 or 10 keys that could be programmed to Xcode got keys. Handwiring was my first thought, but without a 3D printer, getting a custom case to build in was going to be a hassle (and more $$ than it was worth to me). After some more searching around, I found the 9key PCB from The 9key simplified the build and when stacked on the second half of the board, doesn’t need a case.


Here’s what I ended up with:

  • 1 x 9key PCB from = $7.50 + 5.75 shipping
  • 1 x Chinese Arduino Pro Micro clone from eBay = $5.75
  • 9 x Gateron Brown switches from eBay = $6.85
  • 9 x 1N4148 diodes (pkg of 100) from eBay = $1.00 + $3.78 shipping
  • 4 x M3 stand offs from Digikey = $2.68
  • 8 x 10MM M3 Pan Head Screws from Digikey = $2.08
  • 1 x BS3-1000 reset switch from Digikey = $0.78

Total cost: ~$36 (I won’t count shipping from Digikey, as there were several other items in the purchase that contributed to the shipping cost.) Also, I still haven’t purchased key caps, so final cost should be closer to $40 or $45.

When the screws showed up, turns out I bought plastic ones, but they work just fine. Also, the stand offs are about twice as long as necessary, so the keys sit up way higher than needed. I may cut these down at some point.

The Build

The build instructions and firmware link from Switchtop is now dead, so I was flying blind on assembly. There is basic information printed in the PCB, but no instructions more specific than “mount Pro Micro last”.

I soldered the diodes in first, then the reset switch, then the switches. I wish I had found a way to keep the switches aligned while I was soldering them, as a few aren’t quite straight. The holes in the PCB are designed to accommodate several different switch types, so the holes allow some movement once the switch is placed. Next, I placed the pro micro. Once the switches are in, it’s impossible to solder it in place. However, it fits snugly and makes a good connection even without solder. I assume this is by design.

I plugged it in and it connects!

The Firmware

I used the QMK configurator ( to setup my board and generate the hex file to upload to the pro micro. I used the QMK Toolbox Mac app to upload the firmware. This took a little while as the pro micro would be recognized, then disconnect quickly. This may be due to using a cheap Arduino clone. Eventually, I managed to get the firmware flashed by enabling the “Auto flash” setting in QMK Toolbox so that the firmware would be flashed as soon as the board was recognized.

I setup the keys like this:

Build Run Clean
Cut Up Paste
Left Down Right

Build, Run, and Clean are ⌘B, ⌘R, and ⇧⌘K respectively. These are the standard Xcode hotkeys.

My firmware file can be downloaded here: <TBD>


Reverse of board with pro micro attached

Assembled macro pad

Bottom of board