ADB to USB keyboard converter
=============================
-This firmware converts ADB keyboard protocol to USB.
-You can use TMK Converter, PJRC Teensy2.0 and other USB AVR MCU(ATMega32U4, AT90USB64/128 or etc) for this. But binary size is probably more than 10KB and it won't fit into 8K flash.
+This firmware converts Apple ADB keyboard/mouse protocol to USB, you can use it to plug old ADB keyboard/mouse into modern computer. It works on prebuilt TMK ADB-USB Converter or generic dev board with USB AVR MCU(ATMega32U4/2) like Teensy2.0.
-Discuss: http://geekhack.org/showwiki.php?title=Island:14290
+Discuss about this here: http://geekhack.org/showwiki.php?title=Island:14290
+
+Prebuilt TMK ADB-USB converter is available here: https://geekhack.org/index.php?topic=72052.0
Wiring
------
-Connect ADB pins to controller just by 3 lines(Vcc, GND, Data). By default Data line uses port PD0.
+If you build this yourself you have to solder some wires.
+Connect ADB pins to controller just by 3 lines(Vcc, GND, Data) at least. By default Data line uses port PD0.
+This is not needed but you can connect PSW to PD1 optionally.
ADB female socket from the front:
,--_--.
/ o4 3o \ 1: DATA
- | o2 1o | 2: Power SW
+ | o2 1o | 2: PSW(Power SW)
- === - 3: VCC
`-___-' 4: GND
Pull-up resister:
- Keyboard Conveter
+ Keyboard AVR MCU
,------.
5V------+------|VCC |
| | |
[R] | |
| | |
- Signal--+------|PD0 |
+ DATA----+------|PD0 |
| |
GND------------|GND |
`------'
------------------------------------------
See [doc/build.md](../../tmk_core/doc/build.md).
-To build firmware:
+To build firmware and program TMK ADB-USB Converter run these commands:
$ make -f Makefile clean
- $ make -f Makefile
-
-You can select keymap(ansi is default) like this:
-
- $ make -f Makefile KEYMAP=[ansi|iso|hasu]
-
-To program TMK Converter:
+ $ make -f Makefile [KEYMAP=yourname]
+ $ make -f Makefile [KEYMAP=yourname] dfu
- $ make -f Makefile dfu
+You can select keymap name with optional `KEYMAP=` ('plain' is default name). Push button on the converter before running `dfu` target.
-To program Teensy2.0:
+Use **Makefile.rev1** for old TMK Converter rev.1 and Teensy2.0 instead of **Makefile**.
- $ make -f Makefile.teensy teensy
-
-Use **Makefile.rev1** for TMK Converter rev.1 and **Makefile.teensy** for Teensy2.0 instead of **Makefile**. For TMK Converter rev.2 just use **Makefile**.
Keymap
------
-You can change a keymap by editing code of keymap_[ansi|iso|hasu|yours].c.
+You can change keymap by editing code of unimap_plain.c directly, or copy it to your own keymap file like unimap_yourname.c and edit the file.
How to define the keymap is probably obvious. You can find key symbols in common/keycode.h. And see [doc/keymap.md](../../tmk_core/doc/keymap.md) for more detail.
Magic command
-------------
-To get help press `h` holding Magic key. Magic key is `Power key`.
+To get help message in hid_listen press `h` holding Magic key. Magic key is `Power key`.
+
+https://github.com/tmk/tmk_keyboard/wiki#debug
Locking CapsLock
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,
+And most of ADB keyboards have no diodes in its matrix so they are not NKRO unfortunately,
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