Git Product home page Git Product logo

dactyl-generator-demo's Introduction

Dactyl Generator Demo

中文版

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.

Table of Contents

Base

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.

Keys

  • number of columns: 5 6
  • number of rows: 4
  • thumb key count: 6
  • last row key counts: two use all keys
  • key hole: Box and MX
  • inner index finger’s column: normal
  • hide bottom pinky: no

Curvature & Tenting

  • 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°)

Connectors

  • use loligagger’s external holder: no
  • connector: RJ9
  • USB hole: Mini

Form of the Case

  • 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: 4mm 10mm
  • web thickness: 7mm
  • wall thickness: 3mm
  • wire posts: no
  • screw inserts: no

Misc

  • show keycaps: no
  • right side or left side: right

manuform/manuform-4x6+6-DIAGONAL.png manuform/manuform-4x6+6-TOP.png manuform/manuform-4x6+6-BACK_TOP.png manuform/manuform-4x6+6-RIGHT.png manuform/manuform-4x6+6-BOTTOM.png manuform/manuform-4x6+6-BOTTOM_DIST_200.png

Keys

Thumb key count

2, 3, 3-mini, 4, 5, 6 in order

manuform/manuform-4x6+x-DIAGONAL-cmp.png

Last row key counts

“no last row” vs “use all keys”

column 3 to 6 have 3 rows

manuform/manuform-4x6+6-(keys.last-row=0)-TOP-cmp.png

two vs “use all keys”

column 5 and 6 have 3 rows

manuform/manuform-4x6+6-(keys.last-row=2)-TOP-cmp.png

Key hole

images/mx-vs-box.png

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.

manuform/manuform-4x6+6-(keys.switch-type=mx)-BOTTOM_DIST_200-cmp.png

“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.

manuform/manuform-4x6+6-(keys.switch-type=mx-snap-in)-BOTTOM_DIST_200-cmp.png images/mx-snap-in_vs_mx.png

Alps vs “Box and MX”

Key hole size is different

manuform/manuform-4x6+6-(keys.switch-type=alps)-BOTTOM_DIST_200-cmp.png

Choc vs “Box and MX”

The switch hole wall is thinner. Added in Sep 2020 ibnuda/dactyl-keyboard#50 and some fixes later

manuform/manuform-4x6+6-(keys.switch-type=choc)-BOTTOM_DIST_200-cmp.png

Kailh vs “Box and MX”

manuform/manuform-4x6+6-(keys.switch-type=kailh)-BOTTOM_DIST_200-cmp.png

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.

images/kailh-keyhole.jpg

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.

Inner index finger’s column

“Use inner column (like ergodox)” vs Normal

Two more keys on the left

manuform/manuform-4x6+6-(keys.inner-column=ergodox)-TOP-cmp.png

Without vs Normal

The left most column is gone

manuform/manuform-4x6+6-(keys.inner-column=without)-TOP-cmp.png

Hide bottom pinky

Yes vs No

The bottom right key is disabled

manuform/manuform-4x6+6-(keys.hide-last-pinky=yes)-TOP-cmp.png

Curvature & Tenting

PI radian is equal to 180 degree. PI/180 radian is equal to 1 degree.

Column’s curvature

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

manuform/manuform-4x6+6-(curve.column-curvature=pi_6)-DIAGONAL-cmp.png manuform/manuform-4x6+6-(curve.column-curvature=pi_6)-RIGHT-cmp.png

Pinky’s column curvature

pi/6 (30°) vs pi/12 (15°)

The curvature of pinky finger column, that is, column 5 and 6 is steeper

manuform/manuform-4x6+6-(curve.pinky-column-curvature=pi_6)-DIAGONAL-cmp.png manuform/manuform-4x6+6-(curve.pinky-column-curvature=pi_6)-RIGHT-cmp.png

Row’s curvature

pi/18 (10°) vs pi/36 (5°)

manuform/manuform-4x6+6-(curve.row-curvature=pi_18)-DIAGONAL-cmp.png

Center of the curvature for the column

Index, middle, ring, pinky in order

manuform/manuform-4x6+6-(curve.centercol)-DIAGONAL-cmp.png

Tenting Angle

pi/6 (30°) vs pi/15 (12°)

Row tilt is larger

manuform/manuform-4x6+6-(curve.tenting=6)-DIAGONAL-cmp.png

Rotation around row axis

pi/10 (18°) vs pi/180 (1°)

manuform/manuform-4x6+6-(curve.rotate-x=pi_10)-DIAGONAL-cmp.png

-pi/10 (-18°) vs pi/180 (1°)

manuform/manuform-4x6+6-(curve.rotate-x=-pi_10)-DIAGONAL-cmp.png

-pi/36 (-5°) vs pi/180 (1°)

manuform/manuform-4x6+6-(curve.rotate-x=-pi_36)-DIAGONAL-cmp.png

Connectors

Internal connector RJ9 Mini USB

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.

manuform/manuform-4x6+6-BACK_TOP.png

images/internal-connector-rj9.png

Internal connector TRRS Micro USB

“internal connector TRRS Micro USB” vs “internal connector RJ9 Mini USB”

manuform/manuform-4x6+6-(connector.type=trrs)-BACK_TOP-cmp.png

  • 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.

images/internal-connector-trrs.png

micro USB breakout board

images/microusb-breakout-board.png

images/microusb-breakout-board-cable.png

images/microusb-breakout-board-cable-case.jpg

images/microusb-breakout-board-cable-case-glue.jpg

Below image comes from Leo’s build log.

images/leo-dactyl-manuform-bottom.png

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.

images/separated-promicro-holder.png

