]>
Commit | Line | Data |
---|---|---|
56e098d7 | 1 | ADB to USB keyboard converter |
2 | ============================= | |
8027dc51 | 3 | This firmware converts Apple ADB keyboard protocol to USB, you can use it to plug old ADB keyboard into modern computer. It works on TMK ADB-USB Converter, PJRC Teensy2.0 and other USB AVR MCU(ATMega32U4, AT90USB64/128 or etc) and needs more than 10KB flash at least. |
9f05dc6f | 4 | |
8027dc51 | 5 | Discuss here: http://geekhack.org/showwiki.php?title=Island:14290 |
56e098d7 | 6 | |
8027dc51 | 7 | You can buy a TMK converter here: https://geekhack.org/index.php?topic=72052.0 |
4fc0efd3 | 8 | |
06db3958 | 9 | |
1ed54a5d | 10 | |
11 | README FIRST | |
12 | ------------ | |
13 | https://github.com/tmk/tmk_keyboard | |
14 | https://github.com/tmk/tmk_keyboard/tree/master/converter/adb_usb | |
15 | ||
16 | Also check these when you are in trouble. | |
17 | ||
18 | https://github.com/tmk/tmk_keyboard/wiki | |
19 | https://github.com/tmk/tmk_keyboard/labels/NOTE | |
20 | ||
21 | ||
ed8cf12d | 22 | Wiring |
23 | ------ | |
1ed54a5d | 24 | Connect ADB pins to controller just by 3 lines(Vcc, GND, Data). By default Data line uses port PD0. |
25 | ||
26 | ADB female socket from the front: | |
27 | ||
28 | ,--_--. | |
29 | / o4 3o \ 1: DATA | |
30 | | o2 1o | 2: Power SW | |
31 | - === - 3: VCC | |
32 | `-___-' 4: GND | |
33 | ||
34 | 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!) | |
35 | https://github.com/tmk/tmk_keyboard/wiki/FAQ#pull-up-resistor | |
36 | ||
37 | Pull-up resister: | |
38 | ||
39 | Keyboard Conveter | |
40 | ,------. | |
41 | 5V------+------|VCC | | |
42 | | | | | |
43 | [R] | | | |
44 | | | | | |
45 | Signal--+------|PD0 | | |
46 | | | | |
47 | GND------------|GND | | |
48 | `------' | |
49 | R: 1K Ohm resistor | |
50 | ||
51 | ||
52 | Define following macros for ADB connection in config.h if you use other than port PD0. | |
53 | ||
54 | ADB_PORT, ADB_PIN, ADB_DDR, ADB_DATA_BIT | |
9f05dc6f | 55 | |
56 | ||
060c8c55 | 57 | Build firmware and Program microcontroller |
58 | ------------------------------------------ | |
59 | See [doc/build.md](../../tmk_core/doc/build.md). | |
60 | ||
4fc0efd3 | 61 | To build firmware and program TMK Converter run these commands: |
ed8cf12d | 62 | |
060c8c55 | 63 | $ make -f Makefile clean |
4fc0efd3 | 64 | $ make -f Makefile [KEYMAP=(plain|ansi|iso|hasu)] |
65 | $ make -f Makefile [KEYMAP=(plain|ansi|iso|hasu)] dfu | |
060c8c55 | 66 | |
4fc0efd3 | 67 | You can select keymap with optional `KEYMAP=` (plain is default). Push button on the converter before running `dfu` target. |
060c8c55 | 68 | |
4fc0efd3 | 69 | Use **Makefile.rev1** for old TMK Converter rev.1 and **Makefile.teensy** for Teensy2.0 instead of **Makefile**. For TMK Converter rev.2 just use **Makefile**. |
060c8c55 | 70 | |
4fc0efd3 | 71 | To program Teensy you can use `teensy` target: |
060c8c55 | 72 | |
4fc0efd3 | 73 | $ make -f Makefile.teensy [KEYMAP=(plain|ansi|iso|hasu)] teensy |
060c8c55 | 74 | |
56e098d7 | 75 | |
40c24dc8 | 76 | |
77 | Keymap | |
78 | ------ | |
4fc0efd3 | 79 | You can change a keymap by editing code of keymap_[plain|ansi|iso|hasu|yours].c. |
060c8c55 | 80 | 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. |
40c24dc8 | 81 | |
82 | ||
9f05dc6f | 83 | Magic command |
84 | ------------- | |
85 | To get help press `h` holding Magic key. Magic key is `Power key`. | |
86 | ||
87 | ||
1ed54a5d | 88 | Locking CapsLock |
89 | ---------------- | |
90 | 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. | |
91 | https://github.com/tmk/tmk_keyboard/blob/master/README.md#mechanical-locking-support | |
92 | ||
93 | Also you may want to remove locking pin from the push-lock switch to use capslock as a normal momentary switch. | |
94 | ||
95 | ||
060c8c55 | 96 | Mouse support |
97 | ------------- | |
98 | ADB mouse support was added by @mek-apelsin on Apr,2015. It supports only one button as of now. | |
99 | https://github.com/tmk/tmk_keyboard/pull/207 | |
100 | ||
101 | ||
e67c9888 | 102 | Notes |
103 | ----- | |
ed8cf12d | 104 | Not-extended ADB keyboards have no discrimination between right modifier and left one, |
e67c9888 | 105 | you will always see left control even if you press right control key. |
ed8cf12d | 106 | Apple Extended Keyboard and Apple Extended Keyboard II can discriminate both side |
107 | modifiers except for GUI key(Windows/Command). | |
108 | ||
109 | And most ADB keyboard has no diodes in its matrix so they are not NKRO, | |
110 | though ADB protocol itself supports it. See protocol/adb.c for more info. | |
111 | ||
4fc0efd3 | 112 | If keyboard has ISO layout you may have swapped keys problem, see this for the detail. |
ed8cf12d | 113 | |
114 | https://github.com/tmk/tmk_keyboard/issues/35 | |
e67c9888 | 115 | |
56e098d7 | 116 | EOF |