Updates for v0.4

This commit is contained in:
Tom Short 2017-03-29 17:43:48 -04:00
parent d2ae959a5a
commit 7e04c811d3
8 changed files with 207096 additions and 182894 deletions

View file

@ -1,9 +1,9 @@
# The Dactyl-ManuForm Keyboard
This is a fork of the [Dactyl](https://github.com/adereth/dactyl-keyboard), a parameterized, split-hand, concave, columnar, ergonomic keyboard.
![First print](http://i.imgur.com/ZFt9CzP.jpg)
[Imgur](http://i.imgur.com/LdjEhrR.jpg)
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 the following:
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:
* Rows: 4 - 6
* Columns: 5 and up
@ -12,19 +12,13 @@ The main change is that the thumb cluster was adapted from the [ManuForm keyboar
* Row tilt (tenting)
* Column tilt
* Column offsets
* Height
I plan to try the 4x6 version or maybe the 4x5 version. The default has more tenting than the Dactyl. See the following model files for configurations that may be most common:
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:
* [4x5](https://github.com/tshort/dactyl-keyboard/blob/master/things/right-4x5.stl)
* [4x6](https://github.com/tshort/dactyl-keyboard/blob/master/things/right-4x6.stl)
* [5x6](https://github.com/tshort/dactyl-keyboard/blob/master/things/right-5x6.stl)
* [6x6](https://github.com/tshort/dactyl-keyboard/blob/master/things/right-6x6.stl)
* [40% size, (4x5)](https://github.com/tshort/dactyl-keyboard/blob/master/things/right-4x5.stl)
* [60% size, (5x6)](https://github.com/tshort/dactyl-keyboard/blob/master/things/right-5x6.stl)
**This is still a work in progress.** I have not started on wiring, and I don't know if everything fits. The pinky columns and the thumb cluster doesn't fit right together for my hands. I need to offset the pinkies more (like the ManuForm) or rotate the thumb keys a bit.
I plan to use a Teensy 2++ in each half. Then, I have enough channels to wire straight to each key switch. Diodes are not needed. Then, I can connect them with a serial connection, and adapt the QMK firmware for the [Let's split keyboard](https://github.com/qmk/qmk_firmware/tree/master/keyboards/lets_split) that implements this approach. Each half can be master.
This doesn't have a bottom. It has hex holes designed for 9- or 10-mm long M3 female-female spacers. Then, I can use a M3 wafer-head screws to connect a bottom plate. If wires aren't dangling, a bottom plate may not be needed.
## Assembly
@ -50,14 +44,74 @@ This doesn't have a bottom. It has hex holes designed for 9- or 10-mm long M3 fe
### Printing
Pregenerated STL files are available in the [things/](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/](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 to print.
It's wide, so I've 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 I had to cut down my connector to fit.
If printed at Shapeways or other professional shops, I would not expect such problems.
### Wiring
Masks for the flexible PCBs I used are available for the [left](resources/pcb-left.svg) and [right](resources/pcb-right.svg) side.
A [very rough guide for the brave is here](guide/README.org#wiring) - It will be improved over time (**TODO**)!
Here are materials I used for wiring.
* Two Arduino Pro Micros
* [Heat-set inserts](https://www.mcmaster.com/#94180a331/=16yfrx1)
* [M3 wafer-head screws, 5mm](http://www.metricscrews.us/index.php?main_page=product_info&cPath=155_185&products_id=455)
* [Copper tape](https://www.amazon.com/gp/product/B009KB86BU)
* [#32 magnet wire](https://www.amazon.com/gp/product/B00LV909HI)
* [#30 wire](https://www.amazon.com/gp/product/B00GWFECWO)
* [3-mm cast acrylic](http://www.mcmaster.com/#acrylic/=144mfom)
* [Veroboard stripboard](https://www.amazon.com/gp/product/B008CPVMMU)
* [1N4148 diodes](https://www.amazon.com/gp/product/B00LQPY0Y0)
* [Female RJ-9 connectors](https://www.amazon.com/gp/product/B01HU7BVDU/)
I wired one half using the traditional approach of using the legs of a diode to form the row connections.
(I'm not great at soldering, so this was challenging for me.)
For this side, I used magnet wire to wire 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.
[Imgur](http://i.imgur.com/7kPvSgg.jpg)
For another half, I used stripboard for the row connections.
This allowed me to presolder all of the diodes.
Then, I hot-glued this in place and finished the soldering of the other diode ends.
I like this approach quite a lot.
Connections for the diodes were much easier with one end fixed down.
On this half, I also used copper tape to connect columns.
This worked a bit better than the magnet wire for me.
For a future version, I may try just bare tinned copper wire for columns (something like #20).
With the stripboard, it's pretty easy keeping row and column connections separate.
[Imgur](http://i.imgur.com/JOm5ElP.jpg)
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, I used wafer-head screws to connect a bottom plate.
If wires aren't dangling, a bottom plate may not be needed.
You 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 or v0.4, see [Imgur](http://imgur.com/a/v9eIO).
### Firmware
Firmware goes hand in hand with how you wire the circuit.
I adapted the QMK firmware [here](https://github.com/tshort/qmk_firmware/tree/master/keyboards/dactyl-manuform).
This allows each side to work separately or together.
This site also shows connections for the Arduino Pro Micro controllers.
## License
Copyright © 2015 Matthew Adereth
Copyright © 2015-2017 Matthew Adereth and Tom Short
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).

56492
things/left-4x5.stl Normal file

File diff suppressed because it is too large Load diff

71892
things/left-5x6.stl Normal file

File diff suppressed because it is too large Load diff

4522
things/right-4x5-plate.dxf Normal file

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

4282
things/right-5x6-plate.dxf Normal file

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff