2011-01-13 01:26:33 +09:00
ADB to USB keyboard converter
=============================
2019-06-21 14:40:09 +09:00
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.
2012-09-20 13:02:42 +09:00
2019-06-21 14:40:09 +09:00
Discuss about this here: http://geekhack.org/showwiki.php?title=Island:14290
2011-01-13 01:26:33 +09:00
2019-06-21 14:40:09 +09:00
Prebuilt TMK ADB-USB converter is available here: https://geekhack.org/index.php?topic=72052.0
2016-05-20 03:30:46 +09:00
2011-01-13 22:46:57 +09:00
2015-05-13 17:19:25 +09:00
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
2014-05-21 02:43:19 +09:00
Wiring
------
2019-06-21 14:40:09 +09:00
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.
2015-05-13 17:19:25 +09:00
ADB female socket from the front:
,--_--.
/ o4 3o \ 1: DATA
2019-06-21 14:40:09 +09:00
| o2 1o | 2: PSW(Power SW)
2015-05-13 17:19:25 +09:00
- === - 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:
2019-06-21 14:40:09 +09:00
Keyboard AVR MCU
2015-05-13 17:19:25 +09:00
,------.
5V------+------|VCC |
| | |
[R] | |
| | |
2019-06-21 14:40:09 +09:00
DATA----+------|PD0 |
2015-05-13 17:19:25 +09:00
| |
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
2012-09-20 13:02:42 +09:00
2015-12-05 10:15:06 +09:00
Build firmware and Program microcontroller
------------------------------------------
See [doc/build.md ](../../tmk_core/doc/build.md ).
2019-06-21 14:40:09 +09:00
To build firmware and program TMK ADB-USB Converter run these commands:
2014-05-21 02:43:19 +09:00
2015-12-05 10:15:06 +09:00
$ make -f Makefile clean
2019-06-21 14:40:09 +09:00
$ make -f Makefile [KEYMAP=yourname]
$ make -f Makefile [KEYMAP=yourname] dfu
2015-12-05 10:15:06 +09:00
2019-06-21 14:40:09 +09:00
You can select keymap name with optional `KEYMAP=` ('plain' is default name). Push button on the converter before running `dfu` target.
2015-12-05 10:15:06 +09:00
2019-06-21 14:40:09 +09:00
Use **Makefile.rev1** for old TMK Converter rev.1 and Teensy2.0 instead of **Makefile** .
2015-12-05 10:15:06 +09:00
2011-01-13 01:26:33 +09:00
2011-01-13 17:56:13 +09:00
Keymap
------
2019-06-21 14:40:09 +09:00
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.
2015-12-05 10:15:06 +09:00
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.
2011-01-13 17:56:13 +09:00
2012-09-20 13:02:42 +09:00
Magic command
-------------
2019-06-21 14:40:09 +09:00
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
2012-09-20 13:02:42 +09:00
2015-05-13 17:19:25 +09:00
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.
2015-12-05 10:15:06 +09:00
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
2011-09-17 22:39:50 +09:00
Notes
-----
2014-05-21 02:43:19 +09:00
Not-extended ADB keyboards have no discrimination between right modifier and left one,
2011-09-17 22:39:50 +09:00
you will always see left control even if you press right control key.
2014-05-21 02:43:19 +09:00
Apple Extended Keyboard and Apple Extended Keyboard II can discriminate both side
modifiers except for GUI key(Windows/Command).
2019-06-21 14:40:09 +09:00
And most of ADB keyboards have no diodes in its matrix so they are not NKRO unfortunately,
2014-05-21 02:43:19 +09:00
though ADB protocol itself supports it. See protocol/adb.c for more info.
2011-01-13 01:26:33 +09:00
EOF