]> git.donarmstrong.com Git - tmk_firmware.git/blob - keyboard/hhkb/README
Clean host.h interface.
[tmk_firmware.git] / keyboard / hhkb / README
1 Alternative Controller for HHKB
2 ===============================
3
4 Feature
5 -------
6 - Mouse Keys
7 - NKRO on USB(PJRC Tennsy only)
8 - Keymap Layers
9
10
11 Customize Keymap
12 ----------------
13 see keymap.c.
14
15
16
17 Build
18 =====
19 PJRC Teensy
20 -----------
21 0. Edit matrix.c.
22     adjust scan code to your pin configuration.(see doc/HHKB.txt for pinouts)
23 1. Define macros in config_pjrc.h.(Optional)
24     VENDOR_ID, PRODUCT_ID and string descriptor.
25     IS_COMMAND
26 2. Edit Makefile for MCU setting and build options.
27     MCU, F_CPU
28     MOUSEKEY_ENABLE, EXTRAKEY_ENABLE, NKRO_ENABLE
29 3. Build hex file.
30     $ make -f Makefile.pjrc
31 4. Program MCU.
32     $  make -f Makefile.pjrc program
33
34
35 V-USB
36 -----
37 0. Edit matrix.c and usbconfig.h.
38     adjust scan code to your pin configuration.(see doc/HHKB.txt for pinouts)
39     define macros for V-USB in usbconfig.h.
40 1. Define macros in config_vusb.h.(Optional)
41     IS_COMMAND
42 2. Edit Makefile.vusb for MCU setting and build options.
43     MCU, F_CPU
44     MOUSEKEY_ENABLE, EXTRAKEY_ENABLE
45 3. Build hex file.
46     $ make -f Makefile.vusb
47 4. Program MCU.
48     $  make -f Makefile.vusb program
49
50     Using a bootloader to program for convenience is recommended.
51     Once program this V-USB bootloader at first, you can program MCU without
52     extra programmer. You should have reset switch to start up as bootloader
53     mode in this case.
54     USBaspLoader:
55     http://www.obdev.at/products/vusb/usbasploader.html
56
57
58 iWRAP
59 -----
60 0. Edit matrix.c and usbconfig.h.
61     adjust scan code to your pin configuration.(see doc/HHKB.txt for pinouts)
62     define macros for V-USB in usbconfig.h.
63 1. Define macros in config_iwrap.h.(Optional)
64     IS_COMMAND
65 2. Edit Makefile.iwrap for MCU setting and build options.
66     MCU, F_CPU
67     MOUSEKEY_ENABLE, EXTRAKEY_ENABLE
68 3. Build hex file.
69     $ make -f Makefile.iwrap
70 4. Program MCU.
71     $  make -f Makefile.iwrap program
72
73
74
75 Hardware
76 ========
77 PJRC Teensy
78 -----------
79                         +---------------+
80                         |   Teensy++    |
81                         |               |
82                         |               |        HHKB
83                         |               |        ~~~~
84                         |          PB0-2|------->ROW(6-8)
85                         |          PB3-5|------->COL(9-11)
86                         |            PB6|------->ENABLE(12)
87                         |            PE6|<-------KEY(4)
88                         |            PE7|------->PREV(5)
89                         |               |
90                         |               |
91                         |               |
92                         +---------------+
93
94
95 V-USB
96 -----
97                 +---+   +---------------+
98 USB            GND  |   |   ATmega168   |
99 ~~~                 C3  |               |
100 5V <-------+--------+---|Vcc,AVCC       |        HHKB
101            R1           |               |        ~~~~
102 D- <----+--+-----R2-----|INT1      PB2-4|------->ROW(6-8)
103 D+ <----|---+----R3-----|INT0      PC0-2|------->COL(9-11)
104         Z1  Z2          |            PC3|------->ENABLE(12)
105 GND<----+---+-----------|GND         PB0|<-------KEY(4)
106                         |            PB1|------->PREV(5)
107                         |               |
108             GND+-C2--+--|XTAL1       RXD|------->Debug Console
109                      X1 |            TXD|<-------Debug Console
110             GND+-C3--+--|XTAL2       RST|---SW--+GND
111                         +---------------+
112 R1:     1.5K Ohm
113 R2,R3:  68 Ohm
114 Z1,Z2:  Zener 3.6V
115 C1,C2:  22pF
116 C3:     0.1uF
117 X1:     Crystal 20MHz(16MHz/12MHz)
118 SW:     Push Switch(Optional for bootloader)
119
120
121 iWRAP
122 -----
123                         +---------------+        WT12
124               5V        |   ATmega168   | 5V/3.3V~~~~
125               +-----+---|Vcc,AVCC    PC4|---/--->iWRAP(RxD)
126 USB           |     C3  |            PC5|<--/----iWRAP(TxD)
127 ~~~           |     +   |               | 
128 5V <--BATT    +    GND  |               |        HHKB
129               R1        |               |        ~~~~
130 D- <----+-----+--R2-----|INT1      PB2-4|------->ROW(6-8)
131 D+ <----|---+----R3-----|INT0      PC0-2|------->COL(9-11)
132         Z1  Z2          |            PC3|------->ENABLE(12)
133 GND<----+---+-----------|GND         PB0|<-------KEY(4)
134                         |            PB1|------->PREV(5)
135                         |               |
136             GND+-C2--+--|XTAL1       RXD|------->Debug Console
137                      X1 |            TXD|<-------Debug Console
138             GND+-C3--+--|XTAL2       RST|---SW--+GND
139                         +---------------+
140
141 R1:     1.5K Ohm
142 R2,R3:  68 Ohm
143 Z1,Z2:  Zener 3.6V
144 C1,C2:  22pF
145 C3:     0.1uF
146 X1:     Crystal 12MHz
147 SW:     Push Switch(Optional)
148 BATT:   Li-Po Battery, Battery Charger and Voltage Regulator(5V and 3.3V).
149
150
151 EOF