Laser cutting a dactyl manuform-ish keyboard

Intro

I recently[1] went through a brief obsession with the dactyl manuform, an ergo split keyboard where each half is curved horizontally and vertically, which is meant to let the fingers rest more naturally or something.

Typically, these keyboards are made by 3d printing a large curved structure for each keyboard, with the structure having holes with tabs for the switches to slot into, and then hand soldering the keys together. However, because I'm scared of 3d printers[2], I tried to find a method that didn't use 3d printing, which I believe I was somewhat successful at.

Overview

This project is my attempt to make something dactyl manuform-ish, that is to say with a horizontal and vertical curve, and keys with staggered height, using only laser cut parts and standard-ish cherry MX style keyswitches. Electronics are a definite afterthought on this project, but I have successfully handwired a pair of these, and successfully set up and used them with QMK.

The main innovation here is in the keyswitch holders. Typically, these are made from either a thin plate the switch slots into, possibly with notches cut in for the switches tabs to grip. Since doing this on a curved surface is tricky without a 3d printer, this project instead uses two "arms" to hold the switch in place, with one arm holding the switch down, and one arm holding the switch up. Because these arms are pointed in the same direction as the switch, they can be placed in a curve on a flat surface, allowing for the keyboard's curvature.

Aside - the hubris of the keyboard enthusiast

As we head into the design section, you may notice that several aspects of this keyboard have been left incomplete. This is for two primary reasons - firstly, I considered this project more or less complete once I finished the frame, leaving with me with little motivation to work on the rest past what I needed - and secondly, I learned that I don't actually like the manuform very much. This is my folly, as someone who got into the manuform mostly because it was cool, and as someone who tried playing video games on a keyboard designed just for typing.

Still, though, I believe the fundamental techniques used here are still valid, and that from the ashes of this project a useful keyboard may arise. The design is presented below, although anything after the frame should possibly be taken with a few grains of salt.

Design

Keyswitch holders

The plate (in PCB-less designs) needs to serve two purposes for the switches - to hold them up, so they can be pressed, and to hold them down, so they don't come off the board. This keyboard exploits the design of most[3] cherry-compatible switches to perform these tasks separately - holding the switch down is done through a C-clip shaped piece that slots into the clips on the switch, and holding the switch up is done through a U-clip shaped piece that fits into the channels on the switch's retaining clip (the clip that holds the switch itself closed). This provides a surprisingly stable hold on the switch, which can be made rock solid by making the clips slightly smaller and jamming the switch in place.

The operation of the clips can be figured out pretty easily from pictures (specifically figures 3 to 7). It's worth noting that while you can theoretically remove the switches, if you're using wooden clips the hooks on the C-clips will fray pretty quickly and lose their effectiveness.

