Open tmk opened 2 years ago
commit 99cf9301132c9062c7f851a512499df7c0e57517 (adb_mouse_driver_0406)
Author: tmk <hasu@tmk-kbd.com>
Date: Wed Apr 6 14:59:20 2022 +0900
adb_usb: Add delay for NeXT Mouse #730
diff --git a/converter/adb_usb/matrix.c b/converter/adb_usb/matrix.c
index 1b217f85..520b869c 100644
--- a/converter/adb_usb/matrix.c
+++ b/converter/adb_usb/matrix.c
@@ -350,6 +350,7 @@ again:
// Move to address 10 for mouse polling
adb_host_flush(ADB_ADDR_MOUSE_TMP);
adb_host_listen(ADB_ADDR_MOUSE_TMP, ADB_REG_3, ((reg3 >> 8) & 0xF0) | ADB_ADDR_MOUSE_POLL, 0xFE);
+ wait_ms(1);
adb_host_flush(ADB_ADDR_MOUSE_POLL);
reg3 = adb_host_talk(ADB_ADDR_MOUSE_TMP, ADB_REG_3);
if (reg3) {
It looks better than before. but it seems to need more delay.
https://geekhack.org/index.php?topic=14290.msg3119597#msg3119597
Waiting for device:.........
Listening:
USB configured.
Loop start.
M:TMP: reg3:7401
M:EXT: reg3:7201
M:Classic 100cpi
M:POL: fail reg3:7001
Scan:
addr:15, reg3:7401
M:TMP: reg3:7101
M:EXT: reg3:7902
M:Classic 200cpi
M:POL: fail reg3:7D02
Scan:
addr:15, reg3:7502
M:TMP: reg3:7202
M:EXT: reg3:7A02
M:Classic 200cpi
M:POL: done
Scan:
addr:10, reg3:7202
M:[ FE 81 ] mh:02
M:[ FE 81 F8 F8 F8 ]
M:[B:00 X:1(1) Y:-2(-2) V:0 A:1]
M:[ FC 83 ] mh:02
M:[ FC 83 F8 F8 F8 ]
M:[B:00 X:6(3) Y:-8(-4) V:0 A:2]
M:[ FC 85 ] mh:02
M:[ FC 85 F8 F8 F8 ]
M:[B:00 X:15(5) Y:-12(-4) V:0 A:3]
M:[ FD 84 ] mh:02
M:[ FD 84 F8 F8 F8 ]
M:[B:00 X:16(4) Y:-12(-3) V:0 A:4]
M:[ FE 85 ] mh:02
M:[ FE 85 F8 F8 F8 ]
M:[B:00 X:20(5) Y:-8(-2) V:0 A:4]
M:[ FF 87 ] mh:02
M:[ FF 87 F8 F8 F8 ]
M:[B:00 X:28(7) Y:-4(-1) V:0 A:4]
M:[ FE 8B ] mh:02
M:[ FE 8B F8 F8 F8 ]
M:[B:00 X:44(11) Y:-8(-2) V:0 A:4]
M:[ FF 8C ] mh:02
M:[ FF 8C F8 F8 F8 ]
with 5ms delays:
https://geekhack.org/index.php?topic=14290.msg3119857#msg3119857
TMK:d477af/LUFA:d6a7df
Scan:
USB configured.
Loop start.
M:TMP: reg3:7601
M:EXT: reg3:7001
M:Classic 100cpi
M:POL: fail reg3:7801
Scan:
addr:15, reg3:7B01
M:TMP: reg3:7A01
M:EXT: reg3:7E01
M:Classic 100cpi
M:POL: done
Scan:
addr:10, reg3:7901
M:[ 81 80 ] mh:01
M:[ 81 80 88 88 88 ]
M:[B:00 X:0(0) Y:1(1) V:0 A:1]
similar to #643
Elecom Trackball also fails to change its address.(TMP->POL)
https://geekhack.org/index.php?topic=14290.msg3119600#msg3119600 https://www.journaldulapin.com/2021/03/26/trackball-adb/
Waiting for device:
Listening:
M:TMP: reg3:6F02
M:EXT: reg3:6F02
M:Classic 200cpi
M:POL: fail reg3:6F02
Scan:
addr:15, reg3:6F02
M:TMP: reg3:6F02
M:EXT: reg3:6F02
M:Classic 200cpi
M:POL: fail reg3:6F02
Scan:
addr:15, reg3:6F02
M:TMP: reg3:6F02
M:EXT: reg3:6F02
M:Classic 200cpi
M:POL: fail reg3:6F02
Scan:
addr:15, reg3:6F02
M:TMP: reg3:6F02
M:EXT: reg3:6F02
M:Classic 200cpi
M:POL: fail reg3:6F02
https://geekhack.org/index.php?topic=14290.msg3119857#msg3119857
TMK:d477af/LUFA:d6a7df
Scan:
USB configured.
Loop start.
M:TMP: reg3:6F01
M:EXT: reg3:6F02
M:Classic 200cpi
M:POL: fail reg3:6F02
Scan:
addr:15, reg3:6F02
M:TMP: reg3:6F02
M:EXT: reg3:6F02
M:Classic 200cpi
M:POL: fail reg3:6F02
Scan:
addr:15, reg3:6F02
M:TMP: reg3:6F02
M:EXT: reg3:6F02
M:Classic 200cpi
M:POL: fail reg3:6F02
Scan:
addr:15, reg3:6F02
Both NeXT and Elecom always seem to move successfully at the first time, but fails at second.
Also M2706 Ireland shows same behaviour. https://github.com/tmk/tmk_keyboard/issues/643#issuecomment-773016949
timing? It fails to change address.
https://geekhack.org/index.php?topic=14290.msg3119277#msg3119277