3D Printed Keyboard

A fully 3D printed computer keyboard.

View on GitHub

History

After working for almost a decade typing behind a keyboard, around 2011 I started feeling wrist pain. Having a whole career ahead of me, I decided I had to do something to avoid RSI. By that time, I bought myself 2 TypeMatrix keyboards and started the switch to Dvorak layout. Six months in with this new setup, I was typing Dvorak 20% faster than QWERTY.

During those months, I absolutely fell in love with TypeMatrix layout:

This is all great, but obviously, there were caveats:

Hacking TypeMatrix keyboard

In 2012, I had a ski accident, that got me stuck in a wheelchair for a month and at home for 6 months. Having plenty of time available, I decided to fix the firmware issues. At that time, Arduino Leonardo was introduced, supporting emulating a keyboard, so it was a perfect fit for doing this. I quickly assembled a prototype:

TypeMatrix prototype

That worked very well! Only problem: Arduino keyboard support was very limited. It wouldn’t work at the BIOS and could not send any “special” keys like the usual multimedia keys. That was a deal breaker.

Going out of Arduino environment, we had the V-USB library, that should do the trick. Problem is, since it is a software solution, I found many reports of random incompatibilities with Linux or Mac. Not an option as well.

I finally found a library called MyUSB (renamed to LUFA later on). This was the real deal. It had all the features needed.

Not being able to affordably buy a compatible FPC connector, I cannibalized TypeMatrix’s PCB:

Cannybalized PCB

…wired it to a Teensy 2.0++

Wiring

…wired all the electronics, including a shiny OLED screen…

Electronics

…wrote a (very shitty) firmware (that “just worked”), and got to the final result:

Top Screen

Going further

I kept using this hacked TypeMatrix for years, but I was envy of things like Ergodox (or its commercial version) and Truly Ergonomic. All those guys keep the vertically aligned keys but bring the angled split layout and curved keys at your fingers. Those things attracted me very much, but I was not willing to give up the TypeMatrix layout, that I grew so fond of it over the years.

In 2016, myself and a friend (thanks, Ronaldo!) sketched this design over beers:

Draft

It pretty much keeps TypeMatrix spirit but gives the two features I was missing.

It was pretty close, but printing a thing this wide would be a challenge. It is too big for a single print, meaning I’d have to print 3 separate parts and attach them together somehow. Its mechanical strength would be questionable. Also, I reached the conclusion that fixing the angle between the parts would be a bad idea since it would not be adjustable. On top of that, I sketched this on… SketchUp. It is great for architecture, but terrible for parts design (non-parametric and very imprecise).

Going 3D!

By 2017, 3D printers finally became accessible and could deliver decent quality. I also moved from Brazil to Ireland, meaning buying a printer would just be just expensive, instead of having to sell your liver for one. I got myself an Original Prusa i3 MK2, which is highly rated by pretty much everyone to deliver prints comparable to printers 3x more expensive. Finally, unblocked.

My original idea was to go for Cherry ML switches, so I could keep a low profile, and avoid those high Cherry MX keyboards. After waiting for months for RS Online to get me Cherry ML switches, I gave up. Cherry ML are also not supposed to be used without a PCB, which is something I’d like to avoid doing (cost and effort), I was not even sure if I could fit them into 3D printed sockets. I decided to go for Cherry MX Brown (lightweight 45cN).

The CAD design of the keyboard took one order of magnitude more effort than what I was expecting, but the result was awesome:

Top Back Inside

After many many hours of 3D printing the parts and soldering everything:

Inside Left Inside Right

Finally I wrote a decent firmware (based on my previous attempt) and… the final result:

Top View