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 hereKeymap Editor
You can edit keymap and download firmware with web browser.For TMK converter(ATMega32u2)For old TMK converter rev.1(ATMega32u4)README 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. One pic won't be enough, at least two shots of controller side and ADB connector/keyboard side are needed.
Many people said they are sure their wiring is fine first but it became clear they failed to do that in the end many times
in this thread
Don't take advantage of generosity of kind and helpful members(yes, including me, of course
)! Their time is more precious than your time, use your time to learn and look into your problem first.
[/rant]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 now
2016/09/03 Keymap editor(unimap) is available nowLIMITATION
- On ADB keyboards left and right modifier are logically same
and can not be discriminated one another by converter. You can remap modifier keys to any key but both left and right key always register same key code. On Apple Extended keyboard
(AEKI and II) modifiers can be discriminated except for 'Command'. (This is ADB limitation, not converter's)
- 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 control, for example.
- 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 YOURSELF
You can use PJRC Teensy or other dev board with ATMega32U4/2.
ADB female socket from the front:
/ o4 3o \ 1: DATA
| o2 1o | 2: Power SW
- === - 3: VCC
`-___-' 4: GND
You must have a external pull-up resistor(1K is recommended) on DATA line.
- 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.
| | |
R | |
| | |
R: 1K Ohm resistor
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.DEBUG
You can use PJRC's 'hid_listen' command to see debug print.http://www.pjrc.com/teensy/hid_listen.htmlPower key
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-L478REQUEST 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/274OLD STUFF: