Skip to content

Bench 2026-10-25: RS-12.21 option-(b) image flashed + verified — cold start 11 s, firmware park holds, 0x0D trigger correct - #169

Merged
dorkmo merged 1 commit into
mainfrom
bench-rs1221-flash-2026-10-25
Oct 25, 2026
Merged

dorkmo merged 1 commit into
mainfrom
bench-rs1221-flash-2026-10-25

Conversation

@dorkmo

@dorkmo dorkmo commented Oct 25, 2026

Copy link
Copy Markdown
Contributor

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.md section 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.

  • Tractor: flashed 14:09-14:10Z with Verify OK, flash_rc=0, and DONE: prep=0 flash=0 revive=0. The board was back after about 24 s.
  • Base: flashed at 14:12Z with Verify OK, flash_rc=0, and PIPELINE-EXIT=0.
  • After the flash:
    • rs116_health_probe reports STATS-OK, all counter families, tx_fifo_rb_bad 0, and radio_state 4.
    • radio_park.py reports cap 0x000000FF, path firmware, PARKED, persistent, and 0x80 readbacks.
    • A re-read about 3 minutes later shows 0x80 on both boards.

R1: cold start and the park gate (FHSS mono_g4, 300 s, reactive PROBEs):

check result
base VER cap=0x000000FF
acquisition first frame 11.0 s after activation, confirmed acquisition: ACQUIRED (599/609 decoded, 98.4 %); 2026-10-24 legs took 15-75 s
loss / delivery seq-gap 0 after lock; PROBE 204/204, brackets agree
fault codes no 0x0D/0x0F on either board (both locked in the first scan attempt); Δtx_fifo_rb_bad 0
park gate leg-end PARK_OK on 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: on e083ae46 the 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):

check result
tractor scan faults 0x0D sub 0x00, 0x01, 0x02, then 0x83, at 30 s intervals (L072 uptime 33.6 / 63.6 / 93.6 / 123.7 s), all name=RX_SCAN_FAILED
trigger fired only on the attempt-3 final line; the earlier lines and their legacy twins did not fire it
tractor in FAILED holds FAILED under authority while streaming (no later 0x0D); heard 93/95 base commands; RS-12.15 criteria PASS, STOP not tripped
park PARK_OK on the firmware path on both boards; end-of-session reads 0x80 on both (15:02Z)

Not tested yet:

  • T1, the base silent for 125 s or more; it needs a harness option that does not exist yet;
  • T2, a set of about 10 cold starts to measure the on-air cold-start rate;
  • T4 with camera stalls;
  • the FHSS switch leg, the web_ui leg, and A16.

Records and procedure fixes

  • The boards' build is updated everywhere it is recorded: murata_l072 README, FLASH_RUNBOOK, the BENCH_* docs, 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).
  • Flash success line. PIPELINE-EXIT only appears on the console. On the tractor, adb drops at the reboot before it is printed. The success record is DONE: prep=0 flash=0 revive=0 in pipeline_stamped.log. On the base, flash_l072.sh can hang on the dropped ssh session after the board reboots.
  • youtube_window.ps1 -Front.
    • A refused focus change is now retried once with the Alt-key workaround.
    • If the bench window is still not in front, it exits 6. scene_check.sh then stops (exit 5) without opening the camera.
    • That prevents what happened today: a diagnostic frame was taken while another window was in front. That frame was deleted and never committed.
    • The docs say how to replace a broken bench Firefox profile. Today's profile had to be replaced.

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

  • Harness offline tests: 197/197.
  • test_bench_legs_sil.py: 24 passed.
  • bash -n passes on the edited scripts, and youtube_window.ps1 parses clean.
  • git diff --check is clean.

Merge on the operator's word.

🤖 Generated with Claude Code

… 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>
Copilot AI balanced review requested due to automatic review settings October 25, 2026 16:02

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 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 0daae279 as flashed on both boards, with e083ae46 retained 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

@dorkmo
dorkmo merged commit 5f84b74 into main Oct 25, 2026
27 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants