1
0

Merge branch 'adb_iso_fix'

This commit is contained in:
tmk 2016-05-20 03:32:11 +09:00
commit 41d8811c35
2 changed files with 14 additions and 16 deletions

View File

@ -1,10 +1,11 @@
ADB to USB keyboard converter ADB to USB keyboard converter
============================= =============================
This firmware converts ADB keyboard protocol to USB. This firmware converts Apple ADB keyboard protocol to USB. You can use TMK Converter, PJRC Teensy2.0 and other USB AVR MCU(ATMega32U4, AT90USB64/128 or etc) for this. But binary size is probably more than 10KB and it won't fit into 8K flash.
You can use TMK Converter, PJRC Teensy2.0 and other USB AVR MCU(ATMega32U4, AT90USB64/128 or etc) for this. But binary size is probably more than 10KB and it won't fit into 8K flash.
Discuss: http://geekhack.org/showwiki.php?title=Island:14290 Discuss: http://geekhack.org/showwiki.php?title=Island:14290
TMK Converter: https://geekhack.org/index.php?topic=72052.0
README FIRST README FIRST
@ -57,29 +58,25 @@ Build firmware and Program microcontroller
------------------------------------------ ------------------------------------------
See [doc/build.md](../../tmk_core/doc/build.md). See [doc/build.md](../../tmk_core/doc/build.md).
To build firmware: To build firmware and program TMK Converter run these commands:
$ make -f Makefile clean $ make -f Makefile clean
$ make -f Makefile $ make -f Makefile [KEYMAP=(plain|ansi|iso|hasu)]
$ make -f Makefile [KEYMAP=(plain|ansi|iso|hasu)] dfu
You can select keymap(ansi is default) like this: You can select keymap with optional `KEYMAP=` (plain is default). Push button on the converter before running `dfu` target.
$ make -f Makefile KEYMAP=[ansi|iso|hasu] 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**.
To program TMK Converter: To program Teensy you can use `teensy` target:
$ make -f Makefile dfu $ make -f Makefile.teensy [KEYMAP=(plain|ansi|iso|hasu)] teensy
To program Teensy2.0:
$ make -f Makefile.teensy teensy
Use **Makefile.rev1** for TMK Converter rev.1 and **Makefile.teensy** for Teensy2.0 instead of **Makefile**. For TMK Converter rev.2 just use **Makefile**.
Keymap Keymap
------ ------
You can change a keymap by editing code of keymap_[ansi|iso|hasu|yours].c. You can change a keymap by editing code of keymap_[plain|ansi|iso|hasu|yours].c.
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. 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.
@ -112,8 +109,7 @@ modifiers except for GUI key(Windows/Command).
And most ADB keyboard has no diodes in its matrix so they are not NKRO, And most ADB keyboard has no diodes in its matrix so they are not NKRO,
though ADB protocol itself supports it. See protocol/adb.c for more info. though ADB protocol itself supports it. See protocol/adb.c for more info.
If keyboard has ISO layout you need to use ISO keymap with `make KEYMAP=iso`. With ANSI If keyboard has ISO layout you may have swapped keys problem, see this for the detail.
keymap you will suffer from swapped keys problem.
https://github.com/tmk/tmk_keyboard/issues/35 https://github.com/tmk/tmk_keyboard/issues/35

View File

@ -209,6 +209,8 @@ uint8_t matrix_scan(void)
register_key(0xFF); register_key(0xFF);
} else if (key0 == 0xFF) { // error } else if (key0 == 0xFF) { // error
xprintf("adb_host_kbd_recv: ERROR(%d)\n", codes); xprintf("adb_host_kbd_recv: ERROR(%d)\n", codes);
// something wrong or plug-in
matrix_init();
return key1; return key1;
} else { } else {
/* Swap codes for ISO keyboard /* Swap codes for ISO keyboard