Either consider external holder or follow below steps to change the position.

  1. click openscad menu window -> editor to open code editor
  2. right click the L hook (pro micro holder), click the cube to jump to the code images/pro-micro-holder-code-location.png
  3. 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);
      }
    }
        

    images/pro-micro-holder-difference.png

  4. wrap the difference() statement with a translate([x, y, z]) statement, for example
    translate([-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 connector none

“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.

manuform/manuform-4x6+6-(connector.type=none)-BACK_TOP-cmp.png

External Holder

Yes vs “internal RJ9 Mini USB”

manuform/manuform-4x6+6-(connector.external=yes)-BACK_TOP-cmp.png

images/external-holder-top.jpg images/external-holder-back.jpg images/external-holder-left.jpg

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.

images/remove-internal-holder-from-external-holder.png

There is pro micro type-c version which is 2mm longer than micro USB version.

images/pro-micro-size-comparison.jpg

I made a type-c compatible holder by lengthening 2mm and enlarging the USB hole. Notice that it is untested. left model and right.

images/promicro-holder-typec-left-cmp-2mm-longer.png images/promicro-holder-typec-left-cmp-usb-larger.png

Form of the Case

Hotswap socket

Yes vs No

Glue the hotswap socket

manuform/manuform-4x6+6-(form.hotswap=yes)-BOTTOM_DIST_200-cmp.png

Thumb cluster offsets center x (toward the pinky)

The greater the value, thumb cluster is closer to right, toward pinky finger, toward x positive direction

-10mm vs 6mm

manuform/manuform-4x6+6-(form.thumb-cluster-offset-x=-10)-TOP-cmp.png

Thumb cluster offsets center y (toward the index)

The greater the value, thumb cluster is more toward to index finger, toward y positive direction

-23mm vs -3mm

manuform/manuform-4x6+6-(form.thumb-cluster-offset-y=-23)-TOP-cmp.png

Thumb cluster offsets center z (altitude)

The greater the value, thumb cluster is higher

27mm vs 7mm

manuform/manuform-4x6+6-(form.thumb-cluster-offset-z=27)-DIAGONAL-cmp.png

Stagger

No vs Yes

manuform/manuform-4x6+6-(form.stagger=no)-TOP-cmp.png manuform/manuform-4x6+6-(form.stagger=no)-DIAGONAL-cmp.png

Index finger measurement y

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

manuform/manuform-4x6+6-(form.stagger-index-y=10)-TOP-cmp.png

Index finger measurement z

The greater the value, index finger’s column (column 1 and 2) and thumb cluster are higher

15mm vs 0mm

manuform/manuform-4x6+6-(form.stagger-index-z=15)-DIAGONAL-cmp.png

Middle finger measurement y

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

manuform/manuform-4x6+6-(form.stagger-middle-y=10)-TOP-cmp.png

Middle finger measurement z

The greater the value, the middle finger’s column (column 3) is higher

10mm vs -6.5mm

manuform/manuform-4x6+6-(form.stagger-middle-z=10)-BACK_TOP-cmp.png

Ring finger measurement y

The greater the value, the ring finger’s column (column 4) is more far away from hand, toward y positive direction

10mm vs 0mm

manuform/manuform-4x6+6-(form.stagger-ring-y=10)-TOP-cmp.png

Ring finger measurement z

The greater the value, the ring finger’s column (column 4) is higher

15mm vs 0mm

manuform/manuform-4x6+6-(form.stagger-ring-z=15)-BACK_TOP-cmp.png

Pinky finger measurement y

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

manuform/manuform-4x6+6-(form.stagger-pinky-y=0)-TOP-cmp.png

Pinky finger measurement z

The greater the value, the pinky finger’s column (column 5 and 6) is higher

26mm vs 6mm

manuform/manuform-4x6+6-(form.stagger-pinky-z=26)-BACK_TOP-cmp.png

Wide pinky

Whether the right most column uses 1.5u keycap

Yes vs No

manuform/manuform-4x6+6-(form.wide-pinky=yes)-DIAGONAL-cmp.png

Height offset

The overall height of the keyboard case

4mm vs 10mm

manuform/manuform-4x6+6-(form.height-offset=4)-DIAGONAL-cmp.png

Web thickness

Top part of the keyboard around the keyholes

20mm vs 7mm

manuform/manuform-4x6+6-(form.web-thickness=20)-BOTTOM_DIST_200-cmp.png

Wall thickness

Wall around the keyboard

1mm vs 3mm

manuform/manuform-4x6+6-(form.wall-thickness=1)-BOTTOM-cmp.png

Wire posts

Sorry I haven’t tried it. Enable it if you think it helps wiring.

manuform/manuform-4x6+6-(form.wire-post=yes)-BOTTOM-cmp.png

Screw inserts

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

manuform/manuform-4x6+6-(form.screw-inserts=yes)-BOTTOM-cmp.png

Misc

Show Keycaps

Just for display

Yes vs No

manuform/manuform-4x6+6-(misc.keycaps=yes)-DIAGONAL-cmp.png

Right side or left side

Left vs Right

manuform/manuform-4x6+6-(misc.left-side)-DIAGONAL-cmp.png

Known Issues

  1. 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.

Credit

External Links

My Tutorials in Chinese Speaking

Though I speak Chinese in the videos, the videos are still helpful. You can find more build tutorials in Youtube.

  1. Keyboard case modeling
  2. Keyboard build
  3. Keyboard build detail about diodes
  4. Flash QMK firmware with QMK Toolbox
  5. Right side doesn’t input anything because some pro micro clone lacks vbus

Sponsor

Paypal me or buy me a coffee.

dactyl-generator-demo's People

Contributors

yejianfengblue avatar finn-e avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.