|
1 | | -# The Dactyl-ManuForm Keyboard |
2 | | -This is a fork of the [Dactyl](https://github.com/adereth/dactyl-keyboard), a parameterized, split-hand, concave, columnar, ergonomic keyboard. |
| 1 | +# The Dactyl-ManuForm-Mini Keyboard |
3 | 2 |
|
4 | | - |
| 3 | +This is a fork of the [Dactyl-Manuform](https://github.com/adereth/dactyl-keyboard). |
5 | 4 |
|
6 | | -The main change is that the thumb cluster was adapted from the [ManuForm keyboard](https://github.com/jeffgran/ManuForm) ([geekhack](https://geekhack.org/index.php?topic=46015.0)). The walls were changed to just drop to the floor. The keyboard is paramaterized to allow adjusting the following: |
| 5 | +## Generating OpenSCAD and STL models |
7 | 6 |
|
8 | | -* Rows: 4 - 6 |
9 | | -* Columns: 5 and up |
10 | | -* Row curvature |
11 | | -* Column curvature |
12 | | -* Row tilt (tenting) |
13 | | -* Column tilt |
14 | | -* Column offsets |
15 | | -* Height |
16 | | - |
17 | | -I built a 4x5 version (40% size) for myself. The default has a bit more tenting than the Dactyl. See the following model files for configurations that may be most common: |
18 | | - |
19 | | -* [40% size, (4x5)](https://github.com/tshort/dactyl-keyboard/blob/master/things/right-4x5.stl) |
20 | | -* [60% size, (5x6)](https://github.com/tshort/dactyl-keyboard/blob/master/things/right-5x6.stl) |
21 | | - |
22 | | - |
23 | | -## Assembly |
24 | | - |
25 | | -### Generating a Design |
26 | | - |
27 | | -**Setting up the Clojure environment** |
28 | | -* [Install the Clojure runtime](https://clojure.org) |
29 | | -* [Install the Leiningen project manager](http://leiningen.org/) |
30 | | -* [Install OpenSCAD](http://www.openscad.org/) |
31 | | - |
32 | | -**Generating the design** |
33 | | -* Run `lein generate` |
| 7 | +* Run `lein generate` or `lein auto generate` |
34 | 8 | * This will regenerate the `things/*.scad` files |
35 | 9 | * Use OpenSCAD to open a `.scad` file. |
36 | 10 | * Make changes to design, repeat `load-file`, OpenSCAD will watch for changes and rerender. |
37 | 11 | * When done, use OpenSCAD to export STL files |
38 | 12 |
|
39 | | -**Tips** |
40 | | -* Run `lein auto generate` instead of `lein generate` to speed up your workflow. |
41 | | -* [Some other ways to evaluate the clojure design file](http://stackoverflow.com/a/28213489) |
42 | | -* [Example designing with clojure](http://adereth.github.io/blog/2014/04/09/3d-printing-with-clojure/) |
43 | | - |
44 | | - |
45 | | -### Printing |
46 | | -Pregenerated STL files are available in the [things/](things/) directory. |
47 | | -When a model is generated, it also generates a `.scad` model for a bottom plate. |
48 | | -This can be exported to a DXF file in OpenSCAD. |
49 | | -The [things/](things/) directory also has DXF files for the bottom plate. |
50 | | -When laser cut, some of the inside cuts will need to be removed. |
51 | | - |
52 | | -This model can be tricky to print. |
53 | | -It's wide, so I've had problems with PLA on a Makerbot with edges warping. |
54 | | -This can cause the printer to think its head is jammed. |
55 | | -Even if it successfully prints, warping can cause problems. |
56 | | -On one print, the RJ-9 holder was squished, so I had to cut down my connector to fit. |
57 | | - |
58 | | -If printed at Shapeways or other professional shops, I would not expect such problems. |
59 | | - |
60 | | -### Thingiverse |
61 | | - |
62 | | -[The 4x5 STL left/right pair](https://www.thingiverse.com/thing:2349390) from the [things/](things/) directory is in the thingiverse for public printing |
63 | | - |
64 | | -### Wiring |
65 | | - |
66 | | -Here are materials I used for wiring. |
67 | | - |
68 | | -* Two Arduino Pro Micros |
69 | | -* [Heat-set inserts](https://www.mcmaster.com/#94180a331/=16yfrx1) |
70 | | -* [M3 wafer-head screws, 5mm](http://www.metricscrews.us/index.php?main_page=product_info&cPath=155_185&products_id=455) |
71 | | -* [Copper tape](https://www.amazon.com/gp/product/B009KB86BU) |
72 | | -* [#32 magnet wire](https://www.amazon.com/gp/product/B00LV909HI) |
73 | | -* [#30 wire](https://www.amazon.com/gp/product/B00GWFECWO) |
74 | | -* [3-mm cast acrylic](http://www.mcmaster.com/#acrylic/=144mfom) |
75 | | -* [Veroboard stripboard](https://www.amazon.com/gp/product/B008CPVMMU) |
76 | | -* [1N4148 diodes](https://www.amazon.com/gp/product/B00LQPY0Y0) |
77 | | -* [Female RJ-9 connectors](https://www.amazon.com/gp/product/B01HU7BVDU/) |
78 | | - |
79 | | -I wired one half using the traditional approach of using the legs of a diode to form the row connections. |
80 | | -(I'm not great at soldering, so this was challenging for me.) |
81 | | -For this side, I used magnet wire to wire columns. That worked okay. |
82 | | -The magnet wire is small enough, it wants to move around, and it's hard to tell if you have a good connection. |
83 | | - |
84 | | - |
85 | | - |
86 | | -For another half, I used stripboard for the row connections. |
87 | | -This allowed me to presolder all of the diodes. |
88 | | -Then, I hot-glued this in place and finished the soldering of the other diode ends. |
89 | | -I like this approach quite a lot. |
90 | | -Connections for the diodes were much easier with one end fixed down. |
91 | | -On this half, I also used copper tape to connect columns. |
92 | | -This worked a bit better than the magnet wire for me. |
93 | | -For a future version, I may try just bare tinned copper wire for columns (something like #20). |
94 | | -With the stripboard, it's pretty easy keeping row and column connections separate. |
95 | | - |
96 | | - |
97 | | - |
98 | | -Note that a telephone handset cable has leads that are reversed, so take this into account when connecting these leads to the controller. |
99 | | - |
100 | | -The 3D printed part is the main keyboard. |
101 | | -You can attach a bottom plate with screws. |
102 | | -The case has holes for heat-set inserts designed to hold 3- to 6-mm long M3 screws. |
103 | | -Then, I used wafer-head screws to connect a bottom plate. |
104 | | -If wires aren't dangling, a bottom plate may not be needed. |
105 | | -You need something on the bottom to keep the keyboard from sliding around. |
106 | | -Without a plate, you could use a rubber pad, or you could dip the bottom of the keyboard in PlastiDip. |
107 | | - |
108 | | -For more photos of the first complete wiring of v0.4, see [Imgur](http://imgur.com/a/v9eIO). |
109 | | - |
110 | | -This is how the rows/columns wire to the keys and the ProMicro |
111 | | - |
112 | | - |
113 | | - |
114 | | -#### Alternative row-driven wiring diagram for ProMicro: |
115 | | - |
116 | | -NOTE: you also make sure the firmware is set up correctly (ex: change row pins with col pins) |
117 | | - |
118 | | - |
119 | | - |
120 | | - |
121 | | - |
122 | | - |
123 | | -### Firmware |
124 | | - |
125 | | -Firmware goes hand in hand with how you wire the circuit. |
126 | | -I adapted the QMK firmware [here](https://github.com/tshort/qmk_firmware/tree/master/keyboards/dactyl-manuform). |
127 | | -This allows each side to work separately or together. |
128 | | -This site also shows connections for the Arduino Pro Micro controllers. |
129 | | - |
130 | 13 | ## License |
131 | 14 |
|
132 | | -Copyright © 2015-2017 Matthew Adereth and Tom Short |
| 15 | +Copyright © 2015-2018 Matthew Adereth, Tom Short and Leo Lou |
| 16 | + |
| 17 | +The source code for generating the models (everything excluding the [things/](things/) and [resources/](resources/) directories is distributed under the [GNU AFFERO GENERAL PUBLIC LICENSE Version 3](LICENSE). |
133 | 18 |
|
134 | | -The source code for generating the models (everything excluding the [things/](things/) and [resources/](resources/) directories is distributed under the [GNU AFFERO GENERAL PUBLIC LICENSE Version 3](LICENSE). The generated models and PCB designs are distributed under the [Creative Commons Attribution-NonCommercial-ShareAlike License Version 3.0](LICENSE-models). |
| 19 | +The generated models are distributed under the [Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)](LICENSE-models). |
0 commit comments