Direct response sweep: 32 frames x 1 cycles (32 total) on COM5 at 38400 8N1 BASELINE heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes 01:38:56.115 TX cycle=1 p1=0x00 p2=0x00 cmd=0x40 state=0x20 value=0xD0 frame 006 00 00 40 20 D0 EA 01:38:56.941 TX cycle=1 p1=0x00 p2=0x00 cmd=0x41 state=0x20 value=0xD0 frame 006 00 00 41 20 D0 EB 01:38:56.941 ANOMALY 24 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 3 expected 00 01:38:56.941 RX raw 07 80 50 24 DD 74 07 80 50 24 DD 74 07 80 50 24 DD 74 07 80 50 24 DD 74 01:38:57.763 TX cycle=1 p1=0x00 p2=0x00 cmd=0x42 state=0x20 value=0xD0 frame 006 00 00 42 20 D0 E8 01:38:57.763 ANOMALY 24 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 3 expected 00 01:38:57.763 RX raw 07 80 50 24 DD 74 07 80 50 24 DD 74 07 80 50 24 DD 74 07 80 50 24 DD 74 01:38:58.588 TX cycle=1 p1=0x00 p2=0x00 cmd=0x43 state=0x20 value=0xD0 frame 006 00 00 43 20 D0 E9 01:38:58.588 ANOMALY 6 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 3 expected 00 01:38:58.588 RX raw 07 80 50 24 DD 74 01:38:59.411 TX cycle=1 p1=0x00 p2=0x00 cmd=0x44 state=0x20 value=0xD0 frame 006 00 00 44 20 D0 EE Stopped.