選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
このリポジトリはアーカイブされています。 ファイルの閲覧とクローンは可能ですが、プッシュや、課題・プルリクエストのオープンはできません。
tmk 9d7278682e Add Caps Lock LED on PD6 11年前
..
doc Add power control of keyswitch board and tweak scan wait 11年前
Makefile.iwrap Add support of iWRAP5 11年前
Makefile.lufa Fix makefile, debug print and keymap of HHKB 11年前
Makefile.pjrc Changed Makefile and config.h for new options 11年前
Makefile.tmk Add power control of keyswitch board and tweak scan wait 11年前
Makefile.vusb Changed Makefile and config.h for new options 11年前
README.md Fix image link 3 :( 11年前
config.h Tweak tap timing for slow tap on space bar 11年前
config_iwrap.h Change tapping parameter for hhkb/iwrap 11年前
config_vusb.h Remove common/controller_teensy.h 11年前
iwrap.txt Improve documentation 11年前
keymap.c Fix deprecated 'prog_*' typedef - Issue #34 11年前
led.c Add Caps Lock LED on PD6 11年前
matrix.c Add power control of keyswitch board and tweak scan wait 11年前
usbconfig.h Made directories for keyboard and converter projects. 12年前

README.md

Alternative Controller for HHKB Pro

I wanted to add some features like vi cursor and mouse keys to my HHKB but its controller is not programmable and firmware source code is not open, of course. This means customizing this keyboard needs to replace original controller with programmable one. For this purpose I used PJRC Teensy++ as alternative controller.

My keyboard firmware source tree is here: http://github.com/tmk/tmk_keyboard See directory keyboard/hhkb to build firmware for HHKB.

Features

  • Customizable keymap
  • More keymap layers(more Fn keys)
  • Mouse keys
  • USB NKRO

Pros

  • Without PCB trace cutting, case mod or any destructives
  • Can keep original controller intact
  • Can change all HHKB behaviour as you like

Cons

  • Void your warranty
  • Lose USB hub function in case of Pro2

DISCLAIMER

I’m not a professional of electronics or MCU programming. This may damage your HHKB. And my English writing is poor, I’m not sure I can convey my notions accurately.

Build Firmware

You can choose some combination of MCU and USB protocol stack.

Teensy++(AVR USB family) with LUFA

  1. Edit matrix.c to use your pin configuration. See doc/HHKB.txt for detail.

  2. Edit keymap.c to use your favoirte keymap.

  3. Edit Makefile if you want to use other MCU than Teensy++ 2.0.

  4. Build firmware binary file: $ make -f Makefile.lufa

  5. Program MCU with PJRC Teensy Loader tool. If you install command line version of the loader just run: $ make -f Makefile.lufa teensy

AVR Mega with V-USB

Follow below if you want to use AVR with V-USB as .

  1. Edit matrix.c to use your pin configuration. See doc/HHKB.txt for detail.

  2. Edit keymap.c to use your favoirte keymap.

  3. Edit usbconfig.h to configure V-USB options.

  4. Edit Makefile.vusb to define MCU and F_CPU.

  5. Build firmware binary file: $ make -f Makefile.vusb

  6. Program MCU with AVR programmer like AVRISPmkII. If you already have USBaspLoader on MCU just run: $ make -f Makefile.vusb program

How to Customize Keymap

Later… See keymap.c.

Hardware

Teensy++ installation

Angled USB mini B adapter is used to install Teensy++ laterally.

Image of Teensy install

Bread baord wires are used to connect Teensy++.

Image of Teensy wiring

Image of Connector

PJRC Teensy++ 2.0 connection

                        +---------------+
                        |   Teensy++    |
                        |               |
                        |               |        HHKB
                        |               |        ~~~~
                        |          PB0-2|------->ROW(6-8)
                        |          PB3-5|------->COL(9-11)
                        |            PB6|------->ENABLE(12)
                        |            PE6|<-------KEY(4)
                        |            PE7|------->PREV(5)
                        |               |
                        |               |
                        |               |
                        +---------------+

V-USB circuit

                +---+   +---------------+
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)