This commit is contained in:
Aiden
2026-05-13 20:53:52 +10:00
parent 20ebe52096
commit c7997d5131
15 changed files with 523 additions and 0 deletions

View File

@@ -0,0 +1,29 @@
Sequence probe: 4 frames x 2 group(s) on COM5 at 38400 8N1
FRAME 1: 00 00 90 00 80 4A
FRAME 2: 00 00 E8 00 30 82
FRAME 3: 00 00 00 00 80 DA
FRAME 4: 00 00 00 00 80 DA
BASELINE heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
BEGIN group 1/2
20:39:53.782 TX group=1 frame=1 len=006 00 00 90 00 80 4A
20:39:53.782 RX group=1 frame=1 no RX bytes
20:39:54.287 TX group=1 frame=2 len=006 00 00 E8 00 30 82
20:39:54.287 RX group=1 frame=2 ANOMALY 18 RX bytes; first mismatch at byte 6: got 07, heartbeat offset 0 expected 00
20:39:54.287 RX group=1 frame=2 raw 00 00 00 00 80 DA 07 80 7A 40 26 C1 07 80 7A 40 26 C1
20:39:54.794 TX group=1 frame=3 len=006 00 00 00 00 80 DA
20:39:54.794 RX group=1 frame=3 ANOMALY 18 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 0 expected 00
20:39:54.794 RX group=1 frame=3 raw 07 80 7A 40 26 C1 00 00 00 00 80 DA 00 00 00 00 80 DA
20:39:55.330 TX group=1 frame=4 len=006 00 00 00 00 80 DA
20:39:55.330 RX group=1 frame=4 heartbeat-compatible RX: 18 bytes, offset 0, 3 frames + 0 bytes
GROUP 1 TAIL heartbeat-compatible RX: 18 bytes, offset 0, 3 frames + 0 bytes
BEGIN group 2/2
20:39:56.459 TX group=2 frame=1 len=006 00 00 90 00 80 4A
20:39:56.459 RX group=2 frame=1 heartbeat-compatible RX: 12 bytes, offset 0, 2 frames + 0 bytes
20:39:56.964 TX group=2 frame=2 len=006 00 00 E8 00 30 82
20:39:56.964 RX group=2 frame=2 heartbeat-compatible RX: 12 bytes, offset 0, 2 frames + 0 bytes
20:39:57.501 TX group=2 frame=3 len=006 00 00 00 00 80 DA
20:39:57.501 RX group=2 frame=3 heartbeat-compatible RX: 18 bytes, offset 0, 3 frames + 0 bytes
20:39:58.009 TX group=2 frame=4 len=006 00 00 00 00 80 DA
20:39:58.009 RX group=2 frame=4 heartbeat-compatible RX: 12 bytes, offset 0, 2 frames + 0 bytes
GROUP 2 TAIL heartbeat-compatible RX: 18 bytes, offset 0, 3 frames + 0 bytes
Anomalies: 2

View File

@@ -0,0 +1,29 @@
Sequence probe: 4 frames x 2 group(s) on COM5 at 38400 8N1
FRAME 1: 00 00 90 00 80 4A
FRAME 2: 00 00 E8 20 30 A2
FRAME 3: 00 00 00 00 80 DA
FRAME 4: 00 00 00 00 80 DA
BASELINE heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
BEGIN group 1/2
20:40:08.231 TX group=1 frame=1 len=006 00 00 90 00 80 4A
20:40:08.231 RX group=1 frame=1 heartbeat-compatible RX: 6 bytes, offset 0, 1 frames + 0 bytes
20:40:08.767 TX group=1 frame=2 len=006 00 00 E8 20 30 A2
20:40:08.767 RX group=1 frame=2 ANOMALY 18 RX bytes; first mismatch at byte 6: got 07, heartbeat offset 0 expected 00
20:40:08.767 RX group=1 frame=2 raw 00 00 00 00 80 DA 07 80 FA 48 26 49 07 80 FA 48 26 49
20:40:09.275 TX group=1 frame=3 len=006 00 00 00 00 80 DA
20:40:09.275 RX group=1 frame=3 ANOMALY 18 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 0 expected 00
20:40:09.275 RX group=1 frame=3 raw 07 80 FA 48 26 49 00 00 00 00 80 DA 00 00 00 00 80 DA
20:40:09.812 TX group=1 frame=4 len=006 00 00 00 00 80 DA
20:40:09.812 RX group=1 frame=4 heartbeat-compatible RX: 18 bytes, offset 0, 3 frames + 0 bytes
GROUP 1 TAIL heartbeat-compatible RX: 18 bytes, offset 0, 3 frames + 0 bytes
BEGIN group 2/2
20:40:10.941 TX group=2 frame=1 len=006 00 00 90 00 80 4A
20:40:10.941 RX group=2 frame=1 heartbeat-compatible RX: 12 bytes, offset 0, 2 frames + 0 bytes
20:40:11.447 TX group=2 frame=2 len=006 00 00 E8 20 30 A2
20:40:11.447 RX group=2 frame=2 heartbeat-compatible RX: 12 bytes, offset 0, 2 frames + 0 bytes
20:40:11.983 TX group=2 frame=3 len=006 00 00 00 00 80 DA
20:40:11.983 RX group=2 frame=3 heartbeat-compatible RX: 18 bytes, offset 0, 3 frames + 0 bytes
20:40:12.489 TX group=2 frame=4 len=006 00 00 00 00 80 DA
20:40:12.489 RX group=2 frame=4 heartbeat-compatible RX: 12 bytes, offset 0, 2 frames + 0 bytes
GROUP 2 TAIL heartbeat-compatible RX: 18 bytes, offset 0, 3 frames + 0 bytes
Anomalies: 2

View File

