A split, concave, columnar keyboard

In the first half of 2018 I was curious to see if I might remedy some problems I perceived in standard keyboards. I designed and built the DMOTE, short for “Dactyl-ManuForm: Opposable Thumb Edition”.

The single most significant difference between the first and second units is in the concave thumb clusters, but there are many others. Only the LED mounts are unchanged.

That’s the second complete unit. You’re supposed to reach all the keys, except the two facing you, without moving your wrists.

My direct inspiration is in the name: Tom Short’s Dactyl-ManuForm, itself a hybrid of Matthew Adereth’s Dactyl and Jeff Gran’s ManuForm. The latter resembles the first commercially produced typewriter, the Hansen Writing Ball, but even the ManuForm requires its user to press the thumb keys at an angle. Fixing that was my primary impetus when I started modifying Short’s design in January. I kept the concave finger clusters, distantly inspired by Lillian Malt’s 1970s innovations in Maltron keyboards.

Professional CAD applications tend to be needlessly arcane: path dependent at worst and verbose at best. OpenSCAD is a lot more fun, but it does have some warts and not enough power. I was therefore happy to adopt Adereth’s approach to case design: Generate OpenSCAD code programmatically from a better language. CAD, being geometry, is logical enough to bring out the strengths of the functional programming paradigm.

The second working copy as viewed from its side, showing USB and serial ports. Because the connecting beam and the thumb clusters are about equally tall, the keyboard is stable even upside down, without pressing of its own keys.

I learned Clojure by cleaning up Short’s fork of Adereth’s original. My only prior experience with Lisp was superficial contact with Scheme in a computer science course. Clojure is not the old dragon. I came to think of it as Python without the classes and statements: Elegant, more internally consistent than anything I had seen, and more pragmatic than terser functional stars like Haskell. With Parinfer handling the parentheses, Clojure was a joy to work with.

Case printed, I cast the wrist rests in RTV silicone, then I wired up and flashed the first working example of the DMOTE in early May. This article was written on that first “production” unit (blue case) and updated on the second unit (burgundy case) in October.

The second working copy, a master print of software release v0.2.0.

Here’s some typing, with a notebook computer flanked by the keyboard for demonstration purposes.

I thank my predecessors and collaborators in the Git log for sharing their excellent work, as I share mine. I am most grateful to a friend, Fredrik Hedgren, who did a great job printing my prototypes and teaching me that process. I eventually bought my own filament and borrowed a printer at work; I thank my colleagues at Icomera for that opportunity. When it came time to wire up the first unit, I benefited from the sage advice of Matias Sjögren.

In 2020, I replaced a third DMOTE with an improved, albeit more bulky design: The Concertina.