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