@@ -0,0 +1,29 @@
Sequence probe: 4 frames x 2 group(s) on COM5 at 38400 8N1
FRAME 1: 00 00 90 00 80 4A
FRAME 2: 00 00 E8 40 D0 22
FRAME 3: 00 00 00 00 80 DA
FRAME 4: 00 00 00 00 80 DA
BASELINE heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
BEGIN group 1/2
20:40:29.148 TX group=1 frame=1 len=006 00 00 90 00 80 4A
20:40:29.148 RX group=1 frame=1 no RX bytes
20:40:29.683 TX group=1 frame=2 len=006 00 00 E8 40 D0 22
20:40:29.683 RX group=1 frame=2 ANOMALY 18 RX bytes; first mismatch at byte 6: got 07, heartbeat offset 0 expected 00
20:40:29.683 RX group=1 frame=2 raw 00 00 00 00 80 DA 07 80 7A 50 3A CD 07 80 7A 50 3A CD
20:40:30.222 TX group=1 frame=3 len=006 00 00 00 00 80 DA
20:40:30.222 RX group=1 frame=3 ANOMALY 18 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 0 expected 00
20:40:30.222 RX group=1 frame=3 raw 07 80 7A 50 3A CD 00 00 00 00 80 DA 00 00 00 00 80 DA
20:40:30.727 TX group=1 frame=4 len=006 00 00 00 00 80 DA
20:40:30.727 RX group=1 frame=4 heartbeat-compatible RX: 12 bytes, offset 0, 2 frames + 0 bytes
GROUP 1 TAIL heartbeat-compatible RX: 18 bytes, offset 0, 3 frames + 0 bytes
BEGIN group 2/2
20:40:31.886 TX group=2 frame=1 len=006 00 00 90 00 80 4A
20:40:31.886 RX group=2 frame=1 heartbeat-compatible RX: 12 bytes, offset 0, 2 frames + 0 bytes
20:40:32.423 TX group=2 frame=2 len=006 00 00 E8 40 D0 22
20:40:32.423 RX group=2 frame=2 heartbeat-compatible RX: 18 bytes, offset 0, 3 frames + 0 bytes
20:40:32.927 TX group=2 frame=3 len=006 00 00 00 00 80 DA
20:40:32.927 RX group=2 frame=3 heartbeat-compatible RX: 12 bytes, offset 0, 2 frames + 0 bytes
20:40:33.432 TX group=2 frame=4 len=006 00 00 00 00 80 DA
20:40:33.432 RX group=2 frame=4 heartbeat-compatible RX: 12 bytes, offset 0, 2 frames + 0 bytes
GROUP 2 TAIL heartbeat-compatible RX: 18 bytes, offset 0, 3 frames + 0 bytes
Anomalies: 2

View File

@@ -0,0 +1,28 @@
Sequence probe: 4 frames x 2 group(s) on COM5 at 38400 8N1
FRAME 1: 00 00 90 00 80 4A
FRAME 2: 00 00 E8 60 80 52
FRAME 3: 00 00 00 00 80 DA
FRAME 4: 00 00 00 00 80 DA
BASELINE heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
BEGIN group 1/2
20:40:43.482 TX group=1 frame=1 len=006 00 00 90 00 80 4A
20:40:43.482 RX group=1 frame=1 no RX bytes
20:40:44.018 TX group=1 frame=2 len=006 00 00 E8 60 80 52
20:40:44.018 RX group=1 frame=2 ANOMALY 6 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 3 expected 00
20:40:44.018 RX group=1 frame=2 raw 07 80 7A 58 30 CF
20:40:44.524 TX group=1 frame=3 len=006 00 00 00 00 80 DA
20:40:44.524 RX group=1 frame=3 heartbeat-compatible RX: 6 bytes, offset 0, 1 frames + 0 bytes
20:40:45.061 TX group=1 frame=4 len=006 00 00 00 00 80 DA
20:40:45.061 RX group=1 frame=4 heartbeat-compatible RX: 18 bytes, offset 0, 3 frames + 0 bytes
GROUP 1 TAIL heartbeat-compatible RX: 18 bytes, offset 0, 3 frames + 0 bytes
BEGIN group 2/2
20:40:46.191 TX group=2 frame=1 len=006 00 00 90 00 80 4A
20:40:46.191 RX group=2 frame=1 heartbeat-compatible RX: 12 bytes, offset 0, 2 frames + 0 bytes
20:40:46.698 TX group=2 frame=2 len=006 00 00 E8 60 80 52
20:40:46.698 RX group=2 frame=2 heartbeat-compatible RX: 12 bytes, offset 0, 2 frames + 0 bytes
20:40:47.234 TX group=2 frame=3 len=006 00 00 00 00 80 DA
20:40:47.234 RX group=2 frame=3 heartbeat-compatible RX: 18 bytes, offset 0, 3 frames + 0 bytes
20:40:47.741 TX group=2 frame=4 len=006 00 00 00 00 80 DA
20:40:47.741 RX group=2 frame=4 heartbeat-compatible RX: 12 bytes, offset 0, 2 frames + 0 bytes
GROUP 2 TAIL heartbeat-compatible RX: 18 bytes, offset 0, 3 frames + 0 bytes
Anomalies: 1

View File

