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.
+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 |
`------'
ADB_PORT, ADB_PIN, ADB_DDR, ADB_DATA_BIT
-Build
------
-See doc/build.md. In short,
+Build firmware and Program microcontroller
+------------------------------------------
+See [doc/build.md](../../tmk_core/doc/build.md).
+
+To build firmware and program TMK ADB-USB Converter run these commands:
- $ make clean
- $ make
+ $ make -f Makefile clean
+ $ make -f Makefile [KEYMAP=yourname]
+ $ make -f Makefile [KEYMAP=yourname] dfu
-You can select keymap(ansi is default) like this:
+You can select keymap name with optional `KEYMAP=` ('plain' is default name). Push button on the converter before running `dfu` target.
+
+Use **Makefile.rev1** for old TMK Converter rev.1 and Teensy2.0 instead of **Makefile**.
- $ 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.
+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
Also you may want to remove locking pin from the push-lock switch to use capslock as a normal momentary switch.
+Mouse support
+-------------
+ADB mouse support was added by @mek-apelsin on Apr,2015. It supports only one button as of now.
+https://github.com/tmk/tmk_keyboard/pull/207
+
+
Notes
-----
Not-extended ADB keyboards have no discrimination between right modifier and left one,
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