Dactyl Generator is a website to generate 3D model in form of scad file for dactyl keyboard case. This project dactyl-generator-demo is a Java program which shows how the parameters work by generating models and preview images using Dactyl Generator API. It helps you adjust the parameters. Currently only dactyl manuform is demonstrated.
The curvature and tenting are measured in radian. PI radian is equal to 180 degree. PI/180 is equal to 1 degree.
The original Dactyl Generator website was reported to be down on 2022-06-23. Thanks for Michael Bugert hosting an alternative website using the open source project. If something bad happens in the future, check in the issues whether someone generous hosts an alternative website, or follow the steps to run the website on your own computer.
- Base
- Keys
- Curvature & Tenting
- Connectors
- Form of the Case
- Hotswap socket
- Thumb cluster offsets center x (toward the pinky)
- Thumb cluster offsets center y (toward the index)
- Thumb cluster offsets center z (altitude)
- Stagger
- Index finger measurement y
- Index finger measurement z
- Middle finger measurement y
- Middle finger measurement z
- Ring finger measurement y
- Ring finger measurement z
- Pinky finger measurement y
- Pinky finger measurement z
- Wide pinky
- Height offset
- Web thickness
- Wall thickness
- Wire posts
- Screw inserts
- Misc
- Known Issues
- Credit
- External Links
- Sponsor
This is a base model for comparison. Most of parameters use the default value.
Those non-default values are specified in form of (default value used value).
The combination of (number of columns: 6, last row key counts: use all keys)
helps demo the effect of param hide bottom pinky
.
If param height offset
is set to default value 4mm, the demo model of some
parameters is broken, so it’s set to 10mm.
- number of columns:
56 - number of rows: 4
- thumb key count: 6
- last row key counts:
twouse all keys - key hole: Box and MX
- inner index finger’s column: normal
- hide bottom pinky: no
- column’s curvature: pi/12 (15°)
- pinky’s column’s curvature: pi/12 (15°)
- row’s curvature: pi/36 (5°)
- center of the curvature for the column: pinky finger’s column
- tenting angle: pi/15 (12°)
- rotation around row axis: pi/180 (1°)
- use loligagger’s external holder: no
- connector: RJ9
- USB hole: Mini
- hotswap socket: no
- thumb cluster offsets center x (toward the pinky): 6mm
- thumb cluster offsets center y (toward the index): -3mm
- thumb cluster offsets center z (altitude): 7mm
- custom thumb cluster (Experimental): no
- custom thumb cluster top right, top left, middle left are skipped. See known issue #1
- stagger: yes
- index finger measurement y: 0
- index finger measurement z: 0
- middle finger measurement y: 2.8mm
- middle finger measurement z: -6.5mm
- ring finger measurement y: 0mm
- ring finger measurement z: 0mm
- pinky finger measurement y: -13mm
- pinky finger measurement z: 6mm
- wide pinky: no
- height offset:
4mm10mm - web thickness: 7mm
- wall thickness: 3mm
- wire posts: no
- screw inserts: no
- show keycaps: no
- right side or left side: right
2, 3, 3-mini, 4, 5, 6 in order
“no last row” vs “use all keys”
column 3 to 6 have 3 rows
two vs “use all keys”
column 5 and 6 have 3 rows
Cherry switch and Gateron switch are MX switch, which have a notch. Outemu switch is similar to Kailh Box switch. TTC switch is MX switch.
MX vs “Box and MX”
Additional nub which is stuck in the MX switch notch. Without the nub, hot glue is required.
“MX snap-in” vs MX
Notice the space under the nub, which helps nub firmly snap in the switch notch. I personally prefer MX snap in to MX when I use Gateron switch.
Alps vs “Box and MX”
Key hole size is different
Choc vs “Box and MX”
The switch hole wall is thinner. Added in Sep 2020 ibnuda/dactyl-keyboard#50 and some fixes later
Kailh vs “Box and MX”
The two teeth of switch shell can be stuck in the notch.
I only have one Kailh box white switch. This switch can be stuck neither very badly nor very well. Hot glue is unnecessary. Because the size of switch and 3D printed keyhole have allowance or tolerance, your case may be different from my test result.
Cherry and Gateron MX switches can be plugged into Kailh key hole, but are much less firmly stuck than MX snap in. In my test to Gateron switches, there is a chance when I pull out the keycap, the switch is also pulled out, which breaks the soldering. Not a problem in the case of hotswap.
“Use inner column (like ergodox)” vs Normal
Two more keys on the left
Without vs Normal
The left most column is gone
Yes vs No
The bottom right key is disabled
PI radian is equal to 180 degree. PI/180 radian is equal to 1 degree.
pi/6 (30°) vs pi/12 (15°)
The curvature pi/6 of (index, middle, ring) finger’s column, that is, column 1, 2, 3 and 4 is steeper
pi/6 (30°) vs pi/12 (15°)
The curvature of pinky finger column, that is, column 5 and 6 is steeper
pi/18 (10°) vs pi/36 (5°)
Index, middle, ring, pinky in order
pi/6 (30°) vs pi/15 (12°)
Row tilt is larger
pi/10 (18°) vs pi/180 (1°)
-pi/10 (-18°) vs pi/180 (1°)
-pi/36 (-5°) vs pi/180 (1°)
4:00 to 25:00 of Kevin Eckert’s build log is a good reference.
I don’t try this and I am not sure the connector size is the same. TRRS Micro USB option is more recommended than this if you want internal connector.
“internal connector TRRS Micro USB” vs “internal connector RJ9 Mini USB”
- A 3.5mm audio jack connector PJ-320B can be used in the TRRS hole of case
- A micro USB breakout board can be used in the USB rectangle hole of case
- The pro micro board can be hung on the L hook (also called pro micro holder)
- The pro micro board is connected to the USB breakout board with a cable
This looks more complicated than external holder, but it’s fine to use internal holder in the secondary part (typically the right part), because the secondary part is connected to the master part with an audio cable and no USB is required.
micro USB breakout board
Below image comes from Leo’s build log.
The position of the L hook (also called pro micro holder) is not calculated correctly in some case. Check it carefully. For example with the default dactyl manuform parameters, the L hook is separated from keyboard case.
Either consider external holder or follow below steps to change the position.
- click openscad menu
window
->editor
to open code editor - right click the L hook (pro micro holder), click the
cube
to jump to the code - the L hook is a difference of a big cube and a small cube
difference () { translate ([-94.9015632882982, 24.40298907331629, 16.208123960789713]) { cube ([6, 12, 12], center=true); } translate ([-95.9015632882982, 23.40298907331629, 16.208123960789713]) { cube ([4, 10, 12], center=true); } }
- wrap the
difference()
statement with atranslate([x, y, z])
statement, for exampletranslate([-1, -2, 3]){ difference () { translate ([-94.9015632882982, 24.40298907331629, 16.208123960789713]) { cube ([6, 12, 12], center=true); } translate ([-95.9015632882982, 23.40298907331629, 16.208123960789713]) { cube ([4, 10, 12], center=true); } } }
moves the L hook (pro micro holder) 1mm to the left, 2mm back, 3mm up
“internal none” vs “internal RJ9 Mini USB”
This is used for wireless keyboard using non-chargeable batteries or wireless charging. If use wired chargeable batteries, no hole to plug the USB cable for charging.
Yes vs “internal RJ9 Mini USB”
The case back wall thickness is about 5mm, if wall thickness is 3mm by default, which is too thick for promicro v1 and v2 holder. The promicro v3 holder fits the case even though not 100% well-fitting. There is a separated part in v3 holder model. Here is the fixed version for right case and a mirror version for left case. The 3.5mm audio jack connector PJ-320B and pro micro board fit the holder.
It is highly recommended to set connector to none
,
otherwise the hole may not be cut correctly and prevent the external holder from plugging.
A pull request is created but no response from author.
There is pro micro type-c version which is 2mm longer than micro USB version.
I made a type-c compatible holder by lengthening 2mm and enlarging the USB hole. Notice that it is untested. left model and right.
Yes vs No
Glue the hotswap socket
The greater the value, thumb cluster is closer to right, toward pinky finger, toward x positive direction
-10mm vs 6mm
The greater the value, thumb cluster is more toward to index finger, toward y positive direction
-23mm vs -3mm
The greater the value, thumb cluster is higher
27mm vs 7mm
No vs Yes
The greater the value, index finger’s column (column 1 and 2) and thumb cluster are more far away from hand, toward y positive direction
10mm vs 0mm
The greater the value, index finger’s column (column 1 and 2) and thumb cluster are higher
15mm vs 0mm
The greater the value, the middle finger’s column (column 3) is more far away from hand, toward y positive direction
10mm vs 2.8mm
The greater the value, the middle finger’s column (column 3) is higher
10mm vs -6.5mm
The greater the value, the ring finger’s column (column 4) is more far away from hand, toward y positive direction
10mm vs 0mm
The greater the value, the ring finger’s column (column 4) is higher
15mm vs 0mm
The greater the value, the pinky finger’s column (column 5 and 6) is more far away from hand, toward y positive direction
0mm vs -13mm
The greater the value, the pinky finger’s column (column 5 and 6) is higher
26mm vs 6mm
Whether the right most column uses 1.5u keycap
Yes vs No
The overall height of the keyboard case
4mm vs 10mm
Top part of the keyboard around the keyholes
20mm vs 7mm
Wall around the keyboard
1mm vs 3mm
Sorry I haven’t tried it. Enable it if you think it helps wiring.
5 screw hole. They are hollow even though they looks solid in the rendered preview image, because OpenSCAD full geometry render is time-consuming.
Yes vs No
Just for display
Yes vs No
Left vs Right
- Custom thumb cluster
This function is experimental and only top 3 thumb keys (take right thumb cluster for example, top right, top left, middle left) are customizable. See this dactyl generator issue for an example. The demo to these parameters is skipped.
- Original Dactyl Generator goes to ibnuda
- Hosting the alternative Dactyl Generator website goes to Michael Bugert
- Original dactyl keyboard design goes to adereth
- Dactyl manuform fork goes to tshort
- I just use dactyl generator API to generate the images.
Though I speak Chinese in the videos, the videos are still helpful. You can find more build tutorials in Youtube.