@@ -0,0 +1,29 @@
Sequence probe: 4 frames x 2 group(s) on COM5 at 38400 8N1
FRAME 1: 00 00 90 00 80 4A
FRAME 2: 00 00 E9 00 30 83
FRAME 3: 00 00 00 00 80 DA
FRAME 4: 00 00 00 00 80 DA
BASELINE heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
BEGIN group 1/2
20:41:10.505 TX group=1 frame=1 len=006 00 00 90 00 80 4A
20:41:10.505 RX group=1 frame=1 no RX bytes
20:41:11.011 TX group=1 frame=2 len=006 00 00 E9 00 30 83
20:41:11.011 RX group=1 frame=2 ANOMALY 18 RX bytes; first mismatch at byte 6: got 07, heartbeat offset 0 expected 00
20:41:11.011 RX group=1 frame=2 raw 00 00 00 00 80 DA 07 80 7A 20 D3 54 07 80 7A 20 D3 54
20:41:11.550 TX group=1 frame=3 len=006 00 00 00 00 80 DA
20:41:11.550 RX group=1 frame=3 ANOMALY 18 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 0 expected 00
20:41:11.550 RX group=1 frame=3 raw 07 80 7A 20 D3 54 00 00 00 00 80 DA 00 00 00 00 80 DA
20:41:12.055 TX group=1 frame=4 len=006 00 00 00 00 80 DA
20:41:12.055 RX group=1 frame=4 heartbeat-compatible RX: 12 bytes, offset 0, 2 frames + 0 bytes
GROUP 1 TAIL heartbeat-compatible RX: 18 bytes, offset 0, 3 frames + 0 bytes
BEGIN group 2/2
20:41:13.215 TX group=2 frame=1 len=006 00 00 90 00 80 4A
20:41:13.215 RX group=2 frame=1 heartbeat-compatible RX: 12 bytes, offset 0, 2 frames + 0 bytes
20:41:13.752 TX group=2 frame=2 len=006 00 00 E9 00 30 83
20:41:13.752 RX group=2 frame=2 heartbeat-compatible RX: 18 bytes, offset 0, 3 frames + 0 bytes
20:41:14.257 TX group=2 frame=3 len=006 00 00 00 00 80 DA
20:41:14.257 RX group=2 frame=3 heartbeat-compatible RX: 12 bytes, offset 0, 2 frames + 0 bytes
20:41:14.764 TX group=2 frame=4 len=006 00 00 00 00 80 DA
20:41:14.764 RX group=2 frame=4 heartbeat-compatible RX: 12 bytes, offset 0, 2 frames + 0 bytes
GROUP 2 TAIL heartbeat-compatible RX: 18 bytes, offset 0, 3 frames + 0 bytes
Anomalies: 2

View File

@@ -0,0 +1,28 @@
Sequence probe: 4 frames x 2 group(s) on COM5 at 38400 8N1
FRAME 1: 00 00 90 00 80 4A
FRAME 2: 00 00 E9 20 30 A3
FRAME 3: 00 00 00 00 80 DA
FRAME 4: 00 00 00 00 80 DA
BASELINE heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
BEGIN group 1/2
20:41:25.811 TX group=1 frame=1 len=006 00 00 90 00 80 4A
20:41:25.811 RX group=1 frame=1 no RX bytes
20:41:26.347 TX group=1 frame=2 len=006 00 00 E9 20 30 A3
20:41:26.347 RX group=1 frame=2 ANOMALY 6 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 3 expected 00
20:41:26.347 RX group=1 frame=2 raw 07 80 7A 24 D3 50
20:41:26.856 TX group=1 frame=3 len=006 00 00 00 00 80 DA
20:41:26.856 RX group=1 frame=3 heartbeat-compatible RX: 6 bytes, offset 0, 1 frames + 0 bytes
20:41:27.392 TX group=1 frame=4 len=006 00 00 00 00 80 DA
20:41:27.392 RX group=1 frame=4 heartbeat-compatible RX: 18 bytes, offset 0, 3 frames + 0 bytes
GROUP 1 TAIL heartbeat-compatible RX: 18 bytes, offset 0, 3 frames + 0 bytes
BEGIN group 2/2
20:41:28.520 TX group=2 frame=1 len=006 00 00 90 00 80 4A
20:41:28.520 RX group=2 frame=1 heartbeat-compatible RX: 12 bytes, offset 0, 2 frames + 0 bytes
20:41:29.025 TX group=2 frame=2 len=006 00 00 E9 20 30 A3
20:41:29.025 RX group=2 frame=2 heartbeat-compatible RX: 12 bytes, offset 0, 2 frames + 0 bytes
20:41:29.563 TX group=2 frame=3 len=006 00 00 00 00 80 DA
20:41:29.563 RX group=2 frame=3 heartbeat-compatible RX: 18 bytes, offset 0, 3 frames + 0 bytes
20:41:30.069 TX group=2 frame=4 len=006 00 00 00 00 80 DA
20:41:30.069 RX group=2 frame=4 heartbeat-compatible RX: 12 bytes, offset 0, 2 frames + 0 bytes
GROUP 2 TAIL heartbeat-compatible RX: 18 bytes, offset 0, 3 frames + 0 bytes
Anomalies: 1

View File

