From 0824f46feb7539f7ae188a9d5a44a3876343fa15 Mon Sep 17 00:00:00 2001 From: Aiden <68633820+awils27@users.noreply.github.com> Date: Wed, 13 May 2026 16:31:16 +1000 Subject: [PATCH] run 7 --- .../rcp-buttons-call-exact-echo-delay-0ms.txt | 23 ++++ ...cp-buttons-call-exact-echo-delay-200ms.txt | 23 ++++ captures/rcp-buttons-call-high-only-echo.txt | 26 ++++ captures/rcp-buttons-call-low-only-echo.txt | 32 +++++ docs/discovery-notes.md | 115 ++++++++++++++++++ 5 files changed, 219 insertions(+) create mode 100644 captures/rcp-buttons-call-exact-echo-delay-0ms.txt create mode 100644 captures/rcp-buttons-call-exact-echo-delay-200ms.txt create mode 100644 captures/rcp-buttons-call-high-only-echo.txt create mode 100644 captures/rcp-buttons-call-low-only-echo.txt diff --git a/captures/rcp-buttons-call-exact-echo-delay-0ms.txt b/captures/rcp-buttons-call-exact-echo-delay-0ms.txt new file mode 100644 index 0000000..371663a --- /dev/null +++ b/captures/rcp-buttons-call-exact-echo-delay-0ms.txt @@ -0,0 +1,23 @@ +Button test on COM5 at 38400 8N1 +Listening for 15.0s; respond_to_cam_power=False, respond_to_call=True, mirror_call=False +16:28:59.912 RX 006 bytes 00 00 00 00 80 DA +16:28:59.912 DETECT heartbeat x1 +16:29:00.610 RX 006 bytes 00 00 00 00 80 DA +16:29:00.610 DETECT heartbeat x1 +16:29:01.096 RX 006 bytes 00 00 15 80 00 CF +16:29:01.096 DETECT call-on x1 +16:29:01.096 TX button response frame 006 00 00 15 80 00 CF +16:29:01.096 TX button response frame 006 00 00 15 00 00 4F +16:29:03.105 RX 001 bytes 00 +16:29:03.135 RX 005 bytes 00 00 00 80 DA +16:29:03.717 RX 006 bytes 00 00 15 00 00 4F +16:29:03.717 DETECT call-off x1 +16:29:04.391 RX 001 bytes 00 +16:29:04.422 RX 005 bytes 00 00 00 80 DA +16:29:05.092 RX 001 bytes 00 +16:29:05.122 RX 005 bytes 00 00 00 80 DA +16:29:05.792 RX 001 bytes 00 +16:29:05.823 RX 005 bytes 00 00 00 80 DA +16:29:06.493 RX 001 bytes 00 +16:29:06.523 RX 005 bytes 00 00 00 80 DA +Stopped. diff --git a/captures/rcp-buttons-call-exact-echo-delay-200ms.txt b/captures/rcp-buttons-call-exact-echo-delay-200ms.txt new file mode 100644 index 0000000..ad85178 --- /dev/null +++ b/captures/rcp-buttons-call-exact-echo-delay-200ms.txt @@ -0,0 +1,23 @@ +Button test on COM5 at 38400 8N1 +Listening for 15.0s; respond_to_cam_power=False, respond_to_call=True, mirror_call=False +16:29:18.972 RX 001 bytes 00 +16:29:19.002 RX 005 bytes 00 00 00 80 DA +16:29:19.673 RX 001 bytes 00 +16:29:19.703 RX 005 bytes 00 00 00 80 DA +16:29:20.067 RX 006 bytes 00 00 15 80 00 CF +16:29:20.067 DETECT call-on x1 +16:29:20.268 TX button response frame 006 00 00 15 80 00 CF +16:29:20.268 TX button response frame 006 00 00 15 00 00 4F +16:29:22.278 RX 001 bytes 00 +16:29:22.308 RX 005 bytes 00 00 00 80 DA +16:29:22.830 RX 001 bytes 00 +16:29:22.861 RX 005 bytes 00 15 00 00 4F +16:29:23.470 RX 001 bytes 00 +16:29:23.501 RX 005 bytes 00 00 00 80 DA +16:29:24.173 RX 001 bytes 00 +16:29:24.204 RX 005 bytes 00 00 00 80 DA +16:29:24.874 RX 001 bytes 00 +16:29:24.904 RX 005 bytes 00 00 00 80 DA +16:29:25.575 RX 001 bytes 00 +16:29:25.606 RX 005 bytes 00 00 00 80 DA +Stopped. diff --git a/captures/rcp-buttons-call-high-only-echo.txt b/captures/rcp-buttons-call-high-only-echo.txt new file mode 100644 index 0000000..a3c65a7 --- /dev/null +++ b/captures/rcp-buttons-call-high-only-echo.txt @@ -0,0 +1,26 @@ +Button test on COM5 at 38400 8N1 +Listening for 15.0s; respond_to_cam_power=False, respond_to_call=True, mirror_call=False +16:28:19.063 RX 006 bytes 00 00 15 80 00 CF +16:28:19.063 DETECT call-on x1 +16:28:19.114 TX button response frame 006 00 00 15 80 00 CF +16:28:19.725 RX 001 bytes 00 +16:28:19.755 RX 005 bytes 00 00 00 80 DA +16:28:20.000 RX 006 bytes 00 00 00 00 80 DA +16:28:20.000 DETECT heartbeat x1 +16:28:20.244 RX 006 bytes 00 00 00 00 80 DA +16:28:20.244 DETECT heartbeat x1 +16:28:20.488 RX 001 bytes 00 +16:28:20.518 RX 005 bytes 00 00 00 80 DA +16:28:20.733 RX 001 bytes 00 +16:28:20.763 RX 005 bytes 00 00 00 80 DA +16:28:21.006 RX 006 bytes 00 00 00 00 80 DA +16:28:21.006 DETECT heartbeat x1 +16:28:21.647 RX 006 bytes 00 00 00 00 80 DA +16:28:21.647 DETECT heartbeat x1 +16:28:22.347 RX 006 bytes 00 00 00 00 80 DA +16:28:22.347 DETECT heartbeat x1 +16:28:23.047 RX 006 bytes 00 00 00 00 80 DA +16:28:23.047 DETECT heartbeat x1 +16:28:23.751 RX 006 bytes 00 00 00 00 80 DA +16:28:23.751 DETECT heartbeat x1 +Stopped. diff --git a/captures/rcp-buttons-call-low-only-echo.txt b/captures/rcp-buttons-call-low-only-echo.txt new file mode 100644 index 0000000..cfc089a --- /dev/null +++ b/captures/rcp-buttons-call-low-only-echo.txt @@ -0,0 +1,32 @@ +Button test on COM5 at 38400 8N1 +Listening for 15.0s; respond_to_cam_power=False, respond_to_call=True, mirror_call=False +16:28:40.679 RX 001 bytes 00 +16:28:40.710 RX 005 bytes 00 00 00 80 DA +16:28:41.289 RX 006 bytes 00 00 15 80 00 CF +16:28:41.289 DETECT call-on x1 +16:28:41.340 TX button response frame 006 00 00 15 00 00 4F +16:28:41.982 RX 001 bytes 00 +16:28:42.012 RX 005 bytes 00 00 00 80 DA +16:28:42.230 RX 001 bytes 00 +16:28:42.260 RX 005 bytes 00 00 00 80 DA +16:28:42.476 RX 001 bytes 00 +16:28:42.506 RX 005 bytes 00 00 00 80 DA +16:28:42.750 RX 006 bytes 00 00 00 00 80 DA +16:28:42.750 DETECT heartbeat x1 +16:28:42.994 RX 006 bytes 00 00 00 00 80 DA +16:28:42.994 DETECT heartbeat x1 +16:28:43.237 RX 001 bytes 00 +16:28:43.268 RX 005 bytes 00 00 00 80 DA +16:28:43.483 RX 006 bytes 00 00 15 00 00 4F +16:28:43.483 DETECT call-off x1 +16:28:44.091 RX 006 bytes 00 00 00 00 80 DA +16:28:44.091 DETECT heartbeat x1 +16:28:44.792 RX 006 bytes 00 00 00 00 80 DA +16:28:44.792 DETECT heartbeat x1 +16:28:45.494 RX 006 bytes 00 00 00 00 80 DA +16:28:45.494 DETECT heartbeat x1 +16:28:46.195 RX 006 bytes 00 00 00 00 80 DA +16:28:46.195 DETECT heartbeat x1 +16:28:46.896 RX 006 bytes 00 00 00 00 80 DA +16:28:46.896 DETECT heartbeat x1 +Stopped. diff --git a/docs/discovery-notes.md b/docs/discovery-notes.md index e66d311..6db5641 100644 --- a/docs/discovery-notes.md +++ b/docs/discovery-notes.md @@ -2844,3 +2844,118 @@ Interpretation: of the trigger. - If it does not appear, the original hit may have depended on a very specific press/release timing or buffered frame ordering. + +### 2026-05-13 CALL Exact-Echo Repro Result + +Captures: + +- `captures/rcp-buttons-call-exact-echo-repro-1.txt` +- `captures/rcp-buttons-call-exact-echo-repro-2.txt` +- `captures/rcp-buttons-call-exact-echo-repro-3.txt` + +All three runs detected `CALL` high/on and sent the same exact echo pair: + +```text +00 00 15 80 00 CF +00 00 15 00 00 4F +``` + +Observed serial result: + +| Run | Result | +| --- | --- | +| repro 1 | random assortment of button presses; no `07 80 45 20 D0 68`; returned to heartbeat/CALL traffic | +| repro 2 | press-and-hold `CALL`; `07 80 45 20 D0 68` observed once, about 33 ms after the echo pair | +| repro 3 | quick `CALL` press only; no `07 80 45 20 D0 68`; returned to heartbeat traffic | + +Interpretation: + +- The `07 80 45 20 D0 68` frame is reproducible, but appears sensitive to + physical CALL timing. It has now been seen in the original exact-echo test + and in the press-and-hold repro run. +- Because each run sent the same two response frames after `CALL` high, the + strongest current hypothesis is that CALL must remain asserted briefly after + the host echo pair. +- Receive buffer alignment or an internal RCP state bit may still be involved, + but the quick-press miss and press-and-hold hit make button hold duration the + next variable to isolate. +- This frame is still best treated as a CALL/event-response clue, not as an + activation handshake. + +Next tighter CALL tests: + +1. Echo only `CALL high/on`. +2. Echo only `CALL low/off`. +3. Repeat the two-frame exact echo while deliberately holding CALL until the + script has logged either the watch frame or the next heartbeat. +4. Repeat the two-frame exact echo with shorter and longer response delays. + +High-only echo: + +```powershell +python scripts/serial_button_response_test.py --port COM5 --duration 15 --prompt --respond-to-call --respond-once --response-frame "00 00 15 80 00 CF" --watch-frame "07 80 45 20 D0 68" --log captures/rcp-buttons-call-high-only-echo.txt +``` + +Low-only echo: + +```powershell +python scripts/serial_button_response_test.py --port COM5 --duration 15 --prompt --respond-to-call --respond-once --response-frame "00 00 15 00 00 4F" --watch-frame "07 80 45 20 D0 68" --log captures/rcp-buttons-call-low-only-echo.txt +``` + +Two-frame echo with a shorter response delay: + +```powershell +python scripts/serial_button_response_test.py --port COM5 --duration 15 --prompt --respond-to-call --respond-once --response-delay 0.0 --response-frame "00 00 15 80 00 CF" --response-frame "00 00 15 00 00 4F" --watch-frame "07 80 45 20 D0 68" --log captures/rcp-buttons-call-exact-echo-delay-0ms.txt +``` + +Two-frame echo with a longer response delay: + +```powershell +python scripts/serial_button_response_test.py --port COM5 --duration 15 --prompt --respond-to-call --respond-once --response-delay 0.2 --response-frame "00 00 15 80 00 CF" --response-frame "00 00 15 00 00 4F" --watch-frame "07 80 45 20 D0 68" --log captures/rcp-buttons-call-exact-echo-delay-200ms.txt +``` + +### 2026-05-13 CALL Hold Timing Tests + +Captures: + +- `captures/rcp-buttons-call-high-only-echo.txt` +- `captures/rcp-buttons-call-low-only-echo.txt` +- `captures/rcp-buttons-call-exact-echo-delay-0ms.txt` +- `captures/rcp-buttons-call-exact-echo-delay-200ms.txt` + +User procedure: + +- All four tests used a roughly 2 second hold on the `CALL` button. + +Observed result: + +| Test | Host response | Result | +| --- | --- | --- | +| high-only echo | `00 00 15 80 00 CF` after CALL high | no `07 80 45 20 D0 68` | +| low-only echo | `00 00 15 00 00 4F` after CALL high | no `07 80 45 20 D0 68` | +| exact echo, 0 ms delay | high echo then low echo immediately | no `07 80 45 20 D0 68` | +| exact echo, 200 ms delay | high echo then low echo after 200 ms response delay | no `07 80 45 20 D0 68` | + +Interpretation: + +- Holding `CALL` alone is not sufficient to reproduce + `07 80 45 20 D0 68`. +- Echoing only one of the two CALL states is not sufficient in these tests. +- The previous successful repro used the two-frame exact echo with the script's + default 50 ms response delay. The failed 0 ms and 200 ms runs suggest the + timing window may be narrower than expected, or the frame depends on a + second uncontrolled variable. +- Current best hypothesis: `07 80 45 20 D0 68` requires the exact two-frame + CALL echo pair near the default delay timing, with CALL still asserted. + +Next timing-bracket test: + +```powershell +python scripts/serial_button_response_test.py --port COM5 --duration 15 --prompt --respond-to-call --respond-once --response-delay 0.02 --response-frame "00 00 15 80 00 CF" --response-frame "00 00 15 00 00 4F" --watch-frame "07 80 45 20 D0 68" --log captures/rcp-buttons-call-exact-echo-delay-20ms.txt +python scripts/serial_button_response_test.py --port COM5 --duration 15 --prompt --respond-to-call --respond-once --response-delay 0.05 --response-frame "00 00 15 80 00 CF" --response-frame "00 00 15 00 00 4F" --watch-frame "07 80 45 20 D0 68" --log captures/rcp-buttons-call-exact-echo-delay-50ms.txt +python scripts/serial_button_response_test.py --port COM5 --duration 15 --prompt --respond-to-call --respond-once --response-delay 0.08 --response-frame "00 00 15 80 00 CF" --response-frame "00 00 15 00 00 4F" --watch-frame "07 80 45 20 D0 68" --log captures/rcp-buttons-call-exact-echo-delay-80ms.txt +python scripts/serial_button_response_test.py --port COM5 --duration 15 --prompt --respond-to-call --respond-once --response-delay 0.12 --response-frame "00 00 15 80 00 CF" --response-frame "00 00 15 00 00 4F" --watch-frame "07 80 45 20 D0 68" --log captures/rcp-buttons-call-exact-echo-delay-120ms.txt +``` + +For each run, power-cycle first, press and hold `CALL` for about 2 seconds, then +release after either the watch frame appears or the next heartbeat appears.