Skip to content

Instantly share code, notes, and snippets.

@sjmf
Last active May 3, 2026 21:03
Show Gist options
  • Select an option

  • Save sjmf/9bf8975412ecbb0985bd4e5c549a915d to your computer and use it in GitHub Desktop.

Select an option

Save sjmf/9bf8975412ecbb0985bd4e5c549a915d to your computer and use it in GitHub Desktop.
CH9350L state-2 mode bidirectional capture (issue #13)
[sniff UC] Opening /dev/cu.usbserial-2130 @ 115200 8N1 log=tmp/absmouse_uc.txt
22:01:55.610957 [UC] 57 ab 12 00 00 00 00 00 07 ac 20 | UC_KEEPALIVE p1=0000 p2=0000 led=0x00[-] status=0x07[p0enum,p1enum,uart] ver=ac20
22:01:55.663372 [UC] 57 ab 12 00 00 00 00 00 07 ac 20 | UC_KEEPALIVE p1=0000 p2=0000 led=0x00[-] status=0x07[p0enum,p1enum,uart] ver=ac20
22:01:59.528460 [UC] 57 ab 12 00 00 00 00 00 07 ac 20 | UC_KEEPALIVE p1=0000 p2=0000 led=0x00[-] status=0x07[p0enum,p1enum,uart] ver=ac20
22:01:59.629656 [UC] 57 ab 12 00 00 00 00 00 07 ac 20 | UC_KEEPALIVE p1=0000 p2=0000 led=0x00[-] status=0x07[p0enum,p1enum,uart] ver=ac20
22:01:59.681114 [UC] 57 ab 12 00 00 00 00 00 07 ac 20 | UC_KEEPALIVE p1=0000 p2=0000 led=0x00[-] status=0x07[p0enum,p1enum,uart] ver=ac20
22:01:59.736437 [UC] 57 ab 12 00 00 00 00 00 07 ac 20 | UC_KEEPALIVE p1=0000 p2=0000 led=0x00[-] status=0x07[p0enum,p1enum,uart] ver=ac20
22:01:59.790835 [UC] 57 ab 12 00 00 00 00 00 07 ac 20 | UC_KEEPALIVE p1=0000 p2=0000 led=0x00[-] status=0x07[p0enum,p1enum,uart] ver=ac20
22:01:59.842992 [UC] 57 ab 12 00 00 00 00 00 07 ac 20 | UC_KEEPALIVE p1=0000 p2=0000 led=0x00[-] status=0x07[p0enum,p1enum,uart] ver=ac20
22:01:59.951282 [UC] 57 ab 12 00 00 00 00 00 07 ac 20 | UC_KEEPALIVE p1=0000 p2=0000 led=0x00[-] status=0x07[p0enum,p1enum,uart] ver=ac20
22:02:00.002215 [UC] 57 ab 12 00 00 00 00 00 07 ac 20 | UC_KEEPALIVE p1=0000 p2=0000 led=0x00[-] status=0x07[p0enum,p1enum,uart] ver=ac20
22:02:00.107170 [UC] 57 ab 12 00 00 00 00 00 07 ac 20 | UC_KEEPALIVE p1=0000 p2=0000 led=0x00[-] status=0x07[p0enum,p1enum,uart] ver=ac20
[sniff] Stopped.
[sniff UC] Opening /dev/cu.usbserial-2130 @ 115200 8N1 log=tmp/mouse_uc.txt
21:49:33.348219 [UC] [sync: skipped 1B: 00]
21:49:33.350565 [UC] 57 ab 12 00 00 00 00 ff ff ac 0b | UC_KEEPALIVE p1=0000 p2=0000 led=0xFF[NumLk,CapsLk,ScrLk] status=0xFF[p0enum,p1enum,uart] ver=ac0b
21:49:33.562735 [UC] 57 ab 12 00 00 00 00 00 07 ac 20 | UC_KEEPALIVE p1=0000 p2=0000 led=0x00[-] status=0x07[p0enum,p1enum,uart] ver=ac20
[sniff] Stopped.
[sniff LC] Opening /dev/cu.usbserial-0001 @ 115200 8N1 log=tmp/emu_lc.txt
20:50:59.014529 [LC] 57 ab 86 | DEVICE_NOTIFY []
20:50:59.290290 [LC] 57 ab 80 ff | STARTUP_STATUS [0xFF]
20:50:59.290868 [LC] 57 ab 89 | STATUS_ANNOUNCE []
20:50:59.453329 [LC] 57 ab 80 ff | STARTUP_STATUS [0xFF]
20:51:03.337291 [LC] 57 ab 01 00 00 14 00 00 00 00 00 | KEYBOARD mod=- keys=['Q']
20:51:03.394404 [LC] 57 ab 01 00 00 14 00 00 00 00 00 | KEYBOARD mod=- keys=['Q']
20:51:03.394929 [LC] 57 ab 80 30 | STARTUP_STATUS [0x30]
20:51:03.450078 [LC] 57 ab 01 00 00 14 00 00 00 00 00 | KEYBOARD mod=- keys=['Q']
20:51:03.450310 [LC] 57 ab 01 00 00 00 00 00 00 00 00 | KEYBOARD mod=- keys=[]
20:51:03.502417 [LC] 57 ab 01 00 00 00 00 00 00 00 00 | KEYBOARD mod=- keys=[]
20:51:03.503026 [LC] 57 ab 01 00 00 00 00 00 00 00 00 | KEYBOARD mod=- keys=[]
20:51:03.555649 [LC] 57 ab 01 00 00 00 00 00 00 00 00 | KEYBOARD mod=- keys=[]
20:51:03.610275 [LC] 57 ab 01 00 00 00 00 00 00 00 00 | KEYBOARD mod=- keys=[]
20:51:03.610577 [LC] 57 ab 01 00 00 1a 00 00 00 00 00 | KEYBOARD mod=- keys=['W']
20:51:03.663411 [LC] 57 ab 01 00 00 1a 00 00 00 00 00 | KEYBOARD mod=- keys=['W']
20:51:03.664159 [LC] 57 ab 80 30 | STARTUP_STATUS [0x30]
20:51:03.719399 [LC] 57 ab 01 00 00 1a 00 00 00 00 00 | KEYBOARD mod=- keys=['W']
20:51:03.719948 [LC] 57 ab 01 00 00 00 00 00 00 00 00 | KEYBOARD mod=- keys=[]
20:51:03.771941 [LC] 57 ab 01 00 00 00 00 00 00 00 00 | KEYBOARD mod=- keys=[]
20:51:03.772207 [LC] 57 ab 01 00 00 00 00 00 00 00 00 | KEYBOARD mod=- keys=[]
20:51:03.824872 [LC] 57 ab 01 00 00 00 00 00 00 00 00 | KEYBOARD mod=- keys=[]
20:51:03.880346 [LC] 57 ab 01 00 00 00 00 00 00 00 00 | KEYBOARD mod=- keys=[]
20:51:03.930953 [LC] 57 ab 01 00 00 08 00 00 00 00 00 | KEYBOARD mod=- keys=['E']
20:51:03.931207 [LC] 57 ab 01 00 00 08 00 00 00 00 00 | KEYBOARD mod=- keys=['E']
20:51:03.982594 [LC] 57 ab 80 30 | STARTUP_STATUS [0x30]
20:51:03.982913 [LC] 57 ab 01 00 00 08 00 00 00 00 00 | KEYBOARD mod=- keys=['E']
20:51:03.983024 [LC] 57 ab 01 00 00 00 00 00 00 00 00 | KEYBOARD mod=- keys=[]
20:51:04.036669 [LC] 57 ab 01 00 00 00 00 00 00 00 00 | KEYBOARD mod=- keys=[]
20:51:04.088286 [LC] 57 ab 01 00 00 00 00 00 00 00 00 | KEYBOARD mod=- keys=[]
20:51:04.088503 [LC] 57 ab 01 00 00 00 00 00 00 00 00 | KEYBOARD mod=- keys=[]
20:51:04.144111 [LC] 57 ab 01 00 00 00 00 00 00 00 00 | KEYBOARD mod=- keys=[]
20:51:04.199642 [LC] 57 ab 01 00 00 15 00 00 00 00 00 | KEYBOARD mod=- keys=['R']
20:51:04.251407 [LC] 57 ab 01 00 00 15 00 00 00 00 00 | KEYBOARD mod=- keys=['R']
20:51:04.251665 [LC] 57 ab 80 30 | STARTUP_STATUS [0x30]
20:51:04.251695 [LC] 57 ab 01 00 00 15 00 00 00 00 00 | KEYBOARD mod=- keys=['R']
20:51:04.301793 [LC] 57 ab 01 00 00 00 00 00 00 00 00 | KEYBOARD mod=- keys=[]
20:51:04.357104 [LC] 57 ab 01 00 00 00 00 00 00 00 00 | KEYBOARD mod=- keys=[]
20:51:04.357682 [LC] 57 ab 01 00 00 00 00 00 00 00 00 | KEYBOARD mod=- keys=[]
20:51:04.409198 [LC] 57 ab 01 00 00 00 00 00 00 00 00 | KEYBOARD mod=- keys=[]
20:51:04.409417 [LC] 57 ab 01 00 00 00 00 00 00 00 00 | KEYBOARD mod=- keys=[]
20:51:04.515362 [LC] 57 ab 01 00 00 17 00 00 00 00 00 | KEYBOARD mod=- keys=['T']
20:51:04.568979 [LC] 57 ab 01 00 00 17 00 00 00 00 00 | KEYBOARD mod=- keys=['T']
20:51:04.569211 [LC] 57 ab 80 30 | STARTUP_STATUS [0x30]
20:51:04.569435 [LC] 57 ab 01 00 00 17 00 00 00 00 00 | KEYBOARD mod=- keys=['T']
20:51:04.619685 [LC] 57 ab 01 00 00 00 00 00 00 00 00 | KEYBOARD mod=- keys=[]
20:51:04.674597 [LC] 57 ab 01 00 00 00 00 00 00 00 00 | KEYBOARD mod=- keys=[]
20:51:04.675087 [LC] 57 ab 01 00 00 00 00 00 00 00 00 | KEYBOARD mod=- keys=[]
20:51:04.728996 [LC] 57 ab 01 00 00 00 00 00 00 00 00 | KEYBOARD mod=- keys=[]
20:51:04.729279 [LC] 57 ab 01 00 00 00 00 00 00 00 00 | KEYBOARD mod=- keys=[]
20:51:04.834586 [LC] 57 ab 01 00 00 1c 00 00 00 00 00 | KEYBOARD mod=- keys=['Y']
20:51:04.834794 [LC] 57 ab 80 30 | STARTUP_STATUS [0x30]
20:51:04.834874 [LC] 57 ab 01 00 00 1c 00 00 00 00 00 | KEYBOARD mod=- keys=['Y']
20:51:04.890146 [LC] 57 ab 01 00 00 1c 00 00 00 00 00 | KEYBOARD mod=- keys=['Y']
20:51:04.890271 [LC] 57 ab 80 30 | STARTUP_STATUS [0x30]
20:51:04.943119 [LC] 57 ab 01 00 00 1c 00 00 00 00 00 | KEYBOARD mod=- keys=['Y']
20:51:04.943506 [LC] 57 ab 01 00 00 00 00 00 00 00 00 | KEYBOARD mod=- keys=[]
20:51:04.995482 [LC] 57 ab 01 00 00 00 00 00 00 00 00 | KEYBOARD mod=- keys=[]
20:51:04.995976 [LC] 57 ab 01 00 00 00 00 00 00 00 00 | KEYBOARD mod=- keys=[]
20:51:05.047434 [LC] 57 ab 01 00 00 00 00 00 00 00 00 | KEYBOARD mod=- keys=[]
20:51:05.102674 [LC] 57 ab 01 00 00 00 00 00 00 00 00 | KEYBOARD mod=- keys=[]
20:51:09.870725 [LC] 57 ab 01 00 00 39 00 00 00 00 00 | KEYBOARD mod=- keys=['CAPS']
20:51:09.922461 [LC] 57 ab 01 00 00 39 00 00 00 00 00 | KEYBOARD mod=- keys=['CAPS']
20:51:09.923097 [LC] 57 ab 80 30 | STARTUP_STATUS [0x30]
20:51:09.923475 [LC] 57 ab 80 30 | STARTUP_STATUS [0x30]
20:51:09.974292 [LC] 57 ab 01 00 00 39 00 00 00 00 00 | KEYBOARD mod=- keys=['CAPS']
20:51:09.974486 [LC] 57 ab 01 00 00 00 00 00 00 00 00 | KEYBOARD mod=- keys=[]
20:51:09.974502 [LC] 57 ab 80 32 | STARTUP_STATUS [0x32]
20:51:10.024636 [LC] 57 ab 01 00 00 00 00 00 00 00 00 | KEYBOARD mod=- keys=[]
20:51:10.024930 [LC] 57 ab 80 32 | STARTUP_STATUS [0x32]
20:51:10.079319 [LC] 57 ab 01 00 00 00 00 00 00 00 00 | KEYBOARD mod=- keys=[]
20:51:10.079411 [LC] 57 ab 01 00 00 00 00 00 00 00 00 | KEYBOARD mod=- keys=[]
20:51:10.133916 [LC] 57 ab 01 00 00 00 00 00 00 00 00 | KEYBOARD mod=- keys=[]
20:51:10.565018 [LC] 57 ab 01 00 00 39 00 00 00 00 00 | KEYBOARD mod=- keys=['CAPS']
20:51:10.618071 [LC] 57 ab 01 00 00 39 00 00 00 00 00 | KEYBOARD mod=- keys=['CAPS']
20:51:10.618277 [LC] 57 ab 80 32 | STARTUP_STATUS [0x32]
20:51:10.618294 [LC] 57 ab 80 32 | STARTUP_STATUS [0x32]
20:51:10.668461 [LC] 57 ab 01 00 00 39 00 00 00 00 00 | KEYBOARD mod=- keys=['CAPS']
20:51:10.668655 [LC] 57 ab 01 00 00 00 00 00 00 00 00 | KEYBOARD mod=- keys=[]
20:51:10.668697 [LC] 57 ab 80 32 | STARTUP_STATUS [0x32]
20:51:10.722534 [LC] 57 ab 01 00 00 00 00 00 00 00 00 | KEYBOARD mod=- keys=[]
20:51:10.723051 [LC] 57 ab 80 30 | STARTUP_STATUS [0x30]
20:51:10.774455 [LC] 57 ab 01 00 00 00 00 00 00 00 00 | KEYBOARD mod=- keys=[]
20:51:10.774657 [LC] 57 ab 01 00 00 00 00 00 00 00 00 | KEYBOARD mod=- keys=[]
20:51:10.825182 [LC] 57 ab 01 00 00 00 00 00 00 00 00 | KEYBOARD mod=- keys=[]
[sniff] Stopped.
[sniff UC] Opening /dev/cu.usbserial-2130 @ 115200 8N1 log=tmp/emu_uc.txt
20:50:59.238187 [UC] [sync: skipped 1B: 00]
20:50:59.291079 [UC] 57 ab 12 00 00 00 00 ff ff ac 0b | UC_KEEPALIVE p1=0000 p2=0000 led=0xFF[NumLk,CapsLk,ScrLk] status=0xFF[p0enum,p1enum,uart] ver=ac0b
20:50:59.508657 [UC] 57 ab 12 00 00 00 00 00 07 ac 20 | UC_KEEPALIVE p1=0000 p2=0000 led=0x00[-] status=0x07[p0enum,p1enum,uart] ver=ac20
20:51:03.373610 [UC] 57 ab 12 00 00 00 00 00 07 ac 20 | UC_KEEPALIVE p1=0000 p2=0000 led=0x00[-] status=0x07[p0enum,p1enum,uart] ver=ac20
20:51:03.696578 [UC] 57 ab 12 00 00 00 00 00 07 ac 20 | UC_KEEPALIVE p1=0000 p2=0000 led=0x00[-] status=0x07[p0enum,p1enum,uart] ver=ac20
20:51:03.971855 [UC] 57 ab 12 00 00 00 00 00 07 ac 20 | UC_KEEPALIVE p1=0000 p2=0000 led=0x00[-] status=0x07[p0enum,p1enum,uart] ver=ac20
20:51:04.238823 [UC] 57 ab 12 00 00 00 00 00 07 ac 20 | UC_KEEPALIVE p1=0000 p2=0000 led=0x00[-] status=0x07[p0enum,p1enum,uart] ver=ac20
20:51:04.559024 [UC] 57 ab 12 00 00 00 00 00 07 ac 20 | UC_KEEPALIVE p1=0000 p2=0000 led=0x00[-] status=0x07[p0enum,p1enum,uart] ver=ac20
20:51:04.880336 [UC] 57 ab 12 00 00 00 00 00 07 ac 20 | UC_KEEPALIVE p1=0000 p2=0000 led=0x00[-] status=0x07[p0enum,p1enum,uart] ver=ac20
20:51:04.933990 [UC] 57 ab 12 00 00 00 00 00 07 ac 20 | UC_KEEPALIVE p1=0000 p2=0000 led=0x00[-] status=0x07[p0enum,p1enum,uart] ver=ac20
20:51:09.923972 [UC] 57 ab 12 00 00 00 00 02 07 ac 20 | UC_KEEPALIVE p1=0000 p2=0000 led=0x02[CapsLk] status=0x07[p0enum,p1enum,uart] ver=ac20
20:51:09.925923 [UC] 57 ab 12 00 00 00 00 02 07 ac 20 | UC_KEEPALIVE p1=0000 p2=0000 led=0x02[CapsLk] status=0x07[p0enum,p1enum,uart] ver=ac20
20:51:09.977339 [UC] 57 ab 12 00 00 00 00 02 07 ac 20 | UC_KEEPALIVE p1=0000 p2=0000 led=0x02[CapsLk] status=0x07[p0enum,p1enum,uart] ver=ac20
20:51:10.029705 [UC] 57 ab 12 00 00 00 00 02 07 ac 20 | UC_KEEPALIVE p1=0000 p2=0000 led=0x02[CapsLk] status=0x07[p0enum,p1enum,uart] ver=ac20
20:51:10.622743 [UC] 57 ab 12 00 00 00 00 02 07 ac 20 | UC_KEEPALIVE p1=0000 p2=0000 led=0x02[CapsLk] status=0x07[p0enum,p1enum,uart] ver=ac20
20:51:10.622807 [UC] 57 ab 12 00 00 00 00 02 07 ac 20 | UC_KEEPALIVE p1=0000 p2=0000 led=0x02[CapsLk] status=0x07[p0enum,p1enum,uart] ver=ac20
20:51:10.673210 [UC] 57 ab 12 00 00 00 00 00 07 ac 20 | UC_KEEPALIVE p1=0000 p2=0000 led=0x00[-] status=0x07[p0enum,p1enum,uart] ver=ac20
20:51:10.728536 [UC] 57 ab 12 00 00 00 00 00 07 ac 20 | UC_KEEPALIVE p1=0000 p2=0000 led=0x00[-] status=0x07[p0enum,p1enum,uart] ver=ac20
[sniff] Stopped.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment