This is a fork of the okke fork of the l4u fork of the tshort fork of the Dactyl, a parameterized, split-hand, concave, columnar, ergonomic keyboard.
- Added support for tilting outer index and pinky columns only
- Increased tent angle to 40 deg
- Adjusted case to remove jank around top index corner
- Changed to use vertical MCU holder
- Upsized top plate attachment screws from M2 to M3
- Modified case walls connecting to thumb
- Updated rendered thumb caps to rotated SA R1, which I use.

- Increased tent angle
- Added global thumb angle adjustment
- Adjusted case to still accommodate usb-holder with increased tent
- Reworked gel wrist rest holder to not distort at higher tenting angles
- Reinforced connection between columns with cutouts for connector / wiring clearance
- Added option to increase angle of lower two lower keys (inspired by rmtz Naive design)
- Added rendered option for keycap preview
- (Experimental) Added optional retention clip to assist with one-piece flexible PCB
- (Experimental) Added optional solderless socket option
- NOTE: you will probably have to increase OpenSCAD params:
- Returned back to one solid piece top case deisgn for easier printing
- Subtraced space around keycaps to improve clearances
- better clearance on top row for middle and ring finger keys
- thick ABS caps still not recommended
- Adjusted stagger and column height deltas
- Extended bottom plate to connect wrist rest
- Wrist rest can be positioned to adjust X, Y, or Z placement (adding or removing shims)
- Added modified version of cyrstalhands wrist rest holder
- Hotswap north facing switch plates
- Increase pinky stagger
- Adjusted column spacing for better clearance
- Continuous (vs. recessed) bottom plate with filleted holes
- Exoskeleton top case design
- Rendered both 4x6 and 5x6 versions with bottom plate
- (orig. Tightyl) As small around the keys as possible
- (orig. Tightyl) Smoother transition between thumb and fingers (less facets)
- (orig. Tightyl) Thicker walls in steep regions where walls were too thin
- Created ("working" but unpolished) SCAD version of USB holder for modifications
- Provide better clearance to USB cables plugging into controller
- Adjust size to better hold Elite-C controller
- Taper angle to reduce waste material
- Make holder shape symetrical to case notches so it fits upside down or right side up
- Add option for square reset button to be held as well

- Uses typical COL2ROW diode direction and pins for dactyl manuform
- Should be backwards compatible with dactyl-manuform 5x6 firmware from confrom
- Orig. Tightyl (white) had more row curvature, and wider spaceing between columns
- New Compactyl (blue) uses a flatter row curvature, but increases tent to result in similar keyboard angle
- New Compactyl (blue) is approximately 4mm taller (plus additional heigh for bottom plate if used) because of space requried by hot swap holders below pinky columns.

Setting up the Clojure environment
- Run
lein auto generate - This will regenerate the
things/*.scadfiles whenever the .clr file is saved - Use OpenSCAD to open a
.scadfile. - Make changes to design in
src/dactyl_keyboard/dactyl.clj, open scad files will auto regenerate, OpenSCAD will rerender. - When done, use OpenSCAD to render, then export model STL files which can be printed by 3d printer slicing software.
- Edit the path for OpenSCAD in
create-models.shif needed - Change any other settings for which files you want to render
- Wait for STL files to appear (this may take a minute or two)
- I gave up trying to keep good values for both 4x6 and 5x6 options. So when adjusting the number of rows / cols, or tenting angles, (amoung other larger design changes) you will most likely have to update some magic numbers. I recommend opening the test.scad file and manipulate:
- defn column-curvature
- defn centerrow
- def centercol
- defn column-offset
- def keyboard-z-offset
- def wrist-rest-z-height-adj
- defn usb-holder-offset-coordinates
- defn screw-insert-all-shapes
- When trying things out, 10 seconds of rendering time in OpenSCAD is really annoying. Load one of the test outputs with commented out parts that you aren't changing / don't use.
- If you're not sure what things are generted by a piece of code, color them in using something like
(->> SOMETHING_HERE (color RED))(see examples in dactyl.clj).
Copyright © 2015-2020 Matthew Adereth, Tom Short, Leo Lou, Okke Formsma, Derek Nheiley
The source code for generating the models is distributed under the GNU AFFERO GENERAL PUBLIC LICENSE Version 3.
The generated models are distributed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0).