@@ -0,0 +1,28 @@
Sequence probe: 4 frames x 2 group(s) on COM5 at 38400 8N1
FRAME 1: 00 00 90 00 80 4A
FRAME 2: 00 00 E9 40 D0 23
FRAME 3: 00 00 00 00 80 DA
FRAME 4: 00 00 00 00 80 DA
BASELINE heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
BEGIN group 1/2
20:41:39.923 TX group=1 frame=1 len=006 00 00 90 00 80 4A
20:41:39.923 RX group=1 frame=1 no RX bytes
20:41:40.429 TX group=1 frame=2 len=006 00 00 E9 40 D0 23
20:41:40.429 RX group=1 frame=2 ANOMALY 6 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 3 expected 00
20:41:40.429 RX group=1 frame=2 raw 07 80 7A 28 DD 52
20:41:40.936 TX group=1 frame=3 len=006 00 00 00 00 80 DA
20:41:40.936 RX group=1 frame=3 heartbeat-compatible RX: 6 bytes, offset 0, 1 frames + 0 bytes
20:41:41.472 TX group=1 frame=4 len=006 00 00 00 00 80 DA
20:41:41.472 RX group=1 frame=4 heartbeat-compatible RX: 18 bytes, offset 0, 3 frames + 0 bytes
GROUP 1 TAIL heartbeat-compatible RX: 18 bytes, offset 0, 3 frames + 0 bytes
BEGIN group 2/2
20:41:42.600 TX group=2 frame=1 len=006 00 00 90 00 80 4A
20:41:42.600 RX group=2 frame=1 heartbeat-compatible RX: 12 bytes, offset 0, 2 frames + 0 bytes
20:41:43.106 TX group=2 frame=2 len=006 00 00 E9 40 D0 23
20:41:43.106 RX group=2 frame=2 heartbeat-compatible RX: 12 bytes, offset 0, 2 frames + 0 bytes
20:41:43.643 TX group=2 frame=3 len=006 00 00 00 00 80 DA
20:41:43.643 RX group=2 frame=3 heartbeat-compatible RX: 18 bytes, offset 0, 3 frames + 0 bytes
20:41:44.148 TX group=2 frame=4 len=006 00 00 00 00 80 DA
20:41:44.148 RX group=2 frame=4 heartbeat-compatible RX: 12 bytes, offset 0, 2 frames + 0 bytes
GROUP 2 TAIL heartbeat-compatible RX: 18 bytes, offset 0, 3 frames + 0 bytes
Anomalies: 1

View File

@@ -0,0 +1,29 @@
Sequence probe: 4 frames x 2 group(s) on COM5 at 38400 8N1
FRAME 1: 00 00 90 00 80 4A
FRAME 2: 00 00 E9 60 80 53
FRAME 3: 00 00 00 00 80 DA
FRAME 4: 00 00 00 00 80 DA
BASELINE heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
BEGIN group 1/2
20:41:53.820 TX group=1 frame=1 len=006 00 00 90 00 80 4A
20:41:53.820 RX group=1 frame=1 no RX bytes
20:41:54.326 TX group=1 frame=2 len=006 00 00 E9 60 80 53
20:41:54.326 RX group=1 frame=2 ANOMALY 18 RX bytes; first mismatch at byte 6: got 07, heartbeat offset 0 expected 00
20:41:54.326 RX group=1 frame=2 raw 00 00 00 00 80 DA 07 80 7A 2C D8 53 07 80 7A 2C D8 53
20:41:54.864 TX group=1 frame=3 len=006 00 00 00 00 80 DA
20:41:54.864 RX group=1 frame=3 ANOMALY 18 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 0 expected 00
20:41:54.864 RX group=1 frame=3 raw 07 80 7A 2C D8 53 00 00 00 00 80 DA 00 00 00 00 80 DA
20:41:55.369 TX group=1 frame=4 len=006 00 00 00 00 80 DA
20:41:55.369 RX group=1 frame=4 heartbeat-compatible RX: 12 bytes, offset 0, 2 frames + 0 bytes
GROUP 1 TAIL heartbeat-compatible RX: 18 bytes, offset 0, 3 frames + 0 bytes
BEGIN group 2/2
20:41:56.525 TX group=2 frame=1 len=006 00 00 90 00 80 4A
20:41:56.525 RX group=2 frame=1 heartbeat-compatible RX: 12 bytes, offset 0, 2 frames + 0 bytes
20:41:57.062 TX group=2 frame=2 len=006 00 00 E9 60 80 53
20:41:57.062 RX group=2 frame=2 heartbeat-compatible RX: 18 bytes, offset 0, 3 frames + 0 bytes
20:41:57.599 TX group=2 frame=3 len=006 00 00 00 00 80 DA
20:41:57.599 RX group=2 frame=3 heartbeat-compatible RX: 18 bytes, offset 0, 3 frames + 0 bytes
20:41:58.104 TX group=2 frame=4 len=006 00 00 00 00 80 DA
20:41:58.104 RX group=2 frame=4 heartbeat-compatible RX: 12 bytes, offset 0, 2 frames + 0 bytes
GROUP 2 TAIL heartbeat-compatible RX: 18 bytes, offset 0, 3 frames + 0 bytes
Anomalies: 2

View File

@@ -0,0 +1,29 @@
Sequence probe: 4 frames x 2 group(s) on COM5 at 38400 8N1
FRAME 1: 00 00 90 00 80 4A
FRAME 2: 00 00 EC 00 30 86
FRAME 3: 00 00 00 00 80 DA
FRAME 4: 00 00 00 00 80 DA
BASELINE heartbeat-compatible RX: 30 bytes, offset 0, 5 frames + 0 bytes
BEGIN group 1/2
20:42:08.132 TX group=1 frame=1 len=006 00 00 90 00 80 4A
20:42:08.132 RX group=1 frame=1 no RX bytes
20:42:08.638 TX group=1 frame=2 len=006 00 00 EC 00 30 86
20:42:08.638 RX group=1 frame=2 ANOMALY 18 RX bytes; first mismatch at byte 6: got 07, heartbeat offset 0 expected 00
20:42:08.638 RX group=1 frame=2 raw 00 00 00 00 80 DA 07 80 7B 40 26 C0 07 80 7B 40 26 C0
20:42:09.177 TX group=1 frame=3 len=006 00 00 00 00 80 DA
20:42:09.177 RX group=1 frame=3 ANOMALY 18 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 0 expected 00
20:42:09.177 RX group=1 frame=3 raw 07 80 7B 40 26 C0 00 00 00 00 80 DA 00 00 00 00 80 DA
20:42:09.683 TX group=1 frame=4 len=006 00 00 00 00 80 DA
20:42:09.683 RX group=1 frame=4 heartbeat-compatible RX: 12 bytes, offset 0, 2 frames + 0 bytes
GROUP 1 TAIL heartbeat-compatible RX: 18 bytes, offset 0, 3 frames + 0 bytes
BEGIN group 2/2
20:42:10.843 TX group=2 frame=1 len=006 00 00 90 00 80 4A
20:42:10.843 RX group=2 frame=1 heartbeat-compatible RX: 12 bytes, offset 0, 2 frames + 0 bytes
20:42:11.380 TX group=2 frame=2 len=006 00 00 EC 00 30 86
20:42:11.380 RX group=2 frame=2 heartbeat-compatible RX: 18 bytes, offset 0, 3 frames + 0 bytes
20:42:11.886 TX group=2 frame=3 len=006 00 00 00 00 80 DA
20:42:11.886 RX group=2 frame=3 heartbeat-compatible RX: 12 bytes, offset 0, 2 frames + 0 bytes
20:42:12.423 TX group=2 frame=4 len=006 00 00 00 00 80 DA
20:42:12.423 RX group=2 frame=4 heartbeat-compatible RX: 18 bytes, offset 0, 3 frames + 0 bytes
GROUP 2 TAIL heartbeat-compatible RX: 18 bytes, offset 0, 3 frames + 0 bytes
Anomalies: 2

