|
|
|
Alternative Controller for HHKB
|
|
|
|
===============================
|
|
|
|
|
|
|
|
Feature
|
|
|
|
-------
|
|
|
|
- Mouse Keys
|
|
|
|
- NKRO on USB(PJRC Tennsy only)
|
|
|
|
- Keymap Layers
|
|
|
|
|
|
|
|
|
|
|
|
Customize Keymap
|
|
|
|
----------------
|
|
|
|
see keymap.c.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Build
|
|
|
|
=====
|
|
|
|
PJRC Teensy
|
|
|
|
-----------
|
|
|
|
0. Edit matrix.c.
|
|
|
|
adjust scan code to your pin configuration.(see doc/HHKB.txt for pinouts)
|
|
|
|
1. Define macros in config_pjrc.h.(Optional)
|
|
|
|
VENDOR_ID, PRODUCT_ID and string descriptor.
|
|
|
|
IS_COMMAND
|
|
|
|
2. Edit Makefile for MCU setting and build options.
|
|
|
|
MCU, F_CPU
|
|
|
|
MOUSEKEY_ENABLE, EXTRAKEY_ENABLE, NKRO_ENABLE
|
|
|
|
3. Build hex file.
|
|
|
|
$ make -f Makefile.pjrc
|
|
|
|
4. Program MCU.
|
|
|
|
$ make -f Makefile.pjrc program
|
|
|
|
|
|
|
|
|
|
|
|
V-USB
|
|
|
|
-----
|
|
|
|
0. Edit matrix.c and usbconfig.h.
|
|
|
|
adjust scan code to your pin configuration.(see doc/HHKB.txt for pinouts)
|
|
|
|
define macros for V-USB in usbconfig.h.
|
|
|
|
1. Define macros in config_vusb.h.(Optional)
|
|
|
|
IS_COMMAND
|
|
|
|
2. Edit Makefile.vusb for MCU setting and build options.
|
|
|
|
MCU, F_CPU
|
|
|
|
MOUSEKEY_ENABLE, EXTRAKEY_ENABLE
|
|
|
|
3. Build hex file.
|
|
|
|
$ make -f Makefile.vusb
|
|
|
|
4. Program MCU.
|
|
|
|
$ make -f Makefile.vusb program
|
|
|
|
|
|
|
|
Using a bootloader to program for convenience is recommended.
|
|
|
|
Once program this V-USB bootloader at first, you can program MCU without
|
|
|
|
extra programmer. You should have reset switch to start up as bootloader
|
|
|
|
mode in this case.
|
|
|
|
USBaspLoader:
|
|
|
|
http://www.obdev.at/products/vusb/usbasploader.html
|
|
|
|
|
|
|
|
|
|
|
|
iWRAP
|
|
|
|
-----
|
|
|
|
0. Edit matrix.c and usbconfig.h.
|
|
|
|
adjust scan code to your pin configuration.(see doc/HHKB.txt for pinouts)
|
|
|
|
define macros for V-USB in usbconfig.h.
|
|
|
|
1. Define macros in config_iwrap.h.(Optional)
|
|
|
|
IS_COMMAND
|
|
|
|
2. Edit Makefile.iwrap for MCU setting and build options.
|
|
|
|
MCU, F_CPU
|
|
|
|
MOUSEKEY_ENABLE, EXTRAKEY_ENABLE
|
|
|
|
3. Build hex file.
|
|
|
|
$ make -f Makefile.iwrap
|
|
|
|
4. Program MCU.
|
|
|
|
$ make -f Makefile.iwrap program
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Hardware
|
|
|
|
========
|
|
|
|
PJRC Teensy
|
|
|
|
-----------
|
|
|
|
+---------------+
|
|
|
|
| Teensy++ |
|
|
|
|
| |
|
|
|
|
| | HHKB
|
|
|
|
| | ~~~~
|
|
|
|
| PB0-2|------->ROW(6-8)
|
|
|
|
| PB3-5|------->COL(9-11)
|
|
|
|
| PB6|------->ENABLE(12)
|
|
|
|
| PE6|<-------KEY(4)
|
|
|
|
| PE7|------->PREV(5)
|
|
|
|
| |
|
|
|
|
| |
|
|
|
|
| |
|
|
|
|
+---------------+
|
|
|
|
|
|
|
|
|
|
|
|
V-USB
|
|
|
|
-----
|
|
|
|
+---+ +---------------+
|
|
|
|
USB GND | | ATmega168 |
|
|
|
|
~~~ C3 | |
|
|
|
|
5V <-------+--------+---|Vcc,AVCC | HHKB
|
|
|
|
R1 | | ~~~~
|
|
|
|
D- <----+--+-----R2-----|INT1 PB2-4|------->ROW(6-8)
|
|
|
|
D+ <----|---+----R3-----|INT0 PC0-2|------->COL(9-11)
|
|
|
|
Z1 Z2 | PC3|------->ENABLE(12)
|
|
|
|
GND<----+---+-----------|GND PB0|<-------KEY(4)
|
|
|
|
| PB1|------->PREV(5)
|
|
|
|
| |
|
|
|
|
GND+-C2--+--|XTAL1 RXD|------->Debug Console
|
|
|
|
X1 | TXD|<-------Debug Console
|
|
|
|
GND+-C3--+--|XTAL2 RST|---SW--+GND
|
|
|
|
+---------------+
|
|
|
|
R1: 1.5K Ohm
|
|
|
|
R2,R3: 68 Ohm
|
|
|
|
Z1,Z2: Zener 3.6V
|
|
|
|
C1,C2: 22pF
|
|
|
|
C3: 0.1uF
|
|
|
|
X1: Crystal 20MHz(16MHz/12MHz)
|
|
|
|
SW: Push Switch(Optional for bootloader)
|
|
|
|
|
|
|
|
|
|
|
|
iWRAP
|
|
|
|
-----
|
|
|
|
+---------------+ WT12
|
|
|
|
5V | ATmega168 | 5V/3.3V~~~~
|
|
|
|
+-----+---|Vcc,AVCC PC4|---/--->iWRAP(RxD)
|
|
|
|
USB | C3 | PC5|<--/----iWRAP(TxD)
|
|
|
|
~~~ | + | |
|
|
|
|
5V <--BATT + GND | | HHKB
|
|
|
|
R1 | | ~~~~
|
|
|
|
D- <----+-----+--R2-----|INT1 PB2-4|------->ROW(6-8)
|
|
|
|
D+ <----|---+----R3-----|INT0 PC0-2|------->COL(9-11)
|
|
|
|
Z1 Z2 | PC3|------->ENABLE(12)
|
|
|
|
GND<----+---+-----------|GND PB0|<-------KEY(4)
|
|
|
|
| PB1|------->PREV(5)
|
|
|
|
| |
|
|
|
|
GND+-C2--+--|XTAL1 RXD|------->Debug Console
|
|
|
|
X1 | TXD|<-------Debug Console
|
|
|
|
GND+-C3--+--|XTAL2 RST|---SW--+GND
|
|
|
|
+---------------+
|
|
|
|
|
|
|
|
R1: 1.5K Ohm
|
|
|
|
R2,R3: 68 Ohm
|
|
|
|
Z1,Z2: Zener 3.6V
|
|
|
|
C1,C2: 22pF
|
|
|
|
C3: 0.1uF
|
|
|
|
X1: Crystal 12MHz
|
|
|
|
SW: Push Switch(Optional)
|
|
|
|
BATT: Li-Po Battery, Battery Charger and Voltage Regulator(5V and 3.3V).
|
|
|
|
|
|
|
|
|
|
|
|
EOF
|