Introducing the SHARK (Split Hand ARc Keyboard)OK - so it doesn't look like a shark or even remotely aquatic, and there isn't that much "arc" in the thumb keys, but I felt the acronym was just too cool to pass up. So here it is:
I'm very pleased with the result - the case looks fantastic and it turned out just like I envisioned.
HELP: I'm missing a few key caps for my 2nd keyboard so if you happen to have a 1u run, 1u tab, 1u del, 1u ctrl, 1.5u blanks (2) keys from DSA retro (or the 1/1.5u mods kits) that you'd be willing to sell, please PM me.
BackgroundI've been looking for a good, mechanical split hand ergonomic keyboard ever since my trusty Microsoft Natural died a few years ago. I tried an Ergodox and a Kinesis but neither felt right. So here's my version of a good split hand keyboard. My goals were:
- split hand, matrix layout, ~10 deg angle
- close to a qwerty layout
- consistent key caps (no R1 keys in the R4 row)
- function layers for keys I use in programming: []{}()+-*/=\'~|
I work 1/2 time from home so I need to build two keyboards - one for work and one for home. I was originally going to have it made out of steel and was looking a BigBlueSaw. That lead me to design a symmetric layout because of the multi-unit price break they give. But - after reading several threads on using plastic cases, I looked into using Ponoko which was going to be much cheaper so I decided to give that a try.
I lucked out and got two full DSA Retro key cap sets which makes doing a custom build much simpler. The huge selection of cap sizes and the DSA profile means I could move keys around as much as I liked without worrying about cap row profiles and cap sizes.
Case and PlateThe case is a five layer design. There is a clear acrylic 3 mm base, two black acrylic 3 mm spacers, a black acrylic 1.5mm switch plate, and a walnut veneer 3.5 mm top plate all laser cut by Ponoko. I had them make a prototype out of cardboard (for about $20) so I could test all of the spacing and general layout which worked very nicely.
The biggest problem with using plastic is the switch plate. The 1.5 mm switch plate is very flexible. Super-gluing the spacers to the switch plate helps a lot but I still had one part of the plate crack after inserting a switch (not a problem in the end as the super-glued spacers kept it rigid). And many of the switches will pull out if I try to remove the cap. I'll probably end up gluing the switches into the plate but I wasn't sure about that so I haven't done that yet. Using a metal switch plate might be a lot simpler (but a lot more money).
To keep the switch plate from bending while typing, I used two 3mm spacers. The height of switches below the switch plate is ~6mm so the plastic posts on the switch rest against the bottom plate which eliminates any flexing after it's been assembled. The switch leads are also too long so I cut every lead down below the plastic posts on the switches. Another problem with plastic is that the sheets have a thickness tolerance of about +/- 10%. My spacers came out to be about 5.8 mm thick and the switches were more like 6.2 below the plate. I used an old number plate I had laying around to make the sanding jig shown below. I little experimentation and I found if I used two spacers on each side (1 w/ the protective wrap still on it), I could reliably sand down the switch posts to 5.8 mm to match the spacer depth. It took a little while (I did 180 switches, 3 at a time and clipped 4 leads/switch) but I think it was worth doing.
WiringThe switches I had all have diodes in them so I used those and hand wired the matrix together. I've found the best wire to use is cat-5 cable. You get 8 wires with different colors from each cable, they're very cheap, and you can get 26ga, 30ga, solid and stranded wire. I ordered a 10' cat 5 cable with 30ga stranded wire, 26ga solid wire, and a USB cable from Monoprice for less than $10 which gave me all the wire I needed.
I find soldering stranded wire to be a pain - the strands always get loose so I use solid wire whenever I can. The row and column matrices are all down with 26ga solid wire. The connections between the hands and to the Teensy are done with 30ga stranded wire to keep the size down. It would be nice to have a detachable cable (I really like the ErgoDox Infinity system) but I didn't want anything that complicated so I ran 14 wires (7 twisted pairs) between the hands which worked fine. It's definitely not as robust as a disconnectable cable but it should be fine for my use. Wiring 22 stranded 30ga wires into a Teensy is a real test of patience...
I did one hand using the "mark and melt the insulation" technique and the other by stripping longer pieces of insulation, cutting them and sliding them back on the wire. Melting is faster, but uglier and harder to get the gaps in the right places. Stripping, cutting, and putting the insulation back on takes longer but looks nicer and is easier to get right the first time.
I cut a slot in both spacer layers (with a bandsaw) to accommodate the cable between the hands and hot-melt glued it in place. The micro USB connector fits in a slot cut in one of the spacers and is also hot-melt glued.
ConclusionI'm still working on firmware options (using TMK) and I have one key that is blocking any other keys in the column (diode problem?) to debug but overall everything is working great. And I have to build a second board for work and make a small stand to tent the back up a little bit. Overall I'm very pleased with the result. I've attached the CAD file I used to do the design in case anyone is interested (if you want the Ponoko files split into layers, let me know).