diff options
Diffstat (limited to 'converter/adb_usb/README.md')
-rw-r--r-- | converter/adb_usb/README.md | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/converter/adb_usb/README.md b/converter/adb_usb/README.md new file mode 100644 index 0000000000..46082ff67f --- /dev/null +++ b/converter/adb_usb/README.md @@ -0,0 +1,103 @@ +ADB to USB keyboard converter +============================= +This firmware converts ADB keyboard protocol to USB. +You can use PJRC Teensy for this converter, though, other USB AVR(ATMega32U4, AT90USB64/128 or etc) should work. +But binary size is about 10KB or more it doesn't fit into 8K flash like ATMega8U2. + +Discuss: http://geekhack.org/showwiki.php?title=Island:14290 + + + +README FIRST +------------ +https://github.com/tmk/tmk_keyboard +https://github.com/tmk/tmk_keyboard/tree/master/converter/adb_usb + +Also check these when you are in trouble. + +https://github.com/tmk/tmk_keyboard/wiki +https://github.com/tmk/tmk_keyboard/labels/NOTE + + +Wiring +------ +Connect ADB pins to controller just by 3 lines(Vcc, GND, Data). By default Data line uses port PD0. + +ADB female socket from the front: + + ,--_--. + / o4 3o \ 1: DATA + | o2 1o | 2: Power SW + - === - 3: VCC + `-___-' 4: GND + +This converter uses AVR's internal pull-up, but it seems to be too weak, in particular when you want to use a long or coiled cable. The external pull-up resistor(1K-10K Ohm) on Data is strongly recommended.(It is almost must!) +https://github.com/tmk/tmk_keyboard/wiki/FAQ#pull-up-resistor + +Pull-up resister: + + Keyboard Conveter + ,------. + 5V------+------|VCC | + | | | + [R] | | + | | | + Signal--+------|PD0 | + | | + GND------------|GND | + `------' + R: 1K Ohm resistor + + +Define following macros for ADB connection in config.h if you use other than port PD0. + + ADB_PORT, ADB_PIN, ADB_DDR, ADB_DATA_BIT + + +Build +----- +See doc/build.md. In short, + + $ make clean + $ make + +You can select keymap(ansi is default) like this: + + $ make KEYMAP=[ansi|iso|hasu] + + +Keymap +------ +You can change a keymap by editing code of keymap_[ansi|iso|hasu|yours].c. +How to define the keymap is probably obvious. You can find key symbols in common/keycode.h. And see doc/keymap.md for more detail. + + +Magic command +------------- +To get help press `h` holding Magic key. Magic key is `Power key`. + + +Locking CapsLock +---------------- +Many of old ADB keyboards have mechanical push-lock switch for Capslock key and this converter supports the locking Capslock key by default. See README in top directory for more detail about this feature. +https://github.com/tmk/tmk_keyboard/blob/master/README.md#mechanical-locking-support + +Also you may want to remove locking pin from the push-lock switch to use capslock as a normal momentary switch. + + +Notes +----- +Not-extended ADB keyboards have no discrimination between right modifier and left one, +you will always see left control even if you press right control key. +Apple Extended Keyboard and Apple Extended Keyboard II can discriminate both side +modifiers except for GUI key(Windows/Command). + +And most ADB keyboard has no diodes in its matrix so they are not NKRO, +though ADB protocol itself supports it. See protocol/adb.c for more info. + +If keyboard has ISO layout you need to use ISO keymap with `make KEYMAP=iso`. With ANSI +keymap you will suffer from swapped keys problem. + +https://github.com/tmk/tmk_keyboard/issues/35 + +EOF |