A few years ago, I began having shoulder and neck pain. Looking to improve the ergonomics of my setup, I began researching keyboards.
If you've never had the pleasure, picking a keyboard is like finding a doctor; you're clueless, the advice is conflicting, and it's unclear which choice will net you a few extra miles from your flesh and bones.
After reviewing what literature I could, the impression I came away with was this:
Everybody is happy with something different, and there are no rules.
And there's a lot on offer:
Ultimately I decided I wanted something with mechanical switchs, recessed keys, an ortholinear layout, and fully-split so I could open my chest more while working. Initially, I thought I'd give up the split and go for the Kinesis Advantage, but then I discovered the Dactyl. A fully-split, ortholinear, contoured board I could print myself? How cool is that?
Here's my parts list:
The case itself includes a place to attach an 18mm panel mount cable. The only one I could find was USB micro, which necessitates a USB Mini to USB Micro adapter. I ended up running a male-to-female extension out of the hole and plugging it in there instead.
I also took Matt Adereth's advice and bought a switch tester to figure out which switches I'd buy. I settled on the Cherry MX Clears, which seemed the least likely to drive my coworkers crazy.
I'm lucky to have access to free PLA and print time at work. I opted for a variation of the original base which added wrist rests and a roomier enclosure for the switches.
The print came out... okay. I'm new to 3D printing; outside a badge holder, this was the first thing I'd ever printed. I suspect a little more familiarity with the practice would have gone a long way; c'est la vie.
The included instructions offered two paths:
The printing instructions were intimidating, so I went the hand-wired route. Hand soldering boils down to:
Not having a suitable workbench, I cleared off the kitchen counter and set to work.
I was lucky to stumble upon a great collection of keyboard hand-wiring tips. The author recommended wiring columns by tightly wrapping one arm of the diode around a switch leg, then soldering the other arms together.
Use needlenose pliers to form the loops, then apply a drop of solder. I squeezed the loops on the pin before soldering.
Once the diodes are in place, solder each to the next in the column.
Each of the thumb cluster switches have to be wired to a different column; my initial wiring took too much space, so check the later photos if you need a reference. There's not a lot of space in the original Dactyl case!
For the rows, I again used the techniques from the keyboard hand-wiring tips. First, I laid the wire across the switches and marked where it crossed the switch arms. Then I split away the sheathing using wirestrippers at the marks.
I laid the wire across the switch pins, bent the pins over the wire and soldered them in place. I used 22 gauge wire, but most guides used magnet wire instead which seems like a better choice.
I left plenty of excess, planning on trimming the wires to size after positioning the Teensy and I/O expander. This also made breadboarding much easier.
This step was pretty painless; I soldered wires into the Teensy/MCP ahead of time, test fit where the jack would sit, cut the wires to size and soldered the on. There was enough play in the wire to reposition the jack when the time for the final fit came.
After testing all the rows and columns with a voltometer, I breadboarded the circuit to work out any remaining kinks.
I thought the header pins would be sufficiently snug to test, but ended up being wrong about that (not until after I had ordered another Teensy, though).
Once I was satisfied that things worked as intended, I moved on to the final steps of soldering things in place.
Wiring the Teensy was pretty straightforward. The guides I found the most useful were:
Both wiring diagrams had some vestigial connections that I've marked off below.
Courtesy Matt Adereth/Joe Devivo
Per my original plan, I trimmed the wires and soldered them in place. This approach worked pretty well for the Teensy side, but wasn't as successful on the opposite hand.
Wiring the I/O expander was a little trickier; I tried the same approach of leaving some extra wiring and trimming it to fit after positioning the expander, but this turned out to be pretty difficult.
Getting the wires soldered to the pin was a challenge; I bent the pins 90 degrees with a needlenose, then soldered wires to them with my "helping hand".
Note that I ran two behind the MCP, which helped with keeping things tidy.
And then soldering them to the rows and columns wasn't much easier:
At first blush things seemed okay, but then I realized I had shorted two columns together. While trying to fix that, the pins fell out, leaving me waiting for a replacement in the mail.
When the new MCP arrived, I soldered it to some leftover PCB from another project. This made things much easier.
(If you're using this as a reference: the top-right blob of solder was a mistake.)
Some final useful resources for the novice:
In parallel to getting things soldered together, I flashed QMK onto the Teensy. Troubleshooting might be a thing for you (it certainly was for me). Here in no particular order are some tips and tricks to help you along the way:
print("here")
route.Once you've gotten things booted, I'd recommend printing out the layout you use (e.g. the dactyl/default) and keeping it handy for a few days, just in case.
Before sealing up the case, I decided to spray paint the wrist rests black. Here are the glamour shots:
Overall I thought this project would be fast (it wasn't) and cheaper than buying a nice keyboard outright (it definitely wasn't). Despite that, I'm very happy with the results and would encourage anyone to give building a keyboard a chance!