Skip to content

Commit ba4bc7c

Browse files
committed
Merge remote-tracking branch 'upstream/master' into develop
2 parents 465defc + 076d60a commit ba4bc7c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

76 files changed

+18915
-14526
lines changed

converter/adb_usb/Makefile

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,13 +79,29 @@ ACTIONMAP_ENABLE ?= no # Use 16bit actionmap instead of 8bit keymap
7979
KEYMAP_SECTION_ENABLE ?= yes # fixed address keymap for keymap editor
8080

8181
# ADB Mice need acceleration for todays much bigger screens.
82-
ADB_MOUSE_MAXACC ?= 8
82+
ADB_MOUSE_MAXACC ?= 1
8383
OPT_DEFS += -DADB_MOUSE_MAXACC=$(ADB_MOUSE_MAXACC)
8484

85+
# Enable scroll wheel functionality using the y-axis of the mouse
86+
# Hold the assigned button down to scroll using the mouse
87+
#
88+
# Example:
89+
# Kensington Turbo Mouse 5
90+
# ________
91+
# middle click -> |3 __ 4| <- scroll toggle (browser back when disabled)
92+
# | / \ |
93+
# | \__/ |
94+
# left click -> |1 2| <- right click
95+
# |________|
96+
#
97+
ADB_MOUSE_SCROLL_BUTTON ?= 0 # Assign the button (1-8) (0 to disable)
98+
ADB_MOUSE_SCROLL_SPEED ?= 10 # 1 (fastest) to 127 (slowest)
8599

86100
# Optimize size but this may cause error "relocation truncated to fit"
87101
#EXTRALDFLAGS = -Wl,--relax
88102

103+
OPT_DEFS += -DADB_MOUSE_SCROLL_BUTTON=$(ADB_MOUSE_SCROLL_BUTTON)
104+
OPT_DEFS += -DADB_MOUSE_SCROLL_SPEED=$(ADB_MOUSE_SCROLL_SPEED)
89105

90106
#
91107
# Keymap file

converter/adb_usb/README.md

Lines changed: 48 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,30 @@
11
ADB to USB keyboard converter
22
=============================
3-
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.
3+
This firmware converts Apple ADB keyboard/mouse protocol to USB and you can use old ADB keyboard/mouse on modern computer. It works on TMK ADB-USB converter or AVR microcontroller(ATMega32U4/2).
44

5-
Discuss about this here: http://geekhack.org/showwiki.php?title=Island:14290
5+
Discussion and info: https://geekhack.org/index.php?topic=14290.0
66

7-
Prebuilt TMK ADB-USB converter is available here: https://geekhack.org/index.php?topic=72052.0
7+
TMK ADB-USB converter: https://geekhack.org/index.php?topic=72052.0
88

99

1010

11-
README FIRST
12-
------------
13-
https://github.com/tmk/tmk_keyboard
14-
https://github.com/tmk/tmk_keyboard/tree/master/converter/adb_usb
11+
Infos
12+
-----
13+
Wiki: https://github.com/tmk/tmk_keyboard/wiki
1514

16-
Also check these when you are in trouble.
15+
ADB protocol: https://github.com/tmk/tmk_keyboard/wiki/Apple-Desktop-Bus
16+
17+
Issues: https://github.com/tmk/tmk_keyboard/issues?q=is%3Aissue+ADB
18+
19+
Firmware Code: https://github.com/tmk/tmk_keyboard/tree/master/converter/adb_usb
1720

18-
https://github.com/tmk/tmk_keyboard/wiki
19-
https://github.com/tmk/tmk_keyboard/issues
2021

2122

2223
Wiring
2324
------
24-
If you build this yourself you have to solder some wires.
25-
Connect ADB pins to controller just by 3 lines(Vcc, GND, Data) at least. By default Data line uses port PD0.
26-
This is not needed but you can connect PSW to PD1 optionally.
25+
Connect DATA, VCC and GND to microcontroller. Use port **PD0** for DATA. PSW is not used.
26+
27+
You can change the port with `ADB_PORT`, `ADB_PIN`, `ADB_DDR`, `ADB_DATA_BIT` in `config.h`.
2728

2829
ADB female socket from the front:
2930

@@ -33,10 +34,11 @@ ADB female socket from the front:
3334
- === - 3: VCC
3435
`-___-' 4: GND
3536

36-
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!)
37-
https://github.com/tmk/tmk_keyboard/wiki/FAQ#pull-up-resistor
3837

39-
Pull-up resister:
38+
### Pull-up resister:
39+
The external **1k Ohm** pull-up resistor on DATA is **required**.
40+
41+
AVR microcontroller's internal pull-up is too weak for ADB in particular when you want to use a long coiled cable or daisy-chain devices.
4042

4143
Keyboard AVR MCU
4244
,------.
@@ -48,18 +50,14 @@ Pull-up resister:
4850
| |
4951
GND------------|GND |
5052
`------'
51-
R: 1K Ohm resistor
52-
53+
R: 1k Ohm resistor
5354

