From 025bd0511d1f479e595aca25fcf93cc84b453ae3 Mon Sep 17 00:00:00 2001 From: Aiden <68633820+awils27@users.noreply.github.com> Date: Wed, 13 May 2026 15:06:57 +1000 Subject: [PATCH] New test --- docs/discovery-notes.md | 96 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) diff --git a/docs/discovery-notes.md b/docs/discovery-notes.md index 8776b37..23aeaa6 100644 --- a/docs/discovery-notes.md +++ b/docs/discovery-notes.md @@ -2157,3 +2157,99 @@ Next confirmations: - If a response differs between a plain/direct command and a primer-pair query, treat the first host frame as a mode/context selector rather than only a generic wake-up primer. + +## Context Selector Confirmation Tests + +Goal: confirm whether the first host frame is only a generic primer, or whether +it selects a response page/context for the next command. + +The test method is to hold the second/query command constant and change only +the first frame: + +```text +selector/primer -> selected query +``` + +Strong confirmation: + +- Same selected query, different first frame, different RCP response. +- Example pattern: `00 -> B8` returns one block while `B7 -> B8` returns a + different block. + +Weak or negative result: + +- Same selected query always returns the same block regardless of the first + frame. +- The differing blocks from the paused direct sweep were caused by longer + sequence/timing effects rather than a two-frame selector. + +### Test CS1: Known Generic `00` Page + +This rechecks the current generic-primer page for the commands that had +different-looking responses in the paused direct sweep. + +```powershell +python scripts/serial_primer_candidate_sweep.py --port COM5 --primer-command 0x00 --candidates "0xA0 0xB8 0xBC" --prompt-power-cycle --log captures/rcp-context-selector-00-a0-b8-bc.txt +``` + +Expected from prior primer sweeps: + +| Pair | Expected response | +| --- | --- | +| `00 -> A0` | `07 80 68 40 30 C5` | +| `00 -> B8` | `07 80 EE 40 30 43` | +| `00 -> BC` | `07 80 EF 40 30 42` | + +### Test CS2: Suspected Alternate Selectors + +These test the pairings implied by the paused direct sweep. Power-cycle before +each prompt. + +```powershell +python scripts/serial_primer_candidate_sweep.py --port COM5 --primer-command 0x9F --candidates 0xA0 --prompt-power-cycle --log captures/rcp-context-selector-9f-a0.txt +python scripts/serial_primer_candidate_sweep.py --port COM5 --primer-command 0xB7 --candidates 0xB8 --prompt-power-cycle --log captures/rcp-context-selector-b7-b8.txt +python scripts/serial_primer_candidate_sweep.py --port COM5 --primer-command 0xBB --candidates 0xBC --prompt-power-cycle --log captures/rcp-context-selector-bb-bc.txt +python scripts/serial_primer_candidate_sweep.py --port COM5 --primer-command 0xAF --candidates 0xB0 --prompt-power-cycle --log captures/rcp-context-selector-af-b0.txt +``` + +Compare against these paused/direct observations: + +| Pair under test | Context hypothesis if reproduced | +| --- | --- | +| `9F -> A0` | `A0` may return `07 80 E8 40 30 45` after selector `9F`. | +| `B7 -> B8` | `B8` may return `07 80 6E 40 30 C3` after selector `B7`. | +| `BB -> BC` | `BC` may return `07 80 6F 40 30 C2` after selector `BB`. | +| `AF -> B0` | `B0` may return `07 80 6C 60 30 E1` after selector `AF`. | + +### Test CS3: Check for Three-Frame Context + +The paused sweep's `A0` response happened after `90` and `9F` had both been +sent in the same powered session. If `9F -> A0` does not reproduce the alternate +`A0` block, try the full three-frame setup: + +```powershell +python scripts/serial_direct_response_sweep.py --port COM5 --commands "0x90 0x9F 0xA0" --states 0x00 --values 0x80 --settle 3 --after-each 0.8 --after 3 --log captures/rcp-context-seq-90-9f-a0.txt +``` + +Power-cycle once before this test and do not power-cycle until the script +exits. + +Interpretation: + +- If `9F -> A0` reproduces `07 80 E8 40 30 45`, a two-frame selector is likely. +- If only `90 -> 9F -> A0` reproduces it, the context/page setup may require + multiple host frames. +- If neither reproduces it, treat the paused direct `A0` response as a + sequence/timing artifact until another capture confirms it. + +### Optional Single-Frame Controls + +These check whether the candidate can respond as the first frame after boot. + +```powershell +python scripts/serial_direct_response_sweep.py --port COM5 --commands 0xA0 --states 0x00 --values 0x80 --settle 3 --after-each 1.5 --after 2 --log captures/rcp-context-single-a0.txt +python scripts/serial_direct_response_sweep.py --port COM5 --commands 0xB8 --states 0x00 --values 0x80 --settle 3 --after-each 1.5 --after 2 --log captures/rcp-context-single-b8.txt +python scripts/serial_direct_response_sweep.py --port COM5 --commands 0xBC --states 0x00 --values 0x80 --settle 3 --after-each 1.5 --after 2 --log captures/rcp-context-single-bc.txt +``` + +Power-cycle before each single-frame control.