Repository navigation
Bench 2026-10-25: RS-12.21 option-(b) image flashed + verified — cold start 11 s, firmware park holds, 0x0D trigger correct - #169
Merged
Conversation
… R2) Operator: "proceed with any merges and you have a GO for any radio testing". After #168 and #164 merged (main d597b09): - Flash: both L072s now run bench 0daae279 (option (b) + L + 2 s dwell, firmware park 0x04/0x84, 0x0D split). Verify OK, flash_rc=0, DONE prep=0 flash=0 revive=0 on both. Post-flash: rs116 STATS-OK, tx_fifo_rb_bad 0; radio_park.py cap 0xFF, path firmware, PARKED, persistent, 0x80 held at the 2-minute re-read. - R1 (FHSS mono_g4, 300 s, reactive PROBEs): first frame 11.0 s after activation, ACQUIRED (599/609); PROBE 204/204; leg-end firmware park held 2+ min with profile 1 active, the RS-12.21 park gate on hardware. - R2 (480 s, -InjectOn fault:0x0D:final): tractor 0x0D attempts 0x00/0x01/0x02/0x83 30 s apart, all name=RX_SCAN_FAILED; the injector fired on the final only; tractor heard 93/95 base commands in FAILED; RS-12.15 criteria PASS. - End of session 15:02Z: both radios 0x80. Records: the boards' build (0daae279; e083ae46 the rollback image) in README / FLASH_RUNBOOK / BENCH_* / flash_l072.sh / DECISIONS / SETTINGS_REFERENCE / TODO rows (in place) and the memo. Procedure: youtube_window.ps1 -Front retries a refused focus change once with the Alt-key workaround and exits 6 when the bench window still is not in front; scene_check.sh then takes no frame (exit 5), so no other window is photographed or put on the air. PIPELINE-EXIT is console only: the success line is DONE prep=0 flash=0 revive=0. Privacy: a diagnostic frame that showed a non-bench window was deleted and never committed; every scene frame and a full-coverage render of both base captures show YouTube content only. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
🔵 Needs a closer look
The changes require final human review because they are too complex or risky for automated approval.
No open issues 🎉
What changed in this PR
Records the first hardware verification of the RS-12.21 firmware from #168 and strengthens the bench camera procedure against capturing another foreground window.
Changes:
- Updates firmware inventories and procedures to identify
0daae279as flashed on both boards, withe083ae46retained for rollback. - Adds R1/R2 evidence covering acquisition, command delivery, injector triggering, and persistent firmware parking.
- Adds a Windows focus retry and stops scene capture when foreground confirmation fails.
| File | Description |
|---|---|
| LifeTrac-v25/DESIGN-CONTROLLER/SETTINGS_REFERENCE.md | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/firmware/x8_lora_bootloader_helper/README.md | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/firmware/x8_lora_bootloader_helper/FLASH_RUNBOOK.md | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/firmware/x8_lora_bootloader_helper/bench_tools/provision_bench_board.sh | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/firmware/x8_lora_bootloader_helper/bench_tools/PC_SETUP.md | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/firmware/x8_lora_bootloader_helper/bench_tools/legs/youtube_window.ps1 | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/firmware/x8_lora_bootloader_helper/bench_tools/legs/scene_check.sh | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/firmware/x8_lora_bootloader_helper/bench_tools/legs/README.md | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/firmware/x8_lora_bootloader_helper/bench_tools/flash_l072.sh | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/firmware/x8_lora_bootloader_helper/bench_tools/BENCH_SETUP.md | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/firmware/x8_lora_bootloader_helper/bench_tools/BENCH_QUICKSTART.md | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/firmware/x8_lora_bootloader_helper/bench_tools/BENCH_BOARDS.md | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/firmware/murata_l072/README.md | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/firmware/murata_l072/FHSS_SCAN_FAILED_OPTIONS.md | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/DECISIONS.md | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_13_vector_scene_2026-09-26/firmware/README.md | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20261025_095748_d597b094/tractor_ocd_reset.log | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20261025_095748_d597b094/params.txt | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20261025_095748_d597b094/inject.log | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20261025_095748_d597b094/inject_trigger.txt | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20261025_094252_d597b094/tractor_ocd_reset.log | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20261025_094252_d597b094/params.txt | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20261025_094252_d597b094/camera_service.log | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/legs/staging_tractor.txt | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/legs/staging_base.txt | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/legs/preR1_scene.txt | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/legs/power_up_guard_2026-10-25.log | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/legs/leg2c_r2_tractor_ocd_reset.log | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/legs/leg2c_r2_tractor_log.txt | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/legs/leg2c_r2_scene.txt | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/legs/leg2c_r2_rf.txt | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/legs/leg2c_r2_report.txt | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/legs/leg2c_r2_replay.txt | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/legs/leg2c_r2_prep.txt | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/legs/leg2c_r2_pre_tractor.txt | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/legs/leg2c_r2_pre_base.txt | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/legs/leg2c_r2_post_transcript.txt | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/legs/leg2c_r2_post_tractor.txt | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/legs/leg2c_r2_post_base.txt | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/legs/leg2c_r2_park.txt | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/legs/leg2c_r2_params.txt | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/legs/leg2c_r2_p2p4.txt | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/legs/leg2c_r2_link_stats.txt | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/legs/leg2c_r2_inject.log | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/legs/leg2c_r2_inject_trigger.txt | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/legs/leg2c_r2_health_tractor.txt | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/legs/leg2c_r2_health_base.txt | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/legs/leg2c_r2_gaps.txt | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/legs/leg2c_r2_deltas.txt | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/legs/leg2c_r2_clear_retained.txt | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/legs/leg2c_r2_base.json | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/legs/leg2c_r1_tractor_ocd_reset.log | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/legs/leg2c_r1_tractor_log.txt | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/legs/leg2c_r1_scene.txt | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/legs/leg2c_r1_rf.txt | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/legs/leg2c_r1_report.txt | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/legs/leg2c_r1_replay.txt | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/legs/leg2c_r1_probe_score.txt | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/legs/leg2c_r1_prep.txt | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/legs/leg2c_r1_pre_tractor.txt | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/legs/leg2c_r1_pre_base.txt | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/legs/leg2c_r1_post_transcript.txt | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/legs/leg2c_r1_post_tractor.txt | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/legs/leg2c_r1_post_base.txt | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/legs/leg2c_r1_park.txt | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/legs/leg2c_r1_params.txt | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/legs/leg2c_r1_p2p4.txt | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/legs/leg2c_r1_link_stats.txt | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/legs/leg2c_r1_health_tractor.txt | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/legs/leg2c_r1_health_base.txt | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/legs/leg2c_r1_gaps.txt | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/legs/leg2c_r1_deltas.txt | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/legs/leg2c_r1_clear_retained.txt | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/legs/leg2c_r1_base.json | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/firmware_flash/postflash_park_tractor.txt | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/firmware_flash/postflash_park_base.txt | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/firmware_flash/postflash_health_tractor.txt | Updated as part of this pull request. |
| LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/bench_session_2026-10-25/firmware_flash/postflash_health_base.txt | Updated as part of this pull request. |
Review effort: Balanced
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this is
This is the evidence and records update for 2026-10-25. The RS-12.21 option (b) image from #168 was flashed onto both bench L072s and verified, then the first two legs in the memo's plan flew: R1 and R2 from
FHSS_SCAN_FAILED_OPTIONS.mdsection 6.1. The operator's GO covered the merges and any radio testing.Results
Flash. Both boards now run bench
0daae279. The previous image,e083ae46, is kept as the rollback.flash_rc=0, andDONE: prep=0 flash=0 revive=0. The board was back after about 24 s.flash_rc=0, andPIPELINE-EXIT=0.rs116_health_probereports STATS-OK, all counter families,tx_fifo_rb_bad0, andradio_state4.radio_park.pyreportscap 0x000000FF,path firmware,PARKED,persistent, and 0x80 readbacks.R1: cold start and the park gate (FHSS mono_g4, 300 s, reactive PROBEs):
cap=0x000000FFconfirmed acquisition: ACQUIRED(599/609 decoded, 98.4 %); 2026-10-24 legs took 15-75 s0x0D/0x0Fon either board (both locked in the first scan attempt); Δtx_fifo_rb_bad0PARK_OKon the firmware path on both boards; 0x80 more than 2 min later with profile 1 still active. This is the RS-12.21 fix on hardware: one083ae46the scan re-armed the receiver every dwell.R2: the injector trigger and the tractor in FAILED (480 s, no reactive PROBEs,
-InjectOn fault:0x0D:final):0x0Dsub0x00,0x01,0x02, then0x83, at 30 s intervals (L072 uptime 33.6 / 63.6 / 93.6 / 123.7 s), allname=RX_SCAN_FAILED0x0D); heard 93/95 base commands; RS-12.15 criteria PASS, STOP not trippedPARK_OKon the firmware path on both boards; end-of-session reads 0x80 on both (15:02Z)Not tested yet:
Records and procedure fixes
flash_l072.sh's build list, DECISIONS D-FHSS1, SETTINGS_REFERENCE, the flashed-build inventory, the memo, and TODO rows (edited in place; TODO.md keeps 4841 lines, and no citation moved).PIPELINE-EXITonly appears on the console. On the tractor, adb drops at the reboot before it is printed. The success record isDONE: prep=0 flash=0 revive=0inpipeline_stamped.log. On the base,flash_l072.shcan hang on the dropped ssh session after the board reboots.youtube_window.ps1 -Front.scene_check.shthen stops (exit 5) without opening the camera.Privacy
The three scene jpgs are git-ignored, and all of them show YouTube. A full-coverage render of both committed base captures shows YouTube content only. The text scan found no email addresses, phone numbers, credentials or personal names.
Verification
test_bench_legs_sil.py: 24 passed.bash -npasses on the edited scripts, andyoutube_window.ps1parses clean.git diff --checkis clean.Merge on the operator's word.
🤖 Generated with Claude Code