View File

@@ -0,0 +1,29 @@
Sequence probe: 4 frames x 2 group(s) on COM5 at 38400 8N1
FRAME 1: 00 00 90 00 80 4A
FRAME 2: 00 00 EC 20 30 A6
FRAME 3: 00 00 00 00 80 DA
FRAME 4: 00 00 00 00 80 DA
BASELINE heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
BEGIN group 1/2
20:42:25.854 TX group=1 frame=1 len=006 00 00 90 00 80 4A
20:42:25.854 RX group=1 frame=1 no RX bytes
20:42:26.389 TX group=1 frame=2 len=006 00 00 EC 20 30 A6
20:42:26.389 RX group=1 frame=2 ANOMALY 18 RX bytes; first mismatch at byte 6: got 07, heartbeat offset 0 expected 00
20:42:26.389 RX group=1 frame=2 raw 00 00 00 00 80 DA 07 80 7B 4C 26 CC 07 80 7B 4C 26 CC
20:42:26.929 TX group=1 frame=3 len=006 00 00 00 00 80 DA
20:42:26.929 RX group=1 frame=3 ANOMALY 18 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 0 expected 00
20:42:26.929 RX group=1 frame=3 raw 07 80 7B 4C 26 CC 00 00 00 00 80 DA 00 00 00 00 80 DA
20:42:27.434 TX group=1 frame=4 len=006 00 00 00 00 80 DA
20:42:27.434 RX group=1 frame=4 heartbeat-compatible RX: 12 bytes, offset 0, 2 frames + 0 bytes
GROUP 1 TAIL heartbeat-compatible RX: 18 bytes, offset 0, 3 frames + 0 bytes
BEGIN group 2/2
20:42:28.593 TX group=2 frame=1 len=006 00 00 90 00 80 4A
20:42:28.593 RX group=2 frame=1 heartbeat-compatible RX: 12 bytes, offset 0, 2 frames + 0 bytes
20:42:29.100 TX group=2 frame=2 len=006 00 00 EC 20 30 A6
20:42:29.100 RX group=2 frame=2 heartbeat-compatible RX: 12 bytes, offset 0, 2 frames + 0 bytes
20:42:29.606 TX group=2 frame=3 len=006 00 00 00 00 80 DA
20:42:29.606 RX group=2 frame=3 heartbeat-compatible RX: 12 bytes, offset 0, 2 frames + 0 bytes
20:42:30.144 TX group=2 frame=4 len=006 00 00 00 00 80 DA
20:42:30.144 RX group=2 frame=4 heartbeat-compatible RX: 18 bytes, offset 0, 3 frames + 0 bytes
GROUP 2 TAIL heartbeat-compatible RX: 18 bytes, offset 0, 3 frames + 0 bytes
Anomalies: 2

View File

@@ -0,0 +1,29 @@
Sequence probe: 4 frames x 2 group(s) on COM5 at 38400 8N1
FRAME 1: 00 00 90 00 80 4A
FRAME 2: 00 00 EC 40 D0 26
FRAME 3: 00 00 00 00 80 DA
FRAME 4: 00 00 00 00 80 DA
BASELINE heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
BEGIN group 1/2
20:42:40.170 TX group=1 frame=1 len=006 00 00 90 00 80 4A
20:42:40.170 RX group=1 frame=1 heartbeat-compatible RX: 6 bytes, offset 0, 1 frames + 0 bytes
20:42:40.706 TX group=1 frame=2 len=006 00 00 EC 40 D0 26
20:42:40.706 RX group=1 frame=2 ANOMALY 18 RX bytes; first mismatch at byte 6: got 07, heartbeat offset 0 expected 00
20:42:40.706 RX group=1 frame=2 raw 00 00 00 00 80 DA 07 80 FB 50 3A 4C 07 80 FB 50 3A 4C
20:42:41.215 TX group=1 frame=3 len=006 00 00 00 00 80 DA
20:42:41.215 RX group=1 frame=3 ANOMALY 18 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 0 expected 00
20:42:41.215 RX group=1 frame=3 raw 07 80 FB 50 3A 4C 00 00 00 00 80 DA 00 00 00 00 80 DA
20:42:41.752 TX group=1 frame=4 len=006 00 00 00 00 80 DA
20:42:41.752 RX group=1 frame=4 heartbeat-compatible RX: 18 bytes, offset 0, 3 frames + 0 bytes
GROUP 1 TAIL heartbeat-compatible RX: 18 bytes, offset 0, 3 frames + 0 bytes
BEGIN group 2/2
20:42:42.882 TX group=2 frame=1 len=006 00 00 90 00 80 4A
20:42:42.882 RX group=2 frame=1 heartbeat-compatible RX: 12 bytes, offset 0, 2 frames + 0 bytes
20:42:43.387 TX group=2 frame=2 len=006 00 00 EC 40 D0 26
20:42:43.387 RX group=2 frame=2 heartbeat-compatible RX: 12 bytes, offset 0, 2 frames + 0 bytes
20:42:43.924 TX group=2 frame=3 len=006 00 00 00 00 80 DA
20:42:43.924 RX group=2 frame=3 heartbeat-compatible RX: 18 bytes, offset 0, 3 frames + 0 bytes
20:42:44.432 TX group=2 frame=4 len=006 00 00 00 00 80 DA
20:42:44.432 RX group=2 frame=4 heartbeat-compatible RX: 12 bytes, offset 0, 2 frames + 0 bytes
GROUP 2 TAIL heartbeat-compatible RX: 18 bytes, offset 0, 3 frames + 0 bytes
Anomalies: 2

