I needed a ADB to USB keyboard converter to test a feel of ADB keyboards on actual usage. After 2days coding and several hours debug, I made this converter based on my keyboard firmware. If you are interested in ADB keyboard converter, try this.You can buy preassembled TMK ADB-USB converter hereREQUEST FOR HELP: Extended mouse protocol support
It is required for more buttons and movement resolution of mouse/trackball.
Do you have multiple button mouse? Implement it!https://github.com/tmk/tmk_keyboard/issues/274README FIRSThttps://github.com/tmk/tmk_keyboardhttps://github.com/tmk/tmk_keyboard/tree/master/converter/adb_usb
and optionally,https://github.com/tmk/tmk_keyboard/wikihttps://github.com/tmk/tmk_keyboard/labels/NOTENEED HELP?Your converter doesn't work?
Frist, post pics of your hardware and wriring this really save time of us. Don't save your time by omitting this.If you edit code
Post your code. Don't hesitate to show your dirty code!UPDATE
2012/12/12 Extended keyboard support by blargg
2013/04/08 Fix issue: ADB-USB converter misses keystrokes
(NOT FIXED COMPLETELY)
2013/07/22 Changed Pin usage: PD0
, NOT PF0 now
2013/10/11 WIP: Fix ADB-USB converter misses keystrokes
2013/11/28 Fix key drop problem finally
Thank you, blargg
2015/04/28 Mouse is supported by mek-apelsin
2015/12/18 Request for help: extended mouse support
2016/06/04 Added LIMITATION section
2016/06/04 Apple Adjustable Keyboard media keys are supported nowLIMITATION
- Caps lock key of Apple adjustable keyboard
is not mechanical locking swith but the keybaord emulates locking switch behaviour. You will have a problem when using the capslock key as other key like control.
This converter doesn't support
volume keys and mic key on right side of Apple adjustable keyboard
: supported now https://github.com/tmk/tmk_keyboard/issues/130
- Apple adjustable keyboard
keypad is not confirmed yet. Not sure if it works or not at this time.SOURCE CODEhttps://github.com/tmk/tmk_keyboard/tree/master/converter/adb_usbBUILD FIRMWAREhttps://github.com/tmk/tmk_keyboard/blob/master/doc/build.mdBUILD CONVERTER
You can use PJRC Teensy or other dev board with ATMega32U4.
ADB female socket from the front:
/ o4 3o \ 1: DATA
| o2 1o | 2: Power SW
- === - 3: VCC
`-___-' 4: GND
- Connect keyboard DATA line to PD0 pin(configurable in config.h), not to mention VCC and GND as well.
- Just 'make' to build firmware binary.
- And program your AVR with the firmware.
You can use PJRC's 'hid_listen' command to see debug print.http://www.pjrc.com/teensy/hid_listen.htmlPULL-UP RESISTORYou must have a external pull-up resistor(1K is recommended) on DATA line.
This converter uses AVR's internal pull-up, but it seems to be too weak to communicate with ADB keyboard.
The external pull-up resistor is
strongly recommended required
Keyboard Conveterhttps://github.com/tmk/tmk_keyboard/wiki/FAQ#pull-up-resistorPower key
| | |
R | |
| | |
R: 1K Ohm resistor
In default configuration Power key is used as 'Magic command' trigger key.https://github.com/tmk/tmk_keyboard#magic-commands
You may not use it for your usage unless you change the configuration.https://geekhack.org/index.php?topic=14290.msg1867968#msg1867968Locking CapsLock
Many of old ADB keyboards have mechanically locking switch for Caps lock and TMK supports them.https://github.com/tmk/tmk_keyboard#mechanical-locking-support
Or you may want to remove locking pin from the push-lock switch to use it as a normal momentary switch.http://www.youtube.com/watch?v=9wqnt2mGJ2YADB protocol Resource
This is code for ADB protocol:https://github.com/tmk/tmk_core/blob/master/protocol/adb.c#L301-L478Mouse Going Top Left of Screen
We'd seen poeple suffered from a mouse-going-top-left problem
. Some of them had clearly hardware problems like bad connection and wiring but I didn't know exact reason actually.https://geekhack.org/index.php?topic=14290.msg1754134#msg1754134
But now I finaly got it. You must have a pull-up resistor in the end, mouse function doesn't work without it. If you build firmware without mouse feature it may work without pull-up resistor.Anyway pull-up resistor is a must-have.https://github.com/tmk/tmk_keyboard/issues/249