You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.

README.md 4.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. Alternative Controller for HHKB Pro
  2. ===================================
  3. I wanted to add some features like vi cursor and mouse keys to my [HHKB][HHKB] but its controller is not programmable and
  4. firmware source code is not open, of course. This means customizing this keyboard needs to replace original
  5. controller with programmable one. This controller can work with HHKB Professional and Professional 2 model.
  6. See [this thread][AltController] in geekhack.org.
  7. [HHKB]: http://www.pfu.fujitsu.com/hhkeyboard/
  8. [AltController]: http://geekhack.org/index.php?topic=12047.0
  9. ##Features
  10. * Customizable keymap
  11. * More keymap layers(more Fn keys)
  12. * Mouse keys
  13. * USB NKRO
  14. See README of [tmk_keyboard] for more.
  15. [tmk_keyboard]: http://github.com/tmk/tmk_keyboard
  16. ###Pros
  17. * No risks: Everything is all reversible
  18. * No need for PCB trace patching, case cutting or any other destructive mod
  19. * Can keep original controller intact
  20. * Can change all HHKB behaviour as you like
  21. ###Cons
  22. * Void your warranty
  23. * Lose USB hub function of Pro2
  24. ##DISCLAIMER
  25. I'm not a professional of electronics nor MCU programming. This may damage your HHKB.
  26. And my English writing is poor, I'm not sure I can convey my notions accurately.
  27. ##Documents
  28. See [doc/HHKB.txt](doc/HHKB.txt) and files under [doc/](doc/) for internal of HHKB and this controller.
  29. ##Build Firmware & Program
  30. See [this document](../../doc/build.md) first.
  31. ### Configuration
  32. Set `MCU`, `BOOTLOADER_SIZE` and other build options in `Makefile` and `config.h`.
  33. ### Build
  34. Just run make after intall tools.
  35. $ make
  36. Use `Makefile.pjrc` if you want to use PJRC stack instead of LUFA.(LUFA is recommended.)
  37. $ make -f Makefile.pjrc
  38. Use `Makefile.vusb` for [V-USB] controller.(not supported actively any more.)
  39. $ make -f Makefile.vusb
  40. ### Program
  41. First, push reset button on board to start bootloader.
  42. This command programs the controller with [dfu-programmer] if the tool is intalled and configured properly.
  43. $ make dfu
  44. Or you can also use [FLIP] command to program. Also the tool should be intalled and configured properly. FLIP GUI app is also available.
  45. $ make flip
  46. Use [Teensy Loader] if your controller is Teensy/Teensy++.
  47. ##How to Customize
  48. See [tmk_keyboard] documents.
  49. ##Hardware
  50. You have some options for hardware. Development boards with USB AVR family(ATMega32U4, AT90USB1286) like Teensy will work while MegaAVR with [V-USB] library is also cheapear option for DIY.
  51. ###1. TMK Alt Controller Board
  52. TMK designed [Keyboard Controller Board for HHKB Pro2(KiCad project)](https://github.com/tmk/HHKB_controller).
  53. See [this post](http://geekhack.org/index.php?topic=12047.msg948923#msg948923).
  54. ###2. PJRC Teensy++ 2.0 connection
  55. +---------------+
  56. | Teensy++ |
  57. | |
  58. | | HHKB pro HHKB pro2
  59. | | ~~~~~~~~ ~~~~~~~~~
  60. | PB0-2|------->ROW (6-8) (5-7)
  61. | PB3-5|------->COL (9-11) (8-10)
  62. | PB6|------->ENABLE (12) (11)
  63. | PE6|<-------KEY (4) (3)
  64. | PE7|------->PREV (5) (4)
  65. | |
  66. | | 5V--- (1-3) (1-2)
  67. | | GND--- (13-14) (12-13)
  68. +---------------+
  69. - NOTE: PJRC [Teensy](http://www.pjrc.com/teensy/)
  70. ###3. V-USB connection
  71. +---+ +---------------+
  72. USB GND | | ATmega328p |
  73. ~~~ C3 | |
  74. 5V <-------+--------+---|Vcc,AVCC | HHKB pro pro2
  75. R1 | | ~~~~~~~~ ~~~~
  76. D- <----+--+-----R2-----|INT1 PB2-4|------->ROW (6-8) (5-7)
  77. D+ <----|---+----R3-----|INT0 PC0-2|------->COL (9-11) (8-10)
  78. Z1 Z2 | PC3|------->ENABLE (12) (11)
  79. GND<----+---+-----------|GND PB0|<-------KEY (4) (3)
  80. | PB1|------->PREV (5) (4)
  81. | |
  82. GND+-C2--+--|XTAL1 RXD|------->Debug Console
  83. X1 | TXD|<-------Debug Console
  84. GND+-C3--+--|XTAL2 RST|---SW--+GND
  85. +---------------+
  86. R1: 1.5K Ohm
  87. R2,R3: 68 Ohm
  88. Z1,Z2: Zener 3.6V
  89. C1,C2: 22pF
  90. C3: 0.1uF
  91. X1: Crystal 12MHz
  92. SW: Push Switch(for bootloader)
  93. - NOTE: See [V-USB] documentation for more detail of hardware and the USB stack.
  94. - NOTE: [USBaspLoader] is very useful for firmware update.
  95. [LUFA]: http://www.fourwalledcubicle.com/LUFA.php
  96. [PJRC]: http://www.pjrc.com/teensy/usb_keyboard.html
  97. [dfu-programmer]: http://dfu-programmer.sourceforge.net/
  98. [FLIP]: http://www.atmel.com/tools/FLIP.aspx
  99. [Teensy Loader]: http://www.pjrc.com/teensy/loader.html
  100. [V-USB]: http://www.obdev.at/products/vusb/index.html
  101. [USBaspLoader]: http://www.obdev.at/products/vusb/usbasploader.html