View File

@@ -0,0 +1,29 @@
Sequence probe: 4 frames x 2 group(s) on COM5 at 38400 8N1
FRAME 1: 00 00 90 00 80 4A
FRAME 2: 00 00 EC 60 80 56
FRAME 3: 00 00 00 00 80 DA
FRAME 4: 00 00 00 00 80 DA
BASELINE heartbeat-compatible RX: 24 bytes, offset 0, 4 frames + 0 bytes
BEGIN group 1/2
20:42:55.428 TX group=1 frame=1 len=006 00 00 90 00 80 4A
20:42:55.428 RX group=1 frame=1 heartbeat-compatible RX: 6 bytes, offset 0, 1 frames + 0 bytes
20:42:55.933 TX group=1 frame=2 len=006 00 00 EC 60 80 56
20:42:55.933 RX group=1 frame=2 ANOMALY 18 RX bytes; first mismatch at byte 6: got 07, heartbeat offset 0 expected 00
20:42:55.933 RX group=1 frame=2 raw 00 00 00 00 80 DA 07 80 7B 58 30 CE 07 80 7B 58 30 CE
20:42:56.480 TX group=1 frame=3 len=006 00 00 00 00 80 DA
20:42:56.480 RX group=1 frame=3 ANOMALY 18 RX bytes; first mismatch at byte 0: got 07, heartbeat offset 0 expected 00
20:42:56.480 RX group=1 frame=3 raw 07 80 7B 58 30 CE 00 00 00 00 80 DA 00 00 00 00 80 DA
20:42:57.017 TX group=1 frame=4 len=006 00 00 00 00 80 DA
20:42:57.017 RX group=1 frame=4 heartbeat-compatible RX: 18 bytes, offset 0, 3 frames + 0 bytes
GROUP 1 TAIL heartbeat-compatible RX: 18 bytes, offset 0, 3 frames + 0 bytes
BEGIN group 2/2
20:42:58.144 TX group=2 frame=1 len=006 00 00 90 00 80 4A
20:42:58.144 RX group=2 frame=1 heartbeat-compatible RX: 12 bytes, offset 0, 2 frames + 0 bytes
20:42:58.649 TX group=2 frame=2 len=006 00 00 EC 60 80 56
20:42:58.649 RX group=2 frame=2 heartbeat-compatible RX: 12 bytes, offset 0, 2 frames + 0 bytes
20:42:59.155 TX group=2 frame=3 len=006 00 00 00 00 80 DA
20:42:59.155 RX group=2 frame=3 heartbeat-compatible RX: 12 bytes, offset 0, 2 frames + 0 bytes
20:42:59.690 TX group=2 frame=4 len=006 00 00 00 00 80 DA
20:42:59.690 RX group=2 frame=4 heartbeat-compatible RX: 18 bytes, offset 0, 3 frames + 0 bytes
GROUP 2 TAIL heartbeat-compatible RX: 18 bytes, offset 0, 3 frames + 0 bytes
Anomalies: 2

View File

