Alternative Controller for HHKB
===============================

Feature
-------
- Mouse Keys
- NKRO on USB
- Keymap Layers


Customize Keymap
----------------
see keymap.c.


Build for 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, USB_EXTRA_ENABLE, USB_NKRO_ENABLE
3. Build hex file.
    $ make
4. Program MCU.
    $  make program


Build for 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, USB_EXTRA_ENABLE, USB_NKRO_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


V-USB Circuit
-------------
                +---+   +---------------+
USB            GND  |   |   ATmega168   |
===                 C3  |               |
5V <-------+--------+---|Vcc,AVCC       |        HHKB
           R1           |               |        ====
D- <----+--+-----R2-----|INT1      PB0-2|------->ROW
D+ <----|---+----R3-----|INT0      PB3-5|------->COL
        Z1  Z2          |            PB6|------->ENABLE
GND<----+---+--+--+-----|GND         PE6|------->KEY
               |  |     |            PE7|------->PREV
               |  C2-+--|XTAL1          |        (see doc/HHKB.txt for pinouts)
               |     X1 |               |
               +--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)


EOF
