Flexible firmware makes the Ergodox EZ your next favorite keyboard

Looking to replace your keyboard with something that will perfectly fit your needs? Jack Wallen has found typing nirvana with the customizable firmware of the Ergodox EZ.

Image: Jack Wallen

(Editor's note: this article has been updated with a correction to the product name and additional information about user ID.)

As a writer, I never take for granted the relationship between my brain and my keyboard. The keyboard is my physical bridge to the tools I use to ply my craft, so it must be an interface worthy of such a task.

For years I've been humming along with a Kinesis Freestyle. I love that keyboard. The action is perfect and it can be set up to ideally suit the physical demands tendonitis has placed on my wrists. So you can imagine I'd assumed this was the only keyboard for me.

And then one night, while working on one of my books, I needed a break and checked my Facebook feed. I saw an ad for a keyboard and decided, what the heck, let's take a look. I clicked on the link and found what could be a perfect match for me.

Ergodox EZ.

This new keyboard is an ergonomic, mechanical keyboard that is open sourced and fully programmable. I, like you, was very skeptical on that last bit. After all, how could they equip a consumer keyboard with the ability to be programmed? Well, I'm here to tell you that they did. It's quite genius and turns what many would consider an afterthought into something of true power and flexibility.

Don't believe me? Let me walk you through the programming of the Ergodox EZ keyboard, so you can see just how flexible this open source keyboard is.

The firmware

This is where the Ergodox EZ shines. Yes, the hardware is exceptional. It's solid and, thanks to a system of adjustable legs, allows you to configure the shape of the individual keyboards in numerous ways (Figure A).

Figure A

Figure A

My Ergodox EZ keyboard adjusted to the perfect angle.

The firmware is that which instructs the hardware what keys perform what actions. The keyboard ships with a default firmware with a layout as shown in Figure B.

Figure B

Figure B

The Ergodox EZ default keyboard layout.

Chances are you will want to change that layout. How do you do it? It's really quite simple. You'll want to do this with your old keyboard still attached (this is important).

Head over to the layout configurator, click on Clone and modify this layout, and give the new layout a name. Upon naming the layout you can then click on any key on the keyboard and then either press the drop-down and select what action you want associated with the key (Figure C), or click the key on your current keyboard that you want to associate with the newly mapped Ergodox EZ key.

Figure C

Figure C

Mapping a key in the Ergodox configurator.

Once you've configured the keymap exactly as you want it, click the Compile this layout button at the bottom of the window. When the compilation completes, click the Download this layout button and save the hex file to your local drive.

The next step is to plug in your Ergodox EZ keyboard and then download the Ergodox flashing tool. I'll demonstrate how to use this on Elementary OS Loki. Here are the steps:

  1. Download the Flashing tool and the udev rule to ~/Downloads
  2. Open a terminal window
  3. Change into the ~/Downloads directory with the command cd ~/Downloads
  4. Move the udev rule into the necessary folder with the command sudo cp 49-teensy.rules /etc/udev/rules.d/
  5. Unpack the downloaded file with the command tar -xvzf teensy_linux64.tar.gz
  6. Run the Flashing tool with the command ./teensy

The graphical flashing tool will open (Figure D) and you're ready to flash your newly downloaded firmware to the keyboard.

Figure D

Figure D

The Ergodox EZ flashing tool.

Click on the Auto button so that it lights up green. Open up your file manager to the location housing the downloaded .hex file and drag and drop that file into the flashing tool window. Now, insert the end of a paperclip into the hole at the top right corner of the right keypad until you feel a button click. At this point, the firmware will automatically flash to the keyboard and you're now ready to use the Ergodox EZ with the layout you configured. If that layout isn't perfect, you can customize it again and again.

I do recommend, however, that you either print out the layouts you create (from the configurator page) or take screenshots of them. At this time, Ergodox EZ doesn't have the ability to save your configurations and you can't upload a hex file to the configurator to tweak your work. Every time you go to the configurator, you're working with a blank page.

Although Ergodox EZ doesn't have the ability for you to log in as a user, you will notice an ID on your hexfile (for example ergodox_ez_firmware_default_kvlemx.hex). The ID is the the string between _ and .hex). You can then go to http://configure-ergodox-ez.com/keyboard_layouts/ID/ (Where ID is the unique ID string) and you can continue working on the same layout.

Is the Ergodox EZ for you?

I've typed on a lot of keyboards and, as I've mentioned, the Kinesis Freestyle has been my favorite for years. I never thought a keyboard could top the Freestyle, until I met the Ergodox EZ. I should also say that, at first, it wasn't a perfect fit. I had to tweak and retweak until I had the keyboard layout just right. And don't think that you'll switch over and automatically make the adjustment. It takes time, but it's well worth it.

The Ergodox EZ is a perfect keyboard for programmers and anyone who'd like the ability to map a keyboard to better suit their needs. Be warned, it's expensive. You'll drop a cool $240 for the keyboard. But considering this might well be the last keyboard you ever buy, it's worth every penny.

Also see