54-
Define following macros for ADB connection in config.h if you use other than port PD0.
55+
https://github.com/tmk/tmk_keyboard/wiki/Apple-Desktop-Bus#pull-up-resistor
5556

56-
ADB_PORT, ADB_PIN, ADB_DDR, ADB_DATA_BIT
5757

5858

5959
Build firmware and Program microcontroller
6060
------------------------------------------
61-
See [doc/build.md](../../tmk_core/doc/build.md).
62-
6361
To build firmware and program TMK ADB-USB Converter run these commands:
6462

6563
$ make -f Makefile clean
@@ -70,50 +68,50 @@ You can select keymap name with optional `KEYMAP=` ('plain' is default name). Pu
7068

7169
Use **Makefile.rev1** for old TMK Converter rev.1 and Teensy2.0 instead of **Makefile**.
7270

71+
https://github.com/tmk/tmk_keyboard/wiki#build-firmware
7372

7473

75-
Keymap
76-
------
77-
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.
78-
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.
79-
8074

81-
Magic command
82-
-------------
83-
To get help message in hid_listen press `h` holding Magic key. Magic key is `Power key`.
75+
Debug
76+
-----
77+
Use hid_listen command line tool to see debug outputs.
8478

8579
https://github.com/tmk/tmk_keyboard/wiki#debug
8680

8781

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. Use keycode `LCAP` instead of `CAPS` in your keymap in short. See README in top directory for more detail.
91-
https://github.com/tmk/tmk_keyboard/blob/master/README.md#mechanical-locking-support
92-
93-
If you want to remap Capslock key you will have to remove locking pin or just replace with normal momentary switch. Some keyboards like Apple Adujstable keyboard use firmware-base locking with momentary switch for Capslock and remapping it won't be useful in most cases.
94-
9582

9683
Notes for keyboard
9784
------------------
98-
Not-extended ADB keyboards have no discrimination between right modifier and left one,
99-
you will always see left control even if you press right control key.
100-
Apple Extended Keyboard and Apple Extended Keyboard II can discriminate both side
101-
modifiers except for GUI key(Windows/Command).
85+
Apple Standard keyboard(M0116) can't discriminate between right and left modifiers
86+
while Apple Extended keyboard(M0115/M3501) can discriminate them except for Command key.
10287

103-
And most of ADB keyboards have no diodes in its matrix so they are not NKRO unfortunately,
104-
though ADB protocol itself supports it. See tmk_core/protocol/adb.c for more info.
10588

10689

10790
Notes for mouse
10891
---------------
109-
ADB mouse support was added by @mek-apelsin on Apr,2015.
110-
https://github.com/tmk/tmk_keyboard/pull/207
92+
All one-button mouses should be supported and others will work as one-button mouse even if not supported.
93+
94+
Mouse protocols(handler ID) below are curretnly supported.
95+
96+
- Apple Classic Mouse protocol (1, 2)
97+
- Apple Extended Mouse protocol (4)
98+
- Kensington Turbo Mouse 5 #64210 and Thinking Mouse (0x32)
99+
- Macally 2-button Mouse (0x42)
100+
- Logitech MouseMan/TrackMan Proprietary protocol (0x4C*)
101+
- Logitech MouseMan/TrackMan Extended protocol (0x4D*)
102+
- Micrspeed MacTrac (0x2F, 0x5F) - Not confirmed
103+
- Contour Design Countour Mouse (0x66) - Not confirmed
104+
- Mouse Systems A3 Mouse/Trackball (0x03) - Not confirmed
105+
- CH Products Tracball Pro/DT225 (0x42) - Not confirmed
111106

112-
All one-button mouses should be supported.
107+
https://github.com/tmk/tmk_keyboard/wiki/Apple-Desktop-Bus#mouse
113108

114-
As of 2019 June, the converter can handle multi-button mice and trackball up to eight buttons if the pointing device supports Apple Extended Mouse protocol. But some devices use their own specific protocol unfortunately and they will work as one-button mouse unless device specific code is added.
115109

116-
Kensington Turbo Mouse 5(#64210) is supported now.
117-
https://github.com/tmk/tmk_keyboard/issues/274#issuecomment-504726633
118110

119-
EOF
111+
Locking CapsLock
112+
----------------
113+
Many of old ADB keyboards have mechanical push-lock switch for Capslock and some like Apple Adujstable keyboard use firmware-base locking with momentary switch for Capslock.
114+
115+
The converter supports the locking Capslock key. Use keycode `LCAP` instead of `CAPS` in your keymap.
116+
117+
https://github.com/tmk/tmk_keyboard/wiki/FAQ-Keymap#mechanical-lock-switch-support

0 commit comments

Comments
 (0)