adb_usb: reinitialize for plug-in after startup
authortmk <hasu@tmk-kbd.com>
Thu, 19 May 2016 18:30:46 +0000 (03:30 +0900)
committertmk <hasu@tmk-kbd.com>
Thu, 19 May 2016 18:30:46 +0000 (03:30 +0900)
converter/adb_usb/README.md
converter/adb_usb/matrix.c

index aa06c8db8744e5dbbce5b45aec546aa15e32c57f..034540c9d78e2892bfddbd43b801b05ea42e8859 100644 (file)
@@ -1,10 +1,11 @@
 ADB to USB keyboard converter
 =============================
-This firmware converts 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.
+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.
 
 Discuss: http://geekhack.org/showwiki.php?title=Island:14290
 
+TMK Converter: https://geekhack.org/index.php?topic=72052.0
+
 
 
 README FIRST
@@ -57,29 +58,25 @@ Build firmware and Program microcontroller
 ------------------------------------------
 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
-
-You can select keymap(ansi is default) like this:
-
-    $ make -f Makefile KEYMAP=[ansi|iso|hasu]
+    $ make -f Makefile [KEYMAP=(plain|ansi|iso|hasu)]
+    $ make -f Makefile [KEYMAP=(plain|ansi|iso|hasu)] dfu
 
-To program TMK Converter:
+You can select keymap with optional `KEYMAP=` (plain is default). Push button on the converter before running `dfu` target.
 
-    $ make -f Makefile dfu
+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 Teensy2.0:
+To program Teensy you can use `teensy` target:
 
-    $ make -f Makefile.teensy teensy
+    $ make -f Makefile.teensy [KEYMAP=(plain|ansi|iso|hasu)] 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
 ------
-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.
 
 
@@ -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,
 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
-keymap you will suffer from swapped keys problem.
+If keyboard has ISO layout you may have swapped keys problem, see this for the detail.
 
 https://github.com/tmk/tmk_keyboard/issues/35
 
index 6857e692ab93b2d6fe6cbc1afd749848b479c1bc..abcc0cc9c3c645615a5a72d5fb2090e1b4539dff 100644 (file)
@@ -209,6 +209,8 @@ uint8_t matrix_scan(void)
         register_key(0xFF);
     } else if (key0 == 0xFF) {      // error
         xprintf("adb_host_kbd_recv: ERROR(%d)\n", codes);
+        // something wrong or plug-in
+        matrix_init();
         return key1;
     } else {
         /* Swap codes for ISO keyboard
Imprint / Impressum