From d169cc4c399cf33825a4c7052d4e20de39019c7f Mon Sep 17 00:00:00 2001 From: Aiden <68633820+awils27@users.noreply.github.com> Date: Thu, 14 May 2026 01:44:35 +1000 Subject: [PATCH] run 4 --- captures/he37-hold-then-step.txt | 2 + ...8-direct-0080-cmd20-3f-control-nopause.txt | 23 ++ .../he38-direct-0080-cmd20-3f-control.txt | 52 ++++ .../he38-direct-20d0-cmd20-3f-nopause.txt | 23 ++ captures/he38-direct-20d0-cmd20-3f.txt | 64 +++++ .../he38-direct-20d0-cmd40-5f-nopause.txt | 14 + captures/he38-direct-20d0-cmd40-5f.txt | 48 ++++ captures/he38-direct-4030-cmd20-3f.txt | 66 +++++ docs/discovery-notes.md | 254 ++++++++++++++++++ docs/pt2-protocol-summary.md | 15 ++ 10 files changed, 561 insertions(+) create mode 100644 captures/he38-direct-0080-cmd20-3f-control-nopause.txt create mode 100644 captures/he38-direct-0080-cmd20-3f-control.txt create mode 100644 captures/he38-direct-20d0-cmd20-3f-nopause.txt create mode 100644 captures/he38-direct-20d0-cmd20-3f.txt create mode 100644 captures/he38-direct-20d0-cmd40-5f-nopause.txt create mode 100644 captures/he38-direct-20d0-cmd40-5f.txt create mode 100644 captures/he38-direct-4030-cmd20-3f.txt diff --git a/captures/he37-hold-then-step.txt b/captures/he37-hold-then-step.txt index 58ecd4d..a7d9ead 100644 --- a/captures/he37-hold-then-step.txt +++ b/captures/he37-hold-then-step.txt @@ -82,3 +82,5 @@ BEGIN group 4/4 01:28:02.117 TX group=4 frame=8 len=006 00 00 09 20 D0 A3 01:28:02.117 RX group=4 frame=8 heartbeat-compatible RX: 18 bytes, offset 0, 3 frames + 0 bytes GROUP 4 TAIL heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes +01:32:23.227 PANEL python scripts/serial_direct_response_sweep.py --port COM5 --prefix1s 0x00 --prefix2s 0x00 --commands 0x20-0x3F --states 0x20 --values 0xD0 --settle 3.0 --after-each 0.8 --after 2.0 --pause-on-anomaly --log captures/he38-direct-20d0-cmd20-3f.txt +Anomalies: 2 diff --git a/captures/he38-direct-0080-cmd20-3f-control-nopause.txt b/captures/he38-direct-0080-cmd20-3f-control-nopause.txt new file mode 100644 index 0000000..254396e --- /dev/null +++ b/captures/he38-direct-0080-cmd20-3f-control-nopause.txt @@ -0,0 +1,23 @@ +Direct response sweep: 32 frames x 1 cycles (32 total) on COM5 at 38400 8N1 +BASELINE heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes +01:38:31.782 TX cycle=1 p1=0x00 p2=0x00 cmd=0x20 state=0x00 value=0x80 frame 006 00 00 20 00 80 FA +01:38:32.605 TX cycle=1 p1=0x00 p2=0x00 cmd=0x21 state=0x00 value=0x80 frame 006 00 00 21 00 80 FB +01:38:33.426 TX cycle=1 p1=0x00 p2=0x00 cmd=0x22 state=0x00 value=0x80 frame 006 00 00 22 00 80 F8 +01:38:34.249 TX cycle=1 p1=0x00 p2=0x00 cmd=0x23 state=0x00 value=0x80 frame 006 00 00 23 00 80 F9 +01:38:35.072 TX cycle=1 p1=0x00 p2=0x00 cmd=0x24 state=0x00 value=0x80 frame 006 00 00 24 00 80 FE +01:38:35.897 TX cycle=1 p1=0x00 p2=0x00 cmd=0x25 state=0x00 value=0x80 frame 006 00 00 25 00 80 FF +01:38:36.721 TX cycle=1 p1=0x00 p2=0x00 cmd=0x26 state=0x00 value=0x80 frame 006 00 00 26 00 80 FC +01:38:37.545 TX cycle=1 p1=0x00 p2=0x00 cmd=0x27 state=0x00 value=0x80 frame 006 00 00 27 00 80 FD +01:38:38.369 TX cycle=1 p1=0x00 p2=0x00 cmd=0x28 state=0x00 value=0x80 frame 006 00 00 28 00 80 F2 +01:38:39.195 TX cycle=1 p1=0x00 p2=0x00 cmd=0x29 state=0x00 value=0x80 frame 006 00 00 29 00 80 F3 +01:38:39.195 ANOMALY 24 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 3 expected 00 +01:38:39.195 RX raw 07 80 4A 20 D8 6F 07 80 4A 20 D8 6F 07 80 4A 20 D8 6F 07 80 4A 20 D8 6F +01:38:40.018 TX cycle=1 p1=0x00 p2=0x00 cmd=0x2A state=0x00 value=0x80 frame 006 00 00 2A 00 80 F0 +01:38:40.018 ANOMALY 18 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 3 expected 00 +01:38:40.018 RX raw 07 80 4A 20 D8 6F 07 80 4A 20 D8 6F 07 80 4A 20 D8 6F +01:38:40.842 TX cycle=1 p1=0x00 p2=0x00 cmd=0x2B state=0x00 value=0x80 frame 006 00 00 2B 00 80 F1 +01:38:40.842 ANOMALY 12 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 3 expected 00 +01:38:40.842 RX raw 07 80 4A 20 D8 6F 07 80 4A 20 D8 6F +01:38:41.665 TX cycle=1 p1=0x00 p2=0x00 cmd=0x2C state=0x00 value=0x80 frame 006 00 00 2C 00 80 F6 +01:38:42.491 TX cycle=1 p1=0x00 p2=0x00 cmd=0x2D state=0x00 value=0x80 frame 006 00 00 2D 00 80 F7 +Stopped. diff --git a/captures/he38-direct-0080-cmd20-3f-control.txt b/captures/he38-direct-0080-cmd20-3f-control.txt new file mode 100644 index 0000000..ba6ecae --- /dev/null +++ b/captures/he38-direct-0080-cmd20-3f-control.txt @@ -0,0 +1,52 @@ +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:34:56.160 TX cycle=1 p1=0x00 p2=0x00 cmd=0x20 state=0x00 value=0x80 frame 006 00 00 20 00 80 FA +01:34:56.983 TX cycle=1 p1=0x00 p2=0x00 cmd=0x21 state=0x00 value=0x80 frame 006 00 00 21 00 80 FB +01:34:57.805 TX cycle=1 p1=0x00 p2=0x00 cmd=0x22 state=0x00 value=0x80 frame 006 00 00 22 00 80 F8 +01:34:58.629 TX cycle=1 p1=0x00 p2=0x00 cmd=0x23 state=0x00 value=0x80 frame 006 00 00 23 00 80 F9 +01:34:59.456 TX cycle=1 p1=0x00 p2=0x00 cmd=0x24 state=0x00 value=0x80 frame 006 00 00 24 00 80 FE +01:35:00.277 TX cycle=1 p1=0x00 p2=0x00 cmd=0x25 state=0x00 value=0x80 frame 006 00 00 25 00 80 FF +01:35:01.096 TX cycle=1 p1=0x00 p2=0x00 cmd=0x26 state=0x00 value=0x80 frame 006 00 00 26 00 80 FC +01:35:01.920 TX cycle=1 p1=0x00 p2=0x00 cmd=0x27 state=0x00 value=0x80 frame 006 00 00 27 00 80 FD +01:35:02.742 TX cycle=1 p1=0x00 p2=0x00 cmd=0x28 state=0x00 value=0x80 frame 006 00 00 28 00 80 F2 +01:35:03.565 TX cycle=1 p1=0x00 p2=0x00 cmd=0x29 state=0x00 value=0x80 frame 006 00 00 29 00 80 F3 +01:35:03.565 ANOMALY 30 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 3 expected 00 +01:35:03.565 RX raw 07 80 4A 20 D8 6F 07 80 4A 20 D8 6F 07 80 4A 20 D8 6F 07 80 4A 20 D8 6F 07 80 4A 20 D8 6F +01:35:08.048 TX cycle=1 p1=0x00 p2=0x00 cmd=0x2A state=0x00 value=0x80 frame 006 00 00 2A 00 80 F0 +01:35:08.874 TX cycle=1 p1=0x00 p2=0x00 cmd=0x2B state=0x00 value=0x80 frame 006 00 00 2B 00 80 F1 +01:35:09.699 TX cycle=1 p1=0x00 p2=0x00 cmd=0x2C state=0x00 value=0x80 frame 006 00 00 2C 00 80 F6 +01:35:10.525 TX cycle=1 p1=0x00 p2=0x00 cmd=0x2D state=0x00 value=0x80 frame 006 00 00 2D 00 80 F7 +01:35:10.525 ANOMALY 24 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 3 expected 00 +01:35:10.525 RX raw 07 80 4B 20 D8 6E 07 80 4B 20 D8 6E 07 80 4B 20 D8 6E 07 80 4B 20 D8 6E +01:35:13.653 TX cycle=1 p1=0x00 p2=0x00 cmd=0x2E state=0x00 value=0x80 frame 006 00 00 2E 00 80 F4 +01:35:14.477 TX cycle=1 p1=0x00 p2=0x00 cmd=0x2F state=0x00 value=0x80 frame 006 00 00 2F 00 80 F5 +01:35:15.299 TX cycle=1 p1=0x00 p2=0x00 cmd=0x30 state=0x00 value=0x80 frame 006 00 00 30 00 80 EA +01:35:16.122 TX cycle=1 p1=0x00 p2=0x00 cmd=0x31 state=0x00 value=0x80 frame 006 00 00 31 00 80 EB +01:35:16.122 ANOMALY 29 RX bytes; first mismatch at byte 5: got 07, heartbeat offset 1 expected 00 +01:35:16.122 RX raw 00 00 00 80 DA 07 80 4C 20 D8 69 07 80 4C 20 D8 69 07 80 4C 20 D8 69 07 80 4C 20 D8 69 +01:35:18.422 TX cycle=1 p1=0x00 p2=0x00 cmd=0x32 state=0x00 value=0x80 frame 006 00 00 32 00 80 E8 +01:35:19.245 TX cycle=1 p1=0x00 p2=0x00 cmd=0x33 state=0x00 value=0x80 frame 006 00 00 33 00 80 E9 +01:35:19.245 ANOMALY 12 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 0 expected 00 +01:35:19.245 RX raw 07 80 26 10 2C C7 00 00 00 00 80 DA +01:35:21.618 TX cycle=1 p1=0x00 p2=0x00 cmd=0x34 state=0x00 value=0x80 frame 006 00 00 34 00 80 EE +01:35:22.443 TX cycle=1 p1=0x00 p2=0x00 cmd=0x35 state=0x00 value=0x80 frame 006 00 00 35 00 80 EF +01:35:22.443 ANOMALY 12 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 0 expected 00 +01:35:22.443 RX raw 07 80 4D 20 D8 68 00 00 00 00 80 DA +01:35:27.335 TX cycle=1 p1=0x00 p2=0x00 cmd=0x36 state=0x00 value=0x80 frame 006 00 00 36 00 80 EC +01:35:28.160 TX cycle=1 p1=0x00 p2=0x00 cmd=0x37 state=0x00 value=0x80 frame 006 00 00 37 00 80 ED +01:35:28.981 TX cycle=1 p1=0x00 p2=0x00 cmd=0x38 state=0x00 value=0x80 frame 006 00 00 38 00 80 E2 +01:35:29.802 TX cycle=1 p1=0x00 p2=0x00 cmd=0x39 state=0x00 value=0x80 frame 006 00 00 39 00 80 E3 +01:35:29.802 ANOMALY 27 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 3 expected 00 +01:35:29.802 RX raw 07 80 4E 20 D8 6B 07 80 4E 20 D8 6B 07 80 4E 20 D8 6B 07 80 4E 20 D8 6B 07 80 4E +01:35:32.049 TX cycle=1 p1=0x00 p2=0x00 cmd=0x3A state=0x00 value=0x80 frame 006 00 00 3A 00 80 E0 +01:35:32.872 TX cycle=1 p1=0x00 p2=0x00 cmd=0x3B state=0x00 value=0x80 frame 006 00 00 3B 00 80 E1 +01:35:32.872 ANOMALY 12 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 0 expected 00 +01:35:32.872 RX raw 07 80 27 10 2C C6 00 00 00 00 80 DA +01:35:35.567 TX cycle=1 p1=0x00 p2=0x00 cmd=0x3C state=0x00 value=0x80 frame 006 00 00 3C 00 80 E6 +01:35:36.392 TX cycle=1 p1=0x00 p2=0x00 cmd=0x3D state=0x00 value=0x80 frame 006 00 00 3D 00 80 E7 +01:35:36.392 ANOMALY 12 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 0 expected 00 +01:35:36.392 RX raw 07 80 4F 20 D8 6A 00 00 00 00 80 DA +01:35:38.650 TX cycle=1 p1=0x00 p2=0x00 cmd=0x3E state=0x00 value=0x80 frame 006 00 00 3E 00 80 E4 +01:35:39.474 TX cycle=1 p1=0x00 p2=0x00 cmd=0x3F state=0x00 value=0x80 frame 006 00 00 3F 00 80 E5 +FINAL heartbeat-compatible RX: 17 bytes, offset 1, 2 frames + 5 bytes +Anomalies: 8 diff --git a/captures/he38-direct-20d0-cmd20-3f-nopause.txt b/captures/he38-direct-20d0-cmd20-3f-nopause.txt new file mode 100644 index 0000000..1b86076 --- /dev/null +++ b/captures/he38-direct-20d0-cmd20-3f-nopause.txt @@ -0,0 +1,23 @@ +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:04.472 TX cycle=1 p1=0x00 p2=0x00 cmd=0x20 state=0x20 value=0xD0 frame 006 00 00 20 20 D0 8A +01:38:05.301 TX cycle=1 p1=0x00 p2=0x00 cmd=0x21 state=0x20 value=0xD0 frame 006 00 00 21 20 D0 8B +01:38:05.301 ANOMALY 30 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 3 expected 00 +01:38:05.301 RX raw 07 80 48 24 DD 6C 07 80 48 24 DD 6C 07 80 48 24 DD 6C 07 80 48 24 DD 6C 07 80 48 24 DD 6C +01:38:06.126 TX cycle=1 p1=0x00 p2=0x00 cmd=0x22 state=0x20 value=0xD0 frame 006 00 00 22 20 D0 88 +01:38:06.947 TX cycle=1 p1=0x00 p2=0x00 cmd=0x23 state=0x20 value=0xD0 frame 006 00 00 23 20 D0 89 +01:38:07.766 TX cycle=1 p1=0x00 p2=0x00 cmd=0x24 state=0x20 value=0xD0 frame 006 00 00 24 20 D0 8E +01:38:08.588 TX cycle=1 p1=0x00 p2=0x00 cmd=0x25 state=0x20 value=0xD0 frame 006 00 00 25 20 D0 8F +01:38:09.410 TX cycle=1 p1=0x00 p2=0x00 cmd=0x26 state=0x20 value=0xD0 frame 006 00 00 26 20 D0 8C +01:38:10.232 TX cycle=1 p1=0x00 p2=0x00 cmd=0x27 state=0x20 value=0xD0 frame 006 00 00 27 20 D0 8D +01:38:11.054 TX cycle=1 p1=0x00 p2=0x00 cmd=0x28 state=0x20 value=0xD0 frame 006 00 00 28 20 D0 82 +01:38:11.876 TX cycle=1 p1=0x00 p2=0x00 cmd=0x29 state=0x20 value=0xD0 frame 006 00 00 29 20 D0 83 +01:38:12.698 TX cycle=1 p1=0x00 p2=0x00 cmd=0x2A state=0x20 value=0xD0 frame 006 00 00 2A 20 D0 80 +01:38:13.521 TX cycle=1 p1=0x00 p2=0x00 cmd=0x2B state=0x20 value=0xD0 frame 006 00 00 2B 20 D0 81 +01:38:14.342 TX cycle=1 p1=0x00 p2=0x00 cmd=0x2C state=0x20 value=0xD0 frame 006 00 00 2C 20 D0 86 +01:38:15.164 TX cycle=1 p1=0x00 p2=0x00 cmd=0x2D state=0x20 value=0xD0 frame 006 00 00 2D 20 D0 87 +01:38:15.988 TX cycle=1 p1=0x00 p2=0x00 cmd=0x2E state=0x20 value=0xD0 frame 006 00 00 2E 20 D0 84 +01:38:16.812 TX cycle=1 p1=0x00 p2=0x00 cmd=0x2F state=0x20 value=0xD0 frame 006 00 00 2F 20 D0 85 +01:38:17.634 TX cycle=1 p1=0x00 p2=0x00 cmd=0x30 state=0x20 value=0xD0 frame 006 00 00 30 20 D0 9A +01:38:18.458 TX cycle=1 p1=0x00 p2=0x00 cmd=0x31 state=0x20 value=0xD0 frame 006 00 00 31 20 D0 9B +Stopped. diff --git a/captures/he38-direct-20d0-cmd20-3f.txt b/captures/he38-direct-20d0-cmd20-3f.txt new file mode 100644 index 0000000..bd51d91 --- /dev/null +++ b/captures/he38-direct-20d0-cmd20-3f.txt @@ -0,0 +1,64 @@ +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:32:37.006 TX cycle=1 p1=0x00 p2=0x00 cmd=0x20 state=0x20 value=0xD0 frame 006 00 00 20 20 D0 8A +01:32:37.829 TX cycle=1 p1=0x00 p2=0x00 cmd=0x21 state=0x20 value=0xD0 frame 006 00 00 21 20 D0 8B +01:32:37.829 ANOMALY 24 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 3 expected 00 +01:32:37.829 RX raw 07 80 48 24 DD 6C 07 80 48 24 DD 6C 07 80 48 24 DD 6C 07 80 48 24 DD 6C +01:32:44.553 TX cycle=1 p1=0x00 p2=0x00 cmd=0x22 state=0x20 value=0xD0 frame 006 00 00 22 20 D0 88 +01:32:45.378 TX cycle=1 p1=0x00 p2=0x00 cmd=0x23 state=0x20 value=0xD0 frame 006 00 00 23 20 D0 89 +01:32:45.378 ANOMALY 12 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 0 expected 00 +01:32:45.378 RX raw 07 80 24 12 97 7C 00 00 00 00 80 DA +01:32:49.865 TX cycle=1 p1=0x00 p2=0x00 cmd=0x24 state=0x20 value=0xD0 frame 006 00 00 24 20 D0 8E +01:32:50.689 TX cycle=1 p1=0x00 p2=0x00 cmd=0x25 state=0x20 value=0xD0 frame 006 00 00 25 20 D0 8F +01:32:50.689 ANOMALY 12 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 0 expected 00 +01:32:50.689 RX raw 07 80 49 24 DD 6D 00 00 00 00 80 DA +01:32:54.094 TX cycle=1 p1=0x00 p2=0x00 cmd=0x26 state=0x20 value=0xD0 frame 006 00 00 26 20 D0 8C +01:32:54.919 TX cycle=1 p1=0x00 p2=0x00 cmd=0x27 state=0x20 value=0xD0 frame 006 00 00 27 20 D0 8D +01:32:54.919 ANOMALY 12 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 0 expected 00 +01:32:54.919 RX raw 07 80 12 09 D7 11 00 00 00 00 80 DA +01:33:01.092 TX cycle=1 p1=0x00 p2=0x00 cmd=0x28 state=0x20 value=0xD0 frame 006 00 00 28 20 D0 82 +01:33:01.912 TX cycle=1 p1=0x00 p2=0x00 cmd=0x29 state=0x20 value=0xD0 frame 006 00 00 29 20 D0 83 +01:33:01.912 ANOMALY 12 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 0 expected 00 +01:33:01.912 RX raw 07 80 4A 24 DD 6E 00 00 00 00 80 DA +01:33:05.170 TX cycle=1 p1=0x00 p2=0x00 cmd=0x2A state=0x20 value=0xD0 frame 006 00 00 2A 20 D0 80 +01:33:05.993 TX cycle=1 p1=0x00 p2=0x00 cmd=0x2B state=0x20 value=0xD0 frame 006 00 00 2B 20 D0 81 +01:33:05.993 ANOMALY 12 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 0 expected 00 +01:33:05.993 RX raw 07 80 25 12 17 FD 00 00 00 00 80 DA +01:33:09.308 TX cycle=1 p1=0x00 p2=0x00 cmd=0x2C state=0x20 value=0xD0 frame 006 00 00 2C 20 D0 86 +01:33:10.132 TX cycle=1 p1=0x00 p2=0x00 cmd=0x2D state=0x20 value=0xD0 frame 006 00 00 2D 20 D0 87 +01:33:10.132 ANOMALY 12 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 0 expected 00 +01:33:10.132 RX raw 07 80 4B 24 DD 6F 00 00 00 00 80 DA +01:33:13.582 TX cycle=1 p1=0x00 p2=0x00 cmd=0x2E state=0x20 value=0xD0 frame 006 00 00 2E 20 D0 84 +01:33:14.401 TX cycle=1 p1=0x00 p2=0x00 cmd=0x2F state=0x20 value=0xD0 frame 006 00 00 2F 20 D0 85 +01:33:15.225 TX cycle=1 p1=0x00 p2=0x00 cmd=0x30 state=0x20 value=0xD0 frame 006 00 00 30 20 D0 9A +01:33:16.046 TX cycle=1 p1=0x00 p2=0x00 cmd=0x31 state=0x20 value=0xD0 frame 006 00 00 31 20 D0 9B +01:33:16.046 ANOMALY 30 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 3 expected 00 +01:33:16.046 RX raw 07 80 4C 24 DD 68 07 80 4C 24 DD 68 07 80 4C 24 DD 68 07 80 4C 24 DD 68 07 80 4C 24 DD 68 +01:33:19.095 TX cycle=1 p1=0x00 p2=0x00 cmd=0x32 state=0x20 value=0xD0 frame 006 00 00 32 20 D0 98 +01:33:19.917 TX cycle=1 p1=0x00 p2=0x00 cmd=0x33 state=0x20 value=0xD0 frame 006 00 00 33 20 D0 99 +01:33:19.917 ANOMALY 12 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 0 expected 00 +01:33:19.917 RX raw 07 80 26 12 97 7E 00 00 00 00 80 DA +01:33:22.582 TX cycle=1 p1=0x00 p2=0x00 cmd=0x34 state=0x20 value=0xD0 frame 006 00 00 34 20 D0 9E +01:33:23.407 TX cycle=1 p1=0x00 p2=0x00 cmd=0x35 state=0x20 value=0xD0 frame 006 00 00 35 20 D0 9F +01:33:23.407 ANOMALY 12 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 0 expected 00 +01:33:23.407 RX raw 07 80 4D 24 DD 69 00 00 00 00 80 DA +01:33:25.893 TX cycle=1 p1=0x00 p2=0x00 cmd=0x36 state=0x20 value=0xD0 frame 006 00 00 36 20 D0 9C +01:33:26.716 TX cycle=1 p1=0x00 p2=0x00 cmd=0x37 state=0x20 value=0xD0 frame 006 00 00 37 20 D0 9D +01:33:26.716 ANOMALY 12 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 0 expected 00 +01:33:26.716 RX raw 07 80 13 09 D7 10 00 00 00 00 80 DA +01:33:29.511 TX cycle=1 p1=0x00 p2=0x00 cmd=0x38 state=0x20 value=0xD0 frame 006 00 00 38 20 D0 92 +01:33:30.337 TX cycle=1 p1=0x00 p2=0x00 cmd=0x39 state=0x20 value=0xD0 frame 006 00 00 39 20 D0 93 +01:33:30.337 ANOMALY 12 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 0 expected 00 +01:33:30.337 RX raw 07 80 4E 24 DD 6A 00 00 00 00 80 DA +01:33:33.003 TX cycle=1 p1=0x00 p2=0x00 cmd=0x3A state=0x20 value=0xD0 frame 006 00 00 3A 20 D0 90 +01:33:33.825 TX cycle=1 p1=0x00 p2=0x00 cmd=0x3B state=0x20 value=0xD0 frame 006 00 00 3B 20 D0 91 +01:33:33.825 ANOMALY 12 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 0 expected 00 +01:33:33.825 RX raw 07 80 27 12 17 FF 00 00 00 00 80 DA +01:33:36.847 TX cycle=1 p1=0x00 p2=0x00 cmd=0x3C state=0x20 value=0xD0 frame 006 00 00 3C 20 D0 96 +01:33:37.668 TX cycle=1 p1=0x00 p2=0x00 cmd=0x3D state=0x20 value=0xD0 frame 006 00 00 3D 20 D0 97 +01:33:37.668 ANOMALY 12 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 0 expected 00 +01:33:37.668 RX raw 07 80 4F 24 DD 6B 00 00 00 00 80 DA +01:33:39.907 TX cycle=1 p1=0x00 p2=0x00 cmd=0x3E state=0x20 value=0xD0 frame 006 00 00 3E 20 D0 94 +01:33:40.731 TX cycle=1 p1=0x00 p2=0x00 cmd=0x3F state=0x20 value=0xD0 frame 006 00 00 3F 20 D0 95 +FINAL heartbeat-compatible RX: 18 bytes, offset 0, 3 frames + 0 bytes +Anomalies: 14 diff --git a/captures/he38-direct-20d0-cmd40-5f-nopause.txt b/captures/he38-direct-20d0-cmd40-5f-nopause.txt new file mode 100644 index 0000000..8167b06 --- /dev/null +++ b/captures/he38-direct-20d0-cmd40-5f-nopause.txt @@ -0,0 +1,14 @@ +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. diff --git a/captures/he38-direct-20d0-cmd40-5f.txt b/captures/he38-direct-20d0-cmd40-5f.txt new file mode 100644 index 0000000..71e942a --- /dev/null +++ b/captures/he38-direct-20d0-cmd40-5f.txt @@ -0,0 +1,48 @@ +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:33:58.816 TX cycle=1 p1=0x00 p2=0x00 cmd=0x40 state=0x20 value=0xD0 frame 006 00 00 40 20 D0 EA +01:33:59.636 TX cycle=1 p1=0x00 p2=0x00 cmd=0x41 state=0x20 value=0xD0 frame 006 00 00 41 20 D0 EB +01:33:59.636 ANOMALY 24 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 3 expected 00 +01:33:59.636 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:34:03.875 TX cycle=1 p1=0x00 p2=0x00 cmd=0x42 state=0x20 value=0xD0 frame 006 00 00 42 20 D0 E8 +01:34:04.703 TX cycle=1 p1=0x00 p2=0x00 cmd=0x43 state=0x20 value=0xD0 frame 006 00 00 43 20 D0 E9 +01:34:05.527 TX cycle=1 p1=0x00 p2=0x00 cmd=0x44 state=0x20 value=0xD0 frame 006 00 00 44 20 D0 EE +01:34:06.348 TX cycle=1 p1=0x00 p2=0x00 cmd=0x45 state=0x20 value=0xD0 frame 006 00 00 45 20 D0 EF +01:34:06.348 ANOMALY 24 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 3 expected 00 +01:34:06.348 RX raw 07 80 51 24 DD 75 07 80 51 24 DD 75 07 80 51 24 DD 75 07 80 51 24 DD 75 +01:34:09.119 TX cycle=1 p1=0x00 p2=0x00 cmd=0x46 state=0x20 value=0xD0 frame 006 00 00 46 20 D0 EC +01:34:09.942 TX cycle=1 p1=0x00 p2=0x00 cmd=0x47 state=0x20 value=0xD0 frame 006 00 00 47 20 D0 ED +01:34:10.766 TX cycle=1 p1=0x00 p2=0x00 cmd=0x48 state=0x20 value=0xD0 frame 006 00 00 48 20 D0 E2 +01:34:11.587 TX cycle=1 p1=0x00 p2=0x00 cmd=0x49 state=0x20 value=0xD0 frame 006 00 00 49 20 D0 E3 +01:34:11.587 ANOMALY 30 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 3 expected 00 +01:34:11.587 RX raw 07 80 52 24 DD 76 07 80 52 24 DD 76 07 80 52 24 DD 76 07 80 52 24 DD 76 07 80 52 24 DD 76 +01:34:13.817 TX cycle=1 p1=0x00 p2=0x00 cmd=0x4A state=0x20 value=0xD0 frame 006 00 00 4A 20 D0 E0 +01:34:14.639 TX cycle=1 p1=0x00 p2=0x00 cmd=0x4B state=0x20 value=0xD0 frame 006 00 00 4B 20 D0 E1 +01:34:15.460 TX cycle=1 p1=0x00 p2=0x00 cmd=0x4C state=0x20 value=0xD0 frame 006 00 00 4C 20 D0 E6 +01:34:16.282 TX cycle=1 p1=0x00 p2=0x00 cmd=0x4D state=0x20 value=0xD0 frame 006 00 00 4D 20 D0 E7 +01:34:16.282 ANOMALY 24 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 3 expected 00 +01:34:16.282 RX raw 07 80 53 24 DD 77 07 80 53 24 DD 77 07 80 53 24 DD 77 07 80 53 24 DD 77 +01:34:18.523 TX cycle=1 p1=0x00 p2=0x00 cmd=0x4E state=0x20 value=0xD0 frame 006 00 00 4E 20 D0 E4 +01:34:19.347 TX cycle=1 p1=0x00 p2=0x00 cmd=0x4F state=0x20 value=0xD0 frame 006 00 00 4F 20 D0 E5 +01:34:20.173 TX cycle=1 p1=0x00 p2=0x00 cmd=0x50 state=0x20 value=0xD0 frame 006 00 00 50 20 D0 FA +01:34:20.995 TX cycle=1 p1=0x00 p2=0x00 cmd=0x51 state=0x20 value=0xD0 frame 006 00 00 51 20 D0 FB +01:34:21.820 TX cycle=1 p1=0x00 p2=0x00 cmd=0x52 state=0x20 value=0xD0 frame 006 00 00 52 20 D0 F8 +01:34:22.644 TX cycle=1 p1=0x00 p2=0x00 cmd=0x53 state=0x20 value=0xD0 frame 006 00 00 53 20 D0 F9 +01:34:23.468 TX cycle=1 p1=0x00 p2=0x00 cmd=0x54 state=0x20 value=0xD0 frame 006 00 00 54 20 D0 FE +01:34:24.289 TX cycle=1 p1=0x00 p2=0x00 cmd=0x55 state=0x20 value=0xD0 frame 006 00 00 55 20 D0 FF +01:34:25.112 TX cycle=1 p1=0x00 p2=0x00 cmd=0x56 state=0x20 value=0xD0 frame 006 00 00 56 20 D0 FC +01:34:25.935 TX cycle=1 p1=0x00 p2=0x00 cmd=0x57 state=0x20 value=0xD0 frame 006 00 00 57 20 D0 FD +01:34:26.757 TX cycle=1 p1=0x00 p2=0x00 cmd=0x58 state=0x20 value=0xD0 frame 006 00 00 58 20 D0 F2 +01:34:27.579 TX cycle=1 p1=0x00 p2=0x00 cmd=0x59 state=0x20 value=0xD0 frame 006 00 00 59 20 D0 F3 +01:34:27.579 ANOMALY 24 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 3 expected 00 +01:34:27.579 RX raw 07 80 56 24 DD 72 07 80 56 24 DD 72 07 80 56 24 DD 72 07 80 56 24 DD 72 +01:34:33.355 TX cycle=1 p1=0x00 p2=0x00 cmd=0x5A state=0x20 value=0xD0 frame 006 00 00 5A 20 D0 F0 +01:34:34.177 TX cycle=1 p1=0x00 p2=0x00 cmd=0x5B state=0x20 value=0xD0 frame 006 00 00 5B 20 D0 F1 +01:34:34.999 TX cycle=1 p1=0x00 p2=0x00 cmd=0x5C state=0x20 value=0xD0 frame 006 00 00 5C 20 D0 F6 +01:34:35.824 TX cycle=1 p1=0x00 p2=0x00 cmd=0x5D state=0x20 value=0xD0 frame 006 00 00 5D 20 D0 F7 +01:34:35.824 ANOMALY 30 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 3 expected 00 +01:34:35.824 RX raw 07 80 57 24 DD 73 07 80 57 24 DD 73 07 80 57 24 DD 73 07 80 57 24 DD 73 07 80 57 24 DD 73 +01:34:38.662 TX cycle=1 p1=0x00 p2=0x00 cmd=0x5E state=0x20 value=0xD0 frame 006 00 00 5E 20 D0 F4 +01:34:39.484 TX cycle=1 p1=0x00 p2=0x00 cmd=0x5F state=0x20 value=0xD0 frame 006 00 00 5F 20 D0 F5 +FINAL heartbeat-compatible RX: 12 bytes, offset 0, 2 frames + 0 bytes +Anomalies: 6 diff --git a/captures/he38-direct-4030-cmd20-3f.txt b/captures/he38-direct-4030-cmd20-3f.txt new file mode 100644 index 0000000..49e3e7d --- /dev/null +++ b/captures/he38-direct-4030-cmd20-3f.txt @@ -0,0 +1,66 @@ +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:35:56.118 TX cycle=1 p1=0x00 p2=0x00 cmd=0x20 state=0x40 value=0x30 frame 006 00 00 20 40 30 0A +01:35:56.942 TX cycle=1 p1=0x00 p2=0x00 cmd=0x21 state=0x40 value=0x30 frame 006 00 00 21 40 30 0B +01:35:56.942 ANOMALY 24 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 3 expected 00 +01:35:56.942 RX raw 07 80 48 28 D3 6E 07 80 48 28 D3 6E 07 80 48 28 D3 6E 07 80 48 28 D3 6E +01:35:59.621 TX cycle=1 p1=0x00 p2=0x00 cmd=0x22 state=0x40 value=0x30 frame 006 00 00 22 40 30 08 +01:36:00.448 TX cycle=1 p1=0x00 p2=0x00 cmd=0x23 state=0x40 value=0x30 frame 006 00 00 23 40 30 09 +01:36:00.448 ANOMALY 12 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 0 expected 00 +01:36:00.448 RX raw 07 80 24 14 4A A7 00 00 00 00 80 DA +01:36:02.727 TX cycle=1 p1=0x00 p2=0x00 cmd=0x24 state=0x40 value=0x30 frame 006 00 00 24 40 30 0E +01:36:03.549 TX cycle=1 p1=0x00 p2=0x00 cmd=0x25 state=0x40 value=0x30 frame 006 00 00 25 40 30 0F +01:36:03.549 ANOMALY 12 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 0 expected 00 +01:36:03.549 RX raw 07 80 49 28 D3 6F 00 00 00 00 80 DA +01:36:06.058 TX cycle=1 p1=0x00 p2=0x00 cmd=0x26 state=0x40 value=0x30 frame 006 00 00 26 40 30 0C +01:36:06.883 TX cycle=1 p1=0x00 p2=0x00 cmd=0x27 state=0x40 value=0x30 frame 006 00 00 27 40 30 0D +01:36:06.883 ANOMALY 12 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 0 expected 00 +01:36:06.883 RX raw 07 80 12 0A 6A AF 00 00 00 00 80 DA +01:36:09.005 TX cycle=1 p1=0x00 p2=0x00 cmd=0x28 state=0x40 value=0x30 frame 006 00 00 28 40 30 02 +01:36:09.831 TX cycle=1 p1=0x00 p2=0x00 cmd=0x29 state=0x40 value=0x30 frame 006 00 00 29 40 30 03 +01:36:09.831 ANOMALY 12 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 0 expected 00 +01:36:09.831 RX raw 07 80 4A 28 D3 6C 00 00 00 00 80 DA +01:36:12.335 TX cycle=1 p1=0x00 p2=0x00 cmd=0x2A state=0x40 value=0x30 frame 006 00 00 2A 40 30 00 +01:36:13.160 TX cycle=1 p1=0x00 p2=0x00 cmd=0x2B state=0x40 value=0x30 frame 006 00 00 2B 40 30 01 +01:36:13.160 ANOMALY 12 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 0 expected 00 +01:36:13.160 RX raw 07 80 25 14 0A E6 00 00 00 00 80 DA +01:36:15.282 TX cycle=1 p1=0x00 p2=0x00 cmd=0x2C state=0x40 value=0x30 frame 006 00 00 2C 40 30 06 +01:36:16.109 TX cycle=1 p1=0x00 p2=0x00 cmd=0x2D state=0x40 value=0x30 frame 006 00 00 2D 40 30 07 +01:36:16.109 ANOMALY 12 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 0 expected 00 +01:36:16.109 RX raw 07 80 4B 28 D3 6D 00 00 00 00 80 DA +01:36:19.265 TX cycle=1 p1=0x00 p2=0x00 cmd=0x2E state=0x40 value=0x30 frame 006 00 00 2E 40 30 04 +01:36:20.092 TX cycle=1 p1=0x00 p2=0x00 cmd=0x2F state=0x40 value=0x30 frame 006 00 00 2F 40 30 05 +01:36:20.092 ANOMALY 12 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 0 expected 00 +01:36:20.092 RX raw 07 80 09 05 2A FB 00 00 00 00 80 DA +01:36:22.844 TX cycle=1 p1=0x00 p2=0x00 cmd=0x30 state=0x40 value=0x30 frame 006 00 00 30 40 30 1A +01:36:23.672 TX cycle=1 p1=0x00 p2=0x00 cmd=0x31 state=0x40 value=0x30 frame 006 00 00 31 40 30 1B +01:36:23.672 ANOMALY 12 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 0 expected 00 +01:36:23.672 RX raw 07 80 4C 28 D3 6A 00 00 00 00 80 DA +01:36:27.483 TX cycle=1 p1=0x00 p2=0x00 cmd=0x32 state=0x40 value=0x30 frame 006 00 00 32 40 30 18 +01:36:28.304 TX cycle=1 p1=0x00 p2=0x00 cmd=0x33 state=0x40 value=0x30 frame 006 00 00 33 40 30 19 +01:36:28.304 ANOMALY 12 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 0 expected 00 +01:36:28.304 RX raw 07 80 26 14 CA 25 00 00 00 00 80 DA +01:36:31.239 TX cycle=1 p1=0x00 p2=0x00 cmd=0x34 state=0x40 value=0x30 frame 006 00 00 34 40 30 1E +01:36:32.060 TX cycle=1 p1=0x00 p2=0x00 cmd=0x35 state=0x40 value=0x30 frame 006 00 00 35 40 30 1F +01:36:32.060 ANOMALY 12 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 0 expected 00 +01:36:32.060 RX raw 07 80 4D 28 D3 6B 00 00 00 00 80 DA +01:36:35.085 TX cycle=1 p1=0x00 p2=0x00 cmd=0x36 state=0x40 value=0x30 frame 006 00 00 36 40 30 1C +01:36:35.909 TX cycle=1 p1=0x00 p2=0x00 cmd=0x37 state=0x40 value=0x30 frame 006 00 00 37 40 30 1D +01:36:35.909 ANOMALY 12 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 0 expected 00 +01:36:35.909 RX raw 07 80 13 0A EA 2E 00 00 00 00 80 DA +01:36:38.531 TX cycle=1 p1=0x00 p2=0x00 cmd=0x38 state=0x40 value=0x30 frame 006 00 00 38 40 30 12 +01:36:39.354 TX cycle=1 p1=0x00 p2=0x00 cmd=0x39 state=0x40 value=0x30 frame 006 00 00 39 40 30 13 +01:36:39.354 ANOMALY 12 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 0 expected 00 +01:36:39.354 RX raw 07 80 4E 28 D3 68 00 00 00 00 80 DA +01:36:41.971 TX cycle=1 p1=0x00 p2=0x00 cmd=0x3A state=0x40 value=0x30 frame 006 00 00 3A 40 30 10 +01:36:42.796 TX cycle=1 p1=0x00 p2=0x00 cmd=0x3B state=0x40 value=0x30 frame 006 00 00 3B 40 30 11 +01:36:42.796 ANOMALY 12 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 0 expected 00 +01:36:42.796 RX raw 07 80 27 14 8A 64 00 00 00 00 80 DA +01:36:45.776 TX cycle=1 p1=0x00 p2=0x00 cmd=0x3C state=0x40 value=0x30 frame 006 00 00 3C 40 30 16 +01:36:46.603 TX cycle=1 p1=0x00 p2=0x00 cmd=0x3D state=0x40 value=0x30 frame 006 00 00 3D 40 30 17 +01:36:46.603 ANOMALY 12 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 0 expected 00 +01:36:46.603 RX raw 07 80 4F 28 D3 69 00 00 00 00 80 DA +01:36:49.015 TX cycle=1 p1=0x00 p2=0x00 cmd=0x3E state=0x40 value=0x30 frame 006 00 00 3E 40 30 14 +01:36:49.841 TX cycle=1 p1=0x00 p2=0x00 cmd=0x3F state=0x40 value=0x30 frame 006 00 00 3F 40 30 15 +FINAL heartbeat-compatible RX: 12 bytes, offset 0, 2 frames + 0 bytes +Anomalies: 15 diff --git a/docs/discovery-notes.md b/docs/discovery-notes.md index 8dfac15..bb86b88 100644 --- a/docs/discovery-notes.md +++ b/docs/discovery-notes.md @@ -9195,3 +9195,257 @@ That means the next most 1990s-looking hypothesis is probably: - a **small recurring scan set** for the maintained background layer - plus some separate startup/beacon/identity pages - rather than one giant ordered status loop by itself + +### HE38: Broad Semi-Awake State Hunter + +Goal: broaden outward from the known `20 D0` low-command surface and look for +other command regions that keep the panel in the same clear / semi-awake state, +even if they do not fully wake it. + +This is intentionally a **state-hunting** pass, not just an anomaly-hunting one. +The useful observations are: + +- whether the LCD stays clear / non-`CONNECT NOT ACT` +- whether a run only holds that state for group 1, or for the whole script +- whether any new structured families appear + +#### HE38a: broaden low-band sweep `0x20-0x3F @ 20 D0` + +```powershell +python scripts/serial_direct_response_sweep.py --port COM5 --prefix1s 0x00 --prefix2s 0x00 --commands 0x20-0x3F --states 0x20 --values 0xD0 --settle 3.0 --after-each 0.8 --after 2.0 --pause-on-anomaly --log captures/he38-direct-20d0-cmd20-3f.txt +``` + +Purpose: + +- check whether the semi-awake surface extends past `0x1F` +- keep the same state/value pair that has worked best so far + +#### HE38b: broaden low-band sweep `0x40-0x5F @ 20 D0` + +```powershell +python scripts/serial_direct_response_sweep.py --port COM5 --prefix1s 0x00 --prefix2s 0x00 --commands 0x40-0x5F --states 0x20 --values 0xD0 --settle 3.0 --after-each 0.8 --after 2.0 --pause-on-anomaly --log captures/he38-direct-20d0-cmd40-5f.txt +``` + +Purpose: + +- look for a second semi-awake band elsewhere in command space + +#### HE38c: baseline control `0x20-0x3F @ 00 80` + +```powershell +python scripts/serial_direct_response_sweep.py --port COM5 --prefix1s 0x00 --prefix2s 0x00 --commands 0x20-0x3F --states 0x00 --values 0x80 --settle 3.0 --after-each 0.8 --after 2.0 --pause-on-anomaly --log captures/he38-direct-0080-cmd20-3f-control.txt +``` + +Purpose: + +- compare the same command region under the older baseline payload +- separate "command region effect" from "`20 D0` payload effect" + +#### HE38d: alternate promising payload `0x20-0x3F @ 40 30` + +```powershell +python scripts/serial_direct_response_sweep.py --port COM5 --prefix1s 0x00 --prefix2s 0x00 --commands 0x20-0x3F --states 0x40 --values 0x30 --settle 3.0 --after-each 0.8 --after 2.0 --pause-on-anomaly --log captures/he38-direct-4030-cmd20-3f.txt +``` + +Purpose: + +- test whether this "holds panel clear" effect is unique to `20 D0` +- `40 30` is the other payload pair most worth cross-checking here + +#### HE38e: semi-awake candidate repeat check + +If any HE38 sweep appears to hold the panel clear for most of the run, repeat +just the first good-looking candidate frame on its own: + +```powershell +python scripts/serial_probe_response.py --port COM5 --tx-frame "" --repeat 30 --interval 0.60 --delay 3 --after 3 --frame-size 0 --log captures/he38-repeat-.txt +``` + +Use this only for candidates that look good both: + +- serially, and +- on the LCD/panel state + +#### Recommended order + +1. `HE38a` `0x20-0x3F @ 20 D0` +2. `HE38c` baseline control `0x20-0x3F @ 00 80` +3. `HE38b` `0x40-0x5F @ 20 D0` +4. `HE38d` `0x20-0x3F @ 40 30` +5. `HE38e` repeat any good-looking candidates + +Interpretation guide: + +- if `20 D0` keeps finding wider semi-awake bands while `00 80` does not, then + the payload pair is doing real mode/session work +- if `0x20-0x3F` behaves like `0x00-0x1F`, then we are looking at a much larger + maintained surface than we first thought +- if only a few sparse candidates hold the panel clear, then the maintained + background layer may be a selected subset rather than a continuous command map + +### HE38 Result: No-Pause Semi-Awake Hunting + +Additional uninterrupted capture files present: + +- `captures/he38-direct-20d0-cmd20-3f-nopause.txt` +- `captures/he38-direct-0080-cmd20-3f-control-nopause.txt` +- `captures/he38-direct-20d0-cmd40-5f-nopause.txt` + +Panel-side observation: + +- these uninterrupted reruns were stopped manually at roughly the point where + the panel lost its "alive"/clear state + +That means these runs are useful primarily as **semi-awake duration probes**, not +as complete command maps. + +#### `0x20-0x3F @ 20 D0` + +Observed before manual stop: + +- `0x21` -> `07 80 48 24 DD 6C` + +Read: + +- the patterned `20 D0` surface definitely extends upward into the `0x20` band +- this is consistent with the earlier low-band `4x 24 DD 6x` family structure + +#### `0x20-0x3F @ 00 80` control + +Observed before manual stop: + +- `0x29` -> `07 80 4A 20 D8 6F` + +Read: + +- the same command region is still live under baseline `00 80` +- but the family shape stays on the older `20 D8` style rather than the newer + `24 DD` style + +#### `0x40-0x5F @ 20 D0` + +Observed before manual stop: + +- `0x41` -> `07 80 50 24 DD 74` +- `0x42` -> repeated `07 80 50 24 DD 74` +- `0x43` -> `07 80 50 24 DD 74` + +Read: + +- this is the strongest new semi-awake lead from HE38 +- the `0x40` command band under `20 D0` appears to open a neighboring + `0x50 24 DD 74` family +- and it did so early enough in the run to matter before manual stop + +Current best interpretation after HE38: + +- `20 D0` remains the more interesting semi-awake payload +- not because baseline `00 80` is dead, but because `20 D0` keeps shifting the + family surface into coherent `24 DD`-style siblings +- the semi-awake-maintenance surface is now plausibly broader than just the + original low band: + - `0x00-0x1F` + - `0x20-0x3F` + - and likely at least part of `0x40-0x5F` + +The best next narrow branch is now: + +- treat `0x41-0x43 @ 20 D0` as a new maintained-background candidate set +- and compare that `0x50 24 DD 74` behavior against the earlier `0x40 24 DD 64` + / `0x48 24 DD 6C` bands + +### HE38 Cross-Check: What The Paused Runs Still Taught Us + +The paused HE38 runs are not the right source for "how long did the panel stay +alive?", but they were still very useful for **family mapping**. + +#### `0x20-0x3F @ 20 D0` family structure + +The paused run shows a very clean patterned surface: + +- `0x21` -> `07 80 48 24 DD 6C` +- `0x25` -> `07 80 49 24 DD 6D` +- `0x29` -> `07 80 4A 24 DD 6E` +- `0x2D` -> `07 80 4B 24 DD 6F` +- `0x31` -> `07 80 4C 24 DD 68` +- `0x35` -> `07 80 4D 24 DD 69` +- `0x39` -> `07 80 4E 24 DD 6A` +- `0x3D` -> `07 80 4F 24 DD 6B` + +Interleaved sibling families also appear: + +- `0x23` -> `07 80 24 12 97 7C` +- `0x2B` -> `07 80 25 12 17 FD` +- `0x33` -> `07 80 26 12 97 7E` +- `0x3B` -> `07 80 27 12 17 FF` +- `0x27` -> `07 80 12 09 D7 11` +- `0x37` -> `07 80 13 09 D7 10` + +So this is not just "some activity in the `0x20` band"; it is a strongly +ordered mapped surface. + +#### `0x40-0x5F @ 20 D0` family structure + +The paused run also maps a second coherent band: + +- `0x41` -> `07 80 50 24 DD 74` +- `0x45` -> `07 80 51 24 DD 75` +- `0x49` -> `07 80 52 24 DD 76` +- `0x4D` -> `07 80 53 24 DD 77` +- `0x59` -> `07 80 56 24 DD 72` +- `0x5D` -> `07 80 57 24 DD 73` + +That is the strongest evidence yet that the `.. 24 DD ..` surface spans +multiple command bands, not just the original low region. + +#### `0x20-0x3F @ 00 80` control structure + +The baseline payload maps the same general region, but with the older family +style: + +- `0x29` -> `07 80 4A 20 D8 6F` +- `0x2D` -> `07 80 4B 20 D8 6E` +- `0x31` -> `07 80 4C 20 D8 69` +- `0x35` -> `07 80 4D 20 D8 68` +- `0x39` -> `07 80 4E 20 D8 6B` +- `0x3D` -> `07 80 4F 20 D8 6A` + +with interleaved siblings like: + +- `0x33` -> `07 80 26 10 2C C7` +- `0x3B` -> `07 80 27 10 2C C6` + +That reinforces the idea that `20 D0` is not inventing a new command region +from scratch; it is shifting an existing mapped surface into a different family +space. + +#### `0x20-0x3F @ 40 30` alternate-payload structure + +The `40 30` paused run gives a third aligned surface: + +- `0x21` -> `07 80 48 28 D3 6E` +- `0x25` -> `07 80 49 28 D3 6F` +- `0x29` -> `07 80 4A 28 D3 6C` +- `0x2D` -> `07 80 4B 28 D3 6D` +- `0x31` -> `07 80 4C 28 D3 6A` +- `0x35` -> `07 80 4D 28 D3 6B` +- `0x39` -> `07 80 4E 28 D3 68` +- `0x3D` -> `07 80 4F 28 D3 69` + +with matching interleaved families: + +- `0x23` -> `07 80 24 14 4A A7` +- `0x2B` -> `07 80 25 14 0A E6` +- `0x33` -> `07 80 26 14 CA 25` +- `0x3B` -> `07 80 27 14 8A 64` +- `0x27` -> `07 80 12 0A 6A AF` +- `0x37` -> `07 80 13 0A EA 2E` + +Current read after including the paused runs: + +- the command surface is looking increasingly like a **mapped lattice** +- the command byte selects a row/slot +- the host payload pair (`00 80`, `20 D0`, `40 30`) shifts the response family + across parallel surfaces +- so the "semi-awake" question is probably about which of these surfaces is the + right maintained background class, not about whether the map exists at all diff --git a/docs/pt2-protocol-summary.md b/docs/pt2-protocol-summary.md index fa5511f..9732ad2 100644 --- a/docs/pt2-protocol-summary.md +++ b/docs/pt2-protocol-summary.md @@ -479,6 +479,21 @@ Current caution: - startup/beacon pages - then a small recurring maintained scan set - then additional camera-state detail pages we still have not identified +- A later no-pause HE38 pass broadened the same idea: + - `0x21 @ 20 D0` -> `07 80 48 24 DD 6C` + - `0x41-0x43 @ 20 D0` -> `07 80 50 24 DD 74` + - while the baseline control in the same `0x20-0x3F` region stayed on the + older `20 D8` style (`07 80 4A 20 D8 6F`) +- That suggests `20 D0` is not just shifting one command or one small pocket; + it may be selecting a broader `.. 24 DD ..` maintained-background surface + across multiple command bands. +- The paused HE38 runs strengthened that structure further: + - `0x20-0x3F @ 20 D0` maps cleanly through `48/49/4A/.../4F 24 DD` + - `0x20-0x3F @ 00 80` maps the same area through `4A/4B/4C/.../4F 20 D8` + - `0x20-0x3F @ 40 30` maps it again through `48/49/4A/.../4F 28 D3` +- So the best current model is a parallel set of response surfaces selected in + part by the host payload pair, with the remaining question being which surface + behaves like the true maintained background layer for an active panel. ## What We Do Not Know