This is my favorite keyboard. It’s comfortable, fast, and efficient. Make one!


  • 1 Arduino pro micro
  • 1 nice micro usb cord
  • 48 switches (your choice)
  • 48 diodes (1N4148 or similar)
  • 48 keycaps (I like DSA profile)
  • 2 ft of old ethernet cable
  • Some wire (18 AWG to 28 AWG is fine; copper is better)
  • Paracord or cable wrap (some way to keep wires from RH to LH neat and nice)
  • 3 zip ties
  • Printed parts: 1 LH, 1 RH, test plate CAD files, source
  • Firmware: split-planck-firmware


Test switch fit

Print test plate and check switch fit.

The switches should snap in from the flat side (printer bed side). The fit should be snug: neither loose nor too tight to click in easily.

Adjust printer settings (better), or change the parameters in the scad file until you have a good fit (lose post-processed chamfers). I usually make it a little tight and trim with a knife later.

Print LH & RH

When you have the right printer settings to fit the switch, print the RH and LH.

Snap in switches

Make sure they are oriented the same direction.

Solder diodes

This keyboard uses diodes to go across the rows. They should be oriented to go down and right:

Solder columns

Cut a section of wire a little longer than the column, use a marker to mark where they need to be stripped, then strip a section in the middle. Solder the columns together.

Solder RH & LH

The rows from the right hand need to carry over to the LH (where the microcontroller will live). Each row should have continuity aleng the bottom of the diode chain.

The columns also need to carry over from the RH to the LH.

Solder microcontroller

The included firmware here expects this layout:

This is what it actually looks like:

The rows go to pins a3 – a0. Then the columns go the rest of the way around.

Flash firmware

In the zip bundle, the .hex file is the kb firmware.

Command to flash from linux is:

sudo avrdude -p atmega32u4 -P /dev/ttyACM* -c avr109 -U flash:w:laptopplanck.hex

Get that ready to go, then reset the pro micro by bridging the ‘RST’ and ‘GND’ pins. Press enter and flash the firmware.


The base layer is this:

The next layer is accessed from the MO(1) key:

The next layer is accessed from the MO(2) key:

Finally, the numpad (and screenshot) layer, accessed from the MO(3) key:

Can re-arrange or remap at by uploading the laptopplanck.json file from within the firmware bundle.

3 comments on “Build a split planck keyboard

  • I’m not sure how to include photos in a comment here, but thanks for the write-up; I built one, and it’s amazing. I had been using it for a few weeks when a firmware flash killed my microcontroller and I had to go back to staggered (gross). Nothing was in the right place, there were way too many keys (more than double what I needed), and I had to reach my fingers for miles just to press common keys like ESC, F-keys, DLT, HME, and END.

    I originally built one because I was experiencing wrist pain on my staggered mechanical keyboard (Keychron C2), and the split keyboard, combined with the planck/ortholinear layout have helped tremendously. Needless to say, I’m hooked and am currently building my second one.

    • One modification I recently made was to the key layout. I realized that I never use my left thumb for the space button, and have also never seen any person’s keyboard with a symmetrical wear mark on the space bar; it’s always been more worn from the right thumb only. So I rebuilt the firmware, replacing the left-hand SPACE key with SFT_T(SPACE). This way I can still use the button as a space key if I press it, but now I can also use it as a thumb-activated shift key when I hold it down.

      Some other changes I’ve made include remapping the right-hand SPACE to CTL_T(SPACE), and ENTER to SFT_T(ENTER). These modifications come after over a month of using the keyboard, so they’re taking some getting used to, but my favorite one is having a mod-tap ctrl/space for my right thumb. As I type in Dvorak, ‘c’, ‘v’, & ‘z’ are all in my right hand, which meant that anytime I wanted to do quick copying/pasting/undoing, I had to have both hands on the keyboard. Now I can do it all with one hand. Silly? Maybe. Convenient? Most definitely.

Leave a Reply

Your email address will not be published. Required fields are marked *