Reproducing Keyboard Science

Short update: Phil Hagelberg (technomancy) has started selling complete kits to build an Atreus with a nice, wooden enclosure - if you think about building (or getting an assembled keyboard), consider buying it from him:

I recently finished my Atreus - a custom 40% keyboard designed by Phil Hagelberg ( Just like the famous ErgoDox, it features staggered rows and a more effective and comfortable use of the thumbs. The small footprint makes it very travel-friendly - I planned to use it at work and for longer coding-session on-the-go (University, Travel), but I found it also nice to just use it on the couch with the laptop sitting on an armrest next to me.


It uses the famous Cherry MX keyboard switches. I prefer Blues for typing, but I followed Phil in using Reds for the modifiers. After trying them, I retrofitted my sturdy G80 with Reds on all modifiers. They feel just great.

The other details on the build are pretty standard. You're best off checking the Git Repository on Github ( Everything needed to reproduce the keyboard is available there. The design and firmware are fully open source. I tried to do a clean job with the wiring, and while it didn't work out perfectly, I'm pretty happy with the result. Using the legs of the diodes to form the rows turned out to work really well.

A small difference to Phil's original build was my layer thickness. I used 3mm for the top- and bottom layers and 5mm for the spacer and the switch-mount plate. Suggested are 6mm, but 5mm did just work with the Teensy (the micro-controller). It's tight, but less height is better.

My motivation for this project was the long waiting period for the ErgoDox from Massdrop (it's still in German customs) and the crave for a nicer keyboard everywhere I decide to work on the laptop.

The first hours of using it were pretty awful - staggered keyboards show you without mercy all the small errors you make while touch-typing on a normal keyboard. The hardest part wasn't learning memorizing the position of the symbols, nor getting used to the small number of the keys, but fighting the muscle memory which make you try to hit a different column than the finger is supposed to hit. I still try to type a 'c' with my index finger, which just doesn't work on the Atreus.

Even days practicing on it, I'm still far behind my usual typing speed, but I'm finally after the point where I can type prose text at a reasonable pace. It doesn't feel like a hassle anymore.

Writing code gets easier too, especially in languages with good assistance from the editor (read: Emacs+Paredit). Hardest part are the keyboard shortcuts: Some of the usual combinations are pretty hard (on my keyboard layout). I need to invest more time to remap them to be more Atreus-friendly.

The most unexpected discovery I made while learning to type on the Atreus was how easy it is to type numbers. I could never figure out to hit the correct key in the number row on a traditional keyboard. Instead, I relied on the numpad, which is really slow compared to touch-typing the numrow. On the Atreus, the staggered keys makes it super easy to correlate finger/column with the correct numbers. I didn't expect this, but it makes me really happy.

All in all, I'm happy with the Atreus. It's nice to have a transportable mechanical keyboard. It's also nice to be able to learn typing on a staggered layout while waiting for the ErgoDox: The Atreus forces you into thinking about your layout and what you type. I plan on basing my ErgoDox layout on the Atreus, keeping all modifiers on the same positions, just amending the layout with more keys to make it more effective.

Many thanks to technomancy for showing me the ErgoDox in the first place and designing this nice addition to it.