This is a fork of the Dactyl, a parametrized, split-hand, concave, columnar, ergonomic keyboard.
The main change is that the thumb cluster was adapted from the ManuForm keyboard (geekhack). The walls were changed to just drop to the floor. The keyboard is parametrized to allow adjusting the following:
- Rows: 4 - 6
- Columns: 5 and up
- Exceptions to the rectangle shape of the matrix
- Row curvature
- Column curvature
- Wrist rest curvature
- Row tilt (tenting)
- Column tilt
- Column offsets
- Height
- Exceptions (tilt and placement) for all individual keys
- Minor features: LED holder etc.
Tom Short, who forked the Dactyl, built a 4x5 version (40% size). See the following model files for configurations that may be most common:
Setting up the Clojure environment
Generating the design
- Run
lein repl
- Load the file
(load-file "src/dactyl_keyboard/dactyl.clj")
- This will regenerate the
things/*.scad
files - Use OpenSCAD to open a
.scad
file. - Make changes to design, repeat
load-file
, OpenSCAD will watch for changes and rerender. - When done, use OpenSCAD to export STL files
Tips
- To render a complex model in OpenSCAD you may need to go to Edit >> Preferences >> Advanced and raise the ceiling for when to “Turn off rendering”
- Some other ways to evaluate the clojure design file
- Example designing with clojure
Pregenerated STL files are available in the things/ directory.
When a model is generated, it also generates a .scad
model for a bottom plate.
This can be exported to a DXF file in OpenSCAD.
The things/ directory also has DXF files for the bottom plate.
When laser cut, some of the inside cuts will need to be removed.
This model can be tricky for non-professionals to print. It's wide, so Short had problems with PLA on a Makerbot with edges warping. This can cause the printer to think its head is jammed. Even if it successfully prints, warping can cause problems. On one print, the RJ-9 holder was squished, so Short had to cut down his connector to fit.
The 4x5 STL left/right pair from the things/ directory is in the thingiverse for public printing
Here are the materials Short used for wiring his version.
- Two Arduino Pro Micros
- Heat-set inserts
- M3 wafer-head screws, 5mm
- Copper tape
- #32 magnet wire
- #30 wire
- 3-mm cast acrylic
- Veroboard stripboard
- 1N4148 diodes
- Female RJ-9 connectors
Short wired one half using the traditional approach of using the legs of a diode to form the row connections, with magnet wire for columns. That worked okay. The magnet wire is small enough, it wants to move around, and it's hard to tell if you have a good connection.
For another half, Short used stripboard for the row connections. This allowed him to presolder all of the diodes. Then, Short hot-glued this in place and finished the soldering of the other diode ends. Connections for the diodes were much easier with one end fixed down. On this half, Short also used copper tape to connect columns. This worked a bit better than the magnet wire. You may want bare tinned copper wire for columns (something like #20). With the stripboard, it's pretty easy keeping row and column connections separate.
Note that a telephone handset cable has leads that are reversed, so take this into account when connecting these leads to the controller.
The 3D printed part is the main keyboard. You can attach a bottom plate with screws. The case has holes for heat-set inserts designed to hold 3- to 6-mm long M3 screws. Then, Short used wafer-head screws to connect a bottom plate. If wires aren't dangling, a bottom plate may not be needed, so inserts won’t be either. You do need something on the bottom to keep the keyboard from sliding around. Without a plate, you could use a rubber pad, or you could dip the bottom of the keyboard in PlastiDip.
For more photos of the first complete wiring of v0.4, see Imgur.
This is how the rows/columns wire to the keys and the Pro Micro
This alternative is also for the Pro Micro. Make sure the firmware is set up correctly (e.g. change row pins with col pins) if you are going to use this.
Firmware goes hand in hand with how you wire the circuit. Short adapted the QMK firmware here. This allows each side to work separately or together. This site also shows connections for the Arduino Pro Micro controllers.
Copyright © 2015-2018 Matthew Adereth, Tom Short et al.
The source code for generating the models (everything excluding the things/ and resources/ directories is distributed under the GNU AFFERO GENERAL PUBLIC LICENSE Version 3. The generated models and PCB designs are distributed under the Creative Commons Attribution-NonCommercial-ShareAlike License Version 3.0.