You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
qmk_firmware/keyboard/hhkb
tmk ab89bfce03 Fix LUFA descriptor of Extra for Windows
- worked on Linux but not on Windows
  (logica/usage MINIMUM must start at 0x001)
13 years ago
..
doc Fix README.md: remove bad links 13 years ago
Makefile.iwrap Made directories for keyboard and converter projects. 13 years ago
Makefile.lufa Add Makefile.lufa to keyboard/hhkb and hbkb. 13 years ago
Makefile.pjrc Add Makefile.lufa to keyboard/hhkb and hbkb. 13 years ago
Makefile.vusb Made directories for keyboard and converter projects. 13 years ago
README Made directories for keyboard and converter projects. 13 years ago
config.h Fix LUFA descriptor of Extra for Windows 13 years ago
config_iwrap.h Made directories for keyboard and converter projects. 13 years ago
config_vusb.h Made directories for keyboard and converter projects. 13 years ago
keymap.c Add protocol/lufa. LUFA supported now. 13 years ago
led.c Made directories for keyboard and converter projects. 13 years ago
matrix.c Add Makefile.lufa to keyboard/hhkb and hbkb. 13 years ago
usbconfig.h Made directories for keyboard and converter projects. 13 years ago

README

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