diff --git a/guide/README.org b/guide/README.org index d9b94e4..457fe82 100644 --- a/guide/README.org +++ b/guide/README.org @@ -93,6 +93,8 @@ - Here too firmware and wiring go hand in hand, you pretty much have to have a detailed look at the firmware you are using before wiring anything. I provide my modification of the "ergodox-firmware" over here: https://github.com/BubblesToTheLimit/ergodox-firmware + - TODO: Make a successfull pull-request, such that it is available in the official + ergodox-firmware - Some of the steps of this guide may not be described in much detail, but in contrast to option one there is a whole lot more of information. - [[Route 2: Dactyl Hand-Wiring Guide]] @@ -171,6 +173,58 @@ [[file:wiring-create-rows-both-sides.jpg]] - Because this was my first soldering job i went ahead and tested each one of the 70 switches. + You might want to go ahead and test each one of the 70 switches with a multimeter. [[file:wiring-create-rows-testing.jpg]] + + The next step is to create the columns by soldering the diodes. Notice which way these diodes + are directed here, the way these diodes are directed, we have to have a firmware that "drives + the rows". (TODO: insert diagram here) Luckily in our firmware "ergodox-firmware" we have the + option that adapts to that. However if you want to try and use the "tmk_keyboard" firmware + which seems to be also interesting you want to wire the diodes the other way. This way the + "columns are driving". As a side note, for some reason the tmk_keyboard firmware things of rows + as columns and the other way around, so if you look through the source code it will also see + "drive rows", even though that means "driving columns". + + The tmk_keyboard firmware could also be used for this kind of wiring, but it would have to be + rewritten, maybe in a beautiful way, such that it can also "drive rows". However I didnt go + ahead and perfomed that rewriting, so I had to stick with the "ergodox-firmware". In retrospect + I'd wish I had wired the diodes the other way around. + + The first picture doesnt show how the 6 thumb-keys are actually individually connected to the 6 + main columns. + + [[file:wiring-create-columns-left.jpg]] + + This second picture shows how the 6 thumb-keys are actually connected to the 6 main columns. + + [[file:wiring-create-columns-right.jpg]] + + TODO: Insert diagram of how the thumb-keys are connected to the main clumns. + + The next step is to wire the Teensy 2.0 and the MCP 23018 in place. + Everything necessary for that really is the following circuit diagram + + [[file:circuit-diagram.svg]] + + [[file:rows-and-columns-connected-to-chips.jpg]] + + Things to note here: + - The columns for the MCP go from 0 to 6, the columns for the Teensy go from 7 to D (counting + in hexadecimal) which makes great sence, since the MCP is left to the Teensy and we read from + left to right. + - When debugging this and using the ergodox-firmware, both sides have to be wired completely + and actually connected, dont expect the keyboard to work before that. The reason being is how + the ergodox-firmware stops completely if either the Teensy or the MCP weren't initiated + properly. + - In the circuit-diagram the columns on the left side (MCP side) actually go from GPA5 to INTA + (TODO: Update the circuit diagram and get rid of this point) + - The LEDs are handy for debugging, definately go ahead and connect those. When the keyboard + starts successfully two of the LEDs light up shortly. + - From the Teensy over to the MCP go exactly 4 connections. The blue, the red and the two green + ones. This is done using the TTRS jacks and cable (TODO: Add picture here how the jacks are + wired) + - Yes, the connection from B4 to VCC doesnt seem to make any sense, but the B4 port actually + gets used directly in the ergodox-firmware, so just connect those connections that make no + sense on first sight and either dont question it or find out why this is necessary by going + through the firmware in great detail. diff --git a/guide/circuit-diagram.svg b/guide/circuit-diagram.svg new file mode 100644 index 0000000..d6709d1 --- /dev/null +++ b/guide/circuit-diagram.svg @@ -0,0 +1,3590 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + USB + R = (match to LEDs) + R = 2.2 kΩ + + + + + + SCL + SDA + PWM + PWM + PWM + + reset only active during power-on + address = 0b 0100 000 + + + + row 5 + row 4 + row 3 + row 2 + row 1 + row 0 + col D + col B + col C + col 7 + + + + + + + + + row 5 + row 4 + row 3 + row 2 + row 1 + row 0 + col 5 + col 4 + col 3 + col 2 + col 1 + col 0 + + + + + + + + + + + + + + LED 1 + LED 2 + LED 3 + - Please also see documentation (especially the notes) in the *.md files- Row and column assignments are to matrix positions, not physical positions + + col 6 + + col 8 + + col 9 + + col A + + + + + Vss + NC + GPB0 + GPB1 + GPB2 + GPB3 + GPB4 + GPB5 + GPB6 + GPB7 + Vdd + SCL + SDA + NC + NC + GPA7 + GPA6 + GPA5 + GPA4 + GPA3 + GPA2 + GPA1 + GPA0 + INTA + INTB + NC + RESET + ADDR + GND + PB0 + PB1 + PB2 + PB3 + PB7 + PD0 + PD1 + PD2 + PD3 + PC6 + PC7 + PD5 + Vcc + GND + RST + PD4 + PD6 + PF0 + PF1 + PF4 + PF5 + PF6 + PF7 + PB6 + PB5 + PB4 + PD7 + Vcc + PE6 + AREF + Teensy 2.0 + MCP23018 + + + diff --git a/guide/rows-and-columns-connected-to-chips.jpg b/guide/rows-and-columns-connected-to-chips.jpg new file mode 100644 index 0000000..25aa13d Binary files /dev/null and b/guide/rows-and-columns-connected-to-chips.jpg differ diff --git a/guide/wiring-create-columns-left.jpg b/guide/wiring-create-columns-left.jpg new file mode 100644 index 0000000..a250d30 Binary files /dev/null and b/guide/wiring-create-columns-left.jpg differ diff --git a/guide/wiring-create-columns-right.jpg b/guide/wiring-create-columns-right.jpg new file mode 100644 index 0000000..0e3f9f6 Binary files /dev/null and b/guide/wiring-create-columns-right.jpg differ