@@ -6266,3 +6266,143 @@ Best current model after HE27:
- the protocol surface is more parameterized than we first thought
- but we still do not have a stable proof that the downstream family frames are
host prompts rather than readable response blocks
### HE28: Off-Grid Pair Test
Goal:
- Test whether the two payload bytes behave more like an accepted **pair code**
than two semantically independent fields.
Idea:
- We already know these combinations are meaningful on several branches:
- `00 80`
- `20 D0`
- `40 30`
- `60 30`
- Now try mixed combinations that were **not** part of the known-good set:
- `00 30`
- `20 30`
- `40 D0`
- `60 80`
What would count as a hit:
- mixed pairs behaving just like nearby known-good pairs, which would support
more independent byte meanings
- mixed pairs mostly collapsing to heartbeat/transients or producing odd
outliers, which would support the "2-byte code" model
- one branch accepting mixed pairs while another rejects them, which would mean
pairing rules are selector-specific
Checksums:
- `E8 00 30` -> `00 00 E8 00 30 82`
- `E8 20 30` -> `00 00 E8 20 30 A2`
- `E8 40 D0` -> `00 00 E8 40 D0 22`
- `E8 60 80` -> `00 00 E8 60 80 52`
- `E9 00 30` -> `00 00 E9 00 30 83`
- `E9 20 30` -> `00 00 E9 20 30 A3`
- `E9 40 D0` -> `00 00 E9 40 D0 23`
- `E9 60 80` -> `00 00 E9 60 80 53`
- `EC 00 30` -> `00 00 EC 00 30 86`
- `EC 20 30` -> `00 00 EC 20 30 A6`
- `EC 40 D0` -> `00 00 EC 40 D0 26`
- `EC 60 80` -> `00 00 EC 60 80 56`
Keep the opener fixed to the strongest baseline opener for each local map:
- use `90 00 80` before `E8`, `E9`, and `EC`
#### HE28a: Off-grid selector pairs on `E8`
```powershell
python scripts/serial_sequence_probe.py --port COM5 --prompt --frame "00 00 90 00 80 4A" --frame "00 00 E8 00 30 82" --frame "00 00 00 00 80 DA" --frame "00 00 00 00 80 DA" --repeat 2 --frame-interval 0.20 --read-after-frame 0.30 --read-after-group 0.8 --log captures/rcp-pairtest-e8-0030.txt
python scripts/serial_sequence_probe.py --port COM5 --prompt --frame "00 00 90 00 80 4A" --frame "00 00 E8 20 30 A2" --frame "00 00 00 00 80 DA" --frame "00 00 00 00 80 DA" --repeat 2 --frame-interval 0.20 --read-after-frame 0.30 --read-after-group 0.8 --log captures/rcp-pairtest-e8-2030.txt
python scripts/serial_sequence_probe.py --port COM5 --prompt --frame "00 00 90 00 80 4A" --frame "00 00 E8 40 D0 22" --frame "00 00 00 00 80 DA" --frame "00 00 00 00 80 DA" --repeat 2 --frame-interval 0.20 --read-after-frame 0.30 --read-after-group 0.8 --log captures/rcp-pairtest-e8-40d0.txt
python scripts/serial_sequence_probe.py --port COM5 --prompt --frame "00 00 90 00 80 4A" --frame "00 00 E8 60 80 52" --frame "00 00 00 00 80 DA" --frame "00 00 00 00 80 DA" --repeat 2 --frame-interval 0.20 --read-after-frame 0.30 --read-after-group 0.8 --log captures/rcp-pairtest-e8-6080.txt
```
#### HE28b: Off-grid selector pairs on `E9`
```powershell
python scripts/serial_sequence_probe.py --port COM5 --prompt --frame "00 00 90 00 80 4A" --frame "00 00 E9 00 30 83" --frame "00 00 00 00 80 DA" --frame "00 00 00 00 80 DA" --repeat 2 --frame-interval 0.20 --read-after-frame 0.30 --read-after-group 0.8 --log captures/rcp-pairtest-e9-0030.txt
python scripts/serial_sequence_probe.py --port COM5 --prompt --frame "00 00 90 00 80 4A" --frame "00 00 E9 20 30 A3" --frame "00 00 00 00 80 DA" --frame "00 00 00 00 80 DA" --repeat 2 --frame-interval 0.20 --read-after-frame 0.30 --read-after-group 0.8 --log captures/rcp-pairtest-e9-2030.txt
python scripts/serial_sequence_probe.py --port COM5 --prompt --frame "00 00 90 00 80 4A" --frame "00 00 E9 40 D0 23" --frame "00 00 00 00 80 DA" --frame "00 00 00 00 80 DA" --repeat 2 --frame-interval 0.20 --read-after-frame 0.30 --read-after-group 0.8 --log captures/rcp-pairtest-e9-40d0.txt
python scripts/serial_sequence_probe.py --port COM5 --prompt --frame "00 00 90 00 80 4A" --frame "00 00 E9 60 80 53" --frame "00 00 00 00 80 DA" --frame "00 00 00 00 80 DA" --repeat 2 --frame-interval 0.20 --read-after-frame 0.30 --read-after-group 0.8 --log captures/rcp-pairtest-e9-6080.txt
```
#### HE28c: Off-grid selector pairs on `EC`
```powershell
python scripts/serial_sequence_probe.py --port COM5 --prompt --frame "00 00 90 00 80 4A" --frame "00 00 EC 00 30 86" --frame "00 00 00 00 80 DA" --frame "00 00 00 00 80 DA" --repeat 2 --frame-interval 0.20 --read-after-frame 0.30 --read-after-group 0.8 --log captures/rcp-pairtest-ec-0030.txt
python scripts/serial_sequence_probe.py --port COM5 --prompt --frame "00 00 90 00 80 4A" --frame "00 00 EC 20 30 A6" --frame "00 00 00 00 80 DA" --frame "00 00 00 00 80 DA" --repeat 2 --frame-interval 0.20 --read-after-frame 0.30 --read-after-group 0.8 --log captures/rcp-pairtest-ec-2030.txt
python scripts/serial_sequence_probe.py --port COM5 --prompt --frame "00 00 90 00 80 4A" --frame "00 00 EC 40 D0 26" --frame "00 00 00 00 80 DA" --frame "00 00 00 00 80 DA" --repeat 2 --frame-interval 0.20 --read-after-frame 0.30 --read-after-group 0.8 --log captures/rcp-pairtest-ec-40d0.txt
python scripts/serial_sequence_probe.py --port COM5 --prompt --frame "00 00 90 00 80 4A" --frame "00 00 EC 60 80 56" --frame "00 00 00 00 80 DA" --frame "00 00 00 00 80 DA" --repeat 2 --frame-interval 0.20 --read-after-frame 0.30 --read-after-group 0.8 --log captures/rcp-pairtest-ec-6080.txt
```
Recommended order:
1. `HE28c` (`EC` off-grid pairs)
2. `HE28a` (`E8` off-grid pairs)
3. `HE28b` (`E9` off-grid pairs)
That keeps the most expressive selector first, where the pair-code hypothesis is
most likely to show itself clearly.
### 2026-05-13 Off-Grid Pair Result
This ladder weakens the strict "only a few accepted 2-byte pair codes" model.
#### `E8` off-grid pairs under `90 00 80`
| Selector payload | Result |
| --- | --- |
| `E8 00 30` | `07 80 7A 40 26 C1` |
| `E8 20 30` | `07 80 FA 48 26 49` |
| `E8 40 D0` | `07 80 7A 50 3A CD` |
| `E8 60 80` | `07 80 7A 58 30 CF` |
#### `E9` off-grid pairs under `90 00 80`
| Selector payload | Result |
| --- | --- |
| `E9 00 30` | `07 80 7A 20 D3 54` |
| `E9 20 30` | `07 80 7A 24 D3 50` |
| `E9 40 D0` | `07 80 7A 28 DD 52` |
| `E9 60 80` | `07 80 7A 2C D8 53` |
#### `EC` off-grid pairs under `90 00 80`
| Selector payload | Result |
| --- | --- |
| `EC 00 30` | `07 80 7B 40 26 C0` |
| `EC 20 30` | `07 80 7B 4C 26 CC` |
| `EC 40 D0` | `07 80 FB 50 3A 4C` |
| `EC 60 80` | `07 80 7B 58 30 CE` |
Interpretation:
- The RCP did **not** reject the off-grid mixed combinations.
- Instead, it returned structured, checksum-valid sibling families in a highly
systematic way.
- That makes the strongest current model:
- these are still two separate bytes on the wire
- and their meanings appear at least partly compositional, not just a small
fixed whitelist of accepted pair codes
- In other words, the "strict 2-byte enum only" hypothesis is weaker now.
- A more likely model is:
- selector command chooses a region
- first payload byte strongly influences one axis/page
- second payload byte also influences the returned subtype/data bytes
- some selectors, especially `EC`, can still flip whole sibling families (`7B`
vs `FB`) depending on the combination
Best current takeaway:
- the `state/value` bytes are meaningful
- they are not behaving like arbitrary filler
- but they also are not behaving like only four hardcoded legal pair tokens
- they look more like a small 2-byte parameter space with selector-specific
mapping rules

