This commit is contained in:
Aiden
2026-05-13 21:11:12 +10:00
parent c7997d5131
commit 6c2d13156b
8 changed files with 1506 additions and 0 deletions

View File

@@ -6406,3 +6406,352 @@ Best current takeaway:
- 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
### HE29: Valid-Connection / Camera-Info Stream Fan-Out
Goal:
- Fan back out from one-shot reads and selector branches into **sustained
host-present plus camera-info-like traffic**.
- Try to answer a more practical question:
can we send a stream that the panel treats as a real CCU/camera connection,
even if only enough to change `CONNECT NOT ACT`, light a lamp, or wake a
readout?
Working idea:
- Plain host heartbeat can hold the panel out of `CONNECT NOT ACT` while it is
flowing, but it does not by itself produce a stable active session.
- The panel may want **both**:
- ongoing host presence/cadence
- and a rotating set of camera/capability/status pages
- We now have several families that are plausible candidates for those pages:
- discovery surface: `A0`, `B0`, `B5`
- selector surface: `90 -> E8/E9/EC`
- host-shaped family mirrors: `7A`, `7B`, `FB`
- heartbeat-adjacent base families: `40`, `C0`, `50`
What would count as a hit:
- the panel stays out of `CONNECT NOT ACT` **and**
- a light changes
- a numeric readout changes
- the LCD changes to something new
- or one-shot branches become reusable while the stream is running
- repeated non-heartbeat RX beyond the usual single group-1 burst
- any sign that the panel begins acting "session alive" rather than merely
"host present"
Note:
- `serial_sequence_probe.py` now supports `--prompt-screen`, so the final
screen/light observation can live in the same capture log.
Checksums already known:
- heartbeat: `00 00 00 00 80 DA`
- `A0`: `00 00 A0 00 80 7A`
- `B0`: `00 00 B0 00 80 6A`
- `B5`: `00 00 B5 00 80 6F`
- `90`: `00 00 90 00 80 4A`
- `AF`: `00 00 AF 00 80 75`
- `E8 40 30`: `00 00 E8 40 30 C2`
- `E9 40 30`: `00 00 E9 40 30 C3`
- `EC 40 30`: `00 00 EC 40 30 C6`
- host `7A 50 26`: `00 00 7A 50 26 56`
- host `7A 28 D3`: `00 00 7A 28 D3 DB`
- host `7B 50 26`: `00 00 7B 50 26 57`
- host `FB 50 26`: `00 00 FB 50 26 D7`
- host `FA 50 26`: `00 00 FA 50 26 D6`
- host `40 40 30`: `00 00 40 40 30 6A`
- host `C0 40 30`: `00 00 C0 40 30 EA`
- host `50 40 30`: `00 00 50 40 30 7A`
#### HE29a: Discovery carousel under maintained heartbeat
Hypothesis:
- The panel may want periodic readable capability/status pages, not just a lone
one-shot query at boot.
```powershell
python scripts/serial_sequence_probe.py --port COM5 --prompt --prompt-screen --pre-read 1.0 --frame "00 00 00 00 80 DA" --frame "00 00 A0 00 80 7A" --frame "00 00 00 00 80 DA" --frame "00 00 B0 00 80 6A" --frame "00 00 00 00 80 DA" --frame "00 00 B5 00 80 6F" --repeat 10 --frame-interval 0.12 --read-after-frame 0.06 --repeat-interval 0.15 --read-after-group 0.20 --log captures/rcp-session-fanout-discovery-carousel.txt
```
Watch for:
- later groups reopening `68`, `6C`, or `6D` families
- the panel leaving `CONNECT NOT ACT` while the carousel runs
- any lamp or readout change
#### HE29b: Selector-page carousel under strong `90` context
Hypothesis:
- The selector surface may actually be a rotating camera-info page set, and the
panel may want repeated page selection rather than isolated one-shot use.
```powershell
python scripts/serial_sequence_probe.py --port COM5 --prompt --prompt-screen --pre-read 1.0 --frame "00 00 90 00 80 4A" --frame "00 00 E8 40 30 C2" --frame "00 00 00 00 80 DA" --frame "00 00 90 00 80 4A" --frame "00 00 E9 40 30 C3" --frame "00 00 00 00 80 DA" --frame "00 00 90 00 80 4A" --frame "00 00 EC 40 30 C6" --repeat 8 --frame-interval 0.12 --read-after-frame 0.06 --repeat-interval 0.15 --read-after-group 0.20 --log captures/rcp-session-fanout-selector-carousel.txt
```
Watch for:
- later groups still opening `7A`, `7B`, `FB`, or `FA` families
- the selector space becoming reusable instead of draining to heartbeat
- any visible wake-up on the panel
#### HE29c: Direct host-shaped family feed
Hypothesis:
- The panel may want host-origin camera-state frames that look more like the
downstream family blocks than like discovery queries.
```powershell
python scripts/serial_sequence_probe.py --port COM5 --prompt --prompt-screen --pre-read 1.0 --frame "00 00 00 00 80 DA" --frame "00 00 7A 50 26 56" --frame "00 00 00 00 80 DA" --frame "00 00 7A 28 D3 DB" --frame "00 00 00 00 80 DA" --frame "00 00 7B 50 26 57" --frame "00 00 00 00 80 DA" --frame "00 00 FB 50 26 D7" --repeat 10 --frame-interval 0.12 --read-after-frame 0.06 --repeat-interval 0.15 --read-after-group 0.20 --log captures/rcp-session-fanout-direct-family-feed.txt
```
Watch for:
- any visible panel reaction with no preceding opener/selector steps
- whether any of these host-shaped family blocks seem to act like camera values
- whether the panel begins sending a different recurring status frame
#### HE29d: Hybrid select-then-feed stream
Hypothesis:
- The panel may want a selector/page choice immediately followed by page data,
not just a readback-like query.
```powershell
python scripts/serial_sequence_probe.py --port COM5 --prompt --prompt-screen --pre-read 1.0 --frame "00 00 90 00 80 4A" --frame "00 00 E8 40 30 C2" --frame "00 00 7A 50 26 56" --frame "00 00 00 00 80 DA" --frame "00 00 90 00 80 4A" --frame "00 00 E9 40 30 C3" --frame "00 00 7A 28 D3 DB" --frame "00 00 00 00 80 DA" --frame "00 00 90 00 80 4A" --frame "00 00 EC 40 30 C6" --frame "00 00 7B 50 26 57" --repeat 8 --frame-interval 0.12 --read-after-frame 0.06 --repeat-interval 0.15 --read-after-group 0.20 --log captures/rcp-session-fanout-hybrid-90.txt
```
Watch for:
- whether later groups stop collapsing after the first selector-family burst
- whether page-matched host data makes the selector space feel more "live"
- any call lamp, tally, or numeric display change
#### HE29e: `AF`-biased sibling-family stream
Hypothesis:
- `AF` changes which sibling family opens; maybe that opener is closer to a real
CCU "camera data" context than `90` for some pages.
```powershell
python scripts/serial_sequence_probe.py --port COM5 --prompt --prompt-screen --pre-read 1.0 --frame "00 00 AF 00 80 75" --frame "00 00 E8 40 30 C2" --frame "00 00 FA 50 26 D6" --frame "00 00 00 00 80 DA" --frame "00 00 AF 00 80 75" --frame "00 00 EC 40 30 C6" --frame "00 00 7B 50 26 57" --repeat 8 --frame-interval 0.12 --read-after-frame 0.06 --repeat-interval 0.15 --read-after-group 0.20 --log captures/rcp-session-fanout-hybrid-af.txt
```
Watch for:
- whether `AF` keeps `E8` in the `FA` sibling family more reliably
- whether `AF` changes visible panel behavior even if serial RX still looks
one-shot
#### HE29f: Heartbeat-family base-status feed
Hypothesis:
- The `40` / `C0` / `50` families may be a base camera-status layer rather than
mere "wrong" answers, and the panel may want them as a background stream.
```powershell
python scripts/serial_sequence_probe.py --port COM5 --prompt --prompt-screen --pre-read 1.0 --frame "00 00 00 00 80 DA" --frame "00 00 40 40 30 6A" --frame "00 00 00 00 80 DA" --frame "00 00 C0 40 30 EA" --frame "00 00 00 00 80 DA" --frame "00 00 50 40 30 7A" --repeat 10 --frame-interval 0.12 --read-after-frame 0.06 --repeat-interval 0.15 --read-after-group 0.20 --log captures/rcp-session-fanout-base-status.txt
```
Watch for:
- whether this suppresses `CONNECT NOT ACT` more convincingly than plain
heartbeat alone
- whether any lamp or readout reacts even if selector-space branches do not
- whether the panel responds with a recurring non-heartbeat family rather than
isolated group-1 bursts
Recommended order:
1. `HE29a` discovery carousel
2. `HE29d` hybrid `90` select-then-feed
3. `HE29c` direct host-shaped family feed
4. `HE29f` heartbeat-family base-status feed
5. `HE29b` selector carousel
6. `HE29e` `AF`-biased sibling-family stream
Reasoning:
- `HE29a` and `HE29d` are the two most plausible "real CCU behavior" guesses:
periodic readable pages, or page-select plus page-data.
- `HE29c` asks whether the panel can be fed camera-state blocks directly.
- `HE29f` is the slightly weirder but still useful branch: maybe the
heartbeat-adjacent `40/C0/50` families are actually the base layer the panel
wants before richer pages make sense.
### 2026-05-13 HE29 Fan-Out Results
Front-panel result first:
- No tested HE29 stream changed the visible panel state in a useful way.
- No run produced a new LCD state beyond the previously known inactive
behavior, and no lamp/readout change was observed.
That said, the wire result was not completely dead.
#### HE29a: Discovery carousel under maintained heartbeat
Log:
- `captures/rcp-session-fanout-discovery-carousel.txt`
Result:
- The sustained `heartbeat -> A0 -> heartbeat -> B0 -> heartbeat -> B5`
carousel produced only heartbeat-compatible RX for every group.
- None of the older one-shot readable families (`68`, `6C`, `6D`) reopened
under this maintained cycle.
Read:
- Simple repeated discovery-page polling does **not** look like the missing
live session traffic.
- It also did not make the one-shot readable surface reusable.
#### HE29b: Selector carousel under strong `90` context
Log:
- `captures/rcp-session-fanout-selector-carousel.txt`
Result:
- Group 1, `90 -> E8`, produced:
- `07 80 FA 50 26 51`
- `90 -> E9` and `90 -> EC` in the same cycle then stayed heartbeat-only.
- Groups 2-8 were heartbeat-only throughout.
Read:
- Repeating selector-page choice in a rotating carousel still does not sustain a
richer session.
- The stream appears to spend a single selector-family opening and then collapse
back into ordinary heartbeat behavior.
#### HE29c: Direct host-shaped family feed
Log:
- `captures/rcp-session-fanout-direct-family-feed.txt`
Result:
- Group 1, host-shaped `00 00 7A 50 26 56` produced a new RCP family:
- `07 80 2F 95 C9 AE`
- After that:
- host-shaped `7A 28 D3` produced no structured reply
- host-shaped `7B 50 26` stayed heartbeat-only
- host-shaped `FB 50 26` stayed heartbeat-only
- Later groups did not reproduce the `2F 95 C9` family.
Read:
- This is the first HE29 branch where a pure host-shaped family feed produced a
genuinely new structured response.
- It still behaved one-shot and did **not** wake the panel visually.
- So direct family feed is not enough to create a live connection, but it does
look protocol-meaningful.
#### HE29d: Hybrid `90` select-then-feed
Log:
- `captures/rcp-session-fanout-hybrid-90.txt`
Result:
- Group 1:
- `90 -> E8` produced `07 80 7A 50 26 D1`
- immediate host-shaped `7A 50 26` feed produced no next stage
- The later `E9` and `EC` portions of the same group stayed heartbeat-only.
- Groups 2-8 were heartbeat-only throughout.
Read:
- Page-select plus matching host feed still does not turn the selector space
into a reusable or "live" stream.
- This weakens the idea that the missing session is simply "select page, then
send that page's payload."
#### HE29e: `AF`-biased sibling-family stream
Log:
- `captures/rcp-session-fanout-hybrid-af.txt`
Result:
- Group 1:
- `AF -> E8` produced `07 80 7A 50 26 D1`
- host-shaped `FA 50 26` feed produced no next stage
- The later `AF -> EC` portion stayed heartbeat-only.
- Groups 2-8 were heartbeat-only throughout.
Read:
- `AF` did not behave like a more realistic camera-data opener in this sustained
mixed-stream form.
- Even the sibling-family-biased branch still collapsed immediately after the
first selector-family burst.
#### HE29f: Heartbeat-family base-status feed
Log:
- `captures/rcp-session-fanout-base-status.txt`
Result:
- Group 1, host-shaped `00 00 40 40 30 6A` produced a new RCP family:
- `07 80 D0 50 26 7B`
- The following host-shaped `C0 40 30` and `50 40 30` frames did not open a new
visible stage.
- Groups 2-10 were heartbeat-only throughout.
Read:
- This is the second HE29 branch that produced a genuinely new structured
family.
- So the `40` family is still worth taking seriously as more than a pure
"wrong" response bucket.
- But, like the `2F 95 C9` branch above, it is still one-shot and did not
visibly activate the panel.
### HE29 Overall Read
What failed:
- No tested sustained stream woke the panel visually.
- No tested stream cleared the broader "not really connected" condition.
- No tested stream made the selector surface reusable in a stable way.
What still matters:
- Two new structured families appeared when we treated the known response
families as host-origin traffic instead of just things to mirror:
- `00 00 7A 50 26 56` -> `07 80 2F 95 C9 AE`
- `00 00 40 40 30 6A` -> `07 80 D0 50 26 7B`
- That strengthens the idea that some of these families are not just passive
readback blocks; they can still act as meaningful stimuli from the host side.
Best current read after HE29:
- The missing active session still does **not** look like:
- plain heartbeat
- repeated discovery reads
- repeated selector-page reads
- naive page-select plus matching host feed
- The next smarter branch is probably to stay narrow around the two new
host-stimulated response families (`2F 95 C9` and `D0 50 26`) and test
whether they represent a deeper camera/base-status layer rather than just more
one-shot siblings.