Adventures with the Planck keyboard

FullSizeRender 14

I finally got my hands on a Planck keyboard!

The Planck is a funny little 40% mechanical keyboard with an “ortholinear” layout (the keys are aligned horizontally and vertically rather than being staggered). It’s DIY, fully programmable, and, most importantly of course, really cute.

The main consideration with a keyboard so small is there simply aren’t enough keys to represent every possible input, so you need to use layers. On the typical Planck, the two keys to the left and right of the spacebar are function keys for “lowering” and “raising” the active layer (the orange buttons in the image below).


It takes a little getting used to, but the benefit is that everything is right at your fingertips so you hardly have to move your hands or wrists at all. And in fact, I’ve been surprised by how easy it is to use the layers since the raise/lower keys are right at my thumbs. It’s way more convenient than using shift or control keys.

I decided to get one because I was interested in

  1. Less wrist movement while typing
  2. A keyboard that looks really tiny and cool!!! c’mon.
  3. A fun project to assemble and program.

My Planck is made up of:

Now I’ve been typing on it for about two days, and so far I’ve been surprised at how much I enjoy the layout. Typing while keeping my hands on the home row is super satisfying, and the ability to program it means I can really hone in on what I want out of it. Time will tell, but it’s already well on its way to becoming my daily driver.

Kits have been available on Massdrop in the past, but right now you can buy parts for the Planck from Assembly is simple enough: set the top plate on the PCB, place the switches and solder them into place, then screw it into the case.

The fun part, in my opinion, is programming it with your own custom keymap. There are lots of instructions in various READMEs in the QMK Firmware repo, which is used to program all kinds of keyboards on all kinds of platforms, but here are some simple instructions specifically for Mac OS X:

  1. Install some things with Homebrew. avr-libc is a library for microcontrollers, and dfu is a command line utility for the actual programming.
  2. Clone the QMK Firmware git repo.
  3. Navigate into the project’s Planck keymaps directory, /keyboards/planck/keymaps.
  4. Copy the default keymap directory to a new directory called whatever name you want for your custom keymap.
  5. Open mynewkeymap/keymap.c in a text editor and take a look around. It should be pretty self-explanatory. Here’s a list of the keycodes you can use. Make whatever changes you want, then save.
  6. Navigate back to the /keyboards/planck directory and run:
  7. With a pin, push the reset button on the bottom of the keyboard. Then run:

Here’s my current layout, along with the keymap.c file in my fork of qmk_firmware. The legends in the middle are the main layer, the top legends represent the “raise” layer, and the bottom legends represent the “lower” layer.

Screen Shot 2016-11-14 at 2.02.46 PM

It’s basically the default layout with a few changes. The parentheses, curly braces, and brackets are in the upper layer on the home row since I use them so much writing code. My control key is by my left pinky for shortcuts in the terminal, and Esc is on the same key in the lower layer for Vim.

We’ll see how long I last before I decide I need another Planck to use at home 🙂

2 responses to “Adventures with the Planck keyboard”

  1. MoonIk Jang says:

    Hello, I am Korean. I have recently used the planck keyboard. I was able to see your wonderful keyboard on the internet. I want to introduce planck keyboard to others in my country. And I want to link to your planck keyboard. If it is a problem, I will not do it. Happy with your Planck.

    모든 일에 행복이 가득하길 빌어요.

    • Leah says:

      Hi there! I’m glad you discovered the Planck too, it’s an awesome keyboard. I’d love to have you link to my post, thanks for asking. You have my permission. Good luck! 🙂

Leave a Reply

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