This commit is contained in:
Aiden
2026-05-13 16:31:16 +10:00
parent 9d76820ef6
commit 0824f46feb
5 changed files with 219 additions and 0 deletions

View File

@@ -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.