tmk b2a19328ad Changed Makefile and config.h for new options | před 11 roky | |
---|---|---|
.. | ||
doc | před 11 roky | |
Makefile.iwrap | před 11 roky | |
Makefile.lufa | před 11 roky | |
Makefile.pjrc | před 11 roky | |
Makefile.vusb | před 11 roky | |
README.md | před 11 roky | |
config.h | před 11 roky | |
config_iwrap.h | před 11 roky | |
config_vusb.h | před 11 roky | |
iwrap.txt | před 11 roky | |
keymap.c | před 11 roky | |
led.c | před 12 roky | |
matrix.c | před 11 roky | |
usbconfig.h | před 12 roky |
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.
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.
You can choose some combination of MCU and USB protocol stack.
Edit matrix.c to use your pin configuration. See doc/HHKB.txt for detail.
Edit keymap.c to use your favoirte keymap.
Edit Makefile if you want to use other MCU
than Teensy++ 2.0.
Build firmware binary file:
$ make -f Makefile.lufa
Program MCU with PJRC Teensy Loader tool. If you install command line version of the loader just run:
$ make -f Makefile.lufa teensy
Follow below if you want to use AVR with V-USB as .
Edit matrix.c to use your pin configuration. See doc/HHKB.txt for detail.
Edit keymap.c to use your favoirte keymap.
Edit usbconfig.h to configure V-USB options.
Edit Makefile.vusb to define MCU
and F_CPU
.
Build firmware binary file:
$ make -f Makefile.vusb
Program MCU with AVR programmer like AVRISPmkII. If you already have USBaspLoader on MCU just run:
$ make -f Makefile.vusb program
Later… See keymap.c.
Angled USB mini B adapter is used to install Teensy++ laterally.
Bread baord wires are used to connect Teensy++.
+---------------+
| Teensy++ |
| |
| | HHKB
| | ~~~~
| PB0-2|------->ROW(6-8)
| PB3-5|------->COL(9-11)
| PB6|------->ENABLE(12)
| PE6|<-------KEY(4)
| PE7|------->PREV(5)
| |
| |
| |
+---------------+
+---+ +---------------+
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)