]>
Commit | Line | Data |
---|---|---|
1 | ADB to USB keyboard converter | |
2 | ============================= | |
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. | |
4 | ||
5 | Discuss here: http://geekhack.org/showwiki.php?title=Island:14290 | |
6 | ||
7 | You can buy a TMK converter here: https://geekhack.org/index.php?topic=72052.0 | |
8 | ||
9 | ||
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 | ||
22 | Wiring | |
23 | ------ | |
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 | |
55 | ||
56 | ||
57 | Build firmware and Program microcontroller | |
58 | ------------------------------------------ | |
59 | See [doc/build.md](../../tmk_core/doc/build.md). | |
60 | ||
61 | To build firmware and program TMK Converter run these commands: | |
62 | ||
63 | $ make -f Makefile clean | |
64 | $ make -f Makefile [KEYMAP=(plain|ansi|iso|hasu)] | |
65 | $ make -f Makefile [KEYMAP=(plain|ansi|iso|hasu)] dfu | |
66 | ||
67 | You can select keymap with optional `KEYMAP=` (plain is default). Push button on the converter before running `dfu` target. | |
68 | ||
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**. | |
70 | ||
71 | To program Teensy you can use `teensy` target: | |
72 | ||
73 | $ make -f Makefile.teensy [KEYMAP=(plain|ansi|iso|hasu)] teensy | |
74 | ||
75 | ||
76 | ||
77 | Keymap | |
78 | ------ | |
79 | You can change a keymap by editing code of keymap_[plain|ansi|iso|hasu|yours].c. | |
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. | |
81 | ||
82 | ||
83 | Magic command | |
84 | ------------- | |
85 | To get help press `h` holding Magic key. Magic key is `Power key`. | |
86 | ||
87 | ||
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 | ||
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 | ||
102 | Notes | |
103 | ----- | |
104 | Not-extended ADB keyboards have no discrimination between right modifier and left one, | |
105 | you will always see left control even if you press right control key. | |
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 | ||
112 | If keyboard has ISO layout you may have swapped keys problem, see this for the detail. | |
113 | ||
114 | https://github.com/tmk/tmk_keyboard/issues/35 | |
115 | ||
116 | EOF |