adb_usb: Fix start up delay for AEK/AEKII
Without proper delay keyboard the converter starts talking too early before keyboard wakes up. ISO recognition and enabling Extention protocol would be failed in the result. https://github.com/tmk/tmk_keyboard/issues/640#issuecomment-585411393 200ms is enough for AEKs but 1000ms is used here for safety.
This commit is contained in:
parent
6209ceebfb
commit
ce5e565f58
1 changed files with 10 additions and 3 deletions
|
|
@ -72,8 +72,13 @@ void matrix_init(void)
|
||||||
|
|
||||||
adb_host_init();
|
adb_host_init();
|
||||||
|
|
||||||
// wait for line and device to be stable
|
// AEK/AEKII(ANSI/ISO) startup is slower. Without proper delay
|
||||||
wait_ms(100);
|
// it would fail to recognize layout and enable Extended protocol.
|
||||||
|
// 200ms seems to be enough for AEKs. 1000ms is used for safety.
|
||||||
|
// Tested with devices:
|
||||||
|
// M0115J(AEK), M3501(AEKII), M0116(Standard), M1242(Adjustable),
|
||||||
|
// G5431(Mouse), 64210(Kensington Trubo Mouse 5)
|
||||||
|
wait_ms(1000);
|
||||||
|
|
||||||
device_scan();
|
device_scan();
|
||||||
|
|
||||||
|
|
@ -94,7 +99,7 @@ void matrix_init(void)
|
||||||
is_iso_layout = false;
|
is_iso_layout = false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
xprintf("hadler: %02X, ISO: %s\n", handler_id, (is_iso_layout ? "yes" : "no"));
|
xprintf("handler: %02X, ISO: %s\n", handler_id, (is_iso_layout ? "yes" : "no"));
|
||||||
|
|
||||||
// Adjustable keyboard media keys: address=0x07 and handlerID=0x02
|
// Adjustable keyboard media keys: address=0x07 and handlerID=0x02
|
||||||
has_media_keys = (0x02 == (adb_host_talk(ADB_ADDR_APPLIANCE, ADB_REG_3) & 0xff));
|
has_media_keys = (0x02 == (adb_host_talk(ADB_ADDR_APPLIANCE, ADB_REG_3) & 0xff));
|
||||||
|
|
@ -113,6 +118,8 @@ void matrix_init(void)
|
||||||
|
|
||||||
led_set(host_keyboard_leds());
|
led_set(host_keyboard_leds());
|
||||||
|
|
||||||
|
device_scan();
|
||||||
|
|
||||||
// LED off
|
// LED off
|
||||||
DDRD |= (1<<6); PORTD &= ~(1<<6);
|
DDRD |= (1<<6); PORTD &= ~(1<<6);
|
||||||
return;
|
return;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue