aboutsummaryrefslogtreecommitdiff
path: root/keyboards/kinesis/nguyenvietyen/readme.md
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/kinesis/nguyenvietyen/readme.md')
-rw-r--r--keyboards/kinesis/nguyenvietyen/readme.md109
1 files changed, 109 insertions, 0 deletions
diff --git a/keyboards/kinesis/nguyenvietyen/readme.md b/keyboards/kinesis/nguyenvietyen/readme.md
new file mode 100644
index 000000000..fc5390b03
--- /dev/null
+++ b/keyboards/kinesis/nguyenvietyen/readme.md
@@ -0,0 +1,109 @@
1# Viet's Kinesis + Pro Micro
2
3July 2020
4
5This work is inspired by `alvicstep`'s solution. Instead of hooking up the Kinesis to a Teensy 2, this one hooks it up to a Pro Micro.
6
7## Kinesis Board Layout
8The following is a reinterpretation of [@chrisandreae](https://github.com/chrisandreae/keyboard-firmware/blob/public/hardware/kinesis.h)'s work.
9
10### Used Pins
11* 8 columns mapped to output pins 21 - 28
12* 16 rows mapped to 4 input pins: pin 39 - 36. Rows are traversed by iterating and setting 16 values from 0000 to 1111.
13* 4 leds (e.g. capslock) mapped to input pin 1 - 4
14* keypad key mapped to pin 5
15* program key mapped to pin 6
16* `VCC` mapped to pin 40
17
18### Matrix Configuration
19The matrix configuration of the columns and rows on my Advantage is as follows:
20
21| | row 0 | row 1 | row 2 | row 3 | row 4 | row 5 | row 6 | row 7 | row 8 | row 9 | row A | row B | row C | row D | row E | row F |
22| ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- |
23| col0 | F6 | F8 | F7 | 5% | 4$ | 3# | 2@ | 1! | =+ | | | | | | | |
24| col1 | F3 | F5 | F4 | T | R | E | W | Q | Tab | | | | | | | |
25| col2 | Esc | F2 | F1 | G | F | D | S | A | CapsLk | | | | | | | |
26| col3 | F9 | F11 | F10 | B | V | C | X | Z | LShift | Up | | Down | | [{ | ]} | |
27| col4 | F12 | ScrLk | PrtSc | Right | | Left | Insert | ~ | | 6^ | 7& | 8* | | 9( | 0) | -_ |
28| col5 | Pause | | | LAlt | | Home | | End | | Y | U | I | | O | P | `\|` |
29| col6 | | | | LCtrl | Delete | Bksp | RCtrl | Enter | Space | H | J | K | | L | ;: | '" |
30| col7 | | | | | RGUI | | PageUp | | PageDn | N | M | ,< | | .> | /? | RShift |
31
32(this is a modified copy from [@alvicstep](https://github.com/qmk/qmk_firmware/blob/master/keyboards/kinesis/alvicstep/alvicstep.h))
33
34In the code, keypad and program keys are mapped respectively to col0 and col1 of row C, the 12th row.
35
36### Omitted Pins
37There are pins that we currently omit:
38* serial eeprom clock line mapped to pin 7
39* serial eeprom data line mapped to pin 8
40* EEPROM write protect mapped to pin 10.
41* foot switch 1 mapped to pin 11
42* PS/2 clock mapped to pin 12
43* PS/2 data mapped to pin 13
44* foot switch 2 mapped to pin 17
45* foot switch 3 mapped to pin 15
46* audio mapped to pin 32
47
48### DIP Socket
49Here's an ASCII drawing of the 40 pin DIP socket.
50```
51 DL2 1 40 VCC
52 DR1 2 39 A
53 DR2 3 38 B
54 DL1 4 37 C
55 KPD 5 36 G
56 PGM 6 35
57 SCL 7 34
58 SDA 8 33
59 RST 9 32 BUZZ
60 WP 10 31 EA
61 FS1 11 30 ALE
62 CLOCK 12 29 PSEN
63 DATA 13 28 r8
64 14 27 r7
65 FS3 15 26 r6
66 16 25 r5
67 FS2 17 24 r4
68 XTAL1 18 23 r3
69 XTAL2 19 22 r2
70 GND 20 21 r1
71```
72(this is copied from [@wjanssens](https://raw.githubusercontent.com/wjanssens/tmk_keyboard/master/keyboard/kinesis/doc/readme.txt))
73
74## Pin Mapping to Pro Micro
75
76The following table is ordered by physical Arduino pin order.
77
78| Arduino | Kinesis | Meaning |
79| ------- | ------- | ------- |
80| D3 | 36 | G |
81| D2 | 37 | C |
82| GND | | |
83| GND | | |
84| D1 | 38 | B |
85| D0 | 39 | A |
86| D4 | 1 | DL2 |
87| C6 | 2 | DR1 |
88| D7 | 3 | DR2 |
89| E6 | 4 | DL1 |
90| B4 | 5 | KPD |
91| B5 | 6 | PGM |
92| B6 | 21 | r1 |
93| B2 | 22 | r2 |
94| B3 | 23 | r3 |
95| B1 | 24 | r4 |
96| F7 | 25 | r5 |
97| F6 | 26 | r6 |
98| F5 | 27 | r7 |
99| F4 | 28 | r8 |
100| VCC | 40 | |
101| RESET | | |
102| GND | 20 | |
103| RAW | | |
104
105## Notes
106
107* The rows are multiplexed. Instead of reading them out, one sets the row value and corresponding column values are returned through r1-r8.
108* On my keyboard, the keypad and program key have dedicated pins. Since row 12 had no mapping in the physical matrix, there's a code override injects the keypad and program pins to the first two bits in the matrix.
109* I've experimented with debouncing approaches. The current setting delivers a snappier feeling than Kinesis's factory default for me.