Honestly, these work really well. If you use thicker wood on the C-clips (you can't fit more than about 4mm thick wood into the U-clips) the switch is incredibly solid pressing down, and I've never had issues with switches moving upwards. Longevity on the wooden clips can be poor if you pull your switches out, but acrylic clips are fine for this, and if you find a good way to keep it wired it's theoretically quite easy to cut and swap new parts in, should anything break.

Keyboard frame

Each column of switches is on a curved "spine", providing vertical curvature, which can be adjusted per switch, should one desire. The vertical spines are then on a horizontal spine, providing curvature that can be adjusted per spine.

This method has a few theoretical downsides, though I didn't really experience any in practice. While each switch can have a unique vertical angle, they must have the same horizontal angle as the rest of their column. Additionally, because the clips require running material up to near the top of the switch, there's a limit on how close you can make the switches before the clips get too thin to support anything, though I never found what this limit is in practice. This also means the keyboard can only have stagger in one direction (in the case, column, though you could do row if you're weird).

Overall, though, none of these limitations ever really bothered me, and I found this method of frame design perfectly adequate.

Thumb cluster

The thumb cluster is a pain.

Traditionally, manuforms have a series of thumb keys that sit across the arc your thumb can naturally reach, which is usually curved on 3 axes. This is hell to try to replicate with only flat parts, so instead this project used a shorter, single axis curved line of thumb keys.

The thumb keys are just attached via a slotted disc to the main frame of the keyboard. Honestly, this was a hack, but it worked well enough, and has been sturdy enough for me to not care. This design also lets you position the thumb cluster at whatever height and angle you desire, which I went through a couple of iterations of.

Stand

The stand for this keyboard doesn't exist, unfortunately. The frame has a lot of attachment points, so I think it'd be pretty easy to design one - just cut a slotted plate of the correct height and slot angle, and sit the keyboard in it. In my experience, this keyboard requires quite a specific (and weirdly steep - I sat mine at probably about 60 degrees) angle to be comfortable, so an adjustable stand would possibly be nice, but I never got around to designing one.

Electronics

Wiring this keyboard was hell.

This keyboard was hand wired - it's probably possible to build a PCB[4], but I didn't. However, because of the clips and the frame, the bottom of each switch is buried under 2-5cm of frame, making it incredibly annoying to access.

In the end, I wired this by taking one wire per switch, stripping a short piece on the end, then poking the wire through the frame to the switch, and poking my soldering iron underneath with a blob of solder on its tip to solder the wire in place. I then took the 6 wires from each row and twisted the other ends together, then soldered a jumper to that bundle and attached it to my microcontroller. This process took several hours for each half, led to me scorching a few switches and bits of my frame, and produced incredibly bad joints.

If you for whatever reason want to try this yourself, my best advice is to stop and try a dry run of the soldering first - thread the wires and make sure things are accessible before you solder anything. I'm sure there's an easier way to do this, but I went about it with zero planning and dearly paid the price, and if you don't think clearly about it, there's a good chance you will too. Please, learn from my suffering. Don't make the same mistakes I did[5].

The halves are also just straight wired together, because I couldn't find a good place to mount a port. I'm sure it's possible to do that well, though.

Materials

I tried making these out of both acrylic and MDF. Both worked, though I honestly think the MDF worked better. The softness and bendiness means that if you cut the parts slightly too small, the wood will hold them in place quite securely.

Ideally, you want two thickness of materials - the U-clips have to be thinner, since the hole they go in is smaller (3mm fits, 6mm doesn't, I'm not sure what the actual size is) - and the C-clips and the rest of the frame should be about as wide as you can get them, for structure and stability. I used 6mm MDF for the C-clips and 3mm MDF for the U-clips because that's what I had available, and it worked fine.

Theoretically, especially with MDF, you could entirely friction fit this - I couldn't be bothered figuring out the tolerances on my laser cutter precisely, and I think this has a few too many parts[6], so I ended up gluing it. A dot of wood glue on each join kept it held perfectly fine.

Conclusions


Appendix A - Images

the top of the keyboard, showing the keys mounted in a grid
figure 1. the complete left half of the keyboard.
the bottom of the keyboard, showing the frame and mess of wiring underneath
figure 2. the underside of the left half of the keyboard.
a C-shaped clip, made of wood
figure 3. an empty c-clip.
a u-shaped clip, made of wood
figure 4. an empty u-clip.
the assembled switch clip, empty
figure 5. an assembled switch clip.
a switch inside a u-clip
figure 6. a switch placed onto a u-clip.
a switch inside a full clip
figure 7. a switch held inside a full clip.

Appendix B - Measurements

Some of the measurements I used while making this are listed below. Please note that if you do this yourself, cutter radius is very important to get right - without setting this properly, the switches probably won't be held in at all. Depending on your materials you may also need to arbitrarily reduce widths further[8] - cut a test and make sure your switches are held in to your liking. Also note that the column offsets should be customised to your hand size, or else the keyboard will be quite uncomfortable - I just did this through trial and error.

MeasurementValue
U-clip height12mm
U-clip width13mm
C-clip thinnest gap13.8mm
C-clip normal gap15mm
C-clip height10mm
Pinky finger column y offset15mm
Pinky finger column z offset13mm
Ring/first finger column y offset2.8mm
Ring/first finger column z offset3mm

[1]Actually about 4 months ago, I just procrastinated writing this for a while.

[2]By all accounts, the manuform is a terrible print, since it's huge and quite hollow.

[3]I couldn't find any switches that have different design, but they might exist.

[4]My (completely untested and undesigned) idea was to make a series of PCBs for the columns, using living hinges to curve them (idea stolen from bastardkb), and then probably include a chainable shift register on each so you can glue them together with only a few wires.

[5](The author is being a coward - this honestly wasn't actually that bad, it was just really frustrating and took a while.)

[6]Specifically fitting the columns to the horizontal spines - I think if there was only a single horizontal spine this would've worked better, but I wanted two for stability.

[7]Respectable with regards to switch feel - I personally do not care about switch sound, so I couldn't tell you if that's good.

[8]I ended up using 0.3mm cutter radius, while I think my cutter has an actual radius of 0.25mm.