View File

@@ -307,6 +307,10 @@ Current caution:
with fixed command bytes, changing opener or selector `state/value` fields
systematically shifted the returned families and payloads, especially on the
`E8`, `E9`, and `EC` branches.
- An off-grid pair ladder weakened the strict "only known legal pairs work"
model: mixed combinations like `00 30`, `20 30`, and `40 D0` still produced
structured sibling responses, so the payload bytes now look more like a small
parameter space than a tiny whitelist of accepted pair tokens.
## What We Know

View File

@@ -213,9 +213,43 @@ Observed examples:
- `EC 20 D0` -> `E4 40 30`
- `EC 40 30` -> `FB 50 26`
- `EC 60 30` -> `7B 58 26`
- off-grid mixed pairs still produced structured families rather than rejection:
- `E8 40 D0` -> `7A 50 3A`
- `E9 40 D0` -> `7A 28 DD`
- `EC 40 D0` -> `FB 50 3A`
- `EC 00 30` -> `7B 40 26`
That strongly suggests the `state/value` fields are not filler. They likely
select a page, subtype, class, or data register within the selector space.
It also weakens the idea that only a tiny fixed whitelist of pair codes is
accepted; the space appears more compositional than that.
## Family Classification Table
This table is a practical aid for reading captures. It separates:
- target families: structured families that appear to be intended branch results
- sibling families: alternate structured results in the same selector space
- fallback families: repeatable collapse/transient outcomes that usually mean
context or parameters were not what the branch wanted
- heartbeat-only: no useful branch opened
| Selector / context area | Target families | Sibling families | Fallback families | Notes |
| --- | --- | --- | --- | --- |
| `E8` family space | `07 80 7A 50 26 D1`, `07 80 7A 40 30 D7`, `07 80 7A 48 3A D5`, `07 80 7A 58 26 D9`, `07 80 7A 50 3A CD`, `07 80 7A 40 26 C1`, `07 80 7A 58 30 CF` | `07 80 FA 50 26 51`, `07 80 FA 48 26 49` | `07 80 40 40 30 ED`, `07 80 C0 40 30 6D` | `E8` usually lives in the `7A` family; some opener/payload combinations flip it into sibling `FA`. |
| `E9` family space | `07 80 7A 28 D3 5C`, `07 80 7A 20 D8 5F`, `07 80 7A 24 FD 7E`, `07 80 7A 2C D3 58`, `07 80 7A 20 D3 54`, `07 80 7A 24 D3 50`, `07 80 7A 28 DD 52`, `07 80 7A 2C D8 53` | none clearly separated yet | `07 80 40 40 30 ED` | `E9` has been the most internally consistent: it stays in `7A` while the trailing bytes move with parameters. |
| `EC` family space | `07 80 7B 50 26 D0`, `07 80 7B 58 26 D8`, `07 80 7B 40 26 C0`, `07 80 7B 4C 26 CC`, `07 80 7B 58 30 CE` | `07 80 FB 50 26 50`, `07 80 FB 40 30 56`, `07 80 FB 50 3A 4C`, `07 80 E4 40 30 49`, `07 C0 2F 95 09 2E` | `07 80 C0 40 30 6D`, `07 80 40 40 30 ED` | `EC` is the richest and touchiest branch. It can land in `7B`, `FB`, or `E4` families depending on context and payload. |
| Heartbeat-context transients | none | none | `07 80 40 40 30 ED`, `07 80 40 60 30 CD`, `07 80 C0 40 30 6D` | These show up when traffic shape or context is recognized but does not open the intended structured branch. |
| Query/discovery surface | `07 80 68 40 30 C5`, `07 80 6C 40 30 C1`, `07 80 6D 20 D8 48` | `07 80 E8 40 30 45` and related context-sensitive variants | heartbeat-only after one-shot window is spent | This area still looks more like one-shot readable blocks than selector-space family behavior. |
Working rule of thumb:
- if the family is `7A`, `7B`, `FB`, `FA`, or `E4`, you are probably still in a
meaningful selector/result space
- if the family is `40`/`C0` after a branch attempt, you probably hit a
fallback/transient outcome
- if you only get heartbeat, the branch likely did not open or the one-shot
window was already gone
## Downstream Family Branches