From a0831302793b26895c569508f3cea0712f2903ee Mon Sep 17 00:00:00 2001 From: dorkmo <1923070+dorkmo@users.noreply.github.com> Date: Mon, 24 Aug 2026 11:39:04 -0500 Subject: [PATCH 1/4] evidence(RS-12): archives now self-evidence the hold setting; leg-report train-length bug fixed Paired 300 s legs at 927.5 (clean 5/5 that morning), same session, only -NoParkLast differing, both bracketed: leg A no_park_last=1 loss 1.5% penultimate 6% (<= uniform 8%) leg B no_park_last=0 loss 3.3% penultimate 35% (4.4x uniform) Both params.txt AND the tx daemon startup log carry the setting, and the mechanism signature flips WITH it -- so an instrumented archive now proves its own hold state two ways, closing the PR #111 review gap where strict-hold claims rested on the session transcript. Loss values independently reproduce the RS-12 arms (ctrl 3.3, fix 1.5-1.8) on a different day and post-merge code. Tool bug found in the same leg, and it would have HIDDEN the result: rs12_leg_report.py inferred train length from CORRUPT capture headers via most_common with no sanity bound. Leg B had one readable dump whose garbage total byte said 208, so the tool placed the penultimate at idx 206 and printed 0 percent while the real lock was 35 percent at idx 11. A false negative on the headline metric from one corrupted byte. The first repair (modal over all tx trains) was also wrong: these legs are a MIXTURE (1x143 2x45 12x56 13x115) so the mode is 1 and short trains have no penultimate. Final behaviour: modal over trains of 3+ fragments from the tx log healthy lines, with the full mixture and the uniform baseline printed. Regression-checked against the archives the RS-12 closure and the 08-22 session rest on: every published number reproduces unchanged. Co-Authored-By: Claude Fable 5 --- .../RESULTS.md | 72 + .../inst_A_post_base.txt | 28 + .../inst_A_post_tractor.txt | 28 + .../inst_A_pre_base.txt | 28 + .../inst_A_pre_tractor.txt | 28 + .../inst_B_post_base.txt | 28 + .../inst_B_post_tractor.txt | 28 + .../inst_B_pre_base.txt | 28 + .../inst_B_pre_tractor.txt | 28 + .../params.txt | 32 + .../rx_daemon.log | 1332 +++++++++++++++++ .../synth_pub.log | 28 + .../tx_daemon.log | 828 ++++++++++ .../params.txt | 32 + .../rx_daemon.log | 1328 ++++++++++++++++ .../synth_pub.log | 28 + .../tx_daemon.log | 862 +++++++++++ .../tools/rs12_leg_report.py | 47 +- 18 files changed, 4803 insertions(+), 10 deletions(-) create mode 100644 LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_12_instrumentation_verify_2026-08-24/RESULTS.md create mode 100644 LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_12_instrumentation_verify_2026-08-24/inst_A_post_base.txt create mode 100644 LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_12_instrumentation_verify_2026-08-24/inst_A_post_tractor.txt create mode 100644 LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_12_instrumentation_verify_2026-08-24/inst_A_pre_base.txt create mode 100644 LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_12_instrumentation_verify_2026-08-24/inst_A_pre_tractor.txt create mode 100644 LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_12_instrumentation_verify_2026-08-24/inst_B_post_base.txt create mode 100644 LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_12_instrumentation_verify_2026-08-24/inst_B_post_tractor.txt create mode 100644 LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_12_instrumentation_verify_2026-08-24/inst_B_pre_base.txt create mode 100644 LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_12_instrumentation_verify_2026-08-24/inst_B_pre_tractor.txt create mode 100644 LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20260824_112905_e9f6ffd6/params.txt create mode 100644 LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20260824_112905_e9f6ffd6/rx_daemon.log create mode 100644 LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20260824_112905_e9f6ffd6/synth_pub.log create mode 100644 LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20260824_112905_e9f6ffd6/tx_daemon.log create mode 100644 LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20260824_113520_e9f6ffd6/params.txt create mode 100644 LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20260824_113520_e9f6ffd6/rx_daemon.log create mode 100644 LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20260824_113520_e9f6ffd6/synth_pub.log create mode 100644 LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20260824_113520_e9f6ffd6/tx_daemon.log diff --git a/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_12_instrumentation_verify_2026-08-24/RESULTS.md b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_12_instrumentation_verify_2026-08-24/RESULTS.md new file mode 100644 index 00000000..c24212e7 --- /dev/null +++ b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_12_instrumentation_verify_2026-08-24/RESULTS.md @@ -0,0 +1,72 @@ +# Archive instrumentation verification — the hold setting is now self-evidenced (2026-08-24) + +**Verdict: PASS, and stronger than a format check.** The PR #111 review +established that no archive could substantiate whether `-NoParkLast 1` +was actually in force — `params.txt` had no field and the TX daemon +never logged one, so every strict-hold claim rested on the session +transcript. The instrumentation added in PR #111 is now verified on air +by a paired leg: the recorded setting flips with the flag **and the +mechanism signature flips with it**, which is what distinguishes a +faithful record from an echo of a parameter. + +## Method + +Two 300 s synth legs, same channel, same session, ~6 min apart, only +`-NoParkLast` differing. Channel 927.5 MHz spot-checked clean the same +morning (60 s, 949 samples, 0 hot, max −94 dBm — **now clean 5/5** across +all surveys). Both legs bracketed on both boards (`inst_*` files here). +Boards had been quiesced overnight (radios in LoRa SLEEP, Linux up); the +L072s woke clean, `RS115-INSTRUMENTED-FIRMWARE=YES` both. + +## Result + +| | leg A (fix) | leg B (control) | +|---|---|---| +| archive | `radio_monitor_20260824_112905_e9f6ffd6` | `radio_monitor_20260824_113520_e9f6ffd6` | +| `params.txt` | **`no_park_last=1`** | **`no_park_last=0`** | +| TX daemon startup log | **`no_park_last=1 gap_ms=80 pipeline_depth=2`** | **`no_park_last=0 gap_ms=80 pipeline_depth=2`** | +| loss | **1.5 %** (33/2177) | **3.3 %** (78/2362) | +| penultimate (idx 11) | **6 %** (2/33) — at/below uniform | **35 %** (27/78) — 4.4× uniform | +| timeouts | 31 | 69 | +| crc closure | 26 = 26 exact | 70 = 70 exact | + +Both loss figures land on the RS-12 arm values measured a week earlier +(ctrl 3.3 ±0.1, fix 1.5–1.8) — an independent reproduction on a +different day, different channel-day, and post-merge code. + +**What this closes:** an archive from the instrumented build now proves +its own hold state two ways — the declared setting, and the physics that +setting produces. Future legs (starting with the motion leg) no longer +need transcript attestation. + +## Tooling bug found and fixed (would have hidden this result) + +`tools/rs12_leg_report.py` inferred train length from the `total` byte of +**corrupt capture headers** — the one population whose bytes are by +definition unreliable — with `most_common(1)` and no sanity bound. Leg B +had exactly ONE readable corrupt dump, whose garbage byte said 208, so +the tool reported *train length 208, penultimate idx 206 = 0 (0 %)* while +the real lock sat at 35 % on idx 11. **A false negative on the campaign's +headline metric, from a single corrupted byte.** + +The first repair (modal over all TX-log trains) was also wrong and is +recorded here because it is instructive: these legs carry a **mixture** +of train lengths (leg B: 1×143, 2×45, 12×56, 13×115), so the overall +mode is 1 and "penultimate" collapses to idx −1. Short trains have no +penultimate to lock; the metric is only meaningful over long trains. + +Final behaviour: train length = modal over trains of ≥3 fragments, taken +from the TX log's healthy `K fragments ok` lines, with the **full mixture +printed** so a mixed-length leg can never be mistaken for a uniform one, +and the uniform baseline printed alongside the penultimate share. + +Regression-checked against historical archives — reproduces every +published number exactly: yesterday's synth leg 3 % (unchanged), RS-12 +strict-hold leg L 8 % (unchanged, matches the closure record). + +**Implication for earlier analyses:** any leg whose penultimate share was +computed from few readable corrupt dumps could have carried the same +distortion. The re-checks above cover the legs the RS-12 closure and the +2026-08-22 session rest on, and both are unchanged; no published figure +moves. Legs analysed with `--pre/--post` bracketing print the train-length +source line from now on, so the inference is auditable per run. diff --git a/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_12_instrumentation_verify_2026-08-24/inst_A_post_base.txt b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_12_instrumentation_verify_2026-08-24/inst_A_post_base.txt new file mode 100644 index 00000000..80deeb05 --- /dev/null +++ b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_12_instrumentation_verify_2026-08-24/inst_A_post_base.txt @@ -0,0 +1,28 @@ +radio_rx_ok=6282 + +radio_crc_err=74 + +radio_dio0=6472 + +radio_tx_ok=82 + +host_rx_ring_ovf=0 + +host_dropped=0 + +host_queue_full=0 + +host_parse_ok=52772 + +host_parse_err=0 + +radio_state=4 + +tx_fifo_rb_ok=82 + +tx_fifo_rb_bad=0 + +tx_done_early=0 + +ALL: {'host_irq_idle': 52773, 'radio_dio0': 6472, 'radio_crc_err': 74, 'radio_rx_ok': 6282, 'radio_tx_ok': 82, 'radio_state': 4, 'host_rx_bytes': 687227, 'host_rx_lpuart_bytes': 687227, 'host_parse_ok': 52772, 'tx_fifo_rb_ok': 82} + diff --git a/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_12_instrumentation_verify_2026-08-24/inst_A_post_tractor.txt b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_12_instrumentation_verify_2026-08-24/inst_A_post_tractor.txt new file mode 100644 index 00000000..5ad0fb70 --- /dev/null +++ b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_12_instrumentation_verify_2026-08-24/inst_A_post_tractor.txt @@ -0,0 +1,28 @@ +radio_rx_ok=36 + +radio_crc_err=12 + +radio_dio0=4569 + +radio_tx_ok=4510 + +host_rx_ring_ovf=0 + +host_dropped=0 + +host_queue_full=0 + +host_parse_ok=5283 + +host_parse_err=0 + +radio_state=4 + +tx_fifo_rb_ok=4510 + +tx_fifo_rb_bad=0 + +tx_done_early=0 + +ALL: {'host_irq_idle': 5283, 'radio_dio0': 4569, 'radio_crc_err': 12, 'radio_rx_ok': 36, 'radio_tx_ok': 4510, 'radio_state': 4, 'host_rx_bytes': 1133433, 'host_rx_lpuart_bytes': 1133433, 'host_parse_ok': 5283, 'tx_fifo_rb_ok': 4510} + diff --git a/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_12_instrumentation_verify_2026-08-24/inst_A_pre_base.txt b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_12_instrumentation_verify_2026-08-24/inst_A_pre_base.txt new file mode 100644 index 00000000..412bcbac --- /dev/null +++ b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_12_instrumentation_verify_2026-08-24/inst_A_pre_base.txt @@ -0,0 +1,28 @@ +radio_rx_ok=4086 + +radio_crc_err=48 + +radio_dio0=4225 + +radio_tx_ok=64 + +host_rx_ring_ovf=0 + +host_dropped=0 + +host_queue_full=0 + +host_parse_ok=52706 + +host_parse_err=0 + +radio_state=4 + +tx_fifo_rb_ok=64 + +tx_fifo_rb_bad=0 + +tx_done_early=0 + +ALL: {'host_irq_idle': 52707, 'radio_dio0': 4225, 'radio_crc_err': 48, 'radio_rx_ok': 4086, 'radio_tx_ok': 64, 'radio_state': 4, 'host_rx_bytes': 686260, 'host_rx_lpuart_bytes': 686260, 'host_parse_ok': 52706, 'tx_fifo_rb_ok': 64} + diff --git a/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_12_instrumentation_verify_2026-08-24/inst_A_pre_tractor.txt b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_12_instrumentation_verify_2026-08-24/inst_A_pre_tractor.txt new file mode 100644 index 00000000..23a9a7c3 --- /dev/null +++ b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_12_instrumentation_verify_2026-08-24/inst_A_pre_tractor.txt @@ -0,0 +1,28 @@ +radio_rx_ok=18 + +radio_crc_err=12 + +radio_dio0=2319 + +radio_tx_ok=2278 + +host_rx_ring_ovf=0 + +host_dropped=0 + +host_queue_full=0 + +host_parse_ok=2654 + +host_parse_err=0 + +radio_state=1 + +tx_fifo_rb_ok=2278 + +tx_fifo_rb_bad=0 + +tx_done_early=0 + +ALL: {'host_irq_idle': 2654, 'radio_dio0': 2319, 'radio_crc_err': 12, 'radio_rx_ok': 18, 'radio_tx_ok': 2278, 'radio_state': 1, 'host_rx_bytes': 572705, 'host_rx_lpuart_bytes': 572705, 'host_parse_ok': 2654, 'tx_fifo_rb_ok': 2278} + diff --git a/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_12_instrumentation_verify_2026-08-24/inst_B_post_base.txt b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_12_instrumentation_verify_2026-08-24/inst_B_post_base.txt new file mode 100644 index 00000000..3cb49e69 --- /dev/null +++ b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_12_instrumentation_verify_2026-08-24/inst_B_post_base.txt @@ -0,0 +1,28 @@ +radio_rx_ok=8615 + +radio_crc_err=144 + +radio_dio0=8906 + +radio_tx_ok=100 + +host_rx_ring_ovf=0 + +host_dropped=0 + +host_queue_full=0 + +host_parse_ok=52859 + +host_parse_err=0 + +radio_state=4 + +tx_fifo_rb_ok=100 + +tx_fifo_rb_bad=0 + +tx_done_early=0 + +ALL: {'host_irq_idle': 52860, 'radio_dio0': 8906, 'radio_crc_err': 144, 'radio_rx_ok': 8615, 'radio_tx_ok': 100, 'radio_state': 4, 'host_rx_bytes': 688466, 'host_rx_lpuart_bytes': 688466, 'host_parse_ok': 52859, 'tx_fifo_rb_ok': 100} + diff --git a/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_12_instrumentation_verify_2026-08-24/inst_B_post_tractor.txt b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_12_instrumentation_verify_2026-08-24/inst_B_post_tractor.txt new file mode 100644 index 00000000..6bafbf21 --- /dev/null +++ b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_12_instrumentation_verify_2026-08-24/inst_B_post_tractor.txt @@ -0,0 +1,28 @@ +radio_rx_ok=54 + +radio_crc_err=14 + +radio_dio0=7003 + +radio_tx_ok=6924 + +host_rx_ring_ovf=0 + +host_dropped=0 + +host_queue_full=0 + +host_parse_ok=8114 + +host_parse_err=0 + +radio_state=4 + +tx_fifo_rb_ok=6924 + +tx_fifo_rb_bad=0 + +tx_done_early=0 + +ALL: {'host_irq_idle': 8114, 'radio_dio0': 7003, 'radio_crc_err': 14, 'radio_rx_ok': 54, 'radio_tx_ok': 6924, 'radio_state': 4, 'host_rx_bytes': 1739731, 'host_rx_lpuart_bytes': 1739731, 'host_parse_ok': 8114, 'tx_fifo_rb_ok': 6924} + diff --git a/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_12_instrumentation_verify_2026-08-24/inst_B_pre_base.txt b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_12_instrumentation_verify_2026-08-24/inst_B_pre_base.txt new file mode 100644 index 00000000..21444085 --- /dev/null +++ b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_12_instrumentation_verify_2026-08-24/inst_B_pre_base.txt @@ -0,0 +1,28 @@ +radio_rx_ok=6282 + +radio_crc_err=74 + +radio_dio0=6472 + +radio_tx_ok=82 + +host_rx_ring_ovf=0 + +host_dropped=0 + +host_queue_full=0 + +host_parse_ok=52773 + +host_parse_err=0 + +radio_state=4 + +tx_fifo_rb_ok=82 + +tx_fifo_rb_bad=0 + +tx_done_early=0 + +ALL: {'host_irq_idle': 52774, 'radio_dio0': 6472, 'radio_crc_err': 74, 'radio_rx_ok': 6282, 'radio_tx_ok': 82, 'radio_state': 4, 'host_rx_bytes': 687239, 'host_rx_lpuart_bytes': 687239, 'host_parse_ok': 52773, 'tx_fifo_rb_ok': 82} + diff --git a/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_12_instrumentation_verify_2026-08-24/inst_B_pre_tractor.txt b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_12_instrumentation_verify_2026-08-24/inst_B_pre_tractor.txt new file mode 100644 index 00000000..8307bd28 --- /dev/null +++ b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_12_instrumentation_verify_2026-08-24/inst_B_pre_tractor.txt @@ -0,0 +1,28 @@ +radio_rx_ok=36 + +radio_crc_err=13 + +radio_dio0=4570 + +radio_tx_ok=4510 + +host_rx_ring_ovf=0 + +host_dropped=0 + +host_queue_full=0 + +host_parse_ok=5284 + +host_parse_err=0 + +radio_state=4 + +tx_fifo_rb_ok=4510 + +tx_fifo_rb_bad=0 + +tx_done_early=0 + +ALL: {'host_irq_idle': 5284, 'radio_dio0': 4570, 'radio_crc_err': 13, 'radio_rx_ok': 36, 'radio_tx_ok': 4510, 'radio_state': 4, 'host_rx_bytes': 1133445, 'host_rx_lpuart_bytes': 1133445, 'host_parse_ok': 5284, 'tx_fifo_rb_ok': 4510} + diff --git a/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20260824_112905_e9f6ffd6/params.txt b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20260824_112905_e9f6ffd6/params.txt new file mode 100644 index 00000000..a1467569 --- /dev/null +++ b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20260824_112905_e9f6ffd6/params.txt @@ -0,0 +1,32 @@ +git_sha=e9f6ffd6 +duration_s=300 +synth_fps=2 +synth_budget_b=3000 +tx_pipeline=v3 +tx_pipeline_depth=2 +tx_batch=1 +tx_prepare_ahead=1 +train_gap_ms=40 +kf_request_disable=1 +no_park_last=1 +parity_group=0 +aligned_pump=1 +reactive_fire=0 +probe_phase_sweep_ms= +probe_sizes_b= +ack_copies=2 +probe_echo=0 +fhss_farm_id=0 +fhss_link_id=0 +airtime_budget_us=0 +pacing_mode=smooth +pacing_headroom=0 +rxcont_arm=1 +tx_power_dbm= +tx_feed=local +reg_profile=2 +force_frf_hz=927500000 +tx_serial=2E2C1209DABC240B +rx_serial=2D0A1209DABC240B +host_ip=192.168.1.79 +timestamp=20260824_112905 diff --git a/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20260824_112905_e9f6ffd6/rx_daemon.log b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20260824_112905_e9f6ffd6/rx_daemon.log new file mode 100644 index 00000000..510b7d86 --- /dev/null +++ b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20260824_112905_e9f6ffd6/rx_daemon.log @@ -0,0 +1,1332 @@ +2026-08-24 16:23:54,893 INFO image_rx_daemon: opening L072 HostLink on /dev/ttymxc3 @ 921600 + +2026-08-24 16:23:54,897 INFO image_rx_daemon: image_rx_daemon started; mqtt=127.0.0.1:1883 uart=/dev/ttymxc3 + +2026-08-24 16:23:54,899 INFO image_rx_daemon: ctrl MQTT connected (192.168.1.79) + +2026-08-24 16:23:54,908 INFO image_rx_daemon: LIFETRAC_SKIP_RESET_REQ=1 — relying on external NRST; draining boot chatter only + +2026-08-24 16:23:54,909 INFO image_rx_daemon: MQTT connected; ready to publish lifetrac/v25/video/tile_delta + +2026-08-24 16:23:54,922 INFO image_rx_daemon: accepting first retained lifetrac/v25/control/radio_profile pin after start (restart convergence) + +2026-08-24 16:23:55,342 INFO image_rx_daemon: L072 VER warm-up ok (attempt 1) + +Initializing regulatory profile 2 on co-processor... + + FHSS mask: single channel 0 (0100000000000000) + +CFG_SET_REQ(FHSS_CHANNEL_MASK) OK: 07000800 + +CFG_SET_REQ(ANTENNA_GAIN_DBI) OK: 15000100 + +CFG_SET_REQ(HW_CEILING_DBM) OK: 16000100 + + FHSS seed: (0,0) legacy shared permutation [set LIFETRAC_FHSS_FARM_ID / LIFETRAC_FHSS_LINK_ID to separate pairs] + +CFG_SET_REQ(FHSS_FARM_ID) OK: 17000800 + +CFG_SET_REQ(FHSS_NODE_ID) OK: 18000800 + +CFG_SET_REQ(REG_PROFILE=2) OK: 14000100 + + forcing FRF -> 927.500 MHz (raw=0xE7E000 -> Msb=0xE7 Mid=0xE0 Lsb=0x00) + + FRF readback: 0xE7E000 = 927.500 MHz (OK) + +2026-08-24 16:23:55,787 INFO image_rx_daemon: LBT_ENABLE=0 (command uplink shares the image channel) + +PHY contract OK: image_bw500 == {'sf': 7, 'bw_khz': 500, 'cr_den': 5, 'preamble': 8} + +2026-08-24 16:23:55,874 INFO image_rx_daemon: SX1276 RXCONT autowake: opmode 0x81 -> 0x85 + +2026-08-24 16:23:55,875 INFO image_rx_daemon: RX worker ready; draining RX_FRAME_URC... + +2026-08-24 16:23:55,895 INFO image_rx_daemon: stats: rx_frames=0 rx_decode_err=0 frames_published=0 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=0 parity_recon=0 + +2026-08-24 16:23:56,124 INFO image_rx_daemon: published frame_id=0 seq=3 224 B → lifetrac/v25/video/tile_delta + +RFCO_PERTX during TX wait: profile_id=2 tx_status=0x00(OK) hop_idx=0 channel_idx=0 epoch=0 freq_hz=0 pkt_toa_us=10304 legal_dwell_used_us_10s=0 + +2026-08-24 16:23:56,149 INFO image_rx_daemon: command TX opcode=0x63 copy=1/1 OK (on air) + +2026-08-24 16:23:56,443 INFO image_rx_daemon: published frame_id=0 seq=4 232 B → lifetrac/v25/video/tile_delta + +RFCO_PERTX during TX wait: profile_id=2 tx_status=0x00(OK) hop_idx=0 channel_idx=0 epoch=0 freq_hz=0 pkt_toa_us=10304 legal_dwell_used_us_10s=0 + +2026-08-24 16:23:56,731 INFO image_rx_daemon: command TX opcode=0x63 copy=1/1 OK (on air) + +2026-08-24 16:23:56,915 INFO image_rx_daemon: published frame_id=0 seq=5 184 B → lifetrac/v25/video/tile_delta + +RFCO_PERTX during TX wait: profile_id=2 tx_status=0x00(OK) hop_idx=0 channel_idx=0 epoch=0 freq_hz=0 pkt_toa_us=10304 legal_dwell_used_us_10s=0 + +2026-08-24 16:23:57,203 INFO image_rx_daemon: command TX opcode=0x63 copy=1/1 OK (on air) + +2026-08-24 16:23:57,440 INFO image_rx_daemon: published frame_id=0 seq=6 227 B → lifetrac/v25/video/tile_delta + +RFCO_PERTX during TX wait: profile_id=2 tx_status=0x00(OK) hop_idx=0 channel_idx=0 epoch=0 freq_hz=0 pkt_toa_us=10304 legal_dwell_used_us_10s=0 + +2026-08-24 16:23:57,720 INFO image_rx_daemon: command TX opcode=0x63 copy=1/1 OK (on air) + +2026-08-24 16:23:57,917 INFO image_rx_daemon: published frame_id=0 seq=7 196 B → lifetrac/v25/video/tile_delta + +RFCO_PERTX during TX wait: profile_id=2 tx_status=0x00(OK) hop_idx=0 channel_idx=0 epoch=0 freq_hz=0 pkt_toa_us=10304 legal_dwell_used_us_10s=0 + +2026-08-24 16:23:58,208 INFO image_rx_daemon: command TX opcode=0x63 copy=1/1 OK (on air) + +2026-08-24 16:23:58,425 INFO image_rx_daemon: published frame_id=0 seq=8 239 B → lifetrac/v25/video/tile_delta + +RFCO_PERTX during TX wait: profile_id=2 tx_status=0x00(OK) hop_idx=0 channel_idx=0 epoch=0 freq_hz=0 pkt_toa_us=10304 legal_dwell_used_us_10s=0 + +2026-08-24 16:23:58,713 INFO image_rx_daemon: command TX opcode=0x63 copy=1/1 OK (on air) + +2026-08-24 16:23:58,961 INFO image_rx_daemon: published frame_id=0 seq=9 239 B → lifetrac/v25/video/tile_delta + +RFCO_PERTX during TX wait: profile_id=2 tx_status=0x00(OK) hop_idx=0 channel_idx=0 epoch=0 freq_hz=0 pkt_toa_us=10304 legal_dwell_used_us_10s=0 + +2026-08-24 16:23:59,248 INFO image_rx_daemon: command TX opcode=0x63 copy=1/1 OK (on air) + +2026-08-24 16:23:59,443 INFO image_rx_daemon: published frame_id=0 seq=10 212 B → lifetrac/v25/video/tile_delta + +RFCO_PERTX during TX wait: profile_id=2 tx_status=0x00(OK) hop_idx=0 channel_idx=0 epoch=0 freq_hz=0 pkt_toa_us=10304 legal_dwell_used_us_10s=0 + +2026-08-24 16:23:59,723 INFO image_rx_daemon: command TX opcode=0x63 copy=1/1 OK (on air) + +2026-08-24 16:23:59,948 INFO image_rx_daemon: published frame_id=0 seq=11 230 B → lifetrac/v25/video/tile_delta + +RFCO_PERTX during TX wait: profile_id=2 tx_status=0x00(OK) hop_idx=0 channel_idx=0 epoch=0 freq_hz=0 pkt_toa_us=10304 legal_dwell_used_us_10s=0 + +2026-08-24 16:24:00,227 INFO image_rx_daemon: command TX opcode=0x63 copy=1/1 OK (on air) + +2026-08-24 16:24:00,423 INFO image_rx_daemon: published frame_id=0 seq=12 202 B → lifetrac/v25/video/tile_delta + +RFCO_PERTX during TX wait: profile_id=2 tx_status=0x00(OK) hop_idx=0 channel_idx=0 epoch=0 freq_hz=0 pkt_toa_us=10304 legal_dwell_used_us_10s=0 + +2026-08-24 16:24:00,703 INFO image_rx_daemon: command TX opcode=0x63 copy=1/1 OK (on air) + +2026-08-24 16:24:00,909 INFO image_rx_daemon: published frame_id=0 seq=13 206 B → lifetrac/v25/video/tile_delta + +RFCO_PERTX during TX wait: profile_id=2 tx_status=0x00(OK) hop_idx=0 channel_idx=0 epoch=0 freq_hz=0 pkt_toa_us=10304 legal_dwell_used_us_10s=0 + +2026-08-24 16:24:01,187 INFO image_rx_daemon: command TX opcode=0x63 copy=1/1 OK (on air) + +2026-08-24 16:24:01,423 INFO image_rx_daemon: published frame_id=0 seq=14 218 B → lifetrac/v25/video/tile_delta + +RFCO_PERTX during TX wait: profile_id=2 tx_status=0x00(OK) hop_idx=0 channel_idx=0 epoch=0 freq_hz=0 pkt_toa_us=10304 legal_dwell_used_us_10s=0 + +2026-08-24 16:24:01,703 INFO image_rx_daemon: command TX opcode=0x63 copy=1/1 OK (on air) + +RFCO_PERTX during TX wait: profile_id=2 tx_status=0x00(OK) hop_idx=0 channel_idx=0 epoch=0 freq_hz=0 pkt_toa_us=10304 legal_dwell_used_us_10s=0 + +2026-08-24 16:24:02,267 INFO image_rx_daemon: command TX opcode=0x63 copy=1/1 OK (on air) + +2026-08-24 16:24:02,455 INFO image_rx_daemon: published frame_id=0 seq=16 231 B → lifetrac/v25/video/tile_delta + +RFCO_PERTX during TX wait: profile_id=2 tx_status=0x00(OK) hop_idx=0 channel_idx=0 epoch=0 freq_hz=0 pkt_toa_us=10304 legal_dwell_used_us_10s=0 + +2026-08-24 16:24:02,734 INFO image_rx_daemon: command TX opcode=0x63 copy=1/1 OK (on air) + +2026-08-24 16:24:02,949 INFO image_rx_daemon: published frame_id=0 seq=17 222 B → lifetrac/v25/video/tile_delta + +RFCO_PERTX during TX wait: profile_id=2 tx_status=0x00(OK) hop_idx=0 channel_idx=0 epoch=0 freq_hz=0 pkt_toa_us=10304 legal_dwell_used_us_10s=0 + +2026-08-24 16:24:03,229 INFO image_rx_daemon: command TX opcode=0x63 copy=1/1 OK (on air) + +2026-08-24 16:24:03,455 INFO image_rx_daemon: published frame_id=0 seq=18 230 B → lifetrac/v25/video/tile_delta + +RFCO_PERTX during TX wait: profile_id=2 tx_status=0x00(OK) hop_idx=0 channel_idx=0 epoch=0 freq_hz=0 pkt_toa_us=10304 legal_dwell_used_us_10s=0 + +2026-08-24 16:24:03,733 INFO image_rx_daemon: command TX opcode=0x63 copy=1/1 OK (on air) + +2026-08-24 16:24:03,927 INFO image_rx_daemon: published frame_id=0 seq=19 198 B → lifetrac/v25/video/tile_delta + +RFCO_PERTX during TX wait: profile_id=2 tx_status=0x00(OK) hop_idx=0 channel_idx=0 epoch=0 freq_hz=0 pkt_toa_us=10304 legal_dwell_used_us_10s=0 + +2026-08-24 16:24:04,215 INFO image_rx_daemon: command TX opcode=0x63 copy=1/1 OK (on air) + +2026-08-24 16:24:04,452 INFO image_rx_daemon: published frame_id=0 seq=20 235 B → lifetrac/v25/video/tile_delta + +RFCO_PERTX during TX wait: profile_id=2 tx_status=0x00(OK) hop_idx=0 channel_idx=0 epoch=0 freq_hz=0 pkt_toa_us=10304 legal_dwell_used_us_10s=0 + +2026-08-24 16:24:04,726 INFO image_rx_daemon: command TX opcode=0x63 copy=1/1 OK (on air) + +2026-08-24 16:24:04,931 INFO image_rx_daemon: published frame_id=0 seq=21 216 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:05,183 WARNING image_rx_daemon: cmd 0x63 GAVE UP after 18 attempts (10.2 s) + +2026-08-24 16:24:05,427 INFO image_rx_daemon: published frame_id=0 seq=22 194 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:05,909 INFO image_rx_daemon: stats: rx_frames=20 rx_decode_err=0 frames_published=19 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=1 parity_recon=0 + +2026-08-24 16:24:05,911 INFO image_rx_daemon: air_gap: n=19 dt_med=495259us dt_p95=1031254us len_med=226B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:24:05,915 INFO image_rx_daemon: air_gap_hist(ms): <200:1 <400:1 <1000:16 >=1000:1 + +2026-08-24 16:24:05,915 INFO image_rx_daemon: published frame_id=0 seq=23 176 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:05,915 INFO image_rx_daemon: rx_rf: n_rssi=21 n_snr=21 rssi[min/med/max]=-73/-73/-72 snr[min/med/max]=5.0/6.0/6.0 + +2026-08-24 16:24:05,917 INFO image_rx_daemon: phase_telemetry: valid=21 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:24:05,917 INFO image_rx_daemon: air_gap_by_class: boundary: n=19 med=495.3ms + +2026-08-24 16:24:06,432 INFO image_rx_daemon: published frame_id=0 seq=24 224 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:06,935 INFO image_rx_daemon: published frame_id=0 seq=25 243 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:07,411 INFO image_rx_daemon: published frame_id=0 seq=26 190 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:07,919 INFO image_rx_daemon: published frame_id=0 seq=27 194 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:08,424 INFO image_rx_daemon: published frame_id=0 seq=28 222 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:08,907 INFO image_rx_daemon: published frame_id=0 seq=29 192 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:09,403 INFO image_rx_daemon: published frame_id=0 seq=30 182 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:09,923 INFO image_rx_daemon: published frame_id=0 seq=31 229 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:10,419 INFO image_rx_daemon: published frame_id=0 seq=32 243 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:10,913 INFO image_rx_daemon: published frame_id=0 seq=33 237 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:11,440 INFO image_rx_daemon: published frame_id=0 seq=34 212 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:11,963 INFO image_rx_daemon: published frame_id=0 seq=35 243 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:12,942 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=4.5 rssi=-69 dump=77a88bf293c3a51703133fb34a66abf1cd4588f12ca905ce4e4ad86fa5b61e79044be8619cf169ed854c917416707e25c383b5c6f03b731f276c9a5f45fd99efb53babc91b332762a5da820cebcc2f6ed1e361fdc517a4c783e01ac04543be25a507ec4dd7a414e65579f99d8bb1e6d40de340af8ddee686bdbe9d48672e78fbbf6ec31d4744807e01c652148a2df143e3147cab642b34132c84a054fcb248350412b9b9d0a191ed205488e5dd6f869e6b17e2fba92a57bbf43d23f9b2c2f86f63d2cbda381d63c5b42e0886ae0e0661c116ea1d158fd68d4a09cc93ad00cb3ed7547fa5bc41151a795510e1dca6f56b0294c4d2426383ebe1eca0 + +2026-08-24 16:24:13,763 INFO image_rx_daemon: published frame_id=0 seq=37 241 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:13,915 INFO image_rx_daemon: published frame_id=0 seq=39 200 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:15,515 INFO image_rx_daemon: published frame_id=0 seq=40 2983 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:15,687 INFO image_rx_daemon: published frame_id=0 seq=41 204 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:15,924 INFO image_rx_daemon: stats: rx_frames=62 rx_decode_err=0 frames_published=36 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=2 parity_recon=0 + +2026-08-24 16:24:15,926 INFO image_rx_daemon: air_gap: n=42 dt_med=150798us dt_p95=514679us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:24:15,929 INFO image_rx_daemon: air_gap_hist(ms): <120:19 <200:9 <400:1 <1000:13 + +2026-08-24 16:24:15,929 INFO image_rx_daemon: rx_rf: n_rssi=41 n_snr=41 rssi[min/med/max]=-73/-72/-72 snr[min/med/max]=5.0/6.0/6.0 + +2026-08-24 16:24:15,930 INFO image_rx_daemon: phase_telemetry: valid=41 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:24:15,931 INFO image_rx_daemon: air_gap_by_class: seq: n=22 med=117.1ms | boundary: n=19 med=493.8ms | post_loss: n=1 med=228.1ms + +2026-08-24 16:24:15,931 INFO image_rx_daemon: lost_frag_idx: n=1 idx0=0 (0.00% of idx0 arrivals) other=1 (4.00%) verdict=not-clustered | top 7:1 + +2026-08-24 16:24:17,277 INFO image_rx_daemon: published frame_id=0 seq=42 2905 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:17,428 INFO image_rx_daemon: published frame_id=0 seq=47 176 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:17,602 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=1.5 rssi=-72 dump=01c20000000000003e32000c00070c082800ffff0700000000000000009073524946466c000400574542505654382060000900300400bd012a800020003ec13ca64eb6e523b32808028018c96400fd3282580008500545cda345ad6d0000feeef7d37a385cab7fe7a67f96ffdf2709fae02fd27dcecccc7d3142f789592d21327d03cbfce7c76494ca93188fb0a3c9bc00090041324146266a00000557452250563038205e000000f003009d01aa200020003ec15ca64e142523b324080240180964009d2e928042832a7e5d18e6a1bc80fee1e6fc9ececccbff0414cba402f79f317f6fce51635de4ff62d22183ae13f04cb7f199c9596b2ccb51 + +2026-08-24 16:24:20,656 INFO image_rx_daemon: published frame_id=0 seq=54 2985 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:21,059 INFO image_rx_daemon: published frame_id=0 seq=55 204 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:21,061 INFO image_rx_daemon: published frame_id=0 seq=55 238 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:22,627 INFO image_rx_daemon: published frame_id=0 seq=62 2901 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:22,792 INFO image_rx_daemon: published frame_id=0 seq=67 194 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:22,954 INFO image_rx_daemon: published frame_id=0 seq=75 224 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:23,482 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=3.0 rssi=-69 dump=2772a6453c592b7f88d124a44ddeaffef38c9b24c0ab576bc828a7a99c6af99555c74f55c2ba76b6af83b0ee59f89fe0cb9fc4ee6d5716421b047f5f1fa3df1f76c0c7cfb6fa6b8dc202795dcc285cce5ad2a1d6dccdb594718877c235a21200b27c8243e6be85ef017a2f8cb122ac8e2c41493d0bbff7ab2aaac7e000d70bc47e41c34ee5df719e6d83b37ed13fee6ea649143e715d7b4545fe18f0409cd5f39d90417966cb6b8bb897548b642b0318286d376485cfa8d50a425290ea6c538996d37857b1cac0dae8555ce1d763f364e35ae28e8f31e7635c2513e97e2c76788356f62ac847b9de20435c89a4e306a76204929bb87224223951e2 + +2026-08-24 16:24:24,739 INFO image_rx_daemon: published frame_id=0 seq=77 200 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:25,957 INFO image_rx_daemon: stats: rx_frames=137 rx_decode_err=0 frames_published=45 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=3 parity_recon=0 + +2026-08-24 16:24:25,959 INFO image_rx_daemon: air_gap: n=75 dt_med=117156us dt_p95=216977us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:24:25,961 INFO image_rx_daemon: air_gap_hist(ms): <120:56 <200:14 <400:5 + +2026-08-24 16:24:25,962 INFO image_rx_daemon: rx_rf: n_rssi=75 n_snr=75 rssi[min/med/max]=-74/-72/-72 snr[min/med/max]=5.0/6.0/7.0 + +2026-08-24 16:24:25,962 INFO image_rx_daemon: phase_telemetry: valid=75 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:24:25,963 INFO image_rx_daemon: air_gap_by_class: seq: n=64 med=117.2ms | boundary: n=9 med=177.4ms | post_loss: n=2 med=295.3ms + +2026-08-24 16:24:25,964 INFO image_rx_daemon: lost_frag_idx: n=2 idx0=1 (10.00% of idx0 arrivals) other=1 (1.49%) verdict=CLUSTERED-AT-0 | top 0:1 3:1 + +2026-08-24 16:24:26,359 INFO image_rx_daemon: published frame_id=0 seq=78 2991 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:26,779 INFO image_rx_daemon: published frame_id=0 seq=83 206 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:26,780 INFO image_rx_daemon: published frame_id=0 seq=83 235 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:28,348 INFO image_rx_daemon: published frame_id=0 seq=86 2923 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:28,791 INFO image_rx_daemon: published frame_id=0 seq=91 196 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:28,792 INFO image_rx_daemon: published frame_id=0 seq=91 233 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:30,365 INFO image_rx_daemon: published frame_id=0 seq=94 2915 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:30,739 INFO image_rx_daemon: published frame_id=0 seq=99 182 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:30,740 INFO image_rx_daemon: published frame_id=0 seq=99 224 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:32,350 INFO image_rx_daemon: published frame_id=0 seq=102 2980 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:32,515 INFO image_rx_daemon: published frame_id=0 seq=107 200 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:32,684 INFO image_rx_daemon: published frame_id=0 seq=115 229 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:34,430 INFO image_rx_daemon: published frame_id=0 seq=117 176 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:35,125 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=85 snr=0.0 rssi=-69 dump=71f2641c26f26e0248203e21704a3683f8ec2d7e95839112fcfffdfb8c343624acb059552012f3f481b8a2f0e29ac0fe4421c3f96a1b76be2e9ee72a8c6a3dd60e1f2f2e6f4c327b72076fdbc2987033fec18e098e + +2026-08-24 16:24:35,975 INFO image_rx_daemon: stats: rx_frames=211 rx_decode_err=0 frames_published=58 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=5 parity_recon=0 + +2026-08-24 16:24:35,977 INFO image_rx_daemon: air_gap: n=74 dt_med=117186us dt_p95=216289us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:24:35,981 INFO image_rx_daemon: air_gap_hist(ms): <120:53 <200:14 <400:7 + +2026-08-24 16:24:35,982 INFO image_rx_daemon: rx_rf: n_rssi=74 n_snr=74 rssi[min/med/max]=-74/-72/-72 snr[min/med/max]=5.0/6.0/7.0 + +2026-08-24 16:24:35,982 INFO image_rx_daemon: phase_telemetry: valid=74 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:24:35,983 INFO image_rx_daemon: air_gap_by_class: seq: n=61 med=117.1ms | boundary: n=11 med=174.5ms | post_loss: n=2 med=234.2ms + +2026-08-24 16:24:35,984 INFO image_rx_daemon: lost_frag_idx: n=2 idx0=0 (0.00% of idx0 arrivals) other=2 (3.08%) verdict=not-clustered | top 9:1 5:1 + +2026-08-24 16:24:37,667 INFO image_rx_daemon: published frame_id=0 seq=122 2953 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:38,067 INFO image_rx_daemon: published frame_id=0 seq=123 184 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:38,068 INFO image_rx_daemon: published frame_id=0 seq=123 202 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:39,670 INFO image_rx_daemon: published frame_id=0 seq=130 2985 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:40,109 INFO image_rx_daemon: published frame_id=0 seq=135 234 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:40,110 INFO image_rx_daemon: published frame_id=0 seq=135 235 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:41,707 INFO image_rx_daemon: published frame_id=0 seq=138 2959 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:42,135 INFO image_rx_daemon: published frame_id=0 seq=143 220 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:42,136 INFO image_rx_daemon: published frame_id=0 seq=143 242 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:43,756 INFO image_rx_daemon: published frame_id=0 seq=146 3000 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:45,386 INFO image_rx_daemon: published frame_id=0 seq=152 2993 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:45,992 INFO image_rx_daemon: stats: rx_frames=287 rx_decode_err=0 frames_published=69 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=6 parity_recon=0 + +2026-08-24 16:24:45,994 INFO image_rx_daemon: air_gap: n=76 dt_med=117182us dt_p95=199889us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:24:45,996 INFO image_rx_daemon: air_gap_hist(ms): <120:57 <200:16 <400:3 + +2026-08-24 16:24:45,998 INFO image_rx_daemon: rx_rf: n_rssi=76 n_snr=76 rssi[min/med/max]=-73/-72/-72 snr[min/med/max]=5.0/6.0/7.0 + +2026-08-24 16:24:45,999 INFO image_rx_daemon: phase_telemetry: valid=76 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:24:46,000 INFO image_rx_daemon: air_gap_by_class: seq: n=67 med=117.1ms | boundary: n=9 med=186.5ms + +2026-08-24 16:24:46,971 INFO image_rx_daemon: published frame_id=0 seq=154 2897 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:47,364 INFO image_rx_daemon: published frame_id=0 seq=161 237 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:47,365 INFO image_rx_daemon: published frame_id=0 seq=161 212 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:48,973 INFO image_rx_daemon: published frame_id=0 seq=168 2983 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:49,395 INFO image_rx_daemon: published frame_id=0 seq=173 237 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:49,395 INFO image_rx_daemon: published frame_id=0 seq=173 222 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:50,780 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=110 snr=0.0 rssi=-69 dump=ebe4e82dea8ef0a40d225cbafab1844d15225603f2e2f8851bc49665bc21d78254726d6ed46b75a4b31854098588d527d8d3600aad14a169020a6e21fb27af28da6f67d953fcb38f79d229de9095148316ae70c34aa3492c66cf54a79392ac143a7563475737f9b6afea8d2f3b45 + +2026-08-24 16:24:51,427 INFO image_rx_daemon: published frame_id=0 seq=181 239 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:51,428 INFO image_rx_daemon: published frame_id=0 seq=181 212 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:52,764 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=2.5 rssi=-73 dump=01c2000000000000feb80a5bf003005d012a20002000fec15ca64eb42525b32868428018896400a927d5c247b4b398bb4c4f0e8800cee90f6e49a766646dafed4a77fcabcd37d36c4f7d0247479a9a748f36393d43176bb28b0765b8c4070db1986615d7cf0000006152495e465a00000057454250565038204a0000005003009d012a2000200026916030583327a7a7c300907b20058763780b7a36220ad00a00fc7fd8e4f54bb2fafbead7c99a5ffd5df9dbf530eedd5bab20ada6e3e986d3c479e15fcb473d18000000b352494646ac000000574542505a903d20a00000003103009d0126200020403ec158a24d67a53252280aba4018096c0c + +2026-08-24 16:24:53,143 INFO image_rx_daemon: published frame_id=0 seq=191 178 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:54,486 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=1.8 rssi=-69 dump=0102000000000000fec0098ccb8ae595325c4dbc09da85dc8062cd1c31f6ebafe50665a447cc5cd348e8cb7027ad325592517c56308b88526332c929527e09f9439636693084a4fde3224f30f946636077a155243c530bdf639068a91ac5ae5d2308b441429793268d461d11c4436b7d6ddce9d004b079281acb00ef3ddc6cc226b44a92d07b413ac89946dad07e2cad474736e5e1c55ba7844fe874feb547e2cc9bba70050f1c39676046e085ece5f04408f42590d34248ae926ccd64b504d1f46420412f4a9504d57c975069ac17d10f5cf539c7d3f597d2d201262bcf9924b56ab1188050125187438b40933e23660d02e291671d2e423ca96f + +2026-08-24 16:24:54,936 INFO image_rx_daemon: published frame_id=0 seq=197 230 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:56,007 INFO image_rx_daemon: stats: rx_frames=359 rx_decode_err=0 frames_published=79 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=8 parity_recon=0 + +2026-08-24 16:24:56,010 INFO image_rx_daemon: air_gap: n=72 dt_med=117197us dt_p95=220470us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:24:56,014 INFO image_rx_daemon: air_gap_hist(ms): <120:52 <200:13 <400:7 + +2026-08-24 16:24:56,018 INFO image_rx_daemon: rx_rf: n_rssi=72 n_snr=72 rssi[min/med/max]=-73/-72/-72 snr[min/med/max]=5.0/5.0/6.0 + +2026-08-24 16:24:56,018 INFO image_rx_daemon: phase_telemetry: valid=72 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:24:56,019 INFO image_rx_daemon: air_gap_by_class: seq: n=59 med=117.2ms | boundary: n=10 med=180.5ms | post_loss: n=3 med=268.1ms + +2026-08-24 16:24:56,019 INFO image_rx_daemon: lost_frag_idx: n=3 idx0=0 (0.00% of idx0 arrivals) other=3 (2.27%) verdict=not-clustered | top 10:2 11:1 + +2026-08-24 16:24:56,543 INFO image_rx_daemon: published frame_id=0 seq=198 2953 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:57,346 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=200 snr=-9.0 rssi=-106 dump=6a20f64a3f0c67b27f3f2ddfe798f90d8b1c5498eddeb8f5410589459293322485fb53ee7e25e879e0b48c992ca66215c4c2aef70ea4d98364b58b4b3dafe2100869bcafbad44d982ea62ea1444619f15f6e9dc85984600b19d5bfc198b9f8222e4135d549a17973fea2edf2fbb9f3cd3098365dbe3eca0ef951f2efd2b8e7801e8c5ae116fc3eb57c3a4e26027697d6a662b4da191adf6919a13e5359b80a36045cb83aee1fc6f77b0e988abb7f3d31a7c2095cb12473a42c9b4ce1ce9236f3da21a5c1a54d4f46 + +2026-08-24 16:24:58,347 INFO image_rx_daemon: published frame_id=0 seq=211 200 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:24:59,955 INFO image_rx_daemon: published frame_id=0 seq=212 2974 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:00,383 INFO image_rx_daemon: published frame_id=0 seq=217 216 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:00,384 INFO image_rx_daemon: published frame_id=0 seq=217 243 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:02,002 INFO image_rx_daemon: published frame_id=0 seq=220 2992 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:02,419 INFO image_rx_daemon: published frame_id=0 seq=225 229 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:02,420 INFO image_rx_daemon: published frame_id=0 seq=225 230 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:04,023 INFO image_rx_daemon: published frame_id=0 seq=228 2985 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:04,184 INFO image_rx_daemon: published frame_id=0 seq=235 184 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:05,776 INFO image_rx_daemon: published frame_id=0 seq=236 2915 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:05,915 INFO image_rx_daemon: published frame_id=0 seq=241 178 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:06,021 INFO image_rx_daemon: stats: rx_frames=434 rx_decode_err=0 frames_published=91 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=10 parity_recon=0 + +2026-08-24 16:25:06,021 INFO image_rx_daemon: air_gap: n=75 dt_med=117168us dt_p95=223034us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:25:06,022 INFO image_rx_daemon: air_gap_hist(ms): <120:55 <200:15 <400:5 + +2026-08-24 16:25:06,023 INFO image_rx_daemon: rx_rf: n_rssi=75 n_snr=75 rssi[min/med/max]=-74/-72/-72 snr[min/med/max]=5.0/6.0/6.0 + +2026-08-24 16:25:06,023 INFO image_rx_daemon: phase_telemetry: valid=75 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:25:06,024 INFO image_rx_daemon: air_gap_by_class: seq: n=64 med=117.1ms | boundary: n=10 med=179.3ms | post_loss: n=1 med=234.2ms + +2026-08-24 16:25:06,024 INFO image_rx_daemon: lost_frag_idx: n=1 idx0=0 (0.00% of idx0 arrivals) other=1 (1.52%) verdict=not-clustered | top 5:1 + +2026-08-24 16:25:07,528 INFO image_rx_daemon: published frame_id=0 seq=242 2986 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:09,302 INFO image_rx_daemon: published frame_id=0 seq=255 214 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:10,891 INFO image_rx_daemon: published frame_id=0 seq=0 2949 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:11,315 INFO image_rx_daemon: published frame_id=0 seq=5 237 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:11,316 INFO image_rx_daemon: published frame_id=0 seq=5 224 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:12,923 INFO image_rx_daemon: published frame_id=0 seq=8 2979 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:13,131 INFO image_rx_daemon: published frame_id=0 seq=13 239 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:13,280 INFO image_rx_daemon: published frame_id=0 seq=15 212 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:13,451 INFO image_rx_daemon: published frame_id=0 seq=21 224 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:15,025 INFO image_rx_daemon: published frame_id=0 seq=22 2923 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:15,263 INFO image_rx_daemon: published frame_id=0 seq=23 241 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:16,029 INFO image_rx_daemon: stats: rx_frames=510 rx_decode_err=0 frames_published=102 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=11 parity_recon=0 + +2026-08-24 16:25:16,030 INFO image_rx_daemon: air_gap: n=76 dt_med=117184us dt_p95=212658us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:25:16,031 INFO image_rx_daemon: air_gap_hist(ms): <120:57 <200:14 <400:5 + +2026-08-24 16:25:16,032 INFO image_rx_daemon: rx_rf: n_rssi=76 n_snr=76 rssi[min/med/max]=-73/-72/-72 snr[min/med/max]=5.0/6.0/6.0 + +2026-08-24 16:25:16,033 INFO image_rx_daemon: phase_telemetry: valid=76 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:25:16,034 INFO image_rx_daemon: air_gap_by_class: seq: n=63 med=117.1ms | boundary: n=12 med=180.3ms | post_loss: n=1 med=234.4ms + +2026-08-24 16:25:16,035 INFO image_rx_daemon: lost_frag_idx: n=1 idx0=0 (0.00% of idx0 arrivals) other=1 (1.54%) verdict=not-clustered | top 4:1 + +2026-08-24 16:25:16,873 INFO image_rx_daemon: published frame_id=0 seq=24 2993 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:17,267 INFO image_rx_daemon: published frame_id=0 seq=29 226 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:17,268 INFO image_rx_daemon: published frame_id=0 seq=29 188 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:18,844 INFO image_rx_daemon: published frame_id=0 seq=32 2903 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:19,012 INFO image_rx_daemon: published frame_id=0 seq=39 200 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:20,620 INFO image_rx_daemon: published frame_id=0 seq=40 2983 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:20,815 INFO image_rx_daemon: published frame_id=0 seq=45 243 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:22,380 INFO image_rx_daemon: published frame_id=0 seq=46 2897 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:22,738 INFO image_rx_daemon: published frame_id=0 seq=51 176 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:22,739 INFO image_rx_daemon: published frame_id=0 seq=51 196 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:23,966 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=0.0 rssi=-69 dump=aeb6e8f0bac352a6364e36689793b2b1b3655db668516c30778f0067461912c042ef84bfa92e042e0906489b9b1ad53ba3188b93cd091457c15f3c011f35c9c96f8472f089e8ba6721d94c6bfdfa401ec286acc89a9ae7943d8301984bc27e10b96188b229bf01376f694d95c933851cadcfa1cc87743487df5d66e5f677ffa05156e4ed0b2c73c90569b692abf3fff67076ea5e69081551c37e6251147138e93e551d8f19c01729085b7840f3de25761b78bfe48d1f6dbe0464d8236f793cda4ad52f87988897f1f61abd7e8bf2ff07875adb267da7bbeb46f7a6c6fef6f3fa0f65d99f8959f62e5e99772c034175c2826e9438b6856728239ca9 + +2026-08-24 16:25:24,767 INFO image_rx_daemon: published frame_id=0 seq=59 222 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:24,768 INFO image_rx_daemon: published frame_id=0 seq=59 222 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:26,040 INFO image_rx_daemon: stats: rx_frames=584 rx_decode_err=0 frames_published=114 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=12 parity_recon=0 + +2026-08-24 16:25:26,044 INFO image_rx_daemon: air_gap: n=74 dt_med=117172us dt_p95=207367us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:25:26,052 INFO image_rx_daemon: air_gap_hist(ms): <120:54 <200:15 <400:5 + +2026-08-24 16:25:26,057 INFO image_rx_daemon: rx_rf: n_rssi=74 n_snr=74 rssi[min/med/max]=-74/-72/-68 snr[min/med/max]=0.0/6.0/7.0 + +2026-08-24 16:25:26,057 INFO image_rx_daemon: phase_telemetry: valid=74 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:25:26,058 INFO image_rx_daemon: air_gap_by_class: seq: n=63 med=117.1ms | boundary: n=10 med=180.9ms | post_loss: n=1 med=227.7ms + +2026-08-24 16:25:26,058 INFO image_rx_daemon: lost_frag_idx: n=1 idx0=0 (0.00% of idx0 arrivals) other=1 (1.54%) verdict=not-clustered | top 9:1 + +2026-08-24 16:25:26,331 INFO image_rx_daemon: published frame_id=0 seq=62 2901 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:26,719 INFO image_rx_daemon: published frame_id=0 seq=67 228 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:26,721 INFO image_rx_daemon: published frame_id=0 seq=67 210 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:28,498 INFO image_rx_daemon: published frame_id=0 seq=75 186 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:30,113 INFO image_rx_daemon: published frame_id=0 seq=76 2991 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:30,304 INFO image_rx_daemon: published frame_id=0 seq=83 226 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:31,654 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=3.8 rssi=-73 dump=01c2000000000000fe540a0c1e4260f3de9d29eb358004a83106d09dbcdf136c467bed2f5330bab4baf4a91800ed5249464626000050574542505e503820da0000001058009d012a200020003ec14da04aa7afa30337fd5802601808ac009d3284640d980d4f9d255f63bfb43f660a9c24edd4708c0fe01fa60c9e765fdff54ec9ad693a8790a3af51c28001c634e0f043df80fed44cffbf664d7a79d05b9ef3630e272e3dad4c5fcb664a7da76371f9a225334e1e34bb49635204a55aa1fcdbefdcf3f98f282b74a0444d9acef78d90a4f7ce5bdefffef1c8a4acb6661cc585412e6cc98d7388afae23fee6f8b3f74ae50a7c141d030dc9531455 + +2026-08-24 16:25:32,325 INFO image_rx_daemon: published frame_id=0 seq=89 220 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:32,326 INFO image_rx_daemon: published frame_id=0 seq=89 233 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:33,937 INFO image_rx_daemon: published frame_id=0 seq=92 2992 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:34,096 INFO image_rx_daemon: published frame_id=0 seq=97 196 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:34,288 INFO image_rx_daemon: published frame_id=0 seq=99 243 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:34,439 INFO image_rx_daemon: published frame_id=0 seq=105 178 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:36,007 INFO image_rx_daemon: published frame_id=0 seq=106 2905 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:36,066 INFO image_rx_daemon: stats: rx_frames=657 rx_decode_err=0 frames_published=127 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=14 parity_recon=0 + +2026-08-24 16:25:36,068 INFO image_rx_daemon: air_gap: n=73 dt_med=117207us dt_p95=220936us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:25:36,071 INFO image_rx_daemon: air_gap_hist(ms): <120:50 <200:17 <400:6 + +2026-08-24 16:25:36,072 INFO image_rx_daemon: rx_rf: n_rssi=73 n_snr=73 rssi[min/med/max]=-73/-72/-72 snr[min/med/max]=5.0/6.0/6.0 + +2026-08-24 16:25:36,073 INFO image_rx_daemon: phase_telemetry: valid=73 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:25:36,074 INFO image_rx_daemon: air_gap_by_class: seq: n=58 med=117.2ms | boundary: n=12 med=177.9ms | post_loss: n=2 med=234.5ms + +2026-08-24 16:25:36,074 INFO image_rx_daemon: lost_frag_idx: n=2 idx0=0 (0.00% of idx0 arrivals) other=2 (3.17%) verdict=not-clustered | top 8:1 10:1 + +2026-08-24 16:25:36,075 INFO image_rx_daemon: frag_reordered: 1 late out-of-order arrivals had a provisional loss retracted (in-order assumption violated — see RS-11.4) + +2026-08-24 16:25:36,183 INFO image_rx_daemon: published frame_id=0 seq=107 222 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:36,471 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=3.5 rssi=-69 dump=a3d4b57bf77f1d046d2c79683b3ae206449f7dff6808627e552ab7e3bdc75c156155df486c353f162aa1c649d2634cc16b1a4bd561a48728ce37d098af2ad01c4196285204bb9e63766ecbd44edf658c499e7b1d76fb69d76fbc3099476fdc7de1e8a672c8915fb50b01f2ef2b4569d418c851a582d8fe78434cbda5e17b81e5a6864e857a3cf98b3ef956865dd2f6169bda01a7c419f8d70ce4c7555a04156b19b8365fd8966cccd0cbae6ca640b5457daf8dae95a55f93dd356572614799db5c199a64e0486429dc7e276a704b83a5c79e99d0a8904355dba4435007600508819f3a7a5ec8733bac0769c75f63762d813753112f9644e1b7a4c4 + +2026-08-24 16:25:37,395 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=5.5 rssi=-69 dump=28fb8c2f8753ed050367cc3245ac62b6cf921eb59ca5b68c0bfda566c8d155dfdfa35a5826e57d5198a89ec826a6fe9d3959e642c860f21e97fbe5ed0a43213e3541e6b7616118561dd36525610811e597b979f2b2dd7294a5d7ca023fce5e3c9fef8a372169be327a9fa4d25c5edac74bee507d3a2c9c6fae6f455cf0572f7672cc938351ea6d9554faf2aa4ce7dd32017c253226d38efa73a4b97f99b0d1c4cab1385d20489e1611bb38701a1b7fc6f4a5f028842c73cac339ebe91c10b37c8d4d2ed2ef78546eff37efba7bc9990c2dcad641a39cd661da8cb809f234be7dc37dd84b081834491a790c111f0dd60a9779036959db19592f8e15 + +2026-08-24 16:25:37,911 INFO image_rx_daemon: published frame_id=0 seq=113 198 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:39,535 INFO image_rx_daemon: published frame_id=0 seq=114 2986 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:41,127 INFO image_rx_daemon: published frame_id=0 seq=120 2915 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:41,287 INFO image_rx_daemon: published frame_id=0 seq=127 198 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:42,883 INFO image_rx_daemon: published frame_id=0 seq=128 2949 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:43,312 INFO image_rx_daemon: published frame_id=0 seq=133 233 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:43,314 INFO image_rx_daemon: published frame_id=0 seq=133 206 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:44,933 INFO image_rx_daemon: published frame_id=0 seq=136 2979 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:45,083 INFO image_rx_daemon: published frame_id=0 seq=141 198 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:45,255 INFO image_rx_daemon: published frame_id=0 seq=149 220 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:46,085 INFO image_rx_daemon: stats: rx_frames=731 rx_decode_err=0 frames_published=138 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=15 parity_recon=0 + +2026-08-24 16:25:46,089 INFO image_rx_daemon: air_gap: n=74 dt_med=117251us dt_p95=223268us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:25:46,098 INFO image_rx_daemon: air_gap_hist(ms): <120:54 <200:14 <400:6 + +2026-08-24 16:25:46,101 INFO image_rx_daemon: rx_rf: n_rssi=74 n_snr=74 rssi[min/med/max]=-73/-73/-72 snr[min/med/max]=5.0/5.0/7.0 + +2026-08-24 16:25:46,102 INFO image_rx_daemon: phase_telemetry: valid=74 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:25:46,102 INFO image_rx_daemon: air_gap_by_class: seq: n=60 med=117.2ms | boundary: n=12 med=179.6ms | post_loss: n=2 med=234.1ms + +2026-08-24 16:25:46,103 INFO image_rx_daemon: lost_frag_idx: n=2 idx0=0 (0.00% of idx0 arrivals) other=2 (3.12%) verdict=not-clustered | top 1:1 9:1 + +2026-08-24 16:25:46,846 INFO image_rx_daemon: published frame_id=0 seq=150 2923 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:47,051 INFO image_rx_daemon: published frame_id=0 seq=151 218 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:48,674 INFO image_rx_daemon: published frame_id=0 seq=152 2993 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:48,851 INFO image_rx_daemon: published frame_id=0 seq=157 222 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:50,425 INFO image_rx_daemon: published frame_id=0 seq=158 2915 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:52,049 INFO image_rx_daemon: published frame_id=0 seq=164 2985 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:52,232 INFO image_rx_daemon: published frame_id=0 seq=171 238 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:52,987 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=4.0 rssi=-69 dump=010200000000006212027ac99c6f17b82b5f6178b75d97b7decf81ad27e774346c18ba502c37d40b2e970e42e05a51210119321e4f4074824103d2f00eb76260c08436bd2b11dec8c86ba3b30f33d22f8eca840b3d7af5de5b9353198344b8bab6c1aa36b4f06355af61592ef983a4f92f534f77668152b7d092e580d49272375c8ce4daf68bba4806c50f9387da362dbf2530db6b6d40000ada965bd04ec6422378bd3eeb48dc21d2737bea0164199b1bc5596c42f2b305a4b9abaa457402d75199b192ba3919ed3216c6eeca9dfca73960bf56fe7c507dcfb0d5a094ce17e77b3cf6a0b3f59e1371b9fb8a7e975bfff7b9aefe8107fdd49756be + +2026-08-24 16:25:53,463 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=3.0 rssi=-72 dump=0102000000000000fea6090b5c848413ffc850270d6fc7027172120df325d6fbcb815d9d234fbc4d6182a323ec9248ca9dba51e1bf9aa12f1871687255a210baf9dbd317376192eeb1cc3310d9b893b4b64f41992707f9d069a423f7f6d138a128471aa12e6889921cbb8868e2343bc9968254b7b826b40caac21184390000006f522946466800080057cc4260565028205c0000c030040091012be0002050bec15c634eb445a3b388c80280b8c064003d32e1084c091537913d03240e418604fe8b50aef5d0b1579a0508cbc5d0eadf3eea0a9e99cad8adf9c7f65abd11d3235c933f5c04490ee1a472fbd0cdd700a58c7b38554676a2020003db + +2026-08-24 16:25:54,195 INFO image_rx_daemon: published frame_id=0 seq=177 212 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:54,197 INFO image_rx_daemon: published frame_id=0 seq=177 218 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:55,803 INFO image_rx_daemon: published frame_id=0 seq=180 2934 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:56,007 INFO image_rx_daemon: published frame_id=0 seq=185 228 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:56,111 INFO image_rx_daemon: stats: rx_frames=805 rx_decode_err=0 frames_published=149 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=16 parity_recon=0 + +2026-08-24 16:25:56,114 INFO image_rx_daemon: air_gap: n=74 dt_med=117169us dt_p95=222597us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:25:56,117 INFO image_rx_daemon: air_gap_hist(ms): <120:52 <200:17 <400:5 + +2026-08-24 16:25:56,119 INFO image_rx_daemon: rx_rf: n_rssi=74 n_snr=74 rssi[min/med/max]=-73/-72/-72 snr[min/med/max]=5.0/6.0/6.0 + +2026-08-24 16:25:56,121 INFO image_rx_daemon: phase_telemetry: valid=74 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:25:56,123 INFO image_rx_daemon: air_gap_by_class: seq: n=62 med=117.1ms | boundary: n=10 med=183.2ms | post_loss: n=2 med=234.6ms + +2026-08-24 16:25:56,123 INFO image_rx_daemon: lost_frag_idx: n=2 idx0=0 (0.00% of idx0 arrivals) other=2 (3.03%) verdict=not-clustered | top 5:1 9:1 + +2026-08-24 16:25:56,995 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=3.8 rssi=-69 dump=010200000000000c3a7e7a59a6dbec8fbf675198a06df23b4ea035adebb3d4514248795b35312459f35f3001c29f5d5f082661bfdc9644e35f7f6007219e5d956828642fda9a464753856188b0c158aec5bf708686b3def28b3a274980ad7cda14c95fbafffca9a1600c385e5f6bf98aa5b76fa4bbe4aea2abb4f49598c0f2bffb336f6e0e4b9cfade82da841a2016e4702393f386285dd3f3672011141b3764ee851bf68c2c58255124d2fc7c84954fee992ec7d2feb6f805de54aa5b8244f2e628f5f63fd447919440fd366ba7bd557a368c8c919ff5db47f62c58f2743b1bcd0705c42bc1bea77b84b54326a86edbb390aba474543793e2c424 + +2026-08-24 16:25:57,773 INFO image_rx_daemon: published frame_id=0 seq=193 192 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:59,392 INFO image_rx_daemon: published frame_id=0 seq=194 2985 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:59,763 INFO image_rx_daemon: published frame_id=0 seq=199 174 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:25:59,765 INFO image_rx_daemon: published frame_id=0 seq=199 194 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:01,362 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=55 snr=2.8 rssi=-73 dump=01c2000000000000fec00c0ca42cfef046da37edc731702ec16bdb690d43f66854acf90b633cc23f8dd46b08ff9534e20ec9b92a000020 + +2026-08-24 16:26:01,783 INFO image_rx_daemon: published frame_id=0 seq=207 190 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:01,784 INFO image_rx_daemon: published frame_id=0 seq=207 225 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:03,386 INFO image_rx_daemon: published frame_id=0 seq=210 3000 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:03,785 INFO image_rx_daemon: published frame_id=0 seq=215 237 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:03,787 INFO image_rx_daemon: published frame_id=0 seq=215 200 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:05,356 INFO image_rx_daemon: published frame_id=0 seq=218 2897 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:05,546 INFO image_rx_daemon: published frame_id=0 seq=223 241 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:05,687 INFO image_rx_daemon: published frame_id=0 seq=231 198 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:06,128 INFO image_rx_daemon: stats: rx_frames=879 rx_decode_err=0 frames_published=161 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=18 parity_recon=0 + +2026-08-24 16:26:06,130 INFO image_rx_daemon: air_gap: n=74 dt_med=117191us dt_p95=204967us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:26:06,134 INFO image_rx_daemon: air_gap_hist(ms): <120:53 <200:16 <400:5 + +2026-08-24 16:26:06,134 INFO image_rx_daemon: rx_rf: n_rssi=74 n_snr=74 rssi[min/med/max]=-73/-72/-71 snr[min/med/max]=5.0/6.0/7.0 + +2026-08-24 16:26:06,135 INFO image_rx_daemon: phase_telemetry: valid=74 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:26:06,136 INFO image_rx_daemon: air_gap_by_class: seq: n=61 med=117.1ms | boundary: n=12 med=179.6ms | post_loss: n=1 med=225.3ms + +2026-08-24 16:26:06,137 INFO image_rx_daemon: lost_frag_idx: n=2 idx0=0 (0.00% of idx0 arrivals) other=2 (3.12%) verdict=not-clustered | top 7:1 12:1 + +2026-08-24 16:26:07,299 INFO image_rx_daemon: published frame_id=0 seq=232 2983 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:07,492 INFO image_rx_daemon: published frame_id=0 seq=233 242 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:09,075 INFO image_rx_daemon: published frame_id=0 seq=234 2905 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:09,247 INFO image_rx_daemon: published frame_id=0 seq=239 226 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:10,856 INFO image_rx_daemon: published frame_id=0 seq=240 2975 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:11,272 INFO image_rx_daemon: published frame_id=0 seq=245 224 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:11,273 INFO image_rx_daemon: published frame_id=0 seq=245 220 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:12,847 INFO image_rx_daemon: published frame_id=0 seq=248 2915 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:13,019 INFO image_rx_daemon: published frame_id=0 seq=255 241 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:14,616 INFO image_rx_daemon: published frame_id=0 seq=0 2949 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:14,813 INFO image_rx_daemon: published frame_id=0 seq=5 220 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:16,141 INFO image_rx_daemon: stats: rx_frames=955 rx_decode_err=0 frames_published=172 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=18 parity_recon=0 + +2026-08-24 16:26:16,145 INFO image_rx_daemon: air_gap: n=76 dt_med=117147us dt_p95=193735us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:26:16,151 INFO image_rx_daemon: air_gap_hist(ms): <120:59 <200:14 <400:3 + +2026-08-24 16:26:16,151 INFO image_rx_daemon: rx_rf: n_rssi=76 n_snr=76 rssi[min/med/max]=-73/-72/-72 snr[min/med/max]=5.0/6.0/6.0 + +2026-08-24 16:26:16,152 INFO image_rx_daemon: phase_telemetry: valid=76 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:26:16,152 INFO image_rx_daemon: air_gap_by_class: seq: n=65 med=117.1ms | boundary: n=10 med=183.4ms + +2026-08-24 16:26:16,410 INFO image_rx_daemon: published frame_id=0 seq=6 2953 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:16,849 INFO image_rx_daemon: published frame_id=0 seq=11 220 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:16,850 INFO image_rx_daemon: published frame_id=0 seq=11 237 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:18,451 INFO image_rx_daemon: published frame_id=0 seq=14 2991 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:18,867 INFO image_rx_daemon: published frame_id=0 seq=19 200 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:18,868 INFO image_rx_daemon: published frame_id=0 seq=19 239 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:20,462 INFO image_rx_daemon: published frame_id=0 seq=22 2923 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:20,894 INFO image_rx_daemon: published frame_id=0 seq=27 180 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:20,895 INFO image_rx_daemon: published frame_id=0 seq=27 224 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:22,472 INFO image_rx_daemon: published frame_id=0 seq=30 2915 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:22,863 INFO image_rx_daemon: published frame_id=0 seq=35 202 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:22,864 INFO image_rx_daemon: published frame_id=0 seq=35 222 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:24,483 INFO image_rx_daemon: published frame_id=0 seq=38 2980 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:24,854 INFO image_rx_daemon: published frame_id=0 seq=43 178 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:24,856 INFO image_rx_daemon: published frame_id=0 seq=43 180 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:26,157 INFO image_rx_daemon: stats: rx_frames=1029 rx_decode_err=0 frames_published=187 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=18 parity_recon=0 + +2026-08-24 16:26:26,159 INFO image_rx_daemon: air_gap: n=74 dt_med=117163us dt_p95=214794us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:26:26,163 INFO image_rx_daemon: air_gap_hist(ms): <120:54 <200:13 <400:7 + +2026-08-24 16:26:26,165 INFO image_rx_daemon: rx_rf: n_rssi=74 n_snr=74 rssi[min/med/max]=-74/-72/-71 snr[min/med/max]=5.0/6.0/7.0 + +2026-08-24 16:26:26,166 INFO image_rx_daemon: phase_telemetry: valid=74 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:26:26,167 INFO image_rx_daemon: air_gap_by_class: seq: n=64 med=117.1ms | boundary: n=10 med=182.6ms + +2026-08-24 16:26:26,416 INFO image_rx_daemon: published frame_id=0 seq=46 2897 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:26,579 INFO image_rx_daemon: published frame_id=0 seq=51 192 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:26,735 INFO image_rx_daemon: published frame_id=0 seq=59 200 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:28,313 INFO image_rx_daemon: published frame_id=0 seq=60 2919 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:28,507 INFO image_rx_daemon: published frame_id=0 seq=61 198 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:30,075 INFO image_rx_daemon: published frame_id=0 seq=62 2901 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:30,260 INFO image_rx_daemon: published frame_id=0 seq=67 222 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:31,815 INFO image_rx_daemon: published frame_id=0 seq=68 2892 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:32,219 INFO image_rx_daemon: published frame_id=0 seq=73 222 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:32,221 INFO image_rx_daemon: published frame_id=0 seq=73 232 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:33,835 INFO image_rx_daemon: published frame_id=0 seq=76 2991 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:35,465 INFO image_rx_daemon: published frame_id=0 seq=82 3000 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:35,870 INFO image_rx_daemon: published frame_id=0 seq=83 202 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:35,871 INFO image_rx_daemon: published frame_id=0 seq=83 239 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:36,169 INFO image_rx_daemon: stats: rx_frames=1104 rx_decode_err=0 frames_published=201 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=18 parity_recon=0 + +2026-08-24 16:26:36,170 INFO image_rx_daemon: air_gap: n=75 dt_med=117161us dt_p95=212403us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:26:36,171 INFO image_rx_daemon: air_gap_hist(ms): <120:54 <200:16 <400:5 + +2026-08-24 16:26:36,173 INFO image_rx_daemon: rx_rf: n_rssi=75 n_snr=75 rssi[min/med/max]=-73/-72/-72 snr[min/med/max]=5.0/6.0/6.0 + +2026-08-24 16:26:36,175 INFO image_rx_daemon: phase_telemetry: valid=75 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:26:36,177 INFO image_rx_daemon: air_gap_by_class: seq: n=63 med=117.1ms | boundary: n=12 med=180.3ms + +2026-08-24 16:26:37,435 INFO image_rx_daemon: published frame_id=0 seq=90 2897 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:37,831 INFO image_rx_daemon: published frame_id=0 seq=95 220 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:37,831 INFO image_rx_daemon: published frame_id=0 seq=95 218 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:39,410 INFO image_rx_daemon: published frame_id=0 seq=98 2910 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:39,802 INFO image_rx_daemon: published frame_id=0 seq=103 235 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:39,803 INFO image_rx_daemon: published frame_id=0 seq=103 220 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:41,387 INFO image_rx_daemon: published frame_id=0 seq=106 2905 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:41,775 INFO image_rx_daemon: published frame_id=0 seq=111 235 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:41,777 INFO image_rx_daemon: published frame_id=0 seq=111 212 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:43,396 INFO image_rx_daemon: published frame_id=0 seq=114 2986 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:43,819 INFO image_rx_daemon: published frame_id=0 seq=119 224 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:43,820 INFO image_rx_daemon: published frame_id=0 seq=119 237 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:45,415 INFO image_rx_daemon: published frame_id=0 seq=122 2953 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:45,820 INFO image_rx_daemon: published frame_id=0 seq=127 226 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:45,821 INFO image_rx_daemon: published frame_id=0 seq=127 194 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:46,187 INFO image_rx_daemon: stats: rx_frames=1176 rx_decode_err=0 frames_published=216 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=18 parity_recon=0 + +2026-08-24 16:26:46,188 INFO image_rx_daemon: air_gap: n=72 dt_med=117193us dt_p95=221338us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:26:46,190 INFO image_rx_daemon: air_gap_hist(ms): <120:52 <200:12 <400:8 + +2026-08-24 16:26:46,191 INFO image_rx_daemon: rx_rf: n_rssi=72 n_snr=72 rssi[min/med/max]=-73/-72/-71 snr[min/med/max]=5.0/6.0/6.0 + +2026-08-24 16:26:46,192 INFO image_rx_daemon: phase_telemetry: valid=72 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:26:46,193 INFO image_rx_daemon: air_gap_by_class: seq: n=62 med=117.2ms | boundary: n=10 med=180.1ms + +2026-08-24 16:26:47,434 INFO image_rx_daemon: published frame_id=0 seq=130 2985 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:47,815 INFO image_rx_daemon: published frame_id=0 seq=135 184 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:47,816 INFO image_rx_daemon: published frame_id=0 seq=135 178 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:49,423 INFO image_rx_daemon: published frame_id=0 seq=138 2959 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:49,832 INFO image_rx_daemon: published frame_id=0 seq=143 231 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:49,833 INFO image_rx_daemon: published frame_id=0 seq=143 182 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:51,458 INFO image_rx_daemon: published frame_id=0 seq=146 3000 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:51,864 INFO image_rx_daemon: published frame_id=0 seq=151 233 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:51,865 INFO image_rx_daemon: published frame_id=0 seq=151 196 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:53,419 INFO image_rx_daemon: published frame_id=0 seq=154 2897 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:53,831 INFO image_rx_daemon: published frame_id=0 seq=159 238 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:53,832 INFO image_rx_daemon: published frame_id=0 seq=159 236 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:55,400 INFO image_rx_daemon: published frame_id=0 seq=162 2910 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:55,791 INFO image_rx_daemon: published frame_id=0 seq=167 224 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:55,792 INFO image_rx_daemon: published frame_id=0 seq=167 218 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:56,206 INFO image_rx_daemon: stats: rx_frames=1249 rx_decode_err=0 frames_published=231 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=18 parity_recon=0 + +2026-08-24 16:26:56,207 INFO image_rx_daemon: air_gap: n=74 dt_med=117145us dt_p95=217517us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:26:56,208 INFO image_rx_daemon: air_gap_hist(ms): <120:54 <200:14 <400:6 + +2026-08-24 16:26:56,209 INFO image_rx_daemon: rx_rf: n_rssi=74 n_snr=74 rssi[min/med/max]=-74/-72/-72 snr[min/med/max]=5.0/6.0/7.0 + +2026-08-24 16:26:56,209 INFO image_rx_daemon: phase_telemetry: valid=74 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:26:56,210 INFO image_rx_daemon: air_gap_by_class: seq: n=64 med=117.1ms | boundary: n=10 med=180.5ms + +2026-08-24 16:26:57,364 INFO image_rx_daemon: published frame_id=0 seq=170 2905 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:57,751 INFO image_rx_daemon: published frame_id=0 seq=175 182 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:57,752 INFO image_rx_daemon: published frame_id=0 seq=175 241 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:59,366 INFO image_rx_daemon: published frame_id=0 seq=178 2986 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:59,779 INFO image_rx_daemon: published frame_id=0 seq=183 226 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:26:59,781 INFO image_rx_daemon: published frame_id=0 seq=183 212 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:01,380 INFO image_rx_daemon: published frame_id=0 seq=186 2953 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:01,809 INFO image_rx_daemon: published frame_id=0 seq=191 235 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:01,810 INFO image_rx_daemon: published frame_id=0 seq=191 222 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:03,430 INFO image_rx_daemon: published frame_id=0 seq=194 2985 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:03,827 INFO image_rx_daemon: published frame_id=0 seq=199 237 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:03,828 INFO image_rx_daemon: published frame_id=0 seq=199 210 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:05,431 INFO image_rx_daemon: published frame_id=0 seq=202 2959 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:05,859 INFO image_rx_daemon: published frame_id=0 seq=207 226 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:05,860 INFO image_rx_daemon: published frame_id=0 seq=207 235 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:06,223 INFO image_rx_daemon: stats: rx_frames=1323 rx_decode_err=0 frames_published=246 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=18 parity_recon=0 + +2026-08-24 16:27:06,225 INFO image_rx_daemon: air_gap: n=73 dt_med=117157us dt_p95=214575us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:27:06,229 INFO image_rx_daemon: air_gap_hist(ms): <120:53 <200:12 <400:8 + +2026-08-24 16:27:06,231 INFO image_rx_daemon: rx_rf: n_rssi=73 n_snr=73 rssi[min/med/max]=-73/-72/-72 snr[min/med/max]=5.0/6.0/6.0 + +2026-08-24 16:27:06,231 INFO image_rx_daemon: phase_telemetry: valid=73 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:27:06,232 INFO image_rx_daemon: air_gap_by_class: seq: n=62 med=117.1ms | boundary: n=10 med=186.1ms + +2026-08-24 16:27:07,482 INFO image_rx_daemon: published frame_id=0 seq=210 3000 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:07,664 INFO image_rx_daemon: published frame_id=0 seq=215 226 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:07,802 INFO image_rx_daemon: published frame_id=0 seq=223 178 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:08,451 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=-1.8 rssi=-69 dump=0102000000000000fee0030b4542359c0a2dc577ca8bf64025f6dc7f53fe0e1ad853e88e14e07f00239fff7c2687f724c330242f61c1195dfc5e1d83f3340f72f36e9c28794c9123ad6525c5f7e57979fd2b614015e5194d604227b53c9644fb8bc2c131335ea0f1f8767cfa375e63ad1900c542abd9cc871cdf65cd73f681f2589c8e9fb6fd6e36004f2a8ddcf3e7bee70940d5aae733b79fe7c8b451a75a80a2d4b2b653af50cc07f03890ef4542d354bd1eb6e288928b45baefb16713257fc41c0a4be8e1b691efaa79940030f6e61df5fde3cc4f38e7bb52ba64dfa20975860e1bc9f3107446c89bd6a0c8c183488f3bea7a2e10a87537b526 + +2026-08-24 16:27:09,557 INFO image_rx_daemon: published frame_id=0 seq=225 239 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:11,121 INFO image_rx_daemon: published frame_id=0 seq=226 2910 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:11,286 INFO image_rx_daemon: published frame_id=0 seq=231 231 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:12,897 INFO image_rx_daemon: published frame_id=0 seq=232 2983 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:13,316 INFO image_rx_daemon: published frame_id=0 seq=237 204 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:13,317 INFO image_rx_daemon: published frame_id=0 seq=237 235 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:14,924 INFO image_rx_daemon: published frame_id=0 seq=240 2975 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:15,360 INFO image_rx_daemon: published frame_id=0 seq=245 232 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:15,361 INFO image_rx_daemon: published frame_id=0 seq=245 242 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:16,235 INFO image_rx_daemon: stats: rx_frames=1398 rx_decode_err=0 frames_published=258 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=19 parity_recon=0 + +2026-08-24 16:27:16,235 INFO image_rx_daemon: air_gap: n=75 dt_med=117150us dt_p95=220463us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:27:16,236 INFO image_rx_daemon: air_gap_hist(ms): <120:55 <200:15 <400:5 + +2026-08-24 16:27:16,236 INFO image_rx_daemon: rx_rf: n_rssi=75 n_snr=75 rssi[min/med/max]=-73/-73/-72 snr[min/med/max]=5.0/6.0/6.0 + +2026-08-24 16:27:16,237 INFO image_rx_daemon: phase_telemetry: valid=75 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:27:16,237 INFO image_rx_daemon: air_gap_by_class: seq: n=63 med=117.1ms | boundary: n=11 med=175.0ms | post_loss: n=1 med=227.4ms + +2026-08-24 16:27:16,238 INFO image_rx_daemon: lost_frag_idx: n=1 idx0=0 (0.00% of idx0 arrivals) other=1 (0.22%) verdict=not-clustered | top 4:1 + +2026-08-24 16:27:16,238 INFO image_rx_daemon: frag_reordered: 2 late out-of-order arrivals had a provisional loss retracted (in-order assumption violated — see RS-11.4) + +2026-08-24 16:27:16,943 INFO image_rx_daemon: published frame_id=0 seq=248 2915 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:17,119 INFO image_rx_daemon: published frame_id=0 seq=255 224 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:18,711 INFO image_rx_daemon: published frame_id=0 seq=0 2949 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:18,918 INFO image_rx_daemon: published frame_id=0 seq=5 231 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:20,512 INFO image_rx_daemon: published frame_id=0 seq=6 2953 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:21,224 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=96 snr=-0.5 rssi=-69 dump=b67901cb8861ea0c8106d7d3daf841cb201e2ee5d8bf1442a2091d71d6c3a65518a785121d0a50b96b53bfc2b7b03b89ff771a2f2a1c92551bdd678d8bb7b06d653a166e2e814500b64df800dce70e18083f9871ecfdff85ee0c3278e36cd3f8 + +2026-08-24 16:27:22,331 INFO image_rx_daemon: published frame_id=0 seq=19 210 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:23,948 INFO image_rx_daemon: published frame_id=0 seq=20 2974 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:24,361 INFO image_rx_daemon: published frame_id=0 seq=25 218 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:24,362 INFO image_rx_daemon: published frame_id=0 seq=25 222 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:25,980 INFO image_rx_daemon: published frame_id=0 seq=28 2992 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:26,243 INFO image_rx_daemon: stats: rx_frames=1473 rx_decode_err=0 frames_published=268 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=20 parity_recon=0 + +2026-08-24 16:27:26,246 INFO image_rx_daemon: air_gap: n=75 dt_med=117199us dt_p95=202538us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:27:26,250 INFO image_rx_daemon: air_gap_hist(ms): <120:54 <200:17 <400:4 + +2026-08-24 16:27:26,252 INFO image_rx_daemon: rx_rf: n_rssi=75 n_snr=75 rssi[min/med/max]=-73/-72/-72 snr[min/med/max]=5.0/6.0/6.0 + +2026-08-24 16:27:26,252 INFO image_rx_daemon: phase_telemetry: valid=75 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:27:26,253 INFO image_rx_daemon: air_gap_by_class: seq: n=64 med=117.2ms | boundary: n=10 med=180.5ms | post_loss: n=1 med=234.3ms + +2026-08-24 16:27:26,253 INFO image_rx_daemon: lost_frag_idx: n=1 idx0=0 (0.00% of idx0 arrivals) other=1 (1.52%) verdict=not-clustered | top 5:1 + +2026-08-24 16:27:26,374 INFO image_rx_daemon: published frame_id=0 seq=33 206 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:26,375 INFO image_rx_daemon: published frame_id=0 seq=33 198 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:27,988 INFO image_rx_daemon: published frame_id=0 seq=36 2985 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:28,163 INFO image_rx_daemon: published frame_id=0 seq=43 200 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:29,740 INFO image_rx_daemon: published frame_id=0 seq=44 2915 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:29,895 INFO image_rx_daemon: published frame_id=0 seq=49 190 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:31,500 INFO image_rx_daemon: published frame_id=0 seq=50 2986 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:33,092 INFO image_rx_daemon: published frame_id=0 seq=56 2915 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:33,272 INFO image_rx_daemon: published frame_id=0 seq=63 235 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:35,306 INFO image_rx_daemon: published frame_id=0 seq=69 210 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:35,308 INFO image_rx_daemon: published frame_id=0 seq=69 233 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:36,268 INFO image_rx_daemon: stats: rx_frames=1545 rx_decode_err=0 frames_published=279 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=20 parity_recon=0 + +2026-08-24 16:27:36,270 INFO image_rx_daemon: air_gap: n=72 dt_med=117200us dt_p95=223138us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:27:36,274 INFO image_rx_daemon: air_gap_hist(ms): <120:52 <200:12 <400:8 + +2026-08-24 16:27:36,276 INFO image_rx_daemon: rx_rf: n_rssi=72 n_snr=72 rssi[min/med/max]=-73/-72/-72 snr[min/med/max]=5.0/6.0/6.0 + +2026-08-24 16:27:36,277 INFO image_rx_daemon: phase_telemetry: valid=72 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:27:36,278 INFO image_rx_daemon: air_gap_by_class: seq: n=58 med=117.2ms | boundary: n=10 med=180.6ms | post_loss: n=3 med=234.1ms + +2026-08-24 16:27:36,279 INFO image_rx_daemon: lost_frag_idx: n=4 idx0=0 (0.00% of idx0 arrivals) other=4 (6.06%) verdict=not-clustered | top 3:1 6:1 7:1 5:1 + +2026-08-24 16:27:36,279 INFO image_rx_daemon: frag_reordered: 1 late out-of-order arrivals had a provisional loss retracted (in-order assumption violated — see RS-11.4) + +2026-08-24 16:27:37,340 INFO image_rx_daemon: published frame_id=0 seq=77 242 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:37,341 INFO image_rx_daemon: published frame_id=0 seq=77 242 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:38,991 INFO image_rx_daemon: published frame_id=0 seq=80 2951 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:39,418 INFO image_rx_daemon: published frame_id=0 seq=85 210 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:39,419 INFO image_rx_daemon: published frame_id=0 seq=85 228 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:41,025 INFO image_rx_daemon: published frame_id=0 seq=88 2993 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:41,438 INFO image_rx_daemon: published frame_id=0 seq=93 229 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:41,439 INFO image_rx_daemon: published frame_id=0 seq=93 194 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:43,012 INFO image_rx_daemon: published frame_id=0 seq=96 2903 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:43,172 INFO image_rx_daemon: published frame_id=0 seq=103 222 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:44,783 INFO image_rx_daemon: published frame_id=0 seq=104 2983 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:44,955 INFO image_rx_daemon: published frame_id=0 seq=109 216 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:46,288 INFO image_rx_daemon: stats: rx_frames=1621 rx_decode_err=0 frames_published=291 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=22 parity_recon=0 + +2026-08-24 16:27:46,290 INFO image_rx_daemon: air_gap: n=76 dt_med=117161us dt_p95=208843us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:27:46,294 INFO image_rx_daemon: air_gap_hist(ms): <120:57 <200:14 <400:5 + +2026-08-24 16:27:46,296 INFO image_rx_daemon: rx_rf: n_rssi=76 n_snr=76 rssi[min/med/max]=-74/-72/-71 snr[min/med/max]=5.0/6.0/6.0 + +2026-08-24 16:27:46,297 INFO image_rx_daemon: phase_telemetry: valid=76 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:27:46,300 INFO image_rx_daemon: air_gap_by_class: seq: n=66 med=117.1ms | boundary: n=10 med=180.5ms + +2026-08-24 16:27:46,519 INFO image_rx_daemon: published frame_id=0 seq=110 2897 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:46,679 INFO image_rx_daemon: published frame_id=0 seq=117 198 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:48,302 INFO image_rx_daemon: published frame_id=0 seq=118 2985 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:48,473 INFO image_rx_daemon: published frame_id=0 seq=123 196 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:50,057 INFO image_rx_daemon: published frame_id=0 seq=124 2919 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:50,251 INFO image_rx_daemon: published frame_id=0 seq=131 200 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:51,811 INFO image_rx_daemon: published frame_id=0 seq=132 2892 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:52,187 INFO image_rx_daemon: published frame_id=0 seq=137 188 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:52,189 INFO image_rx_daemon: published frame_id=0 seq=137 231 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:52,699 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=0.0 rssi=-68 dump=ff0fabbf8d3f906d3e625af9ae38603e23515b51dfd68f178507f6fd5fa8903352929c963c96b29ebd7c5156731d267e099c22884e644acefb1c6bee626834c03df8cd810d5b734efb6e8860563d83bfc3227b53224ee6eb1b54fd3b85facf2d6dcba0e5f0b629e428512b0e92890c11e6a15ecc9557dbfbc5c4df22d2b260c3004deffe1dafdf2f22a725944b7be0cdaf611cca6a2ee1b5663d9b223a4884b3f63f17ebeb7d08f395c93bccbb526c3cc8d3dba32b0391418f012d7c6f1bbe0d07baca79d7eaed1d85172de1f8ef73904231777aae97285c2ec6fe2148f9bcd9e315b82e464ad8fee186882159e6265accee901c46bd4a74c7db63 + +2026-08-24 16:27:55,441 INFO image_rx_daemon: published frame_id=0 seq=146 3000 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:55,826 INFO image_rx_daemon: published frame_id=0 seq=147 206 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:55,827 INFO image_rx_daemon: published frame_id=0 seq=147 182 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:56,304 INFO image_rx_daemon: stats: rx_frames=1696 rx_decode_err=0 frames_published=303 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=23 parity_recon=0 + +2026-08-24 16:27:56,308 INFO image_rx_daemon: air_gap: n=75 dt_med=117144us dt_p95=206372us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:27:56,312 INFO image_rx_daemon: air_gap_hist(ms): <120:55 <200:16 <400:4 + +2026-08-24 16:27:56,312 INFO image_rx_daemon: rx_rf: n_rssi=75 n_snr=75 rssi[min/med/max]=-73/-72/-72 snr[min/med/max]=5.0/6.0/6.0 + +2026-08-24 16:27:56,313 INFO image_rx_daemon: phase_telemetry: valid=75 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:27:56,313 INFO image_rx_daemon: air_gap_by_class: seq: n=62 med=117.1ms | boundary: n=11 med=178.0ms | post_loss: n=1 med=234.2ms + +2026-08-24 16:27:56,314 INFO image_rx_daemon: lost_frag_idx: n=1 idx0=0 (0.00% of idx0 arrivals) other=1 (0.76%) verdict=not-clustered | top 3:1 + +2026-08-24 16:27:56,314 INFO image_rx_daemon: frag_reordered: 1 late out-of-order arrivals had a provisional loss retracted (in-order assumption violated — see RS-11.4) + +2026-08-24 16:27:57,392 INFO image_rx_daemon: published frame_id=0 seq=154 2897 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:57,572 INFO image_rx_daemon: published frame_id=0 seq=159 239 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:57,718 INFO image_rx_daemon: published frame_id=0 seq=161 196 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:57,909 INFO image_rx_daemon: published frame_id=0 seq=167 242 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:59,515 INFO image_rx_daemon: published frame_id=0 seq=168 2983 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:27:59,706 INFO image_rx_daemon: published frame_id=0 seq=169 232 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:01,289 INFO image_rx_daemon: published frame_id=0 seq=170 2905 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:01,451 INFO image_rx_daemon: published frame_id=0 seq=175 220 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:03,068 INFO image_rx_daemon: published frame_id=0 seq=176 2975 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:04,711 INFO image_rx_daemon: published frame_id=0 seq=182 2985 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:05,103 INFO image_rx_daemon: published frame_id=0 seq=183 194 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:05,104 INFO image_rx_daemon: published frame_id=0 seq=183 238 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:06,324 INFO image_rx_daemon: stats: rx_frames=1772 rx_decode_err=0 frames_published=315 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=23 parity_recon=0 + +2026-08-24 16:28:06,327 INFO image_rx_daemon: air_gap: n=76 dt_med=117131us dt_p95=193746us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:28:06,328 INFO image_rx_daemon: air_gap_hist(ms): <120:58 <200:15 <400:3 + +2026-08-24 16:28:06,329 INFO image_rx_daemon: rx_rf: n_rssi=76 n_snr=76 rssi[min/med/max]=-74/-72/-72 snr[min/med/max]=5.0/6.0/7.0 + +2026-08-24 16:28:06,330 INFO image_rx_daemon: phase_telemetry: valid=76 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:28:06,331 INFO image_rx_daemon: air_gap_by_class: seq: n=64 med=117.1ms | boundary: n=11 med=181.3ms + +2026-08-24 16:28:06,675 INFO image_rx_daemon: published frame_id=0 seq=190 2901 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:08,228 INFO image_rx_daemon: published frame_id=0 seq=196 2892 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:09,832 INFO image_rx_daemon: published frame_id=0 seq=198 2953 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:11,489 INFO image_rx_daemon: published frame_id=0 seq=204 2991 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:11,672 INFO image_rx_daemon: published frame_id=0 seq=217 235 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:12,203 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=2.2 rssi=-72 dump=01c20000000000003eda030b5038205e0000007004009d012a200a20003ec14ca74eb42523b7280802801869e400a92734399cb30042cc7089eb1320c8ea0000fedddc7b6fc2d55bf1b613d66abe1ed487396183cf75ed90b95e190c82c99d0c43f68445543f87e05f4275ade7e89dfc00f352494646ec0005005745425056503820e00000005007009d012a200020003e1556a44ca827a393300d62601a896c019d39c09a0fd2698066006e837000448f791e14c4bc415c03f4c19106d044959e80f53f2ea362b00000fef4b7f8270b7972fb2269c9187ffef0dc37fefbad17374a357787cfd57094d05e1b56417ac73f724114eb286cbae48431 + +2026-08-24 16:28:13,407 INFO image_rx_daemon: published frame_id=0 seq=223 224 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:14,971 INFO image_rx_daemon: published frame_id=0 seq=224 2903 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:15,126 INFO image_rx_daemon: published frame_id=0 seq=231 180 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:16,344 INFO image_rx_daemon: stats: rx_frames=1848 rx_decode_err=0 frames_published=323 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=24 parity_recon=0 + +2026-08-24 16:28:16,346 INFO image_rx_daemon: air_gap: n=76 dt_med=117140us dt_p95=213861us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:28:16,349 INFO image_rx_daemon: air_gap_hist(ms): <120:60 <200:10 <400:6 + +2026-08-24 16:28:16,349 INFO image_rx_daemon: rx_rf: n_rssi=76 n_snr=76 rssi[min/med/max]=-74/-72/-71 snr[min/med/max]=5.0/6.0/7.0 + +2026-08-24 16:28:16,353 INFO image_rx_daemon: phase_telemetry: valid=77 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:28:16,353 INFO image_rx_daemon: air_gap_by_class: seq: n=64 med=117.1ms | boundary: n=9 med=177.7ms | post_loss: n=1 med=234.2ms + +2026-08-24 16:28:16,354 INFO image_rx_daemon: lost_frag_idx: n=1 idx0=0 (0.00% of idx0 arrivals) other=1 (0.75%) verdict=not-clustered | top 3:1 + +2026-08-24 16:28:16,354 INFO image_rx_daemon: frag_reordered: 3 late out-of-order arrivals had a provisional loss retracted (in-order assumption violated — see RS-11.4) + +2026-08-24 16:28:16,730 INFO image_rx_daemon: published frame_id=0 seq=232 2983 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:16,898 INFO image_rx_daemon: published frame_id=0 seq=237 200 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:18,467 INFO image_rx_daemon: published frame_id=0 seq=238 2897 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:19,679 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=241 snr=-0.8 rssi=-68 dump=30f9dcd94aa3a065fbe3e47c06857199e91373f155a57962c4d3a7c2e9f749654be8e5239d8ac47fab9b8ea4fdb05b89ff778c2f3abfde0323de6ee58d591a3b375b8888d69e58519142506cbab668ab5342ad1f6b8c6fae92e4abd50ff4c0a5c13e80abf0d699c0f546fdb899ea9b4eb3ddcb9329897d1614efff47c9d9c85cb37cc77634a108340d5a92d828b35d34d4094fc6ecad5bed1038b3fc02f66a5c263f4f93167753c4b04fcc717892b2a4fcd7ee45c148fc927185ca7a9191b22edbb2c6ca06083196b6f9931c9d2eb77fcb5314b012f0ec7488d7e80faf2e1c35f8bd1da6699592fa0d09b3cb983548c5fc + +2026-08-24 16:28:20,249 INFO image_rx_daemon: published frame_id=0 seq=245 206 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:20,420 INFO image_rx_daemon: published frame_id=0 seq=1 234 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:20,530 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=199 snr=0.8 rssi=-69 dump=05d6f610a07fd6f1ebed9e4fcdd19adb42be16444864e898710afa680a271a00c589ca94d2a250bee5183a040e862340dbb636abf70848db27bcf25c510e06e88b74e19ed2c7effd561d0eae62b2f7279e71740978a3de3cd675f9edb1a20c9c8df375db1bbeca647bd42baab72cbc735f85b1e2e348ab8bbff296c3ad796c26adc9887974e0fbbab80789493b8e69470e99d33096730daf54c047edf91e961d43986b9347cbc656adbe4266b5d6286de221746c74a8a7d5b1c98bbfe3982fff9401e2b22bf692 + +2026-08-24 16:28:22,199 INFO image_rx_daemon: published frame_id=0 seq=3 208 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:23,434 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=1.8 rssi=-69 dump=0102000000000000fe04080bb3179990eb0d801cf05377688b62481c29b427dfc3508b8b1cc1f92a97471df426237a00ceec1c98463ce15fd8558964d77186eab383cdf848f264b914366553cb9a78392d979c80a18568574175eede9fb31efba2f94a9b698c2a3677118d6d89592935b984ad059c69f1c3229fe1abd4807d9dabd86ddf3c1f586b4ea4689141a9e1556418882514083f9743b7c25ca033b5bd922e025ab72e49ea7b0e9cc06c21f4f3e6e6c1e475386bbc21fc4a14c2fb447ef4fe11916fde06ec344a999f3b9cc4e01fa8e3ecacbbb97c63299996c577488865012baa3fcd91dead41c5fdca246628b1d5c0972e0cbc79628baa + +2026-08-24 16:28:23,937 INFO image_rx_daemon: published frame_id=0 seq=9 226 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:25,532 INFO image_rx_daemon: published frame_id=0 seq=10 2959 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:26,357 INFO image_rx_daemon: stats: rx_frames=1923 rx_decode_err=0 frames_published=331 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=27 parity_recon=0 + +2026-08-24 16:28:26,359 INFO image_rx_daemon: air_gap: n=75 dt_med=117171us dt_p95=213984us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:28:26,363 INFO image_rx_daemon: air_gap_hist(ms): <120:55 <200:15 <400:5 + +2026-08-24 16:28:26,364 INFO image_rx_daemon: rx_rf: n_rssi=74 n_snr=74 rssi[min/med/max]=-73/-72/-72 snr[min/med/max]=5.0/6.0/6.0 + +2026-08-24 16:28:26,365 INFO image_rx_daemon: phase_telemetry: valid=74 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:28:26,365 INFO image_rx_daemon: air_gap_by_class: seq: n=62 med=117.1ms | boundary: n=10 med=178.6ms | post_loss: n=3 med=234.4ms + +2026-08-24 16:28:26,366 INFO image_rx_daemon: lost_frag_idx: n=3 idx0=1 (9.09% of idx0 arrivals) other=2 (3.03%) verdict=CLUSTERED-AT-0 | top 9:2 0:1 + +2026-08-24 16:28:27,157 INFO image_rx_daemon: published frame_id=0 seq=16 2951 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:27,567 INFO image_rx_daemon: published frame_id=0 seq=17 194 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:27,568 INFO image_rx_daemon: published frame_id=0 seq=17 218 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:29,186 INFO image_rx_daemon: published frame_id=0 seq=24 2993 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:30,485 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=157 snr=2.2 rssi=-69 dump=179ffac9d3ddd1bcf2cdf44d8944028a149f8ad4e8523b2f3ece01013b74c46bbeb9a940b48e412b3c8da4bb6a0ec970b03aa9d079efc8ab40237b611771916d13f3dc9e4a2a83865ddf75cdeac162e89e05c2a8d84c5fe4e41e0554166086626ada97c307f2e9e45c42b083c504a66473f2a3e3cdd086a0ff06c18dfedb72165dd1624a261287c61a90fd1c911b797477553ce315356a1ed922dc2e5f + +2026-08-24 16:28:30,944 INFO image_rx_daemon: published frame_id=0 seq=31 233 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:32,558 INFO image_rx_daemon: published frame_id=0 seq=38 2980 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:34,147 INFO image_rx_daemon: published frame_id=0 seq=44 2915 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:34,495 INFO image_rx_daemon: published frame_id=0 seq=45 178 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:34,495 INFO image_rx_daemon: published frame_id=0 seq=45 198 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:35,947 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=-1.2 rssi=-69 dump=ac07b7c3a120faa5a2a59f9c665ddc8397b06a0b711576e72dc61967739d12f04635e08e6f22552d4386795d9b42b623a9722779494012578579aafb61e095a7cac50e9352631c8a21d4640c0a19929481dea6d8f1e4379084e13f56fb494df7644a32fcf9f12b8e853054ba138b569f8f6a1653bd6655828fa911c197b64305f49192b10e4d1cdbac495676f4b8e70e341c9fb5c45909f4f32425427ee780de4e4c0df4a74815f9f9654e6010e0de4e7c13ffb376dffef1983cbd85c9bcbf8888d576ec94f6453e1714d2dc1ab3261ca69c1e7cac154b6bff6652b0c5fcf9d26c42b0fbdb98667eb71e855ac6a3c1a16f31f24ff466aac645285c + +2026-08-24 16:28:36,384 INFO image_rx_daemon: stats: rx_frames=1997 rx_decode_err=0 frames_published=340 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=28 parity_recon=0 + +2026-08-24 16:28:36,386 INFO image_rx_daemon: air_gap: n=74 dt_med=117139us dt_p95=209856us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:28:36,388 INFO image_rx_daemon: air_gap_hist(ms): <120:55 <200:14 <400:5 + +2026-08-24 16:28:36,389 INFO image_rx_daemon: rx_rf: n_rssi=74 n_snr=74 rssi[min/med/max]=-74/-72/-72 snr[min/med/max]=5.0/6.0/7.0 + +2026-08-24 16:28:36,389 INFO image_rx_daemon: phase_telemetry: valid=74 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:28:36,390 INFO image_rx_daemon: air_gap_by_class: seq: n=63 med=117.1ms | boundary: n=9 med=179.2ms | post_loss: n=2 med=340.6ms + +2026-08-24 16:28:36,391 INFO image_rx_daemon: lost_frag_idx: n=2 idx0=0 (0.00% of idx0 arrivals) other=2 (2.99%) verdict=not-clustered | top 10:1 11:1 + +2026-08-24 16:28:36,507 INFO image_rx_daemon: published frame_id=0 seq=57 192 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:36,509 INFO image_rx_daemon: published frame_id=0 seq=57 231 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:38,089 INFO image_rx_daemon: published frame_id=0 seq=60 2919 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:38,527 INFO image_rx_daemon: published frame_id=0 seq=65 237 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:38,528 INFO image_rx_daemon: published frame_id=0 seq=65 202 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:40,099 INFO image_rx_daemon: published frame_id=0 seq=68 2892 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:40,473 INFO image_rx_daemon: published frame_id=0 seq=73 180 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:40,475 INFO image_rx_daemon: published frame_id=0 seq=73 192 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:42,086 INFO image_rx_daemon: published frame_id=0 seq=76 2991 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:42,251 INFO image_rx_daemon: published frame_id=0 seq=83 212 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:43,857 INFO image_rx_daemon: published frame_id=0 seq=84 2974 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:44,279 INFO image_rx_daemon: published frame_id=0 seq=89 238 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:44,280 INFO image_rx_daemon: published frame_id=0 seq=89 210 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:45,892 INFO image_rx_daemon: published frame_id=0 seq=92 2992 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:46,297 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=203 snr=2.2 rssi=-71 dump=01c20000000000303e630101c0020000000000008045524146163e00000057454250565038203200000000c3009d012a200080003ec1daa74e67a523a3280800f018090700c9101773334000feef46092e8f50f847123a441f3620006d524926466e000008572542505650382059000000100500cd012a200024003ec156a04ba7a52321a83d50f8180ae700bb000d3677efdc5b1fc5dc5b706a42883aafe5f5128090fe106f815734b8b300330ba1ce67f7dbbb9bd5ab2994dab13a356353baf544d93a64f21e80d74000 + +2026-08-24 16:28:46,399 INFO image_rx_daemon: stats: rx_frames=2070 rx_decode_err=0 frames_published=354 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=29 parity_recon=0 + +2026-08-24 16:28:46,401 INFO image_rx_daemon: air_gap: n=73 dt_med=117253us dt_p95=211286us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:28:46,404 INFO image_rx_daemon: air_gap_hist(ms): <120:52 <200:17 <400:4 + +2026-08-24 16:28:46,405 INFO image_rx_daemon: rx_rf: n_rssi=73 n_snr=73 rssi[min/med/max]=-73/-72/-72 snr[min/med/max]=5.0/6.0/7.0 + +2026-08-24 16:28:46,406 INFO image_rx_daemon: phase_telemetry: valid=73 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:28:46,407 INFO image_rx_daemon: air_gap_by_class: seq: n=62 med=117.2ms | boundary: n=10 med=180.7ms + +2026-08-24 16:28:47,909 INFO image_rx_daemon: published frame_id=0 seq=100 2985 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:48,103 INFO image_rx_daemon: published frame_id=0 seq=107 241 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:49,859 INFO image_rx_daemon: published frame_id=0 seq=113 236 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:50,009 INFO image_rx_daemon: published frame_id=0 seq=119 233 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:51,597 INFO image_rx_daemon: published frame_id=0 seq=120 2915 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:51,754 INFO image_rx_daemon: published frame_id=0 seq=121 220 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:53,351 INFO image_rx_daemon: published frame_id=0 seq=122 2953 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:53,791 INFO image_rx_daemon: published frame_id=0 seq=127 237 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:53,792 INFO image_rx_daemon: published frame_id=0 seq=127 212 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:55,390 INFO image_rx_daemon: published frame_id=0 seq=130 2985 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:55,787 INFO image_rx_daemon: published frame_id=0 seq=135 228 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:55,788 INFO image_rx_daemon: published frame_id=0 seq=135 190 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:56,418 INFO image_rx_daemon: stats: rx_frames=2144 rx_decode_err=0 frames_published=366 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=31 parity_recon=0 + +2026-08-24 16:28:56,420 INFO image_rx_daemon: air_gap: n=74 dt_med=117193us dt_p95=222604us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:28:56,423 INFO image_rx_daemon: air_gap_hist(ms): <120:54 <200:14 <400:6 + +2026-08-24 16:28:56,423 INFO image_rx_daemon: rx_rf: n_rssi=74 n_snr=74 rssi[min/med/max]=-73/-72/-72 snr[min/med/max]=5.0/6.0/7.0 + +2026-08-24 16:28:56,424 INFO image_rx_daemon: phase_telemetry: valid=74 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:28:56,430 INFO image_rx_daemon: air_gap_by_class: seq: n=59 med=117.1ms | boundary: n=12 med=179.4ms | post_loss: n=1 med=234.1ms + +2026-08-24 16:28:56,431 INFO image_rx_daemon: lost_frag_idx: n=1 idx0=0 (0.00% of idx0 arrivals) other=1 (0.79%) verdict=not-clustered | top 5:1 + +2026-08-24 16:28:56,431 INFO image_rx_daemon: frag_reordered: 3 late out-of-order arrivals had a provisional loss retracted (in-order assumption violated — see RS-11.4) + +2026-08-24 16:28:57,394 INFO image_rx_daemon: published frame_id=0 seq=138 2959 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:57,796 INFO image_rx_daemon: published frame_id=0 seq=143 222 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:57,797 INFO image_rx_daemon: published frame_id=0 seq=143 180 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:59,418 INFO image_rx_daemon: published frame_id=0 seq=146 3000 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:59,600 INFO image_rx_daemon: published frame_id=0 seq=151 239 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:59,780 INFO image_rx_daemon: published frame_id=0 seq=153 241 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:28:59,923 INFO image_rx_daemon: published frame_id=0 seq=159 178 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:29:01,487 INFO image_rx_daemon: published frame_id=0 seq=160 2903 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:29:01,647 INFO image_rx_daemon: published frame_id=0 seq=161 198 B → lifetrac/v25/video/tile_delta + diff --git a/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20260824_112905_e9f6ffd6/synth_pub.log b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20260824_112905_e9f6ffd6/synth_pub.log new file mode 100644 index 00000000..99399f8f --- /dev/null +++ b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20260824_112905_e9f6ffd6/synth_pub.log @@ -0,0 +1,28 @@ +Starting synthetic camera publisher (broker=127.0.0.1, fps=2.0, duration=310.0s, budget=3000B, prebuild=32)... + +PREBUILT: 32 frames, sizes 2892..3000 B + +[000] Publishing synthetic frame of size 2985 bytes... + +[050] Publishing synthetic frame of size 2979 bytes... + +[100] Publishing synthetic frame of size 2915 bytes... + +[150] Publishing synthetic frame of size 2951 bytes... + +[200] Publishing synthetic frame of size 2934 bytes... + +[250] Publishing synthetic frame of size 2993 bytes... + +[300] Publishing synthetic frame of size 2919 bytes... + +[350] Publishing synthetic frame of size 2903 bytes... + +[400] Publishing synthetic frame of size 2892 bytes... + +[450] Publishing synthetic frame of size 2983 bytes... + +[500] Publishing synthetic frame of size 2991 bytes... + +[550] Publishing synthetic frame of size 2975 bytes... + diff --git a/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20260824_112905_e9f6ffd6/tx_daemon.log b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20260824_112905_e9f6ffd6/tx_daemon.log new file mode 100644 index 00000000..89e87e6d --- /dev/null +++ b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20260824_112905_e9f6ffd6/tx_daemon.log @@ -0,0 +1,828 @@ +2026-08-11 08:34:28,407 INFO image_tx_daemon: opening L072 HostLink on /dev/ttymxc3 @ 921600 + +2026-08-11 08:34:28,416 INFO image_tx_daemon: image_tx_daemon started; mqtt=127.0.0.1:1883 uart=/dev/ttymxc3 + +2026-08-11 08:34:28,418 INFO image_tx_daemon: no_park_last=1 gap_ms=80 pipeline_depth=2 + +2026-08-11 08:34:28,424 INFO image_tx_daemon: LIFETRAC_SKIP_RESET_REQ=1 — relying on external NRST; draining boot chatter only + +2026-08-11 08:34:28,425 INFO image_tx_daemon: MQTT connected; subscribing to lifetrac/v25/cmd/image_frame + +2026-08-11 08:34:28,457 INFO image_tx_daemon: link_budget: published n_frag=1 profile_idx=6 (profile 2) + +Initializing regulatory profile 2 on co-processor... + + FHSS mask: single channel 0 (0100000000000000) + +CFG_SET_REQ(FHSS_CHANNEL_MASK) OK: 07000800 + +CFG_SET_REQ(ANTENNA_GAIN_DBI) OK: 15000100 + +CFG_SET_REQ(HW_CEILING_DBM) OK: 16000100 + + FHSS seed: (0,0) legacy shared permutation [set LIFETRAC_FHSS_FARM_ID / LIFETRAC_FHSS_LINK_ID to separate pairs] + +CFG_SET_REQ(FHSS_FARM_ID) OK: 17000800 + +CFG_SET_REQ(FHSS_NODE_ID) OK: 18000800 + +CFG_SET_REQ(REG_PROFILE=2) OK: 14000100 + + forcing FRF -> 927.500 MHz (raw=0xE7E000 -> Msb=0xE7 Mid=0xE0 Lsb=0x00) + + FRF readback: 0xE7E000 = 927.500 MHz (OK) + +PHY contract OK: image_bw500 == {'sf': 7, 'bw_khz': 500, 'cr_den': 5, 'preamble': 8} + +2026-08-11 08:34:29,319 INFO image_tx_daemon: LBT_ENABLE=0 (matches W1-10b TX_BURST rationale) + +2026-08-11 08:34:29,342 INFO image_tx_daemon: RXCONT armed for command downlink (opmode 0x81 -> 0x85) + +2026-08-11 08:34:29,343 INFO image_tx_daemon: TX worker ready (inter_cycle_s=0.050, max 8 frags/dwell) + +2026-08-11 08:34:29,344 INFO image_tx_daemon: batching: 2 frames in 1 trains so far (this train: 2 frames, 406 B) + +2026-08-11 08:34:29,416 INFO image_tx_daemon: stats: goodput=0.0 B/s util=0% pipeline=v3 frames_in=2 ok=0 fail=0 drop_full=0 drop_stale=0 frags_ok=0 frags_fail=0 qdepth=0 parity_tx=0 + +2026-08-11 08:34:29,684 INFO image_tx_daemon: frame seq=1 done (pipelined): 2 fragments ok + +2026-08-11 08:34:29,857 INFO image_tx_daemon: frame seq=3 done (pipelined): 1 fragments ok + +2026-08-11 08:34:30,048 INFO image_tx_daemon: LoRa cmd: ENCODE_MODE 0 + +2026-08-11 08:34:30,175 INFO image_tx_daemon: frame seq=4 done (pipelined): 1 fragments ok + +2026-08-11 08:34:30,459 INFO image_tx_daemon: LoRa cmd: ENCODE_MODE 0 + +2026-08-11 08:34:30,642 INFO image_tx_daemon: frame seq=5 done (pipelined): 1 fragments ok + +2026-08-11 08:34:30,936 INFO image_tx_daemon: LoRa cmd: ENCODE_MODE 0 + +2026-08-11 08:34:31,169 INFO image_tx_daemon: frame seq=6 done (pipelined): 1 fragments ok + +2026-08-11 08:34:31,452 INFO image_tx_daemon: LoRa cmd: ENCODE_MODE 0 + +2026-08-11 08:34:31,651 INFO image_tx_daemon: frame seq=7 done (pipelined): 1 fragments ok + +2026-08-11 08:34:31,935 INFO image_tx_daemon: LoRa cmd: ENCODE_MODE 0 + +2026-08-11 08:34:32,148 INFO image_tx_daemon: frame seq=8 done (pipelined): 1 fragments ok + +2026-08-11 08:34:32,442 INFO image_tx_daemon: LoRa cmd: ENCODE_MODE 0 + +2026-08-11 08:34:32,690 INFO image_tx_daemon: frame seq=9 done (pipelined): 1 fragments ok + +2026-08-11 08:34:32,977 INFO image_tx_daemon: LoRa cmd: ENCODE_MODE 0 + +2026-08-11 08:34:33,174 INFO image_tx_daemon: frame seq=10 done (pipelined): 1 fragments ok + +2026-08-11 08:34:33,448 INFO image_tx_daemon: LoRa cmd: ENCODE_MODE 0 + +2026-08-11 08:34:33,681 INFO image_tx_daemon: frame seq=11 done (pipelined): 1 fragments ok + +2026-08-11 08:34:33,955 INFO image_tx_daemon: LoRa cmd: ENCODE_MODE 0 + +2026-08-11 08:34:34,154 INFO image_tx_daemon: frame seq=12 done (pipelined): 1 fragments ok + +2026-08-11 08:34:34,427 INFO image_tx_daemon: LoRa cmd: ENCODE_MODE 0 + +2026-08-11 08:34:34,641 INFO image_tx_daemon: frame seq=13 done (pipelined): 1 fragments ok + +2026-08-11 08:34:34,914 INFO image_tx_daemon: LoRa cmd: ENCODE_MODE 0 + +2026-08-11 08:34:35,152 INFO image_tx_daemon: frame seq=14 done (pipelined): 1 fragments ok + +2026-08-11 08:34:35,436 INFO image_tx_daemon: LoRa cmd: ENCODE_MODE 0 + +2026-08-11 08:34:35,672 INFO image_tx_daemon: frame seq=15 done (pipelined): 1 fragments ok + +2026-08-11 08:34:36,054 INFO image_tx_daemon: LoRa cmd: ENCODE_MODE 0 + +2026-08-11 08:34:36,183 INFO image_tx_daemon: frame seq=16 done (pipelined): 1 fragments ok + +2026-08-11 08:34:36,466 INFO image_tx_daemon: LoRa cmd: ENCODE_MODE 0 + +2026-08-11 08:34:36,677 INFO image_tx_daemon: frame seq=17 done (pipelined): 1 fragments ok + +2026-08-11 08:34:36,962 INFO image_tx_daemon: LoRa cmd: ENCODE_MODE 0 + +2026-08-11 08:34:37,189 INFO image_tx_daemon: frame seq=18 done (pipelined): 1 fragments ok + +2026-08-11 08:34:37,464 INFO image_tx_daemon: LoRa cmd: ENCODE_MODE 0 + +2026-08-11 08:34:37,658 INFO image_tx_daemon: frame seq=19 done (pipelined): 1 fragments ok + +2026-08-11 08:34:37,942 INFO image_tx_daemon: LoRa cmd: ENCODE_MODE 0 + +2026-08-11 08:34:38,164 INFO image_tx_daemon: frame seq=20 done (pipelined): 1 fragments ok + +2026-08-11 08:34:38,458 INFO image_tx_daemon: LoRa cmd: ENCODE_MODE 0 + +2026-08-11 08:34:38,652 INFO image_tx_daemon: frame seq=21 done (pipelined): 1 fragments ok + +2026-08-11 08:34:39,163 INFO image_tx_daemon: frame seq=22 done (pipelined): 1 fragments ok + +2026-08-11 08:34:39,428 INFO image_tx_daemon: stats: goodput=484.1 B/s util=20% pipeline=v3 frames_in=22 ok=21 fail=0 drop_full=0 drop_stale=0 frags_ok=22 frags_fail=0 qdepth=0 parity_tx=0 + +2026-08-11 08:34:39,650 INFO image_tx_daemon: frame seq=23 done (pipelined): 1 fragments ok + +2026-08-11 08:34:40,169 INFO image_tx_daemon: frame seq=24 done (pipelined): 1 fragments ok + +2026-08-11 08:34:40,660 INFO image_tx_daemon: frame seq=25 done (pipelined): 1 fragments ok + +2026-08-11 08:34:41,135 INFO image_tx_daemon: frame seq=26 done (pipelined): 1 fragments ok + +2026-08-11 08:34:41,650 INFO image_tx_daemon: frame seq=27 done (pipelined): 1 fragments ok + +2026-08-11 08:34:42,158 INFO image_tx_daemon: frame seq=28 done (pipelined): 1 fragments ok + +2026-08-11 08:34:42,635 INFO image_tx_daemon: frame seq=29 done (pipelined): 1 fragments ok + +2026-08-11 08:34:43,133 INFO image_tx_daemon: frame seq=30 done (pipelined): 1 fragments ok + +2026-08-11 08:34:43,651 INFO image_tx_daemon: frame seq=31 done (pipelined): 1 fragments ok + +2026-08-11 08:34:44,138 INFO image_tx_daemon: frame seq=32 done (pipelined): 1 fragments ok + +2026-08-11 08:34:44,636 INFO image_tx_daemon: frame seq=33 done (pipelined): 1 fragments ok + +2026-08-11 08:34:45,169 INFO image_tx_daemon: frame seq=34 done (pipelined): 1 fragments ok + +2026-08-11 08:34:45,682 INFO image_tx_daemon: frame seq=35 done (pipelined): 1 fragments ok + +2026-08-11 08:34:47,301 INFO image_tx_daemon: frame seq=36 done (pipelined): 13 fragments ok + +2026-08-11 08:34:47,481 INFO image_tx_daemon: frame seq=37 done (pipelined): 1 fragments ok + +2026-08-11 08:34:47,644 INFO image_tx_daemon: frame seq=39 done (pipelined): 1 fragments ok + +2026-08-11 08:34:49,263 INFO image_tx_daemon: frame seq=40 done (pipelined): 13 fragments ok + +2026-08-11 08:34:49,424 INFO image_tx_daemon: frame seq=41 done (pipelined): 1 fragments ok + +2026-08-11 08:34:49,442 INFO image_tx_daemon: stats: goodput=955.5 B/s util=39% pipeline=v3 frames_in=50 ok=39 fail=0 drop_full=5 drop_stale=0 frags_ok=64 frags_fail=0 qdepth=3 parity_tx=0 + +2026-08-11 08:34:50,997 INFO image_tx_daemon: frame seq=42 done (pipelined): 12 fragments ok + +2026-08-11 08:34:51,148 INFO image_tx_daemon: frame seq=47 done (pipelined): 1 fragments ok + +2026-08-11 08:34:52,756 INFO image_tx_daemon: frame seq=48 done (pipelined): 13 fragments ok + +2026-08-11 08:34:54,396 INFO image_tx_daemon: frame seq=54 done (pipelined): 13 fragments ok + +2026-08-11 08:34:54,789 INFO image_tx_daemon: frame seq=55 done (pipelined): 2 fragments ok + +2026-08-11 08:34:56,355 INFO image_tx_daemon: frame seq=62 done (pipelined): 12 fragments ok + +2026-08-11 08:34:56,517 INFO image_tx_daemon: frame seq=67 done (pipelined): 1 fragments ok + +2026-08-11 08:34:56,689 INFO image_tx_daemon: frame seq=75 done (pipelined): 1 fragments ok + +2026-08-11 08:34:58,310 INFO image_tx_daemon: frame seq=76 done (pipelined): 13 fragments ok + +2026-08-11 08:34:58,474 INFO image_tx_daemon: frame seq=77 done (pipelined): 1 fragments ok + +2026-08-11 08:34:59,458 INFO image_tx_daemon: stats: goodput=1797.5 B/s util=73% pipeline=v3 frames_in=90 ok=49 fail=0 drop_full=31 drop_stale=0 frags_ok=140 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 08:35:00,101 INFO image_tx_daemon: frame seq=78 done (pipelined): 13 fragments ok + +2026-08-11 08:35:00,501 INFO image_tx_daemon: frame seq=83 done (pipelined): 2 fragments ok + +2026-08-11 08:35:02,089 INFO image_tx_daemon: frame seq=86 done (pipelined): 13 fragments ok + +2026-08-11 08:35:02,514 INFO image_tx_daemon: frame seq=91 done (pipelined): 2 fragments ok + +2026-08-11 08:35:04,086 INFO image_tx_daemon: frame seq=94 done (pipelined): 12 fragments ok + +2026-08-11 08:35:04,469 INFO image_tx_daemon: frame seq=99 done (pipelined): 2 fragments ok + +2026-08-11 08:35:06,078 INFO image_tx_daemon: frame seq=102 done (pipelined): 13 fragments ok + +2026-08-11 08:35:06,242 INFO image_tx_daemon: frame seq=107 done (pipelined): 1 fragments ok + +2026-08-11 08:35:06,415 INFO image_tx_daemon: frame seq=115 done (pipelined): 1 fragments ok + +2026-08-11 08:35:08,013 INFO image_tx_daemon: frame seq=116 done (pipelined): 13 fragments ok + +2026-08-11 08:35:08,165 INFO image_tx_daemon: frame seq=117 done (pipelined): 1 fragments ok + +2026-08-11 08:35:09,471 INFO image_tx_daemon: stats: goodput=1765.2 B/s util=72% pipeline=v3 frames_in=130 ok=60 fail=0 drop_full=58 drop_stale=0 frags_ok=216 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 08:35:09,784 INFO image_tx_daemon: frame seq=118 done (pipelined): 13 fragments ok + +2026-08-11 08:35:11,400 INFO image_tx_daemon: frame seq=122 done (pipelined): 13 fragments ok + +2026-08-11 08:35:11,797 INFO image_tx_daemon: frame seq=123 done (pipelined): 2 fragments ok + +2026-08-11 08:35:13,416 INFO image_tx_daemon: frame seq=130 done (pipelined): 13 fragments ok + +2026-08-11 08:35:13,838 INFO image_tx_daemon: frame seq=135 done (pipelined): 2 fragments ok + +2026-08-11 08:35:15,446 INFO image_tx_daemon: frame seq=138 done (pipelined): 13 fragments ok + +2026-08-11 08:35:15,871 INFO image_tx_daemon: frame seq=143 done (pipelined): 2 fragments ok + +2026-08-11 08:35:17,490 INFO image_tx_daemon: frame seq=146 done (pipelined): 13 fragments ok + +2026-08-11 08:35:19,126 INFO image_tx_daemon: frame seq=152 done (pipelined): 13 fragments ok + +2026-08-11 08:35:19,487 INFO image_tx_daemon: stats: goodput=1754.1 B/s util=71% pipeline=v3 frames_in=170 ok=69 fail=0 drop_full=87 drop_stale=0 frags_ok=292 frags_fail=0 qdepth=2 parity_tx=0 + +2026-08-11 08:35:20,701 INFO image_tx_daemon: frame seq=154 done (pipelined): 12 fragments ok + +2026-08-11 08:35:21,094 INFO image_tx_daemon: frame seq=161 done (pipelined): 2 fragments ok + +2026-08-11 08:35:22,714 INFO image_tx_daemon: frame seq=168 done (pipelined): 13 fragments ok + +2026-08-11 08:35:23,122 INFO image_tx_daemon: frame seq=173 done (pipelined): 2 fragments ok + +2026-08-11 08:35:24,735 INFO image_tx_daemon: frame seq=176 done (pipelined): 13 fragments ok + +2026-08-11 08:35:25,149 INFO image_tx_daemon: frame seq=181 done (pipelined): 2 fragments ok + +2026-08-11 08:35:26,730 INFO image_tx_daemon: frame seq=184 done (pipelined): 12 fragments ok + +2026-08-11 08:35:26,881 INFO image_tx_daemon: frame seq=191 done (pipelined): 1 fragments ok + +2026-08-11 08:35:28,479 INFO image_tx_daemon: frame seq=192 done (pipelined): 13 fragments ok + +2026-08-11 08:35:28,676 INFO image_tx_daemon: frame seq=197 done (pipelined): 1 fragments ok + +2026-08-11 08:35:29,501 INFO image_tx_daemon: stats: goodput=1775.2 B/s util=72% pipeline=v3 frames_in=210 ok=79 fail=0 drop_full=114 drop_stale=0 frags_ok=367 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 08:35:30,274 INFO image_tx_daemon: frame seq=198 done (pipelined): 13 fragments ok + +2026-08-11 08:35:31,924 INFO image_tx_daemon: frame seq=204 done (pipelined): 13 fragments ok + +2026-08-11 08:35:32,086 INFO image_tx_daemon: frame seq=211 done (pipelined): 1 fragments ok + +2026-08-11 08:35:33,694 INFO image_tx_daemon: frame seq=212 done (pipelined): 13 fragments ok + +2026-08-11 08:35:34,119 INFO image_tx_daemon: frame seq=217 done (pipelined): 2 fragments ok + +2026-08-11 08:35:35,744 INFO image_tx_daemon: frame seq=220 done (pipelined): 13 fragments ok + +2026-08-11 08:35:36,151 INFO image_tx_daemon: frame seq=225 done (pipelined): 2 fragments ok + +2026-08-11 08:35:37,775 INFO image_tx_daemon: frame seq=228 done (pipelined): 13 fragments ok + +2026-08-11 08:35:37,926 INFO image_tx_daemon: frame seq=235 done (pipelined): 1 fragments ok + +2026-08-11 08:35:39,500 INFO image_tx_daemon: frame seq=236 done (pipelined): 12 fragments ok + +2026-08-11 08:35:39,513 INFO image_tx_daemon: stats: goodput=1795.3 B/s util=73% pipeline=v3 frames_in=250 ok=89 fail=0 drop_full=142 drop_stale=0 frags_ok=444 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 08:35:39,651 INFO image_tx_daemon: frame seq=241 done (pipelined): 1 fragments ok + +2026-08-11 08:35:41,270 INFO image_tx_daemon: frame seq=242 done (pipelined): 13 fragments ok + +2026-08-11 08:35:42,859 INFO image_tx_daemon: frame seq=248 done (pipelined): 12 fragments ok + +2026-08-11 08:35:43,020 INFO image_tx_daemon: frame seq=255 done (pipelined): 1 fragments ok + +2026-08-11 08:35:44,627 INFO image_tx_daemon: frame seq=0 done (pipelined): 13 fragments ok + +2026-08-11 08:35:45,051 INFO image_tx_daemon: frame seq=5 done (pipelined): 2 fragments ok + +2026-08-11 08:35:46,660 INFO image_tx_daemon: frame seq=8 done (pipelined): 13 fragments ok + +2026-08-11 08:35:46,850 INFO image_tx_daemon: frame seq=13 done (pipelined): 1 fragments ok + +2026-08-11 08:35:47,019 INFO image_tx_daemon: frame seq=15 done (pipelined): 1 fragments ok + +2026-08-11 08:35:47,191 INFO image_tx_daemon: frame seq=21 done (pipelined): 1 fragments ok + +2026-08-11 08:35:48,779 INFO image_tx_daemon: frame seq=22 done (pipelined): 13 fragments ok + +2026-08-11 08:35:48,991 INFO image_tx_daemon: frame seq=23 done (pipelined): 1 fragments ok + +2026-08-11 08:35:49,527 INFO image_tx_daemon: stats: goodput=1777.7 B/s util=72% pipeline=v3 frames_in=291 ok=101 fail=0 drop_full=169 drop_stale=0 frags_ok=520 frags_fail=0 qdepth=3 parity_tx=0 + +2026-08-11 08:35:50,614 INFO image_tx_daemon: frame seq=24 done (pipelined): 13 fragments ok + +2026-08-11 08:35:51,009 INFO image_tx_daemon: frame seq=29 done (pipelined): 2 fragments ok + +2026-08-11 08:35:52,575 INFO image_tx_daemon: frame seq=32 done (pipelined): 12 fragments ok + +2026-08-11 08:35:52,736 INFO image_tx_daemon: frame seq=39 done (pipelined): 1 fragments ok + +2026-08-11 08:35:54,362 INFO image_tx_daemon: frame seq=40 done (pipelined): 13 fragments ok + +2026-08-11 08:35:54,546 INFO image_tx_daemon: frame seq=45 done (pipelined): 1 fragments ok + +2026-08-11 08:35:56,112 INFO image_tx_daemon: frame seq=46 done (pipelined): 12 fragments ok + +2026-08-11 08:35:56,473 INFO image_tx_daemon: frame seq=51 done (pipelined): 2 fragments ok + +2026-08-11 08:35:58,102 INFO image_tx_daemon: frame seq=54 done (pipelined): 13 fragments ok + +2026-08-11 08:35:58,495 INFO image_tx_daemon: frame seq=59 done (pipelined): 2 fragments ok + +2026-08-11 08:35:59,542 INFO image_tx_daemon: stats: goodput=1769.7 B/s util=72% pipeline=v3 frames_in=331 ok=111 fail=0 drop_full=195 drop_stale=0 frags_ok=595 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 08:36:00,060 INFO image_tx_daemon: frame seq=62 done (pipelined): 12 fragments ok + +2026-08-11 08:36:00,454 INFO image_tx_daemon: frame seq=67 done (pipelined): 2 fragments ok + +2026-08-11 08:36:02,071 INFO image_tx_daemon: frame seq=70 done (pipelined): 13 fragments ok + +2026-08-11 08:36:02,228 INFO image_tx_daemon: frame seq=75 done (pipelined): 1 fragments ok + +2026-08-11 08:36:03,858 INFO image_tx_daemon: frame seq=76 done (pipelined): 13 fragments ok + +2026-08-11 08:36:04,031 INFO image_tx_daemon: frame seq=83 done (pipelined): 1 fragments ok + +2026-08-11 08:36:05,645 INFO image_tx_daemon: frame seq=84 done (pipelined): 13 fragments ok + +2026-08-11 08:36:06,059 INFO image_tx_daemon: frame seq=89 done (pipelined): 2 fragments ok + +2026-08-11 08:36:07,678 INFO image_tx_daemon: frame seq=92 done (pipelined): 13 fragments ok + +2026-08-11 08:36:07,838 INFO image_tx_daemon: frame seq=97 done (pipelined): 1 fragments ok + +2026-08-11 08:36:08,021 INFO image_tx_daemon: frame seq=99 done (pipelined): 1 fragments ok + +2026-08-11 08:36:08,172 INFO image_tx_daemon: frame seq=105 done (pipelined): 1 fragments ok + +2026-08-11 08:36:09,553 INFO image_tx_daemon: stats: goodput=1775.6 B/s util=72% pipeline=v3 frames_in=371 ok=123 fail=0 drop_full=222 drop_stale=0 frags_ok=671 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 08:36:09,746 INFO image_tx_daemon: frame seq=106 done (pipelined): 12 fragments ok + +2026-08-11 08:36:09,918 INFO image_tx_daemon: frame seq=107 done (pipelined): 1 fragments ok + +2026-08-11 08:36:11,491 INFO image_tx_daemon: frame seq=108 done (pipelined): 12 fragments ok + +2026-08-11 08:36:11,653 INFO image_tx_daemon: frame seq=113 done (pipelined): 1 fragments ok + +2026-08-11 08:36:13,273 INFO image_tx_daemon: frame seq=114 done (pipelined): 13 fragments ok + +2026-08-11 08:36:14,859 INFO image_tx_daemon: frame seq=120 done (pipelined): 12 fragments ok + +2026-08-11 08:36:15,017 INFO image_tx_daemon: frame seq=127 done (pipelined): 1 fragments ok + +2026-08-11 08:36:16,623 INFO image_tx_daemon: frame seq=128 done (pipelined): 13 fragments ok + +2026-08-11 08:36:17,047 INFO image_tx_daemon: frame seq=133 done (pipelined): 2 fragments ok + +2026-08-11 08:36:18,662 INFO image_tx_daemon: frame seq=136 done (pipelined): 13 fragments ok + +2026-08-11 08:36:18,824 INFO image_tx_daemon: frame seq=141 done (pipelined): 1 fragments ok + +2026-08-11 08:36:18,996 INFO image_tx_daemon: frame seq=149 done (pipelined): 1 fragments ok + +2026-08-11 08:36:19,565 INFO image_tx_daemon: stats: goodput=1770.8 B/s util=72% pipeline=v3 frames_in=411 ok=135 fail=0 drop_full=250 drop_stale=0 frags_ok=746 frags_fail=0 qdepth=3 parity_tx=0 + +2026-08-11 08:36:20,588 INFO image_tx_daemon: frame seq=150 done (pipelined): 13 fragments ok + +2026-08-11 08:36:20,791 INFO image_tx_daemon: frame seq=151 done (pipelined): 1 fragments ok + +2026-08-11 08:36:22,411 INFO image_tx_daemon: frame seq=152 done (pipelined): 13 fragments ok + +2026-08-11 08:36:22,583 INFO image_tx_daemon: frame seq=157 done (pipelined): 1 fragments ok + +2026-08-11 08:36:24,164 INFO image_tx_daemon: frame seq=158 done (pipelined): 12 fragments ok + +2026-08-11 08:36:25,790 INFO image_tx_daemon: frame seq=164 done (pipelined): 13 fragments ok + +2026-08-11 08:36:25,969 INFO image_tx_daemon: frame seq=171 done (pipelined): 1 fragments ok + +2026-08-11 08:36:27,545 INFO image_tx_daemon: frame seq=172 done (pipelined): 12 fragments ok + +2026-08-11 08:36:27,939 INFO image_tx_daemon: frame seq=177 done (pipelined): 2 fragments ok + +2026-08-11 08:36:29,549 INFO image_tx_daemon: frame seq=180 done (pipelined): 13 fragments ok + +2026-08-11 08:36:29,580 INFO image_tx_daemon: stats: goodput=1808.8 B/s util=74% pipeline=v3 frames_in=451 ok=145 fail=0 drop_full=279 drop_stale=0 frags_ok=823 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 08:36:29,746 INFO image_tx_daemon: frame seq=185 done (pipelined): 1 fragments ok + +2026-08-11 08:36:31,343 INFO image_tx_daemon: frame seq=186 done (pipelined): 13 fragments ok + +2026-08-11 08:36:31,510 INFO image_tx_daemon: frame seq=193 done (pipelined): 1 fragments ok + +2026-08-11 08:36:33,136 INFO image_tx_daemon: frame seq=194 done (pipelined): 13 fragments ok + +2026-08-11 08:36:33,497 INFO image_tx_daemon: frame seq=199 done (pipelined): 2 fragments ok + +2026-08-11 08:36:35,111 INFO image_tx_daemon: frame seq=202 done (pipelined): 13 fragments ok + +2026-08-11 08:36:35,514 INFO image_tx_daemon: frame seq=207 done (pipelined): 2 fragments ok + +2026-08-11 08:36:37,133 INFO image_tx_daemon: frame seq=210 done (pipelined): 13 fragments ok + +2026-08-11 08:36:37,526 INFO image_tx_daemon: frame seq=215 done (pipelined): 2 fragments ok + +2026-08-11 08:36:39,093 INFO image_tx_daemon: frame seq=218 done (pipelined): 12 fragments ok + +2026-08-11 08:36:39,265 INFO image_tx_daemon: frame seq=223 done (pipelined): 1 fragments ok + +2026-08-11 08:36:39,426 INFO image_tx_daemon: frame seq=231 done (pipelined): 1 fragments ok + +2026-08-11 08:36:39,592 INFO image_tx_daemon: stats: goodput=1741.3 B/s util=71% pipeline=v3 frames_in=491 ok=157 fail=0 drop_full=306 drop_stale=0 frags_ok=898 frags_fail=0 qdepth=1 parity_tx=0 + +2026-08-11 08:36:41,045 INFO image_tx_daemon: frame seq=232 done (pipelined): 13 fragments ok + +2026-08-11 08:36:41,237 INFO image_tx_daemon: frame seq=233 done (pipelined): 1 fragments ok + +2026-08-11 08:36:42,808 INFO image_tx_daemon: frame seq=234 done (pipelined): 12 fragments ok + +2026-08-11 08:36:42,980 INFO image_tx_daemon: frame seq=239 done (pipelined): 1 fragments ok + +2026-08-11 08:36:44,595 INFO image_tx_daemon: frame seq=240 done (pipelined): 13 fragments ok + +2026-08-11 08:36:45,008 INFO image_tx_daemon: frame seq=245 done (pipelined): 2 fragments ok + +2026-08-11 08:36:46,588 INFO image_tx_daemon: frame seq=248 done (pipelined): 12 fragments ok + +2026-08-11 08:36:46,761 INFO image_tx_daemon: frame seq=255 done (pipelined): 1 fragments ok + +2026-08-11 08:36:48,361 INFO image_tx_daemon: frame seq=0 done (pipelined): 13 fragments ok + +2026-08-11 08:36:48,550 INFO image_tx_daemon: frame seq=5 done (pipelined): 1 fragments ok + +2026-08-11 08:36:48,715 INFO image_tx_daemon: batching: 52 frames in 26 trains so far (this train: 2 frames, 457 B) + +2026-08-11 08:36:49,604 INFO image_tx_daemon: stats: goodput=1809.1 B/s util=73% pipeline=v3 frames_in=531 ok=167 fail=0 drop_full=331 drop_stale=0 frags_ok=974 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 08:36:50,151 INFO image_tx_daemon: frame seq=6 done (pipelined): 13 fragments ok + +2026-08-11 08:36:50,586 INFO image_tx_daemon: frame seq=11 done (pipelined): 2 fragments ok + +2026-08-11 08:36:52,206 INFO image_tx_daemon: frame seq=14 done (pipelined): 13 fragments ok + +2026-08-11 08:36:52,609 INFO image_tx_daemon: frame seq=19 done (pipelined): 2 fragments ok + +2026-08-11 08:36:54,205 INFO image_tx_daemon: frame seq=22 done (pipelined): 13 fragments ok + +2026-08-11 08:36:54,627 INFO image_tx_daemon: frame seq=27 done (pipelined): 2 fragments ok + +2026-08-11 08:36:56,212 INFO image_tx_daemon: frame seq=30 done (pipelined): 12 fragments ok + +2026-08-11 08:36:56,599 INFO image_tx_daemon: frame seq=35 done (pipelined): 2 fragments ok + +2026-08-11 08:36:58,213 INFO image_tx_daemon: frame seq=38 done (pipelined): 13 fragments ok + +2026-08-11 08:36:58,594 INFO image_tx_daemon: frame seq=43 done (pipelined): 2 fragments ok + +2026-08-11 08:36:59,615 INFO image_tx_daemon: stats: goodput=1715.0 B/s util=70% pipeline=v3 frames_in=571 ok=177 fail=0 drop_full=358 drop_stale=0 frags_ok=1048 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 08:37:00,160 INFO image_tx_daemon: frame seq=46 done (pipelined): 12 fragments ok + +2026-08-11 08:37:00,311 INFO image_tx_daemon: frame seq=51 done (pipelined): 1 fragments ok + +2026-08-11 08:37:00,472 INFO image_tx_daemon: frame seq=59 done (pipelined): 1 fragments ok + +2026-08-11 08:37:02,063 INFO image_tx_daemon: frame seq=60 done (pipelined): 13 fragments ok + +2026-08-11 08:37:02,247 INFO image_tx_daemon: frame seq=61 done (pipelined): 1 fragments ok + +2026-08-11 08:37:03,813 INFO image_tx_daemon: frame seq=62 done (pipelined): 12 fragments ok + +2026-08-11 08:37:03,988 INFO image_tx_daemon: frame seq=67 done (pipelined): 1 fragments ok + +2026-08-11 08:37:05,554 INFO image_tx_daemon: frame seq=68 done (pipelined): 12 fragments ok + +2026-08-11 08:37:05,950 INFO image_tx_daemon: frame seq=73 done (pipelined): 2 fragments ok + +2026-08-11 08:37:07,579 INFO image_tx_daemon: frame seq=76 done (pipelined): 13 fragments ok + +2026-08-11 08:37:09,208 INFO image_tx_daemon: frame seq=82 done (pipelined): 13 fragments ok + +2026-08-11 08:37:09,605 INFO image_tx_daemon: frame seq=83 done (pipelined): 2 fragments ok + +2026-08-11 08:37:09,627 INFO image_tx_daemon: stats: goodput=1765.3 B/s util=72% pipeline=v3 frames_in=612 ok=189 fail=0 drop_full=385 drop_stale=0 frags_ok=1123 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 08:37:11,176 INFO image_tx_daemon: frame seq=90 done (pipelined): 12 fragments ok + +2026-08-11 08:37:11,572 INFO image_tx_daemon: frame seq=95 done (pipelined): 2 fragments ok + +2026-08-11 08:37:13,147 INFO image_tx_daemon: frame seq=98 done (pipelined): 12 fragments ok + +2026-08-11 08:37:13,548 INFO image_tx_daemon: frame seq=103 done (pipelined): 2 fragments ok + +2026-08-11 08:37:15,121 INFO image_tx_daemon: frame seq=106 done (pipelined): 12 fragments ok + +2026-08-11 08:37:15,514 INFO image_tx_daemon: frame seq=111 done (pipelined): 2 fragments ok + +2026-08-11 08:37:17,139 INFO image_tx_daemon: frame seq=114 done (pipelined): 13 fragments ok + +2026-08-11 08:37:17,553 INFO image_tx_daemon: frame seq=119 done (pipelined): 2 fragments ok + +2026-08-11 08:37:19,151 INFO image_tx_daemon: frame seq=122 done (pipelined): 13 fragments ok + +2026-08-11 08:37:19,555 INFO image_tx_daemon: frame seq=127 done (pipelined): 2 fragments ok + +2026-08-11 08:37:19,638 INFO image_tx_daemon: stats: goodput=1717.2 B/s util=70% pipeline=v3 frames_in=652 ok=199 fail=0 drop_full=410 drop_stale=0 frags_ok=1195 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 08:37:21,180 INFO image_tx_daemon: frame seq=130 done (pipelined): 13 fragments ok + +2026-08-11 08:37:21,555 INFO image_tx_daemon: frame seq=135 done (pipelined): 2 fragments ok + +2026-08-11 08:37:23,169 INFO image_tx_daemon: frame seq=138 done (pipelined): 13 fragments ok + +2026-08-11 08:37:23,572 INFO image_tx_daemon: frame seq=143 done (pipelined): 2 fragments ok + +2026-08-11 08:37:25,199 INFO image_tx_daemon: frame seq=146 done (pipelined): 13 fragments ok + +2026-08-11 08:37:25,598 INFO image_tx_daemon: frame seq=151 done (pipelined): 2 fragments ok + +2026-08-11 08:37:27,168 INFO image_tx_daemon: frame seq=154 done (pipelined): 12 fragments ok + +2026-08-11 08:37:27,569 INFO image_tx_daemon: frame seq=159 done (pipelined): 2 fragments ok + +2026-08-11 08:37:29,136 INFO image_tx_daemon: frame seq=162 done (pipelined): 12 fragments ok + +2026-08-11 08:37:29,529 INFO image_tx_daemon: frame seq=167 done (pipelined): 2 fragments ok + +2026-08-11 08:37:29,650 INFO image_tx_daemon: stats: goodput=1717.2 B/s util=70% pipeline=v3 frames_in=692 ok=209 fail=0 drop_full=435 drop_stale=0 frags_ok=1268 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 08:37:31,104 INFO image_tx_daemon: frame seq=170 done (pipelined): 12 fragments ok + +2026-08-11 08:37:31,487 INFO image_tx_daemon: frame seq=175 done (pipelined): 2 fragments ok + +2026-08-11 08:37:33,113 INFO image_tx_daemon: frame seq=178 done (pipelined): 13 fragments ok + +2026-08-11 08:37:33,522 INFO image_tx_daemon: frame seq=183 done (pipelined): 2 fragments ok + +2026-08-11 08:37:35,126 INFO image_tx_daemon: frame seq=186 done (pipelined): 13 fragments ok + +2026-08-11 08:37:35,551 INFO image_tx_daemon: frame seq=191 done (pipelined): 2 fragments ok + +2026-08-11 08:37:37,175 INFO image_tx_daemon: frame seq=194 done (pipelined): 13 fragments ok + +2026-08-11 08:37:37,572 INFO image_tx_daemon: frame seq=199 done (pipelined): 2 fragments ok + +2026-08-11 08:37:39,181 INFO image_tx_daemon: frame seq=202 done (pipelined): 13 fragments ok + +2026-08-11 08:37:39,605 INFO image_tx_daemon: frame seq=207 done (pipelined): 2 fragments ok + +2026-08-11 08:37:39,663 INFO image_tx_daemon: stats: goodput=1731.8 B/s util=70% pipeline=v3 frames_in=732 ok=219 fail=0 drop_full=460 drop_stale=0 frags_ok=1342 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 08:37:41,227 INFO image_tx_daemon: frame seq=210 done (pipelined): 13 fragments ok + +2026-08-11 08:37:41,401 INFO image_tx_daemon: frame seq=215 done (pipelined): 1 fragments ok + +2026-08-11 08:37:41,552 INFO image_tx_daemon: frame seq=223 done (pipelined): 1 fragments ok + +2026-08-11 08:37:43,121 INFO image_tx_daemon: frame seq=224 done (pipelined): 12 fragments ok + +2026-08-11 08:37:43,293 INFO image_tx_daemon: frame seq=225 done (pipelined): 1 fragments ok + +2026-08-11 08:37:44,860 INFO image_tx_daemon: frame seq=226 done (pipelined): 12 fragments ok + +2026-08-11 08:37:45,027 INFO image_tx_daemon: frame seq=231 done (pipelined): 1 fragments ok + +2026-08-11 08:37:46,647 INFO image_tx_daemon: frame seq=232 done (pipelined): 13 fragments ok + +2026-08-11 08:37:47,055 INFO image_tx_daemon: frame seq=237 done (pipelined): 2 fragments ok + +2026-08-11 08:37:48,663 INFO image_tx_daemon: frame seq=240 done (pipelined): 13 fragments ok + +2026-08-11 08:37:49,096 INFO image_tx_daemon: frame seq=245 done (pipelined): 2 fragments ok + +2026-08-11 08:37:49,674 INFO image_tx_daemon: stats: goodput=1782.1 B/s util=72% pipeline=v3 frames_in=772 ok=230 fail=0 drop_full=486 drop_stale=0 frags_ok=1417 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 08:37:50,682 INFO image_tx_daemon: frame seq=248 done (pipelined): 12 fragments ok + +2026-08-11 08:37:50,854 INFO image_tx_daemon: frame seq=255 done (pipelined): 1 fragments ok + +2026-08-11 08:37:52,458 INFO image_tx_daemon: frame seq=0 done (pipelined): 13 fragments ok + +2026-08-11 08:37:52,657 INFO image_tx_daemon: frame seq=5 done (pipelined): 1 fragments ok + +2026-08-11 08:37:54,255 INFO image_tx_daemon: frame seq=6 done (pipelined): 13 fragments ok + +2026-08-11 08:37:55,905 INFO image_tx_daemon: frame seq=12 done (pipelined): 13 fragments ok + +2026-08-11 08:37:56,067 INFO image_tx_daemon: frame seq=19 done (pipelined): 1 fragments ok + +2026-08-11 08:37:57,692 INFO image_tx_daemon: frame seq=20 done (pipelined): 13 fragments ok + +2026-08-11 08:37:58,106 INFO image_tx_daemon: frame seq=25 done (pipelined): 2 fragments ok + +2026-08-11 08:37:58,272 INFO image_tx_daemon: batching: 102 frames in 51 trains so far (this train: 2 frames, 404 B) + +2026-08-11 08:37:59,695 INFO image_tx_daemon: stats: goodput=1810.7 B/s util=74% pipeline=v3 frames_in=812 ok=239 fail=0 drop_full=515 drop_stale=0 frags_ok=1494 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 08:37:59,730 INFO image_tx_daemon: frame seq=28 done (pipelined): 13 fragments ok + +2026-08-11 08:38:00,122 INFO image_tx_daemon: frame seq=33 done (pipelined): 2 fragments ok + +2026-08-11 08:38:01,740 INFO image_tx_daemon: frame seq=36 done (pipelined): 13 fragments ok + +2026-08-11 08:38:01,901 INFO image_tx_daemon: frame seq=43 done (pipelined): 1 fragments ok + +2026-08-11 08:38:03,481 INFO image_tx_daemon: frame seq=44 done (pipelined): 12 fragments ok + +2026-08-11 08:38:03,633 INFO image_tx_daemon: frame seq=49 done (pipelined): 1 fragments ok + +2026-08-11 08:38:05,252 INFO image_tx_daemon: frame seq=50 done (pipelined): 13 fragments ok + +2026-08-11 08:38:06,838 INFO image_tx_daemon: frame seq=56 done (pipelined): 12 fragments ok + +2026-08-11 08:38:07,016 INFO image_tx_daemon: frame seq=63 done (pipelined): 1 fragments ok + +2026-08-11 08:38:08,623 INFO image_tx_daemon: frame seq=64 done (pipelined): 13 fragments ok + +2026-08-11 08:38:09,042 INFO image_tx_daemon: frame seq=69 done (pipelined): 2 fragments ok + +2026-08-11 08:38:09,707 INFO image_tx_daemon: stats: goodput=1780.8 B/s util=72% pipeline=v3 frames_in=852 ok=250 fail=0 drop_full=542 drop_stale=0 frags_ok=1570 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 08:38:10,651 INFO image_tx_daemon: frame seq=72 done (pipelined): 13 fragments ok + +2026-08-11 08:38:11,092 INFO image_tx_daemon: frame seq=77 done (pipelined): 3 fragments ok + +2026-08-11 08:38:12,732 INFO image_tx_daemon: frame seq=80 done (pipelined): 13 fragments ok + +2026-08-11 08:38:13,164 INFO image_tx_daemon: frame seq=85 done (pipelined): 2 fragments ok + +2026-08-11 08:38:14,783 INFO image_tx_daemon: frame seq=88 done (pipelined): 13 fragments ok + +2026-08-11 08:38:15,175 INFO image_tx_daemon: frame seq=93 done (pipelined): 2 fragments ok + +2026-08-11 08:38:16,743 INFO image_tx_daemon: frame seq=96 done (pipelined): 12 fragments ok + +2026-08-11 08:38:16,914 INFO image_tx_daemon: frame seq=103 done (pipelined): 1 fragments ok + +2026-08-11 08:38:18,534 INFO image_tx_daemon: frame seq=104 done (pipelined): 13 fragments ok + +2026-08-11 08:38:18,695 INFO image_tx_daemon: frame seq=109 done (pipelined): 1 fragments ok + +2026-08-11 08:38:19,719 INFO image_tx_daemon: stats: goodput=1762.3 B/s util=72% pipeline=v3 frames_in=892 ok=260 fail=0 drop_full=570 drop_stale=0 frags_ok=1646 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 08:38:20,266 INFO image_tx_daemon: frame seq=110 done (pipelined): 12 fragments ok + +2026-08-11 08:38:20,427 INFO image_tx_daemon: frame seq=117 done (pipelined): 1 fragments ok + +2026-08-11 08:38:22,058 INFO image_tx_daemon: frame seq=118 done (pipelined): 13 fragments ok + +2026-08-11 08:38:22,219 INFO image_tx_daemon: frame seq=123 done (pipelined): 1 fragments ok + +2026-08-11 08:38:23,805 INFO image_tx_daemon: frame seq=124 done (pipelined): 13 fragments ok + +2026-08-11 08:38:23,988 INFO image_tx_daemon: frame seq=131 done (pipelined): 1 fragments ok + +2026-08-11 08:38:25,547 INFO image_tx_daemon: frame seq=132 done (pipelined): 12 fragments ok + +2026-08-11 08:38:25,930 INFO image_tx_daemon: frame seq=137 done (pipelined): 2 fragments ok + +2026-08-11 08:38:27,556 INFO image_tx_daemon: frame seq=140 done (pipelined): 13 fragments ok + +2026-08-11 08:38:29,190 INFO image_tx_daemon: frame seq=146 done (pipelined): 13 fragments ok + +2026-08-11 08:38:29,564 INFO image_tx_daemon: frame seq=147 done (pipelined): 2 fragments ok + +2026-08-11 08:38:29,731 INFO image_tx_daemon: stats: goodput=1767.8 B/s util=72% pipeline=v3 frames_in=932 ok=271 fail=0 drop_full=598 drop_stale=0 frags_ok=1722 frags_fail=0 qdepth=3 parity_tx=0 + +2026-08-11 08:38:31,134 INFO image_tx_daemon: frame seq=154 done (pipelined): 12 fragments ok + +2026-08-11 08:38:31,307 INFO image_tx_daemon: frame seq=159 done (pipelined): 1 fragments ok + +2026-08-11 08:38:31,468 INFO image_tx_daemon: frame seq=161 done (pipelined): 1 fragments ok + +2026-08-11 08:38:31,651 INFO image_tx_daemon: frame seq=167 done (pipelined): 1 fragments ok + +2026-08-11 08:38:33,270 INFO image_tx_daemon: frame seq=168 done (pipelined): 13 fragments ok + +2026-08-11 08:38:33,447 INFO image_tx_daemon: frame seq=169 done (pipelined): 1 fragments ok + +2026-08-11 08:38:35,027 INFO image_tx_daemon: frame seq=170 done (pipelined): 12 fragments ok + +2026-08-11 08:38:35,199 INFO image_tx_daemon: frame seq=175 done (pipelined): 1 fragments ok + +2026-08-11 08:38:36,818 INFO image_tx_daemon: frame seq=176 done (pipelined): 13 fragments ok + +2026-08-11 08:38:38,462 INFO image_tx_daemon: frame seq=182 done (pipelined): 13 fragments ok + +2026-08-11 08:38:38,850 INFO image_tx_daemon: frame seq=183 done (pipelined): 2 fragments ok + +2026-08-11 08:38:39,742 INFO image_tx_daemon: stats: goodput=1805.4 B/s util=73% pipeline=v3 frames_in=972 ok=282 fail=0 drop_full=625 drop_stale=0 frags_ok=1798 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 08:38:40,416 INFO image_tx_daemon: frame seq=190 done (pipelined): 12 fragments ok + +2026-08-11 08:38:41,983 INFO image_tx_daemon: frame seq=196 done (pipelined): 12 fragments ok + +2026-08-11 08:38:43,586 INFO image_tx_daemon: frame seq=198 done (pipelined): 13 fragments ok + +2026-08-11 08:38:45,236 INFO image_tx_daemon: frame seq=204 done (pipelined): 13 fragments ok + +2026-08-11 08:38:45,415 INFO image_tx_daemon: frame seq=217 done (pipelined): 1 fragments ok + +2026-08-11 08:38:46,980 INFO image_tx_daemon: frame seq=218 done (pipelined): 12 fragments ok + +2026-08-11 08:38:47,151 INFO image_tx_daemon: frame seq=223 done (pipelined): 1 fragments ok + +2026-08-11 08:38:48,717 INFO image_tx_daemon: frame seq=224 done (pipelined): 12 fragments ok + +2026-08-11 08:38:48,867 INFO image_tx_daemon: frame seq=231 done (pipelined): 1 fragments ok + +2026-08-11 08:38:49,754 INFO image_tx_daemon: stats: goodput=1846.2 B/s util=75% pipeline=v3 frames_in=1012 ok=291 fail=0 drop_full=656 drop_stale=0 frags_ok=1875 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 08:38:50,486 INFO image_tx_daemon: frame seq=232 done (pipelined): 13 fragments ok + +2026-08-11 08:38:50,647 INFO image_tx_daemon: frame seq=237 done (pipelined): 1 fragments ok + +2026-08-11 08:38:52,214 INFO image_tx_daemon: frame seq=238 done (pipelined): 12 fragments ok + +2026-08-11 08:38:53,812 INFO image_tx_daemon: frame seq=244 done (pipelined): 13 fragments ok + +2026-08-11 08:38:53,988 INFO image_tx_daemon: frame seq=245 done (pipelined): 1 fragments ok + +2026-08-11 08:38:54,160 INFO image_tx_daemon: frame seq=1 done (pipelined): 1 fragments ok + +2026-08-11 08:38:55,780 INFO image_tx_daemon: frame seq=2 done (pipelined): 13 fragments ok + +2026-08-11 08:38:55,941 INFO image_tx_daemon: frame seq=3 done (pipelined): 1 fragments ok + +2026-08-11 08:38:57,506 INFO image_tx_daemon: frame seq=4 done (pipelined): 12 fragments ok + +2026-08-11 08:38:57,680 INFO image_tx_daemon: frame seq=9 done (pipelined): 1 fragments ok + +2026-08-11 08:38:59,288 INFO image_tx_daemon: frame seq=10 done (pipelined): 13 fragments ok + +2026-08-11 08:38:59,765 INFO image_tx_daemon: stats: goodput=1803.9 B/s util=73% pipeline=v3 frames_in=1052 ok=302 fail=0 drop_full=684 drop_stale=0 frags_ok=1952 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 08:39:00,906 INFO image_tx_daemon: frame seq=16 done (pipelined): 13 fragments ok + +2026-08-11 08:39:01,309 INFO image_tx_daemon: frame seq=17 done (pipelined): 2 fragments ok + +2026-08-11 08:39:02,932 INFO image_tx_daemon: frame seq=24 done (pipelined): 13 fragments ok + +2026-08-11 08:39:04,519 INFO image_tx_daemon: frame seq=30 done (pipelined): 12 fragments ok + +2026-08-11 08:39:04,690 INFO image_tx_daemon: frame seq=31 done (pipelined): 1 fragments ok + +2026-08-11 08:39:06,299 INFO image_tx_daemon: frame seq=38 done (pipelined): 13 fragments ok + +2026-08-11 08:39:07,887 INFO image_tx_daemon: frame seq=44 done (pipelined): 12 fragments ok + +2026-08-11 08:39:08,243 INFO image_tx_daemon: frame seq=45 done (pipelined): 2 fragments ok + +2026-08-11 08:39:09,777 INFO image_tx_daemon: stats: goodput=1826.0 B/s util=74% pipeline=v3 frames_in=1092 ok=310 fail=0 drop_full=714 drop_stale=0 frags_ok=2029 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 08:39:09,851 INFO image_tx_daemon: frame seq=52 done (pipelined): 13 fragments ok + +2026-08-11 08:39:10,254 INFO image_tx_daemon: frame seq=57 done (pipelined): 2 fragments ok + +2026-08-11 08:39:11,842 INFO image_tx_daemon: frame seq=60 done (pipelined): 13 fragments ok + +2026-08-11 08:39:12,273 INFO image_tx_daemon: frame seq=65 done (pipelined): 2 fragments ok + +2026-08-11 08:39:13,850 INFO image_tx_daemon: frame seq=68 done (pipelined): 12 fragments ok + +2026-08-11 08:39:14,211 INFO image_tx_daemon: frame seq=73 done (pipelined): 2 fragments ok + +2026-08-11 08:39:15,832 INFO image_tx_daemon: frame seq=76 done (pipelined): 13 fragments ok + +2026-08-11 08:39:15,999 INFO image_tx_daemon: frame seq=83 done (pipelined): 1 fragments ok + +2026-08-11 08:39:17,608 INFO image_tx_daemon: frame seq=84 done (pipelined): 13 fragments ok + +2026-08-11 08:39:18,026 INFO image_tx_daemon: frame seq=89 done (pipelined): 2 fragments ok + +2026-08-11 08:39:19,647 INFO image_tx_daemon: frame seq=92 done (pipelined): 13 fragments ok + +2026-08-11 08:39:19,789 INFO image_tx_daemon: stats: goodput=1698.1 B/s util=69% pipeline=v3 frames_in=1132 ok=321 fail=0 drop_full=740 drop_stale=0 frags_ok=2103 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 08:39:20,044 INFO image_tx_daemon: frame seq=97 done (pipelined): 2 fragments ok + +2026-08-11 08:39:21,663 INFO image_tx_daemon: frame seq=100 done (pipelined): 13 fragments ok + +2026-08-11 08:39:21,847 INFO image_tx_daemon: frame seq=107 done (pipelined): 1 fragments ok + +2026-08-11 08:39:23,424 INFO image_tx_daemon: frame seq=108 done (pipelined): 12 fragments ok + +2026-08-11 08:39:23,596 INFO image_tx_daemon: frame seq=113 done (pipelined): 1 fragments ok + +2026-08-11 08:39:23,767 INFO image_tx_daemon: frame seq=119 done (pipelined): 1 fragments ok + +2026-08-11 08:39:25,335 INFO image_tx_daemon: frame seq=120 done (pipelined): 12 fragments ok + +2026-08-11 08:39:25,503 INFO image_tx_daemon: frame seq=121 done (pipelined): 1 fragments ok + +2026-08-11 08:39:27,100 INFO image_tx_daemon: frame seq=122 done (pipelined): 13 fragments ok + +2026-08-11 08:39:27,524 INFO image_tx_daemon: frame seq=127 done (pipelined): 2 fragments ok + +2026-08-11 08:39:29,146 INFO image_tx_daemon: frame seq=130 done (pipelined): 13 fragments ok + +2026-08-11 08:39:29,531 INFO image_tx_daemon: frame seq=135 done (pipelined): 2 fragments ok + +2026-08-11 08:39:29,799 INFO image_tx_daemon: stats: goodput=1751.7 B/s util=71% pipeline=v3 frames_in=1172 ok=333 fail=0 drop_full=766 drop_stale=0 frags_ok=2177 frags_fail=0 qdepth=2 parity_tx=0 + +2026-08-11 08:39:31,149 INFO image_tx_daemon: frame seq=138 done (pipelined): 13 fragments ok + +2026-08-11 08:39:31,546 INFO image_tx_daemon: frame seq=143 done (pipelined): 2 fragments ok + +2026-08-11 08:39:33,167 INFO image_tx_daemon: frame seq=146 done (pipelined): 13 fragments ok + +2026-08-11 08:39:33,347 INFO image_tx_daemon: frame seq=151 done (pipelined): 1 fragments ok + +2026-08-11 08:39:33,519 INFO image_tx_daemon: frame seq=153 done (pipelined): 1 fragments ok + +2026-08-11 08:39:33,670 INFO image_tx_daemon: frame seq=159 done (pipelined): 1 fragments ok + +2026-08-11 08:39:35,239 INFO image_tx_daemon: frame seq=160 done (pipelined): 12 fragments ok + +2026-08-11 08:39:35,401 INFO image_tx_daemon: frame seq=161 done (pipelined): 1 fragments ok + diff --git a/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20260824_113520_e9f6ffd6/params.txt b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20260824_113520_e9f6ffd6/params.txt new file mode 100644 index 00000000..4317a2f1 --- /dev/null +++ b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20260824_113520_e9f6ffd6/params.txt @@ -0,0 +1,32 @@ +git_sha=e9f6ffd6 +duration_s=300 +synth_fps=2 +synth_budget_b=3000 +tx_pipeline=v3 +tx_pipeline_depth=2 +tx_batch=1 +tx_prepare_ahead=1 +train_gap_ms=40 +kf_request_disable=1 +no_park_last=0 +parity_group=0 +aligned_pump=1 +reactive_fire=0 +probe_phase_sweep_ms= +probe_sizes_b= +ack_copies=2 +probe_echo=0 +fhss_farm_id=0 +fhss_link_id=0 +airtime_budget_us=0 +pacing_mode=smooth +pacing_headroom=0 +rxcont_arm=1 +tx_power_dbm= +tx_feed=local +reg_profile=2 +force_frf_hz=927500000 +tx_serial=2E2C1209DABC240B +rx_serial=2D0A1209DABC240B +host_ip=192.168.1.79 +timestamp=20260824_113520 diff --git a/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20260824_113520_e9f6ffd6/rx_daemon.log b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20260824_113520_e9f6ffd6/rx_daemon.log new file mode 100644 index 00000000..402a8963 --- /dev/null +++ b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20260824_113520_e9f6ffd6/rx_daemon.log @@ -0,0 +1,1328 @@ +2026-08-24 16:30:10,434 INFO image_rx_daemon: opening L072 HostLink on /dev/ttymxc3 @ 921600 + +2026-08-24 16:30:10,438 INFO image_rx_daemon: image_rx_daemon started; mqtt=127.0.0.1:1883 uart=/dev/ttymxc3 + +2026-08-24 16:30:10,439 INFO image_rx_daemon: ctrl MQTT connected (192.168.1.79) + +2026-08-24 16:30:10,444 INFO image_rx_daemon: MQTT connected; ready to publish lifetrac/v25/video/tile_delta + +2026-08-24 16:30:10,449 INFO image_rx_daemon: LIFETRAC_SKIP_RESET_REQ=1 — relying on external NRST; draining boot chatter only + +2026-08-24 16:30:10,462 INFO image_rx_daemon: accepting first retained lifetrac/v25/control/radio_profile pin after start (restart convergence) + +2026-08-24 16:30:10,874 INFO image_rx_daemon: L072 VER warm-up ok (attempt 1) + +Initializing regulatory profile 2 on co-processor... + + FHSS mask: single channel 0 (0100000000000000) + +CFG_SET_REQ(FHSS_CHANNEL_MASK) OK: 07000800 + +CFG_SET_REQ(ANTENNA_GAIN_DBI) OK: 15000100 + +CFG_SET_REQ(HW_CEILING_DBM) OK: 16000100 + + FHSS seed: (0,0) legacy shared permutation [set LIFETRAC_FHSS_FARM_ID / LIFETRAC_FHSS_LINK_ID to separate pairs] + +CFG_SET_REQ(FHSS_FARM_ID) OK: 17000800 + +CFG_SET_REQ(FHSS_NODE_ID) OK: 18000800 + +CFG_SET_REQ(REG_PROFILE=2) OK: 14000100 + + forcing FRF -> 927.500 MHz (raw=0xE7E000 -> Msb=0xE7 Mid=0xE0 Lsb=0x00) + + FRF readback: 0xE7E000 = 927.500 MHz (OK) + +2026-08-24 16:30:11,318 INFO image_rx_daemon: LBT_ENABLE=0 (command uplink shares the image channel) + +PHY contract OK: image_bw500 == {'sf': 7, 'bw_khz': 500, 'cr_den': 5, 'preamble': 8} + +2026-08-24 16:30:11,403 INFO image_rx_daemon: SX1276 RXCONT autowake: opmode 0x81 -> 0x85 + +2026-08-24 16:30:11,404 INFO image_rx_daemon: RX worker ready; draining RX_FRAME_URC... + +2026-08-24 16:30:11,436 INFO image_rx_daemon: stats: rx_frames=0 rx_decode_err=0 frames_published=0 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=0 parity_recon=0 + +2026-08-24 16:30:11,539 INFO image_rx_daemon: published frame_id=0 seq=2 198 B → lifetrac/v25/video/tile_delta + +RFCO_PERTX during TX wait: profile_id=2 tx_status=0x00(OK) hop_idx=0 channel_idx=0 epoch=0 freq_hz=0 pkt_toa_us=10304 legal_dwell_used_us_10s=0 + +2026-08-24 16:30:11,570 INFO image_rx_daemon: command TX opcode=0x63 copy=1/1 OK (on air) + +2026-08-24 16:30:11,914 INFO image_rx_daemon: published frame_id=0 seq=3 190 B → lifetrac/v25/video/tile_delta + +RFCO_PERTX during TX wait: profile_id=2 tx_status=0x00(OK) hop_idx=0 channel_idx=0 epoch=0 freq_hz=0 pkt_toa_us=10304 legal_dwell_used_us_10s=0 + +2026-08-24 16:30:12,202 INFO image_rx_daemon: command TX opcode=0x63 copy=1/1 OK (on air) + +2026-08-24 16:30:12,421 INFO image_rx_daemon: published frame_id=0 seq=4 233 B → lifetrac/v25/video/tile_delta + +RFCO_PERTX during TX wait: profile_id=2 tx_status=0x00(OK) hop_idx=0 channel_idx=0 epoch=0 freq_hz=0 pkt_toa_us=10304 legal_dwell_used_us_10s=0 + +2026-08-24 16:30:12,701 INFO image_rx_daemon: command TX opcode=0x63 copy=1/1 OK (on air) + +2026-08-24 16:30:12,911 INFO image_rx_daemon: published frame_id=0 seq=5 198 B → lifetrac/v25/video/tile_delta + +RFCO_PERTX during TX wait: profile_id=2 tx_status=0x00(OK) hop_idx=0 channel_idx=0 epoch=0 freq_hz=0 pkt_toa_us=10304 legal_dwell_used_us_10s=0 + +2026-08-24 16:30:13,190 INFO image_rx_daemon: command TX opcode=0x63 copy=1/1 OK (on air) + +2026-08-24 16:30:13,427 INFO image_rx_daemon: published frame_id=0 seq=6 239 B → lifetrac/v25/video/tile_delta + +RFCO_PERTX during TX wait: profile_id=2 tx_status=0x00(OK) hop_idx=0 channel_idx=0 epoch=0 freq_hz=0 pkt_toa_us=10304 legal_dwell_used_us_10s=0 + +2026-08-24 16:30:13,715 INFO image_rx_daemon: command TX opcode=0x63 copy=1/1 OK (on air) + +2026-08-24 16:30:13,932 INFO image_rx_daemon: published frame_id=0 seq=7 224 B → lifetrac/v25/video/tile_delta + +RFCO_PERTX during TX wait: profile_id=2 tx_status=0x00(OK) hop_idx=0 channel_idx=0 epoch=0 freq_hz=0 pkt_toa_us=10304 legal_dwell_used_us_10s=0 + +2026-08-24 16:30:14,220 INFO image_rx_daemon: command TX opcode=0x63 copy=1/1 OK (on air) + +2026-08-24 16:30:14,423 INFO image_rx_daemon: published frame_id=0 seq=8 214 B → lifetrac/v25/video/tile_delta + +RFCO_PERTX during TX wait: profile_id=2 tx_status=0x00(OK) hop_idx=0 channel_idx=0 epoch=0 freq_hz=0 pkt_toa_us=10304 legal_dwell_used_us_10s=0 + +2026-08-24 16:30:14,706 INFO image_rx_daemon: command TX opcode=0x63 copy=1/1 OK (on air) + +2026-08-24 16:30:14,923 INFO image_rx_daemon: published frame_id=0 seq=9 242 B → lifetrac/v25/video/tile_delta + +RFCO_PERTX during TX wait: profile_id=2 tx_status=0x00(OK) hop_idx=0 channel_idx=0 epoch=0 freq_hz=0 pkt_toa_us=10304 legal_dwell_used_us_10s=0 + +2026-08-24 16:30:15,203 INFO image_rx_daemon: command TX opcode=0x63 copy=1/1 OK (on air) + +2026-08-24 16:30:15,407 INFO image_rx_daemon: published frame_id=0 seq=10 208 B → lifetrac/v25/video/tile_delta + +RFCO_PERTX during TX wait: profile_id=2 tx_status=0x00(OK) hop_idx=0 channel_idx=0 epoch=0 freq_hz=0 pkt_toa_us=10304 legal_dwell_used_us_10s=0 + +2026-08-24 16:30:15,685 INFO image_rx_daemon: command TX opcode=0x63 copy=1/1 OK (on air) + +2026-08-24 16:30:15,899 INFO image_rx_daemon: published frame_id=0 seq=11 214 B → lifetrac/v25/video/tile_delta + +RFCO_PERTX during TX wait: profile_id=2 tx_status=0x00(OK) hop_idx=0 channel_idx=0 epoch=0 freq_hz=0 pkt_toa_us=10304 legal_dwell_used_us_10s=0 + +2026-08-24 16:30:16,189 INFO image_rx_daemon: command TX opcode=0x63 copy=1/1 OK (on air) + +2026-08-24 16:30:16,436 INFO image_rx_daemon: published frame_id=0 seq=12 235 B → lifetrac/v25/video/tile_delta + +RFCO_PERTX during TX wait: profile_id=2 tx_status=0x00(OK) hop_idx=0 channel_idx=0 epoch=0 freq_hz=0 pkt_toa_us=10304 legal_dwell_used_us_10s=0 + +2026-08-24 16:30:16,715 INFO image_rx_daemon: command TX opcode=0x63 copy=1/1 OK (on air) + +2026-08-24 16:30:16,931 INFO image_rx_daemon: published frame_id=0 seq=13 226 B → lifetrac/v25/video/tile_delta + +RFCO_PERTX during TX wait: profile_id=2 tx_status=0x00(OK) hop_idx=0 channel_idx=0 epoch=0 freq_hz=0 pkt_toa_us=10304 legal_dwell_used_us_10s=0 + +2026-08-24 16:30:17,211 INFO image_rx_daemon: command TX opcode=0x63 copy=1/1 OK (on air) + +2026-08-24 16:30:17,437 INFO image_rx_daemon: published frame_id=0 seq=14 228 B → lifetrac/v25/video/tile_delta + +RFCO_PERTX during TX wait: profile_id=2 tx_status=0x00(OK) hop_idx=0 channel_idx=0 epoch=0 freq_hz=0 pkt_toa_us=10304 legal_dwell_used_us_10s=0 + +2026-08-24 16:30:17,716 INFO image_rx_daemon: command TX opcode=0x63 copy=1/1 OK (on air) + +2026-08-24 16:30:17,942 INFO image_rx_daemon: published frame_id=0 seq=15 194 B → lifetrac/v25/video/tile_delta + +RFCO_PERTX during TX wait: profile_id=2 tx_status=0x00(OK) hop_idx=0 channel_idx=0 epoch=0 freq_hz=0 pkt_toa_us=10304 legal_dwell_used_us_10s=0 + +2026-08-24 16:30:18,227 INFO image_rx_daemon: command TX opcode=0x63 copy=1/1 OK (on air) + +2026-08-24 16:30:18,462 INFO image_rx_daemon: published frame_id=0 seq=16 241 B → lifetrac/v25/video/tile_delta + +RFCO_PERTX during TX wait: profile_id=2 tx_status=0x00(OK) hop_idx=0 channel_idx=0 epoch=0 freq_hz=0 pkt_toa_us=10304 legal_dwell_used_us_10s=0 + +2026-08-24 16:30:18,741 INFO image_rx_daemon: command TX opcode=0x63 copy=1/1 OK (on air) + +2026-08-24 16:30:18,972 INFO image_rx_daemon: published frame_id=0 seq=17 210 B → lifetrac/v25/video/tile_delta + +RFCO_PERTX during TX wait: profile_id=2 tx_status=0x00(OK) hop_idx=0 channel_idx=0 epoch=0 freq_hz=0 pkt_toa_us=10304 legal_dwell_used_us_10s=0 + +2026-08-24 16:30:19,250 INFO image_rx_daemon: command TX opcode=0x63 copy=1/1 OK (on air) + +2026-08-24 16:30:19,442 INFO image_rx_daemon: published frame_id=0 seq=18 188 B → lifetrac/v25/video/tile_delta + +RFCO_PERTX during TX wait: profile_id=2 tx_status=0x00(OK) hop_idx=0 channel_idx=0 epoch=0 freq_hz=0 pkt_toa_us=10304 legal_dwell_used_us_10s=0 + +2026-08-24 16:30:19,721 INFO image_rx_daemon: command TX opcode=0x63 copy=1/1 OK (on air) + +2026-08-24 16:30:19,947 INFO image_rx_daemon: published frame_id=0 seq=19 180 B → lifetrac/v25/video/tile_delta + +RFCO_PERTX during TX wait: profile_id=2 tx_status=0x00(OK) hop_idx=0 channel_idx=0 epoch=0 freq_hz=0 pkt_toa_us=10304 legal_dwell_used_us_10s=0 + +2026-08-24 16:30:20,229 INFO image_rx_daemon: command TX opcode=0x63 copy=1/1 OK (on air) + +2026-08-24 16:30:20,443 INFO image_rx_daemon: published frame_id=0 seq=20 194 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:30:20,696 WARNING image_rx_daemon: cmd 0x63 GAVE UP after 18 attempts (10.2 s) + +2026-08-24 16:30:20,911 INFO image_rx_daemon: published frame_id=0 seq=21 190 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:30:21,411 INFO image_rx_daemon: published frame_id=0 seq=22 210 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:30:21,443 INFO image_rx_daemon: stats: rx_frames=21 rx_decode_err=0 frames_published=21 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=0 parity_recon=0 + +2026-08-24 16:30:21,445 INFO image_rx_daemon: air_gap: n=20 dt_med=501414us dt_p95=533767us len_med=218B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:30:21,447 INFO image_rx_daemon: air_gap_hist(ms): <400:1 <1000:19 + +2026-08-24 16:30:21,449 INFO image_rx_daemon: rx_rf: n_rssi=21 n_snr=21 rssi[min/med/max]=-73/-73/-72 snr[min/med/max]=5.0/6.0/6.0 + +2026-08-24 16:30:21,451 INFO image_rx_daemon: phase_telemetry: valid=21 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:30:21,453 INFO image_rx_daemon: air_gap_by_class: boundary: n=20 med=501.4ms + +2026-08-24 16:30:21,867 INFO image_rx_daemon: published frame_id=0 seq=23 176 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:30:22,423 INFO image_rx_daemon: published frame_id=0 seq=24 243 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:30:22,911 INFO image_rx_daemon: published frame_id=0 seq=25 220 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:30:23,399 INFO image_rx_daemon: published frame_id=0 seq=26 188 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:30:23,924 INFO image_rx_daemon: published frame_id=0 seq=27 229 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:30:24,415 INFO image_rx_daemon: published frame_id=0 seq=28 190 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:30:24,943 INFO image_rx_daemon: published frame_id=0 seq=29 229 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:30:25,395 INFO image_rx_daemon: published frame_id=0 seq=30 192 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:30:25,911 INFO image_rx_daemon: published frame_id=0 seq=31 218 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:30:26,427 INFO image_rx_daemon: published frame_id=0 seq=32 235 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:30:26,915 INFO image_rx_daemon: published frame_id=0 seq=33 180 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:30:27,431 INFO image_rx_daemon: published frame_id=0 seq=34 196 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:30:28,940 INFO image_rx_daemon: published frame_id=0 seq=35 2985 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:30:29,116 INFO image_rx_daemon: published frame_id=0 seq=36 202 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:30:29,275 INFO image_rx_daemon: published frame_id=0 seq=38 231 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:30:29,918 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=5.2 rssi=-69 dump=a6372f8cf6c07dbffce246e63aa5901863023cc25416aa1c1250ee4911728e53212a9b75d1d076f2083fbd74c9496c7ad0d599b50c1b9666c66d068989ae6c7ed911c238425b91ec1345cce3ce3b69eff3a589af91debb4da71eb8e466e28b096e497675f91792472fd080489926eb4a42fe1b157f2ba5a2604af4220f5e7836fb0bef62e096ce71b86b55accff96fa459b4a170d03ab99964c3312653f77babd5d2b0f02a4fe717801dd3bde907c24c99e34ded58ddcbb686f6bff981bfab9b97f6c7db906decccd80a6d7989c9086b1d23c2001d4329bfe300647e1a4fedc3e80abfb3afe2c7c05c411e7a11e572ce22d7a6eaf654a936af7cd0 + +2026-08-24 16:30:30,014 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=-0.5 rssi=-70 dump=2f690e211ac7a105c82bc47ddf795d6247c81049f86e117022c51a574a19466aec6796c611330e026bf46c9d6015a6f7d666fe7e17bc8d17442707c2e81ff50725e440d2e61f410f4dc937d3c483a8777ac63ed327ce92a82a55c366fb1c9d6f93a404af4bbbe85a1cad4da96a7dc61d9a217ab6100e366c0f56acadc55cadd1fb8dba439b5c01296bc4172dc4edae12d020187043ad0611d1d9874b53f5a596507d2d23654aa5daeb334ac99191c995a888f7b7d2db40f64e3693c23d3ae106100172fd2e3bd10b33f86a877c3ed0d9699957e6324fa622f87b2e6bd4f070d515c84769ea4622fcd8d93394180c1710d17653f2f8341821733a33 + +2026-08-24 16:30:30,939 INFO image_rx_daemon: published frame_id=0 seq=40 198 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:30:31,457 INFO image_rx_daemon: stats: rx_frames=63 rx_decode_err=0 frames_published=37 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=0 parity_recon=0 + +2026-08-24 16:30:31,458 INFO image_rx_daemon: air_gap: n=42 dt_med=117268us dt_p95=520294us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:30:31,461 INFO image_rx_daemon: air_gap_hist(ms): <80:2 <120:20 <200:7 <400:1 <1000:12 + +2026-08-24 16:30:31,463 INFO image_rx_daemon: rx_rf: n_rssi=42 n_snr=42 rssi[min/med/max]=-73/-72/-72 snr[min/med/max]=5.0/6.0/6.0 + +2026-08-24 16:30:31,465 INFO image_rx_daemon: phase_telemetry: valid=42 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:30:31,467 INFO image_rx_daemon: air_gap_by_class: seq: n=23 med=117.1ms | boundary: n=18 med=484.6ms | post_loss: n=1 med=343.8ms + +2026-08-24 16:30:31,469 INFO image_rx_daemon: lost_frag_idx: n=2 idx0=0 (0.00% of idx0 arrivals) other=2 (7.69%) verdict=not-clustered | top 4:1 5:1 + +2026-08-24 16:30:32,403 INFO image_rx_daemon: published frame_id=0 seq=41 2905 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:30:33,867 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=-0.5 rssi=-69 dump=010200000000008dba0cec791af169a026288e6672b28925bd1d6178846a40c2dfb4ceb1d01fb246e9352f96b371d14304581e101228776ddaffd1b78b1e0491b6d3a28ebecee095a88ef9ba470d59476ce66f099933abebbd5a21c8fa74d182bb00b181f9d4b28ce6dcfa77c6ca526173e46784e7c9feb425b5564ff7d758ef4ac525421e26987bf2f38781955889c8d1c0adeb25a000f988940d86c05ae387854e9410754f78c36ac21d6d8479b8dcc6c0a87b9a421f354fc3fd90e3d8ab0491bdbd91518ab3a36d68ada72791688f450f9ce006c982cd3830e7f68365bfcd4a0925977d47f95d65c6f695b774e9f220b04807a1f6d259910da1 + +2026-08-24 16:30:34,159 INFO image_rx_daemon: published frame_id=0 seq=46 198 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:30:34,160 INFO image_rx_daemon: published frame_id=0 seq=46 222 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:30:35,655 INFO image_rx_daemon: published frame_id=0 seq=53 2985 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:30:35,819 INFO image_rx_daemon: published frame_id=0 seq=58 200 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:30:36,460 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=4.0 rssi=-69 dump=f60f95e9853a4e95a532841b2cf76a7b38b8b0a17ada2dd71dea4339e8a482dfbc29745147610dde9f20a38b4447fad7b4a8cf9fbc06013059249fc19204e9160ea9742c5b023903c458a5bacf7d01a85e6a5a4b7696be9f2cbe827f6601bf8ab8cbfcf274d3ce91dafae8a63dcf7b24afdab2e168b9cf967f047d3466408afecd3a19e8cdb694f27484aebb50bc24c9b8d71212bbf320887ac0c3088e72388425ec241f3b5c9b259479987710a0fb6091e10654f9a9c25959962c70928fcaa43d53a347e642c9ac8779132f55d8402b0c9529f5d128fa5c6ee429f5afc4eac5021f3a12d052b05bbb5bb95e39b42828b958f3255f12c94e6ae8f4 + +2026-08-24 16:30:37,584 INFO image_rx_daemon: published frame_id=0 seq=64 190 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:30:37,585 INFO image_rx_daemon: published frame_id=0 seq=64 241 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:30:39,026 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=1.2 rssi=-69 dump=010208c0456526649a162f77f6e06521decfb7b0cdb3fee75449c068d2b5cbf3fcd7148743514731ee8d5b7e152bd203b75ad270951849a9f1fb26297aa113450102a7ebb0b3dc91dff45ffc170f5dc12cbcaead42ba63132dd3a21b7420fb67ba44cb42b5208ad16ddaea7e9680d4f569499d36008f3792d7064934a861716aeb53cb84c7fb9b2512422c86dea62a5cec42e2f735a3abaacb3b22dccffa6666c8351eb0f8366db24f95cc387d595fb04a1bdf734cfdda8cf1e60945033fbf06b22dd0a52afcdbc26f3b4d29405d198e4d6ee744e763e8589deded9bb4f0719a2696ef103d7418dabe0dd3b2a835b7db5ad6ab61803c5bcb684c49 + +2026-08-24 16:30:39,240 INFO image_rx_daemon: published frame_id=0 seq=72 234 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:30:40,468 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=-0.2 rssi=-68 dump=01020000000000007e4938b45eed110dc55e0e1cc23e1bbf6d95317f0b022035b3298d413fad507ea730dcf0f7c53a3ec49efd382b41f35bf9a6b350666ec23513929c299b9ffc3d603bcd8912762dff847eb2e56a7dd8a1f7ea3dd5fa02767e1076447d292423f0402d4c6ce06d0aa74db16dae35d68137f3f502a3d4cb9a341626899d8d8efb62b4609a9b1c5420dc4853aeed39d09cb3ebecfb90e7884ef741c9c6e6e6d63f66eff416afb637f411a10d8e439822f53740d67162332d98f1d6671ddb63921bcd32f7c333a886c54dfaa58074ecfee875e838c4c7ce87e0f4cee010758899acabf8cfb475bc38f262ca3f45d7b5b9e2b4175098 + +2026-08-24 16:30:40,925 INFO image_rx_daemon: published frame_id=0 seq=78 233 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:30:41,475 INFO image_rx_daemon: stats: rx_frames=142 rx_decode_err=0 frames_published=46 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=4 parity_recon=0 + +2026-08-24 16:30:41,478 INFO image_rx_daemon: air_gap: n=79 dt_med=117093us dt_p95=225619us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:30:41,482 INFO image_rx_daemon: air_gap_hist(ms): <20:1 <40:1 <80:1 <120:60 <200:12 <400:4 + +2026-08-24 16:30:41,484 INFO image_rx_daemon: rx_rf: n_rssi=79 n_snr=79 rssi[min/med/max]=-74/-72/-72 snr[min/med/max]=5.0/6.0/8.0 + +2026-08-24 16:30:41,485 INFO image_rx_daemon: phase_telemetry: valid=79 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:30:41,485 INFO image_rx_daemon: air_gap_by_class: seq: n=66 med=117.1ms | boundary: n=11 med=178.2ms | post_loss: n=2 med=234.3ms + +2026-08-24 16:30:41,486 INFO image_rx_daemon: lost_frag_idx: n=4 idx0=0 (0.00% of idx0 arrivals) other=4 (5.63%) verdict=not-clustered | top 11:2 4:1 9:1 + +2026-08-24 16:30:42,400 INFO image_rx_daemon: published frame_id=0 seq=79 2951 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:30:42,811 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=0.0 rssi=-69 dump=b7ae18368f85eeb19a136862ac78d04e6ece8f3c3d404c8b70867348cc6768a000b8ccaf9abfa6fd71916505fcb5d519890d1416cedb4601aa5aaa0a796ac2b337ab8df2b8f0df8809590b91ce6ee10b12bc8ceb8cc770ac828f297c2d565ee93fb9248ffc57c26e7c948ef71f04756f08787d72e03ba728ebcac0d23173dac3b5c928dde52f19942fc68e01f5cb8d92e027d27c8de1c6cfd5cb81358313b4b0374806865566b97cf5483234f93bf31b6b36bf18df0f54606d39565eafadc8ad22549253d0b92ff55967d4c4573ee7d4b67b3bdfc66f2a8ae22bef93ee89c36869995cc50decddd053cbefc56a9bcb4dcd836b7ddc7e73818bc7cb + +2026-08-24 16:30:44,160 INFO image_rx_daemon: published frame_id=0 seq=86 235 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:30:44,161 INFO image_rx_daemon: published frame_id=0 seq=86 182 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:30:45,628 INFO image_rx_daemon: published frame_id=0 seq=93 2915 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:30:45,797 INFO image_rx_daemon: published frame_id=0 seq=98 212 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:30:47,290 INFO image_rx_daemon: published frame_id=0 seq=99 2985 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:30:47,459 INFO image_rx_daemon: published frame_id=0 seq=106 184 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:30:48,920 INFO image_rx_daemon: published frame_id=0 seq=107 2915 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:30:49,115 INFO image_rx_daemon: published frame_id=0 seq=112 235 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:30:50,618 INFO image_rx_daemon: published frame_id=0 seq=113 2986 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:30:50,877 INFO image_rx_daemon: published frame_id=0 seq=118 233 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:30:51,489 INFO image_rx_daemon: stats: rx_frames=223 rx_decode_err=0 frames_published=57 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=6 parity_recon=0 + +2026-08-24 16:30:51,491 INFO image_rx_daemon: air_gap: n=81 dt_med=117138us dt_p95=179619us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:30:51,493 INFO image_rx_daemon: air_gap_hist(ms): <20:1 <40:1 <80:2 <120:64 <200:11 <400:2 + +2026-08-24 16:30:51,494 INFO image_rx_daemon: rx_rf: n_rssi=81 n_snr=81 rssi[min/med/max]=-74/-72/-72 snr[min/med/max]=5.0/6.0/6.0 + +2026-08-24 16:30:51,494 INFO image_rx_daemon: phase_telemetry: valid=81 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:30:51,495 INFO image_rx_daemon: air_gap_by_class: seq: n=69 med=117.1ms | boundary: n=11 med=177.6ms | post_loss: n=1 med=234.3ms + +2026-08-24 16:30:51,496 INFO image_rx_daemon: lost_frag_idx: n=1 idx0=0 (0.00% of idx0 arrivals) other=1 (1.41%) verdict=not-clustered | top 2:1 + +2026-08-24 16:30:51,599 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=190 snr=6.2 rssi=-70 dump=ea855855baf293ad4102692d9afd3c4c0ad0439919affa8c1865efa5cba2db87f6a35acc20fd3f5722c69eaeaabfad12b55910c44030deac883e3b931ca37f4bf0bae4c20e1ac7303dd808dcad360325d09cbb4e9f044d050e1368d48b075dacdd2114fb07e9a1563ba1cc734586146d3878bf8731ef00b9d07316310132c112b2392a6ba6efe8681345aad0bf342b247a25d4e252eaf3e4021f5071ae75ae371346b84cdd7a838d62245bb10b75af90767ef73a412d323590b412522a65 + +2026-08-24 16:30:52,527 INFO image_rx_daemon: published frame_id=0 seq=126 229 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:30:52,689 INFO image_rx_daemon: published frame_id=0 seq=132 234 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:30:54,187 INFO image_rx_daemon: published frame_id=0 seq=133 2953 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:30:54,352 INFO image_rx_daemon: published frame_id=0 seq=134 194 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:30:55,857 INFO image_rx_daemon: published frame_id=0 seq=135 2979 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:30:57,623 INFO image_rx_daemon: published frame_id=0 seq=146 204 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:30:59,119 INFO image_rx_daemon: published frame_id=0 seq=147 2974 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:30:59,283 INFO image_rx_daemon: published frame_id=0 seq=152 194 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:00,723 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=0.2 rssi=-68 dump=0102000000000017e98ea4b7a45a42d6a56397059d96b8b37fef18f233c5cd79bec627f88d7c5ff87ea60d898c6f39af0d3c6424da51a6a7b2437f0ba4bfd573ab51608c4e5128d352ac215d759c7c364aacfcfce90a75d00efb8c65a33d4e2330bc030973151cc1e2fbf5f4528b91e5a5d43e54960e58217ce107189ba95a53b6b4769b68ab5b46564e992c002838ea85c252861665602373a4ca2bed8979ba14ba4b69e6abcc0e085a313a099f170ea8221152f30362da73c7d959dbda38135db7b57fb5c9718eabe12c2e5c11db09211c203c5080be57d454c85c241dba1fefcc7d7bfe6d89c10c3f7841cb1f19fe6125791b7b81d19531d74d + +2026-08-24 16:31:01,013 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=3.5 rssi=-69 dump=f316b03a1701b8b3f114285edff4716208d9bd434098b019992603a94bef25513599b20034bc0385755dc2229f30e2423ec56acb48834cfed30fbdefd09f1a61a75497ed7cc14310068e9543c4b4b21c38043043cb2430fb44ad27e51b317b38016165a3da615933daee28df624a6c29c98a03072324a499cac9c7745654d9eaf78e526f9fe7fb10145787e430aa6abddf7d691a2680452340b80714fff4f3acbb1c081897574c3caf0538a04346804d8a42e18b14c01f552be094ec961046456d047e3f821b02c02404151684c3f11b28df527ac90d25597684b104cbc8651f4eaa62c22eeca0646e3c751ba66529864305a1d32f0c91b9b7a85c + +2026-08-24 16:31:01,509 INFO image_rx_daemon: stats: rx_frames=301 rx_decode_err=0 frames_published=65 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=8 parity_recon=0 + +2026-08-24 16:31:01,511 INFO image_rx_daemon: air_gap: n=78 dt_med=117144us dt_p95=234273us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:31:01,515 INFO image_rx_daemon: air_gap_hist(ms): <40:3 <80:1 <120:58 <200:11 <400:5 + +2026-08-24 16:31:01,516 INFO image_rx_daemon: rx_rf: n_rssi=78 n_snr=78 rssi[min/med/max]=-73/-72/-72 snr[min/med/max]=5.0/6.0/7.0 + +2026-08-24 16:31:01,517 INFO image_rx_daemon: phase_telemetry: valid=78 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:31:01,518 INFO image_rx_daemon: air_gap_by_class: seq: n=64 med=117.1ms | boundary: n=12 med=177.6ms | post_loss: n=2 med=234.3ms + +2026-08-24 16:31:01,518 INFO image_rx_daemon: lost_frag_idx: n=4 idx0=0 (0.00% of idx0 arrivals) other=4 (5.71%) verdict=not-clustered | top 5:1 9:1 11:1 1:1 + +2026-08-24 16:31:02,496 INFO image_rx_daemon: published frame_id=0 seq=161 2910 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:02,691 INFO image_rx_daemon: published frame_id=0 seq=166 239 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:02,848 INFO image_rx_daemon: published frame_id=0 seq=172 196 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:04,294 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=0.5 rssi=-69 dump=01020000000000630222fc308e05ccfbb960a7909f0f7a3b4fbcf4da02038461de53ebcde9546fbc4e843ddf6d8bf1878c41d82e9443b25b8cde0b49d0fbc9cf5c33acd51341fe76c4c7d61ca0442bbfb4d7984b994701120bf6457c9c3ba321944dad3bb7478129db9133a19ff0fca26d978ec29b72769f76005e21ff7c5a9ebd2970569e1dcff630040e03c96f896a87e6805e1f9a2be5b3b60e6cdc7a1aa3cea677af8a2ead7d00a9007535554a1bf17db29b08472b452bae78634f024d94f1d2092190218948ec7fd599653cae40b1b9cc1aeb5c05b75e8e04c4241ce889deff561c647175af8a8c7a3c48bab8a8aa972953a860a889dd7274 + +2026-08-24 16:31:04,503 INFO image_rx_daemon: published frame_id=0 seq=174 233 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:05,991 INFO image_rx_daemon: published frame_id=0 seq=175 2975 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:06,143 INFO image_rx_daemon: published frame_id=0 seq=180 182 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:07,645 INFO image_rx_daemon: published frame_id=0 seq=181 2985 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:07,824 INFO image_rx_daemon: published frame_id=0 seq=186 212 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:09,293 INFO image_rx_daemon: published frame_id=0 seq=187 2919 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:09,543 INFO image_rx_daemon: published frame_id=0 seq=192 218 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:09,543 INFO image_rx_daemon: published frame_id=0 seq=192 182 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:10,991 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=1.2 rssi=-68 dump=01020040d61fc1cda4dd505e9e29926fceb479f8f87525fe37c66c1d14f8d09573df2540cb0338dec6b49ef6844c5e12129c5f64f79d419c3e75784af5af3a834c32c465b48a39da4b97d0be0ec913d15f306a58a1a16b60a7719bdd393498e81b273d0e9d420595541c6466f5565c089f0b055ddf0b97549f9e2ad2e941b7e26b202785fe349925600da4b71beafa0ca049d301bbb3912c8a8aec51ff938a2ee1a930209fbae522b91ddc5bf1dd6e73908994cf62ad15c469d5c54d3a9a92d4d3c2c895ed7deba9e37a74dfce6df082435b100cb7300e79ae2ea5a7d77f7a8fe31ebf71b270011c6639b568aa9051c3cab5a42975f9d3933bc061 + +2026-08-24 16:31:11,195 INFO image_rx_daemon: published frame_id=0 seq=200 235 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:11,522 INFO image_rx_daemon: stats: rx_frames=381 rx_decode_err=0 frames_published=77 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=11 parity_recon=0 + +2026-08-24 16:31:11,524 INFO image_rx_daemon: air_gap: n=80 dt_med=117158us dt_p95=182610us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:31:11,528 INFO image_rx_daemon: air_gap_hist(ms): <20:1 <40:1 <80:2 <120:63 <200:11 <400:2 + +2026-08-24 16:31:11,530 INFO image_rx_daemon: rx_rf: n_rssi=80 n_snr=80 rssi[min/med/max]=-74/-72/-72 snr[min/med/max]=5.0/6.0/7.0 + +2026-08-24 16:31:11,532 INFO image_rx_daemon: phase_telemetry: valid=80 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:31:11,533 INFO image_rx_daemon: air_gap_by_class: seq: n=67 med=117.1ms | boundary: n=13 med=177.3ms + +2026-08-24 16:31:11,534 INFO image_rx_daemon: lost_frag_idx: n=2 idx0=0 (0.00% of idx0 arrivals) other=2 (2.90%) verdict=not-clustered | top 11:2 + +2026-08-24 16:31:12,686 INFO image_rx_daemon: published frame_id=0 seq=201 2959 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:12,871 INFO image_rx_daemon: published frame_id=0 seq=206 233 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:14,336 INFO image_rx_daemon: published frame_id=0 seq=213 2923 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:14,519 INFO image_rx_daemon: published frame_id=0 seq=214 231 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:16,287 INFO image_rx_daemon: published frame_id=0 seq=220 234 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:17,760 INFO image_rx_daemon: published frame_id=0 seq=221 2915 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:18,017 INFO image_rx_daemon: published frame_id=0 seq=226 206 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:18,018 INFO image_rx_daemon: published frame_id=0 seq=226 226 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:19,703 INFO image_rx_daemon: published frame_id=0 seq=234 198 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:21,335 INFO image_rx_daemon: published frame_id=0 seq=240 198 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:21,536 INFO image_rx_daemon: stats: rx_frames=459 rx_decode_err=0 frames_published=87 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=14 parity_recon=0 + +2026-08-24 16:31:21,537 INFO image_rx_daemon: air_gap: n=78 dt_med=117176us dt_p95=234265us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:31:21,539 INFO image_rx_daemon: air_gap_hist(ms): <20:1 <40:1 <80:2 <120:59 <200:11 <400:4 + +2026-08-24 16:31:21,540 INFO image_rx_daemon: rx_rf: n_rssi=78 n_snr=78 rssi[min/med/max]=-74/-72/-72 snr[min/med/max]=5.0/6.0/7.0 + +2026-08-24 16:31:21,541 INFO image_rx_daemon: phase_telemetry: valid=78 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:31:21,542 INFO image_rx_daemon: air_gap_by_class: seq: n=63 med=117.1ms | boundary: n=12 med=178.0ms | post_loss: n=3 med=234.3ms + +2026-08-24 16:31:21,542 INFO image_rx_daemon: lost_frag_idx: n=4 idx0=0 (0.00% of idx0 arrivals) other=4 (5.71%) verdict=not-clustered | top 2:1 9:1 10:1 3:1 + +2026-08-24 16:31:22,840 INFO image_rx_daemon: published frame_id=0 seq=241 2986 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:23,005 INFO image_rx_daemon: published frame_id=0 seq=246 216 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:23,185 INFO image_rx_daemon: published frame_id=0 seq=254 233 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:24,664 INFO image_rx_daemon: published frame_id=0 seq=255 2949 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:24,859 INFO image_rx_daemon: published frame_id=0 seq=0 228 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:26,357 INFO image_rx_daemon: published frame_id=0 seq=1 2985 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:27,929 INFO image_rx_daemon: published frame_id=0 seq=5 2953 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:28,207 INFO image_rx_daemon: published frame_id=0 seq=6 235 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:28,208 INFO image_rx_daemon: published frame_id=0 seq=6 180 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:29,723 INFO image_rx_daemon: published frame_id=0 seq=13 2991 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:29,883 INFO image_rx_daemon: published frame_id=0 seq=18 212 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:31,383 INFO image_rx_daemon: published frame_id=0 seq=19 2974 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:31,545 INFO image_rx_daemon: stats: rx_frames=542 rx_decode_err=0 frames_published=99 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=15 parity_recon=0 + +2026-08-24 16:31:31,547 INFO image_rx_daemon: air_gap: n=83 dt_med=117156us dt_p95=176308us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:31:31,551 INFO image_rx_daemon: air_gap_hist(ms): <40:3 <80:3 <120:66 <200:10 <400:1 + +2026-08-24 16:31:31,551 INFO image_rx_daemon: rx_rf: n_rssi=83 n_snr=83 rssi[min/med/max]=-73/-72/-72 snr[min/med/max]=5.0/6.0/6.0 + +2026-08-24 16:31:31,552 INFO image_rx_daemon: phase_telemetry: valid=83 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:31:31,553 INFO image_rx_daemon: air_gap_by_class: seq: n=73 med=117.1ms | boundary: n=10 med=176.3ms + +2026-08-24 16:31:32,930 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=3.2 rssi=-69 dump=0102000000000051fc0ab7fa8eebae1a8906481daef9348235d18f513fe1cc39170a13cb6be03e28769ff4a4f2bec60715fbb527b97d6cb087060d975da7d013cd8b93464d0878041bb6c833456e24f562d234a82c026b26b1a4886234d78b9ddc6ed3e6c6ccda3ec2f88c707bfe877c0344b46373c706608eb48688c87ce664e781a4090d7586d225b75a4564855dedc83a5b63ec4dc8959021eed06fc32d6d80ade168bbdd2249f6fe65f75f2fe5c28b99a0759b30b4908715ccd4c315a0d80237e163d01ec97cd2d5596c08412c897f57896168bb7128b264dccb4743de8e766b50beccd09042e270b2baa72f717e834905f9d56e8e5dda8bc5 + +2026-08-24 16:31:33,099 INFO image_rx_daemon: published frame_id=0 seq=26 188 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:33,280 INFO image_rx_daemon: published frame_id=0 seq=32 233 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:33,451 INFO image_rx_daemon: published frame_id=0 seq=38 231 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:33,855 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=2.2 rssi=-69 dump=e52d448515dcb0a9c8f3596337ca0614b79416b570b07555cd7bf4ba9c46fdada35611af40fff2f5c441a4b97f6f0f491369c8f421cf63a4ebb723f05f7ae24e1611ff5f3ffc38b5be709ec0b2a5a2648193c8074dea00b4b86c0772c574920c22bc78bb25f88fa56d304db0f38fd8d323656ab4d1b9cf003d32b961e228669ea4683457c94d986c5f1103409ddbc54ce83fd937e0325efc2c5265e13914af6a8d889b4de5d734df9a3dca6a66ed43a583a02825c573ad2dde9d393c37ec3a733ab3bc2befda6130ab37633aa9f799af17e9f773b5621e898d9210878ecc928a81f857d404bee1314c1ea0b204641887187c1ac6cea3d3e9d8aaa8 + +2026-08-24 16:31:35,104 INFO image_rx_daemon: published frame_id=0 seq=40 176 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:36,458 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=2.5 rssi=-69 dump=0102000000000000fe2949cf07bac27b05b81237a1d1f06c9962a78094824247ed355befe9cd3ebc4f16b04da368ccdb05ffb14249bd0d89556c51d435d2e9c79141e83e2b7c308c008cbf2f74c4403a99e6d7ac9f01dda4a2f2e1f50970758e86e9c129f6cbf8fc06193983b5aa97f3abe85d600bea1db6eb764b29b0ea3a40760dc0b00314c00233f27a08be950a028e32162269194b11c66fbf8f02f9464f9b011b84213435991dd105b9397fd644802b22ad5dcae93725fd91983ef523cdee5f1747a09d7be7fcb49594ca97db95ebf4ac444f264dddb649ce6b9c8d49ce6266a7bbe0672923fedc0446c0527baa881489f14faf233abd7349 + +2026-08-24 16:31:36,570 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=6.0 rssi=-68 dump=01020000000000407eab1ab8b0e9ca08ef1901523b5ca0718655732923c1ebac3d5804581f9b78333c577ec468a4408a48a2c0b8198056476228904dd3473139194495d9c675b31584cbac462da545ca1a97add4ebd0f37a4ac87cef794315ceb33bf1560a46bbe28d8a80695b1975c4e3268b6f560c9256682bb551c2bd9da916b201226411a4adf4a68fc3fa6b962eb892a9a112ac7ba5b1a0399d0bdbc6011ca055ef27687a6b4ef4de40d5d1c82a74e7d52af741d0d77c2952d14dc40d6daa48c04ee6cb2e1ff6e3c7a259c20767926fbfceac8021e6cfd40ad22ed1824e712f91064a193682a80649db8be7f7bf4f40d22875427ea5ede126 + +2026-08-24 16:31:36,763 INFO image_rx_daemon: published frame_id=0 seq=46 235 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:38,252 INFO image_rx_daemon: published frame_id=0 seq=47 2975 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:38,292 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=71 snr=-11.5 rssi=-115 dump=8e986f356af4072779992d3f96ea27703c372d620769dc2867aa2d7cc9cc040efe0e1b7dd4d42c75497c25612e3d5b8fcb90109e10808f792d5216b639f0d8190b2475c9607872 + +2026-08-24 16:31:38,620 INFO image_rx_daemon: published frame_id=0 seq=52 240 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:38,621 INFO image_rx_daemon: published frame_id=0 seq=52 200 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:40,082 INFO image_rx_daemon: published frame_id=0 seq=55 2915 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:41,541 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=1.5 rssi=-69 dump=674b506004282e457af939b00cece36dbec829dacc76eb17e0ee1a34678dd930f03c5abceb68614bf6b7373fc67529e4bb299ac9a3deb4f7444deb00f042ff1c3b24c46f58053aa4a94887fcab4becdb51352469d2c4fbaefffaa3081b2ee968a48ef582c9a6ff9969ac1b5f36f733a6d155ee00b50cded44be787f5a47100643ee556a0430857cc02837f0d3341a4dec60cb86e6e442cf44ee36ab58a3732fdd56659175bb09b2ef4f487a4c74589d4d85ed1cb505fc9716a454261793152126ff12e0c02147b480c65438deaa87ee836f2628a8d8eade79a1b2d144f768fdbf1c7c9a228f2ad25b06ff796e952eeb736aa1936385b2ff266f518 + +2026-08-24 16:31:41,561 INFO image_rx_daemon: stats: rx_frames=617 rx_decode_err=0 frames_published=108 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=18 parity_recon=0 + +2026-08-24 16:31:41,566 INFO image_rx_daemon: air_gap: n=75 dt_med=117160us dt_p95=265246us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:31:41,573 INFO image_rx_daemon: air_gap_hist(ms): <40:1 <80:1 <120:58 <200:9 <400:5 <1000:1 + +2026-08-24 16:31:41,574 INFO image_rx_daemon: rx_rf: n_rssi=75 n_snr=75 rssi[min/med/max]=-73/-72/-72 snr[min/med/max]=5.0/6.0/7.0 + +2026-08-24 16:31:41,574 INFO image_rx_daemon: phase_telemetry: valid=75 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:31:41,575 INFO image_rx_daemon: air_gap_by_class: seq: n=59 med=117.1ms | boundary: n=12 med=180.9ms | post_loss: n=2 med=242.5ms + +2026-08-24 16:31:41,575 INFO image_rx_daemon: lost_frag_idx: n=5 idx0=0 (0.00% of idx0 arrivals) other=5 (3.55%) verdict=not-clustered | top 11:2 2:1 8:1 10:1 + +2026-08-24 16:31:41,575 INFO image_rx_daemon: frag_reordered: 2 late out-of-order arrivals had a provisional loss retracted (in-order assumption violated — see RS-11.4) + +2026-08-24 16:31:41,841 INFO image_rx_daemon: published frame_id=0 seq=62 226 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:41,842 INFO image_rx_daemon: published frame_id=0 seq=62 216 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:43,295 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=4.2 rssi=-69 dump=01020000342f93869b59545c36e2d9d66115400f225e9959cad0b2157f5972c4a9006a5c22a070a6dfdfb293289d8f7bedc662d5a66f32a62e7e95ce80e774ace7f07933eac5636f1229ed26ef463365db7673460bc0fee7f68ce5f380c7ec3a62a5a22d507fa1e60ef501815b532d8bb03e7ab1876358dc5e6984e2b21bf6aeac04b33aa8122ce4c1acda7d53460ef1327af83216813d5839d45d2162644ada79ca398f6986d78479bf725c0c971836a5a62f3c02e7e5419f33145abd896b23f79ae94ea5da2c5de820be366fc0a45891c5d9fb22969f1a45330215c12288c0ec130b33003a7d779d940d35504e5e7c2d28f0216f33c546d65153 + +2026-08-24 16:31:43,496 INFO image_rx_daemon: published frame_id=0 seq=72 237 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:43,668 INFO image_rx_daemon: published frame_id=0 seq=80 236 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:45,166 INFO image_rx_daemon: published frame_id=0 seq=81 3000 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:45,327 INFO image_rx_daemon: published frame_id=0 seq=82 202 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:46,829 INFO image_rx_daemon: published frame_id=0 seq=83 2974 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:47,138 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=91 snr=0.2 rssi=-69 dump=5c9ad89bc0fd6a404f5799256535935ecef34e5bbd28cf8987cfeb53ef8b392cf885cba47beebca12105bbc9a4cc8cfa3a7d401e46ed53513681e007145ba3a798a72f1599143969b8dd33ef710bc40aca2b11c5b0f295db8fec89 + +2026-08-24 16:31:47,550 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=251 snr=3.0 rssi=-69 dump=5a755cdc362305860836bf28d0c326aa44024fd3c624b5b3c01b9b6b61fad9caefa0fc08742fd13713668f3ee0f06f2bb3ce8296e913dd3acc2488890c62a98ab0d6183b2bbeb3124c91d3c9d77d61d77421bdbdbe0bd07c8f035ed750a88105e64b72c7fee81353f5fc7e697ad2bb2a090116a842cf783096b59b30145a2ec303eb2505990cffaf36b3936f0f8e60ce140e0df4fa6bf0c35b62e18c9f6480fc34a6ae5eade338325e844c43460ef696f7c3bac68c7ff514a828a688b94c0184d2ed2aff247d0423de843f0ace1e8b9d74e9309d9c16ad00413388d26bc4484c0f78ad416632bd7142a167b81cd359ef70940948bd2e5e03df6999 + +2026-08-24 16:31:48,751 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=137 snr=2.0 rssi=-73 dump=01c2000000000030fe50010143f3e91fc000fee6417536b42fc57733d3240baacbc235d87ddb70ec52e9d478b0428c76000055524926464e000000574542504690382022000000300320fd012a200020003ec150a14aaa24a3e4b0080140180a6700cba430d70d230000fbe55eed72ec8360fa3550e12d1b5d6e5680aeda27227efe6f0dd66e060800 + +2026-08-24 16:31:50,207 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=-0.8 rssi=-69 dump=c4c39e3c3454cbfb27ff8b4e2cfb39e73088c971203b7b126ddf797b638c9e6002bd8d6f5b1ade3b314b01ec654e9d8e470c8222666321992bd6213105fbc529ab366456253725ed8c0ea16f2593c61ba2f76737671027ffe8a7be88b139a04c91593d9d6c610e9b23982292dc86da57b168331be6aeed07f4f2c2c50721f6e3c15602e93636b20bd1a9fd6aafa99ca6f7d0553a9e3aa64ac0e8323c495b407aa82c635db9242b9cb88f905a4de871c261ced156fec45bcc2e2f3187d28f812d3d5d2d5b4820462fe51f90c44509b9eba6f586fc1e8933035b476eef3eda9011168fc959b86fe864b962ca0b95838366e8952ee517f2edd35a8980 + +2026-08-24 16:31:50,378 INFO image_rx_daemon: published frame_id=0 seq=102 178 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:50,919 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=2 snr=-11.0 rssi=-105 dump=d2d6 + +2026-08-24 16:31:51,578 INFO image_rx_daemon: stats: rx_frames=692 rx_decode_err=0 frames_published=116 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=22 parity_recon=0 + +2026-08-24 16:31:51,580 INFO image_rx_daemon: air_gap: n=75 dt_med=117149us dt_p95=265456us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:31:51,582 INFO image_rx_daemon: air_gap_hist(ms): <40:1 <80:2 <120:58 <200:6 <400:8 + +2026-08-24 16:31:51,583 INFO image_rx_daemon: rx_rf: n_rssi=75 n_snr=75 rssi[min/med/max]=-73/-72/-72 snr[min/med/max]=5.0/6.0/6.0 + +2026-08-24 16:31:51,584 INFO image_rx_daemon: phase_telemetry: valid=75 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:31:51,586 INFO image_rx_daemon: air_gap_by_class: seq: n=61 med=117.1ms | boundary: n=12 med=243.5ms | post_loss: n=2 med=234.3ms + +2026-08-24 16:31:51,587 INFO image_rx_daemon: lost_frag_idx: n=6 idx0=0 (0.00% of idx0 arrivals) other=6 (8.70%) verdict=not-clustered | top 11:3 1:2 4:1 + +2026-08-24 16:31:51,889 INFO image_rx_daemon: published frame_id=0 seq=103 2983 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:53,448 INFO image_rx_daemon: published frame_id=0 seq=107 2915 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:53,726 INFO image_rx_daemon: published frame_id=0 seq=108 212 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:53,727 INFO image_rx_daemon: published frame_id=0 seq=108 218 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:55,200 INFO image_rx_daemon: published frame_id=0 seq=115 2934 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:55,375 INFO image_rx_daemon: published frame_id=0 seq=120 188 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:56,855 INFO image_rx_daemon: published frame_id=0 seq=121 2953 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:58,339 INFO image_rx_daemon: published frame_id=0 seq=127 2949 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:58,640 INFO image_rx_daemon: published frame_id=0 seq=128 231 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:31:58,641 INFO image_rx_daemon: published frame_id=0 seq=128 194 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:00,125 INFO image_rx_daemon: published frame_id=0 seq=135 2979 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:00,302 INFO image_rx_daemon: published frame_id=0 seq=140 214 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:01,601 INFO image_rx_daemon: stats: rx_frames=776 rx_decode_err=0 frames_published=128 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=23 parity_recon=0 + +2026-08-24 16:32:01,603 INFO image_rx_daemon: air_gap: n=84 dt_med=117153us dt_p95=179651us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:32:01,608 INFO image_rx_daemon: air_gap_hist(ms): <40:4 <80:1 <120:67 <200:11 <400:1 + +2026-08-24 16:32:01,608 INFO image_rx_daemon: rx_rf: n_rssi=84 n_snr=84 rssi[min/med/max]=-74/-72/-72 snr[min/med/max]=5.0/6.0/6.0 + +2026-08-24 16:32:01,609 INFO image_rx_daemon: phase_telemetry: valid=84 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:32:01,609 INFO image_rx_daemon: air_gap_by_class: seq: n=74 med=117.1ms | boundary: n=10 med=179.7ms + +2026-08-24 16:32:01,808 INFO image_rx_daemon: published frame_id=0 seq=141 2991 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:02,158 INFO image_rx_daemon: published frame_id=0 seq=146 233 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:02,159 INFO image_rx_daemon: published frame_id=0 seq=146 169 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:03,616 INFO image_rx_daemon: published frame_id=0 seq=149 2923 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:03,803 INFO image_rx_daemon: published frame_id=0 seq=154 210 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:03,967 INFO image_rx_daemon: published frame_id=0 seq=160 200 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:05,427 INFO image_rx_daemon: published frame_id=0 seq=161 2910 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:05,611 INFO image_rx_daemon: published frame_id=0 seq=162 235 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:07,115 INFO image_rx_daemon: published frame_id=0 seq=163 2985 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:07,287 INFO image_rx_daemon: published frame_id=0 seq=168 226 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:07,930 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=0.5 rssi=-69 dump=662fd06e6ff2afb0a9d578e875923de020f6ae1cb8cbfd95d9dd4f2defbcb774f4ef43b7d62dcc14fd8baa0a17b7ddfb66fb0b57130f25a301093df215cd9c44ba6ddd0a7059d3bff86088875a701fc548ba9c48e4da0203d84941c2f5c764f22c50380c90e5013893da997de43fb87d05960d19035afac94d9efa11490e47476731187f4a5ea7fd45b36029d18c2d6088b1501c253b6767da11a499722f429db777070f96e3b6aec2af4e695d02c12360523f08b6b28242455bc369e7123119cf5848820557b9b6b9bb4492fd84b50c750bfef847a4cac6e49ad78d05142969a0fc9f4a8c55cdf7bb36e2c8b97c90926ebeb931ad050f81839536 + +2026-08-24 16:32:09,043 INFO image_rx_daemon: published frame_id=0 seq=174 216 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:09,044 INFO image_rx_daemon: published frame_id=0 seq=174 214 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:10,549 INFO image_rx_daemon: published frame_id=0 seq=177 2986 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:10,715 INFO image_rx_daemon: published frame_id=0 seq=182 212 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:11,620 INFO image_rx_daemon: stats: rx_frames=857 rx_decode_err=0 frames_published=142 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=24 parity_recon=0 + +2026-08-24 16:32:11,622 INFO image_rx_daemon: air_gap: n=81 dt_med=117153us dt_p95=181111us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:32:11,625 INFO image_rx_daemon: air_gap_hist(ms): <20:1 <80:4 <120:61 <200:12 <400:3 + +2026-08-24 16:32:11,626 INFO image_rx_daemon: rx_rf: n_rssi=81 n_snr=81 rssi[min/med/max]=-73/-72/-72 snr[min/med/max]=5.0/6.0/6.0 + +2026-08-24 16:32:11,627 INFO image_rx_daemon: phase_telemetry: valid=81 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:32:11,628 INFO image_rx_daemon: air_gap_by_class: seq: n=67 med=117.1ms | boundary: n=13 med=178.3ms | post_loss: n=1 med=228.1ms + +2026-08-24 16:32:11,629 INFO image_rx_daemon: lost_frag_idx: n=1 idx0=0 (0.00% of idx0 arrivals) other=1 (0.70%) verdict=not-clustered | top 4:1 + +2026-08-24 16:32:12,180 INFO image_rx_daemon: published frame_id=0 seq=183 2915 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:13,647 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=4.2 rssi=-68 dump=b790896ca2775442488fdad4762568dd9deb8078e2986465547a7debbde6d825037c77bbb3a335bc8639f7bf9a631f16e3b70701d9ad9a42af998aefa9f492f5959dd132f90f2efc0bc7717b4ac511df38562a85922c130591a14fb53658230b8cfebd0708e88a063999d2a882292f8f2ec53036ad146aa4254bf975433f4c5a63737750c1327a6cddb51dc9875e265f4155e0d3fdbe52997443b10cef9369db8c25b92c440891a34d062543a1e2e692f67ac220469f0df0058b3c9bd39aeca96a6ea467b0acc65f710c29c0ea51d0e447cab11c5e1cae3395fa1d91cb1c1bcdf8a977e3cc47b07ce6e61ebf34e1a4712a1f2f3bcd0c49be024d39 + +2026-08-24 16:32:13,827 INFO image_rx_daemon: published frame_id=0 seq=190 200 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:15,280 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=6.0 rssi=-70 dump=010200e007f1c814cb6abf2a8a464d27eddb71e88f0ffa26931118de6f22ac48c80f4e6db16a93932c47b3fda1b38c45c9de57b9b25f8f6e028d6bf48b153094b27f63384949d33cf22c4faf69166026dbd790237bffc6a56525e8a2d3ad6609cd6ef27fb4ff924181c772cb42318b63202d31a1b6d5fce8e883a825743ccdf846dd909324825c5a859dff6dc215c76b12d5a61e450e75dbddd13577bd64712cb7d64ab529e7344a517c31f4accadcaf75e8394137e7cd11d47b38b331849ca976ff06dc118f36dfd88466052f103439372cc5c8cc87eae5c7f2549e494327cefd7582bd53a7536f4f701105b7ba46efe730c9de47223c9fce2436 + +2026-08-24 16:32:15,540 INFO image_rx_daemon: published frame_id=0 seq=200 180 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:15,542 INFO image_rx_daemon: published frame_id=0 seq=200 178 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:17,055 INFO image_rx_daemon: published frame_id=0 seq=203 2991 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:17,199 INFO image_rx_daemon: published frame_id=0 seq=208 178 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:18,709 INFO image_rx_daemon: published frame_id=0 seq=209 3000 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:18,883 INFO image_rx_daemon: published frame_id=0 seq=214 204 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:20,391 INFO image_rx_daemon: published frame_id=0 seq=215 2993 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:21,637 INFO image_rx_daemon: stats: rx_frames=937 rx_decode_err=0 frames_published=151 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=26 parity_recon=0 + +2026-08-24 16:32:21,640 INFO image_rx_daemon: air_gap: n=80 dt_med=117122us dt_p95=186025us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:32:21,643 INFO image_rx_daemon: air_gap_hist(ms): <80:4 <120:65 <200:8 <400:3 + +2026-08-24 16:32:21,645 INFO image_rx_daemon: rx_rf: n_rssi=80 n_snr=80 rssi[min/med/max]=-74/-72/-71 snr[min/med/max]=5.0/6.0/6.0 + +2026-08-24 16:32:21,647 INFO image_rx_daemon: phase_telemetry: valid=80 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:32:21,648 INFO image_rx_daemon: air_gap_by_class: seq: n=69 med=117.1ms | boundary: n=10 med=177.7ms + +2026-08-24 16:32:21,648 INFO image_rx_daemon: lost_frag_idx: n=2 idx0=0 (0.00% of idx0 arrivals) other=2 (2.78%) verdict=not-clustered | top 11:2 + +2026-08-24 16:32:21,648 INFO image_rx_daemon: frag_reordered: 1 late out-of-order arrivals had a provisional loss retracted (in-order assumption violated — see RS-11.4) + +2026-08-24 16:32:21,939 INFO image_rx_daemon: published frame_id=0 seq=221 2915 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:22,190 INFO image_rx_daemon: published frame_id=0 seq=222 184 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:22,192 INFO image_rx_daemon: published frame_id=0 seq=222 196 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:23,699 INFO image_rx_daemon: published frame_id=0 seq=229 2980 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:23,871 INFO image_rx_daemon: published frame_id=0 seq=234 194 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:25,545 INFO image_rx_daemon: published frame_id=0 seq=242 220 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:27,016 INFO image_rx_daemon: published frame_id=0 seq=243 2934 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:27,203 INFO image_rx_daemon: published frame_id=0 seq=248 200 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:28,413 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=-1.0 rssi=-69 dump=55eea7049ba692945f03aecdc7f9706abfe413f76ef53bd426f54a7e73fe86f274b902beb9486d70298e99b62697e5c935df8ecef9301107ac2bdb97231d6dbb2a9692044ca82f4e22c81404d658b30d2f75d2a190e645b6e6b43d3735c52398cd024105d31fc8a4e58fa5930bcf12bcca484ef48bc5bafe6864377598f3ec26dc619796501a165895851e0f28db80b6d1fc69a9d9e33a91b2ee40148c97705503642840e15cb3bcb5a7ef1d3aaf46c6583af67edfc687d4a08dd34256446e347e17884bbb5e4165c587cb95dcff7a2cdfb9f6a7cadc1fa2f27f005b07e80e364cd4a768ea1cf14dfe0c16d4c3dbc2656197a3a05936df0d82a4dc + +2026-08-24 16:32:28,862 INFO image_rx_daemon: published frame_id=0 seq=254 190 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:30,347 INFO image_rx_daemon: published frame_id=0 seq=255 2949 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:31,653 INFO image_rx_daemon: stats: rx_frames=1019 rx_decode_err=0 frames_published=161 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=28 parity_recon=0 + +2026-08-24 16:32:31,655 INFO image_rx_daemon: air_gap: n=82 dt_med=117151us dt_p95=182420us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:32:31,659 INFO image_rx_daemon: air_gap_hist(ms): <40:3 <80:3 <120:61 <200:13 <400:2 + +2026-08-24 16:32:31,660 INFO image_rx_daemon: rx_rf: n_rssi=82 n_snr=82 rssi[min/med/max]=-74/-72/-71 snr[min/med/max]=5.0/6.0/6.0 + +2026-08-24 16:32:31,661 INFO image_rx_daemon: phase_telemetry: valid=82 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:32:31,661 INFO image_rx_daemon: air_gap_by_class: seq: n=67 med=117.1ms | boundary: n=11 med=172.4ms | post_loss: n=2 med=234.1ms + +2026-08-24 16:32:31,662 INFO image_rx_daemon: lost_frag_idx: n=2 idx0=0 (0.00% of idx0 arrivals) other=2 (2.74%) verdict=not-clustered | top 6:1 9:1 + +2026-08-24 16:32:31,662 INFO image_rx_daemon: frag_reordered: 2 late out-of-order arrivals had a provisional loss retracted (in-order assumption violated — see RS-11.4) + +2026-08-24 16:32:31,828 INFO image_rx_daemon: published frame_id=0 seq=5 2953 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:32,095 INFO image_rx_daemon: published frame_id=0 seq=6 206 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:32,095 INFO image_rx_daemon: published frame_id=0 seq=6 164 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:33,598 INFO image_rx_daemon: published frame_id=0 seq=13 2991 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:33,760 INFO image_rx_daemon: published frame_id=0 seq=18 196 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:35,585 INFO image_rx_daemon: published frame_id=0 seq=24 190 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:35,586 INFO image_rx_daemon: published frame_id=0 seq=24 176 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:37,096 INFO image_rx_daemon: published frame_id=0 seq=27 2992 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:37,259 INFO image_rx_daemon: published frame_id=0 seq=32 210 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:38,731 INFO image_rx_daemon: published frame_id=0 seq=33 2910 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:39,004 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=-0.8 rssi=-69 dump=898a80b059691ef06722ce9dc6491f5041a5e3fbcc1a024d4565efdd436bcc6a2be92e0654fc71e473d81ff0c2c6890849da9ea49d90534e492739fa954853ab6a3f7736efb28c68e87801be2760270282feaab3e2ace7b37bd7e147e7f60d72bc547e6a48f0d03625a4980d2a16d2c2209b3e448761ed84c7a1ecc0f3ba8c4605fb13d1a3438b25bcf83573fc4cb91091a73b47abeb97a34eede4256fbaf0534e0e574af37d5acc85da9edb7c6eb588b286383ace847a3bf2b7e3a73cead616ba929991ec18a11a4ed699c58608566c73c994c79fe13e5782458b33a07177b1a86e18745bc5af2af7b848770f3ecec9903611ebdcc92b50461aec + +2026-08-24 16:32:40,475 INFO image_rx_daemon: published frame_id=0 seq=41 2905 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:40,679 INFO image_rx_daemon: published frame_id=0 seq=46 241 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:41,676 INFO image_rx_daemon: stats: rx_frames=1100 rx_decode_err=0 frames_published=173 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=30 parity_recon=0 + +2026-08-24 16:32:41,676 INFO image_rx_daemon: air_gap: n=81 dt_med=117136us dt_p95=192072us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:32:41,677 INFO image_rx_daemon: air_gap_hist(ms): <40:2 <80:4 <120:62 <200:10 <400:3 + +2026-08-24 16:32:41,678 INFO image_rx_daemon: rx_rf: n_rssi=81 n_snr=81 rssi[min/med/max]=-74/-72/-72 snr[min/med/max]=5.0/6.0/6.0 + +2026-08-24 16:32:41,678 INFO image_rx_daemon: phase_telemetry: valid=81 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:32:41,679 INFO image_rx_daemon: air_gap_by_class: seq: n=67 med=117.1ms | boundary: n=12 med=179.0ms | post_loss: n=1 med=234.3ms + +2026-08-24 16:32:41,679 INFO image_rx_daemon: lost_frag_idx: n=2 idx0=0 (0.00% of idx0 arrivals) other=2 (2.82%) verdict=not-clustered | top 4:1 1:1 + +2026-08-24 16:32:41,679 INFO image_rx_daemon: frag_reordered: 1 late out-of-order arrivals had a provisional loss retracted (in-order assumption violated — see RS-11.4) + +2026-08-24 16:32:42,171 INFO image_rx_daemon: published frame_id=0 seq=47 2975 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:42,355 INFO image_rx_daemon: published frame_id=0 seq=52 233 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:43,852 INFO image_rx_daemon: published frame_id=0 seq=53 2985 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:44,006 INFO image_rx_daemon: published frame_id=0 seq=58 198 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:44,200 INFO image_rx_daemon: published frame_id=0 seq=60 243 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:44,366 INFO image_rx_daemon: published frame_id=0 seq=66 224 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:45,829 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=4.0 rssi=-70 dump=010200a0cbc9d7b413f9f115c3394cb1b9c32383479efbb54e21c1f8732d0140f8f4000d160b8b01ef3d9b687731bc2adbdb81beaa50cc6c33eeac6cba13bfa497a3ef08b905d2c5bc744fc5e16709b2cc84d7ad4f6a403957ca6e82266aee0bb3e28ad673abcb2298e7be08d221db6721dddfad2426b0c14b4da135c7f55cffe9d9cbb03ac30f56179e2c23c676497222f326bf60a8e4ba1efd05469d7064435b928a7271375ed250c19d703760599bd6490370fd3bc81a3a6aab798537ad657e2d75c013eab9d78a57e900121f240c78e2c6b88c2fb8a31bdaf1fa08b30112a45a24bc594d9e48eaee9934c9b6364b4aa8e958842ecd31e61eec + +2026-08-24 16:32:46,004 INFO image_rx_daemon: published frame_id=0 seq=68 192 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:47,669 INFO image_rx_daemon: published frame_id=0 seq=74 216 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:48,180 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=0.8 rssi=-69 dump=94bb940a168a13e9684419ed879e519ac764f54299d377b1e5dd403dd63cf70c2f1888edb1d19ac599dedb1cb7e0fcd8bf47f748a694a3864a9a04421a0e63ef2eae4eb81148e36b04dd221869ca694956ef04b38c37574d0831757b40a26de882b8fbc398edcc58e762b9673ddf401934b70ccb6b02a3b6e0d5d34bf3cd8e3510d0a5b24ba7227fb7836e3550ad95b2c7b3a1cc734fc327ba76ca360211b246fbdb34bde699666aa8c27e84d1588461123fb933f1419f1a83bb03151c027346beb8df92501ea9d32e9859c6ab8d7f659094dcd55ea5828ee8934182f62e85bf14c178af8cf80447426488d82c2c7f61dc3e991e29128c55903157 + +2026-08-24 16:32:50,764 INFO image_rx_daemon: published frame_id=0 seq=81 3000 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:51,137 INFO image_rx_daemon: published frame_id=0 seq=82 240 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:51,139 INFO image_rx_daemon: published frame_id=0 seq=82 239 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:51,682 INFO image_rx_daemon: stats: rx_frames=1178 rx_decode_err=0 frames_published=184 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=33 parity_recon=0 + +2026-08-24 16:32:51,683 INFO image_rx_daemon: air_gap: n=78 dt_med=117156us dt_p95=228796us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:32:51,685 INFO image_rx_daemon: air_gap_hist(ms): <40:1 <80:3 <120:58 <200:12 <400:4 + +2026-08-24 16:32:51,686 INFO image_rx_daemon: rx_rf: n_rssi=78 n_snr=78 rssi[min/med/max]=-73/-72/-72 snr[min/med/max]=5.0/6.0/7.0 + +2026-08-24 16:32:51,686 INFO image_rx_daemon: phase_telemetry: valid=78 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:32:51,687 INFO image_rx_daemon: air_gap_by_class: seq: n=63 med=117.1ms | boundary: n=13 med=176.4ms | post_loss: n=2 med=228.8ms + +2026-08-24 16:32:51,688 INFO image_rx_daemon: lost_frag_idx: n=3 idx0=0 (0.00% of idx0 arrivals) other=3 (4.41%) verdict=not-clustered | top 11:2 3:1 + +2026-08-24 16:32:52,590 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=-0.5 rssi=-69 dump=0102000000000019a1461b9ba3c2e50e086df4da860fdf3b77df78d833a58c711d2f6afd2cdc0fd7242a3d1982675980400d12e84a6128c727261f1ff413cb466db068ef287f18e0de387118dc9d8ab9bbcf20e8d9b579503d3d5c5540e16673f57c1baa35044d8161e8971950b9382995b380dea52b942d56a8257d54a11a993bb61667269aa74c422d7fe459e9d4ee76945e86436572709f26cac9731b4075122f4b84eed8892e31c0132e6ad9b72e3ea2bf013f0b3a8cffc3da96c24a5ff35d44a962a63be59e9d28c4172f9d4a59473c46dcdb24ef18e6cdae510a2e36bfbefcfd7bcbe2c3f9c3bd3d5005372a39adb3188d959810b933a7e2 + +2026-08-24 16:32:52,787 INFO image_rx_daemon: published frame_id=0 seq=94 240 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:54,243 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=0.0 rssi=-69 dump=ac1640537340be8396dede0b10f2600e216db94ce2b02f9bb2f4cc1cf93769c72948fe627fd5b8be6088fc47601f0e4b48c31661375d211f0af08bdbc17d97acabf9648fdde8a1d826002f91d17c1f6c04067a2c5cbf14c580a6042f1ade2034e0ccd9b1014a6cfc345f7db102d730e61c5d36aba2160265ae68f010c1231775a9ae14b38f8e80a71c635bdadff6e43fc72d40a086564be601a20c260807e66d110c18e0aa28a329009703d5685e897c05be7639ba54cfac4fdf4142f24699910906961679c31b560e4ee23e0e4aab04e2821b9060769848e1858c72162446ddcb64222309dd0348822b216cd3ca0c4f22d90060031c9c0cff1a3d + +2026-08-24 16:32:54,435 INFO image_rx_daemon: published frame_id=0 seq=102 222 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:55,935 INFO image_rx_daemon: published frame_id=0 seq=103 2983 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:57,503 INFO image_rx_daemon: published frame_id=0 seq=107 2915 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:57,767 INFO image_rx_daemon: published frame_id=0 seq=108 237 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:57,768 INFO image_rx_daemon: published frame_id=0 seq=108 182 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:59,251 INFO image_rx_daemon: published frame_id=0 seq=115 2934 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:59,507 INFO image_rx_daemon: published frame_id=0 seq=120 210 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:32:59,508 INFO image_rx_daemon: published frame_id=0 seq=120 178 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:00,969 INFO image_rx_daemon: published frame_id=0 seq=123 2919 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:01,164 INFO image_rx_daemon: published frame_id=0 seq=128 238 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:01,693 INFO image_rx_daemon: stats: rx_frames=1257 rx_decode_err=0 frames_published=195 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=35 parity_recon=0 + +2026-08-24 16:33:01,693 INFO image_rx_daemon: air_gap: n=79 dt_med=117140us dt_p95=234732us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:33:01,694 INFO image_rx_daemon: air_gap_hist(ms): <20:1 <40:1 <80:2 <120:63 <200:8 <400:4 + +2026-08-24 16:33:01,695 INFO image_rx_daemon: rx_rf: n_rssi=79 n_snr=79 rssi[min/med/max]=-73/-72/-72 snr[min/med/max]=5.0/6.0/6.0 + +2026-08-24 16:33:01,695 INFO image_rx_daemon: phase_telemetry: valid=79 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:33:01,696 INFO image_rx_daemon: air_gap_by_class: seq: n=67 med=117.1ms | boundary: n=11 med=181.2ms | post_loss: n=1 med=234.7ms + +2026-08-24 16:33:01,696 INFO image_rx_daemon: lost_frag_idx: n=3 idx0=0 (0.00% of idx0 arrivals) other=3 (4.23%) verdict=not-clustered | top 11:2 5:1 + +2026-08-24 16:33:02,043 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=45 snr=4.8 rssi=-69 dump=23e3d9ccd35a6919f77520538896b922dbd82b53d1c1d09f61586a5f9725d49bd46d910a54933abd94f5211e9f + +2026-08-24 16:33:02,926 INFO image_rx_daemon: published frame_id=0 seq=134 237 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:04,421 INFO image_rx_daemon: published frame_id=0 seq=135 2979 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:06,016 INFO image_rx_daemon: published frame_id=0 seq=141 2991 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:06,188 INFO image_rx_daemon: published frame_id=0 seq=142 208 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:06,368 INFO image_rx_daemon: published frame_id=0 seq=154 222 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:07,884 INFO image_rx_daemon: published frame_id=0 seq=155 2992 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:08,043 INFO image_rx_daemon: published frame_id=0 seq=156 188 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:09,511 INFO image_rx_daemon: published frame_id=0 seq=157 2915 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:09,682 INFO image_rx_daemon: published frame_id=0 seq=162 222 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:11,194 INFO image_rx_daemon: published frame_id=0 seq=163 2985 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:11,700 INFO image_rx_daemon: stats: rx_frames=1337 rx_decode_err=0 frames_published=205 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=36 parity_recon=0 + +2026-08-24 16:33:11,701 INFO image_rx_daemon: air_gap: n=80 dt_med=117149us dt_p95=234085us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:33:11,702 INFO image_rx_daemon: air_gap_hist(ms): <40:1 <80:4 <120:62 <200:9 <400:4 + +2026-08-24 16:33:11,702 INFO image_rx_daemon: rx_rf: n_rssi=80 n_snr=80 rssi[min/med/max]=-74/-72/-72 snr[min/med/max]=5.0/6.0/7.0 + +2026-08-24 16:33:11,703 INFO image_rx_daemon: phase_telemetry: valid=80 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:33:11,703 INFO image_rx_daemon: air_gap_by_class: seq: n=68 med=117.1ms | boundary: n=11 med=180.7ms | post_loss: n=1 med=234.1ms + +2026-08-24 16:33:11,704 INFO image_rx_daemon: lost_frag_idx: n=1 idx0=0 (0.00% of idx0 arrivals) other=1 (1.43%) verdict=not-clustered | top 7:1 + +2026-08-24 16:33:12,751 INFO image_rx_daemon: published frame_id=0 seq=169 2905 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:12,935 INFO image_rx_daemon: published frame_id=0 seq=170 238 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:13,107 INFO image_rx_daemon: published frame_id=0 seq=176 243 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:14,615 INFO image_rx_daemon: published frame_id=0 seq=181 2985 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:16,371 INFO image_rx_daemon: published frame_id=0 seq=183 2915 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:16,511 INFO image_rx_daemon: published frame_id=0 seq=190 166 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:17,195 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=91 snr=0.0 rssi=-69 dump=65401ebed465549d6619bb1d0342bf9d30b5c267b03f5c9fca532e55a1cf13979977b323c3170640d34afefd6b9fd9e9cef603d1208ce249e988128fd352b1e1d43c78917c0ec73c04c6ff6e7b2a225c4d90323cb8b0a2aefc5405 + +2026-08-24 16:33:18,163 INFO image_rx_daemon: published frame_id=0 seq=196 196 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:18,432 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=2.8 rssi=-69 dump=88c18f3de7e4b75b6888ccdcf8e3d1f5b8a03f8ddf7d6296cb28a7a19c4b3d8502bbc27999bfb34565b5bf8c5c426eed71302773d94456fcd4da109a4e00b10444be0f04469027669636521881a07eb4ba8d5b169525bb1300f1c42930ec07b6ada2909c6757d4fd70d93441eb944131ddbd6dd26a4e0c95903391deec9506d1cb22f1beab1bc8c5721a53bf2513ccad2de93a2e641f518928bc85e2f3bf6ac2ae7182a5fe8df6b31d9e8d646581469a2bd855a983da9d14cffd59ada08009a95f9b1766c2734ed05632a0f0bd6c758241c7c6892ce24cdf35bb45832b21f474de648377ce8ded87385514a962081774df339b3e479773ecfabc8e + +2026-08-24 16:33:19,819 INFO image_rx_daemon: published frame_id=0 seq=202 192 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:21,320 INFO image_rx_daemon: published frame_id=0 seq=203 2991 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:21,495 INFO image_rx_daemon: published frame_id=0 seq=210 208 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:21,707 INFO image_rx_daemon: stats: rx_frames=1415 rx_decode_err=0 frames_published=215 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=38 parity_recon=0 + +2026-08-24 16:33:21,709 INFO image_rx_daemon: air_gap: n=78 dt_med=117137us dt_p95=191590us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:33:21,711 INFO image_rx_daemon: air_gap_hist(ms): <40:2 <80:2 <120:59 <200:12 <400:2 <1000:1 + +2026-08-24 16:33:21,712 INFO image_rx_daemon: rx_rf: n_rssi=78 n_snr=78 rssi[min/med/max]=-74/-72/-72 snr[min/med/max]=5.0/6.0/7.0 + +2026-08-24 16:33:21,713 INFO image_rx_daemon: phase_telemetry: valid=78 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:33:21,714 INFO image_rx_daemon: air_gap_by_class: seq: n=63 med=117.1ms | boundary: n=12 med=175.2ms | post_loss: n=2 med=234.1ms + +2026-08-24 16:33:21,715 INFO image_rx_daemon: lost_frag_idx: n=2 idx0=0 (0.00% of idx0 arrivals) other=2 (2.94%) verdict=not-clustered | top 5:1 1:1 + +2026-08-24 16:33:21,716 INFO image_rx_daemon: frag_reordered: 1 late out-of-order arrivals had a provisional loss retracted (in-order assumption violated — see RS-11.4) + +2026-08-24 16:33:22,983 INFO image_rx_daemon: published frame_id=0 seq=211 2974 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:23,175 INFO image_rx_daemon: published frame_id=0 seq=216 235 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:24,627 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=0.8 rssi=-68 dump=010200000000006755a7787af075ea5ecdfac5dad53fdd9eeb9cf4b90b30617d4e1457c9789247aa92e60f4f086b6b40cda9e1aada032c2a97b3f10bc3f0455f9ed5e2dcc1190012b6ac42bb513ce9be4dfdb5f5e8cf3bd81d1b840c0cb7de50da94364c771fea2bfb58c0f042bee7ada442da46a4443018c9ed0728712353c618a66fb422aeadc25221833ca11e7af2e521dabb70e258e379edf8ee03832ad11c0fb462f6c12a0338b99caa496139f7cb2c00336ae3027f87d3b9335f723d0df5763f6294093717f887744cfa15c25acba277a9f8aceeddf96539941ceab091c66f95692c67c9f83a3b6a3a4031280becad2a7277e02273b1b407 + +2026-08-24 16:33:24,807 INFO image_rx_daemon: published frame_id=0 seq=222 192 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:26,251 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=4.0 rssi=-70 dump=a3cbfc62331508f434b86e1a783a255c2a06a2d6fcfaf3291b53584e8c904e31de4994cb96ce85730d5af48839280058e5f967cf31cd72468045e40b9a61c0001cac5ea96403c4438104637a101b7c38bd19001e003fa30a1131b3cd3ca7f34cf4196313dc62b5ab795365918a0f8c33586937697aa3c12a7c5050b68b1ac91856170e081b20badc8b7ba30fd188bf6b03ab7a9e907c94a449f9e93b320d5faa643ca851dc23bb2deb314453a487fea1af3206e443f697bc344cb098eb0a9095583ce592aec2c000a8fb083103d4ed1fbeeccff36a4aae68ef4d4a53ee10b39c78a20dca7740ed3bc7e07441dbf0a58b2aaef6914b5468ae0b082a + +2026-08-24 16:33:26,455 INFO image_rx_daemon: published frame_id=0 seq=230 231 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:27,958 INFO image_rx_daemon: published frame_id=0 seq=231 2983 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:29,513 INFO image_rx_daemon: published frame_id=0 seq=235 2915 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:29,792 INFO image_rx_daemon: published frame_id=0 seq=236 198 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:29,794 INFO image_rx_daemon: published frame_id=0 seq=236 212 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:30,245 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=172 snr=4.5 rssi=-69 dump=6a4932d443f1cae54d1ae6ede10e98422e769e8d5c24f09a8e438bee03323642998f1be824bf403a68013a8be9ee2afa2f234b028129d61dc75e08f2b337faeb65849ff1ebe236d5df45a780883dbb9f8a654caf0b2c87945a533810bc07164737e7756e9e946dd0698764864829e6142cedf918470348152a9ec92ecb675d9473241a5ffdec73ae9e5983482e411bcf17362afdaed5c7462db5ba9d0a342c5326569ce70b7dd0e432f2956d + +2026-08-24 16:33:31,573 INFO image_rx_daemon: published frame_id=0 seq=248 241 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:31,574 INFO image_rx_daemon: published frame_id=0 seq=248 238 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:31,724 INFO image_rx_daemon: stats: rx_frames=1493 rx_decode_err=0 frames_published=225 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=40 parity_recon=0 + +2026-08-24 16:33:31,726 INFO image_rx_daemon: air_gap: n=78 dt_med=117198us dt_p95=234126us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:33:31,730 INFO image_rx_daemon: air_gap_hist(ms): <40:2 <80:1 <120:62 <200:9 <400:4 + +2026-08-24 16:33:31,731 INFO image_rx_daemon: rx_rf: n_rssi=78 n_snr=78 rssi[min/med/max]=-74/-73/-72 snr[min/med/max]=5.0/5.0/6.0 + +2026-08-24 16:33:31,735 INFO image_rx_daemon: phase_telemetry: valid=79 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:33:31,736 INFO image_rx_daemon: air_gap_by_class: seq: n=66 med=117.2ms | boundary: n=10 med=180.8ms | post_loss: n=1 med=234.1ms + +2026-08-24 16:33:31,736 INFO image_rx_daemon: lost_frag_idx: n=3 idx0=0 (0.00% of idx0 arrivals) other=3 (4.23%) verdict=not-clustered | top 11:2 3:1 + +2026-08-24 16:33:31,737 INFO image_rx_daemon: frag_reordered: 1 late out-of-order arrivals had a provisional loss retracted (in-order assumption violated — see RS-11.4) + +2026-08-24 16:33:32,910 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=2.2 rssi=-69 dump=0102000000000000fefb09e877afaad29156e24a9fd296250a013bc2c8440a4fdebc19de1f4532dfa65ee428eb65859981f17ecb882f786173e183439c82d29507a0364129356bcb5d67426d98acb7fa805d7ec4e6206703784c3ff3eb66422963c2278128a3d871b65aaaceb611f8c707e4276f15a1e8f9a2d95bb1cd5e0feac94a438216a687375ddde637163e1a082fd6fe9a8d1fe7159e4f3fa8bf92fef391fe6162fb387c893c2e283105f2251f11408bd982b2ad9879ebae5ca453dc91d994200986aced742430be3b7398695464f54c1ca14ef62850e89efdafd0c8866de0052704032b0be61c1ae4bf8ce9a913873072962bd65dd379d3 + +2026-08-24 16:33:33,211 INFO image_rx_daemon: published frame_id=0 seq=0 204 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:34,716 INFO image_rx_daemon: published frame_id=0 seq=1 2985 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:34,903 INFO image_rx_daemon: published frame_id=0 seq=6 229 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:35,414 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=-1.2 rssi=-69 dump=0102000000000000fe0742cc3a81896b5b9458623b9cdf6926a6965612c6e046331d2469e010f7be98cf47f2c2c36165d2c193114fa15280b4c98cae4d4ba91d7f72577bca3a3d8a10e36de0fbe34d0ca9c332a9b16e18fd3992c8c4095e64c71813ffe813ed299e836a66365dc9168481d9aae76a0cc0b273037f9aa1004f4e738dd9314dcc884ef1d8397422624d0a92aff47de72c2a3883641406bc96279a1db3fe20a6c1a8acadc7e6e228eaae7839a91a82cc85ee88fd5dfba3a167c6c50b12e7be974a6158615096114e8bc0d20be5dbc5ed6ddfceca48631cefa65163cb1c83d34cb11f361111c46a94060c5e9d9d9fa46432f934382b14 + +2026-08-24 16:33:37,944 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=1.2 rssi=-69 dump=0102000000000000fe0dca42a64a3aa9a2b510b18b8030cb8132c40cfda7c1434ec713d0ec59368d858c9cd46975b3700d9e95a87be5b34e30d6b49438ee51fff1e645d34a6d0f7c6fa4fbdbfad68c6d9bfb1ceeba0a6bd717a0f9c0cdc25436a8aa59b4e25d1551dcd181534371c6f232bb5ab077f526b4d4d2ea582adf1bb3a8cc9063c7f50c71b7a5174f3b7557bcca3ca912be8f9fa53f4ddef4f6bc41514f34b4d69ff288ded597b70b3934737d8394219696911ce16927a621579ec2ad80e6a2799deeaf997bbdb6e32ea86eb7dc6f413fae57d33d4a553232a36dc46784b26e6a061ba88f55e8212e7c4196b34785628e60fd432f29d4f8 + +2026-08-24 16:33:38,342 INFO image_rx_daemon: published frame_id=0 seq=14 204 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:38,344 INFO image_rx_daemon: published frame_id=0 seq=14 214 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:39,899 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=-1.8 rssi=-73 dump=e69e083dd874a011496a716e4c5333e8ccf04fcd9cb01622475c0e053137d6febcb026c4ecaac5598ceef24755b4fe6b97fe0fa46924555099144bc6e4e9c578c6b611d1fc0e70528aa186b12a79c0c73087709b0830b1cfb0716b9416df72f83727c7459dbbd4250dc524122fb9766c2f5a846880f6758fd2fa6ca6daea5a338c99ba6f49a6929c644b72c8f62bffa8b9cd072786354cddea1b0ba3547658681f485552514b7adbfff0c5cae6a40f697f417ae60a8994de82de8c2be1863725dbf152260994865602a1e5f6a13d4c5f5de031cc54ae2aa46cedecdeb91c8ab2526c74f646ceb17d69c75ec3a4a4603069a8d3729ab63d9d29e55c + +2026-08-24 16:33:41,555 INFO image_rx_daemon: published frame_id=0 seq=29 2915 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:41,719 INFO image_rx_daemon: published frame_id=0 seq=34 196 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:41,747 INFO image_rx_daemon: stats: rx_frames=1572 rx_decode_err=0 frames_published=232 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=46 parity_recon=0 + +2026-08-24 16:33:41,749 INFO image_rx_daemon: air_gap: n=79 dt_med=117157us dt_p95=226664us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:33:41,751 INFO image_rx_daemon: air_gap_hist(ms): <20:1 <40:1 <80:1 <120:59 <200:12 <400:5 + +2026-08-24 16:33:41,752 INFO image_rx_daemon: rx_rf: n_rssi=78 n_snr=78 rssi[min/med/max]=-74/-73/-72 snr[min/med/max]=5.0/6.0/6.0 + +2026-08-24 16:33:41,753 INFO image_rx_daemon: phase_telemetry: valid=78 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:33:41,754 INFO image_rx_daemon: air_gap_by_class: seq: n=65 med=117.1ms | boundary: n=10 med=178.5ms | post_loss: n=4 med=226.7ms + +2026-08-24 16:33:41,755 INFO image_rx_daemon: lost_frag_idx: n=5 idx0=1 (10.00% of idx0 arrivals) other=4 (5.48%) verdict=not-clustered | top 10:1 3:1 11:1 12:1 0:1 + +2026-08-24 16:33:43,216 INFO image_rx_daemon: published frame_id=0 seq=35 2985 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:44,768 INFO image_rx_daemon: published frame_id=0 seq=41 2905 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:45,037 INFO image_rx_daemon: published frame_id=0 seq=42 208 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:45,039 INFO image_rx_daemon: published frame_id=0 seq=42 231 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:46,555 INFO image_rx_daemon: published frame_id=0 seq=49 2986 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:46,715 INFO image_rx_daemon: published frame_id=0 seq=54 188 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:48,187 INFO image_rx_daemon: published frame_id=0 seq=55 2915 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:49,637 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=0.5 rssi=-70 dump=c704ded677fcecc25df83bd88b3ed2dc86da2854915d30eabf9403044a11a38683daa9a728eac849d2a71430db1b2057d1f52e03a730814c5e89988f30c7c726a574e71e974e4e62effd0765dec3bec2fa57db371a6b8715f6698ee6abc6af9c4d005ef41ce82475ca03d32d9517860c3f1440b06a8fcffd86ecab1249a8fbed70bd4d1f3757bf48ca1f1eeead5ea64d7363a035719252d5361112220182be066f06b711f26446a75ce03c703f77fdb0e18a9ca8bf6055a7ec1e93920423d911dd2c79fbdb514ca08e94b91c3eb655915725456076e419c3f990cb761be9fa1f852880f9702e069c63bc6ddf05771111e5b6e34e2bb92524217bae + +2026-08-24 16:33:49,840 INFO image_rx_daemon: published frame_id=0 seq=62 231 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:51,294 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=0.0 rssi=-69 dump=01020040803b0b39f00cba6057f4ba9929a0af837658e3b52dadc3cbb50f9d29b46c315b5e1be88ded6e7c66775034aaea2dc92ee9d8e85df5a6fc0b36128e62b9f38e8698361de72c1d93cd42a045b23f08d59d8c27105fdbfb5d446e328187b3d3059ee3c444229827f65de3aeb956ee554fdea824c116c355cab9cf859a7179ba47810305474e74012d12205e7b10cef773702df81b668f4cf3c80d23eb070e32c27212bb5ae3974d9f93f364ac585edd689dfd0e3e002209b771bcf121751da37491d6a2e9b40657d9c7981e45406c8ba5b09c4c64a72e1d7fea6b3f494762d2b0dfe75fae8ef2fefab8d996d9c3525b5550b7e445ad85f2ed + +2026-08-24 16:33:51,763 INFO image_rx_daemon: stats: rx_frames=1651 rx_decode_err=0 frames_published=240 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=47 parity_recon=0 + +2026-08-24 16:33:51,765 INFO image_rx_daemon: air_gap: n=79 dt_med=117099us dt_p95=194575us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:33:51,769 INFO image_rx_daemon: air_gap_hist(ms): <80:2 <120:65 <200:9 <400:3 + +2026-08-24 16:33:51,771 INFO image_rx_daemon: rx_rf: n_rssi=79 n_snr=79 rssi[min/med/max]=-73/-73/-71 snr[min/med/max]=5.0/6.0/6.0 + +2026-08-24 16:33:51,772 INFO image_rx_daemon: phase_telemetry: valid=79 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:33:51,773 INFO image_rx_daemon: air_gap_by_class: seq: n=69 med=117.1ms | boundary: n=10 med=186.5ms + +2026-08-24 16:33:51,774 INFO image_rx_daemon: lost_frag_idx: n=2 idx0=0 (0.00% of idx0 arrivals) other=2 (2.82%) verdict=not-clustered | top 11:2 + +2026-08-24 16:33:52,798 INFO image_rx_daemon: published frame_id=0 seq=73 2959 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:53,062 INFO image_rx_daemon: published frame_id=0 seq=74 192 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:53,064 INFO image_rx_daemon: published frame_id=0 seq=74 206 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:54,585 INFO image_rx_daemon: published frame_id=0 seq=81 3000 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:54,838 INFO image_rx_daemon: published frame_id=0 seq=86 218 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:56,347 INFO image_rx_daemon: published frame_id=0 seq=87 2993 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:57,904 INFO image_rx_daemon: published frame_id=0 seq=93 2915 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:58,175 INFO image_rx_daemon: published frame_id=0 seq=94 238 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:58,176 INFO image_rx_daemon: published frame_id=0 seq=94 188 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:59,684 INFO image_rx_daemon: published frame_id=0 seq=101 2980 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:33:59,855 INFO image_rx_daemon: published frame_id=0 seq=106 206 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:34:01,327 INFO image_rx_daemon: published frame_id=0 seq=107 2915 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:34:01,784 INFO image_rx_daemon: stats: rx_frames=1733 rx_decode_err=0 frames_published=252 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=48 parity_recon=0 + +2026-08-24 16:34:01,786 INFO image_rx_daemon: air_gap: n=82 dt_med=117091us dt_p95=186041us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:34:01,790 INFO image_rx_daemon: air_gap_hist(ms): <40:1 <80:4 <120:66 <200:9 <400:2 + +2026-08-24 16:34:01,792 INFO image_rx_daemon: rx_rf: n_rssi=82 n_snr=82 rssi[min/med/max]=-73/-72/-72 snr[min/med/max]=5.0/6.0/6.0 + +2026-08-24 16:34:01,794 INFO image_rx_daemon: phase_telemetry: valid=82 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:34:01,795 INFO image_rx_daemon: air_gap_by_class: seq: n=69 med=117.1ms | boundary: n=10 med=186.0ms + +2026-08-24 16:34:02,828 INFO image_rx_daemon: published frame_id=0 seq=113 2986 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:34:03,202 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=6.2 rssi=-69 dump=0102004083cbea49539ab3790086d8e7f7db506c8f3d3728a3e1e4d66e82ec404a2f4e7d353febe2a4da8ba9b8739a890554a9bede2b1a05784e9db2a5f4f0946ca55bb32efe9dcbd0b581230d3198ff74c170e6fde232d690603eecfb0592ba8af4c570af6e9bc4d92603c5cc020e030eee57bebbcb1dc4230f8114452b161bece8bae74537d3c0b85fb8e54740d46a527e1e15138f5399b2b90b278fa75afde700d40529e4542d90eeb8e1bc3bad29b114cda9e639f87729002d1728f62caa2de3af568c99fda3079734e7b9a4e2b4bac5d7c15f761c57f65a3301478242ac693f705d480fcd32e2033cdd727e981db268c0a531f360f360763d + +2026-08-24 16:34:04,687 INFO image_rx_daemon: published frame_id=0 seq=121 2953 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:34:04,856 INFO image_rx_daemon: published frame_id=0 seq=126 182 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:34:06,337 INFO image_rx_daemon: published frame_id=0 seq=127 2949 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:34:07,837 INFO image_rx_daemon: published frame_id=0 seq=133 2953 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:34:08,004 INFO image_rx_daemon: published frame_id=0 seq=134 182 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:34:08,176 INFO image_rx_daemon: published frame_id=0 seq=146 239 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:34:09,663 INFO image_rx_daemon: published frame_id=0 seq=147 2974 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:34:09,846 INFO image_rx_daemon: published frame_id=0 seq=148 241 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:34:11,317 INFO image_rx_daemon: published frame_id=0 seq=149 2923 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:34:11,599 INFO image_rx_daemon: published frame_id=0 seq=152 243 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:34:11,600 INFO image_rx_daemon: published frame_id=0 seq=152 200 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:34:11,798 INFO image_rx_daemon: stats: rx_frames=1816 rx_decode_err=0 frames_published=264 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=49 parity_recon=0 + +2026-08-24 16:34:11,799 INFO image_rx_daemon: air_gap: n=83 dt_med=117125us dt_p95=178901us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:34:11,801 INFO image_rx_daemon: air_gap_hist(ms): <20:1 <40:4 <80:1 <120:65 <200:10 <400:2 + +2026-08-24 16:34:11,802 INFO image_rx_daemon: rx_rf: n_rssi=83 n_snr=83 rssi[min/med/max]=-74/-72/-71 snr[min/med/max]=5.0/6.0/7.0 + +2026-08-24 16:34:11,803 INFO image_rx_daemon: phase_telemetry: valid=83 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:34:11,804 INFO image_rx_daemon: air_gap_by_class: seq: n=71 med=117.1ms | boundary: n=12 med=178.5ms + +2026-08-24 16:34:11,805 INFO image_rx_daemon: lost_frag_idx: n=1 idx0=0 (0.00% of idx0 arrivals) other=1 (0.69%) verdict=not-clustered | top 1:1 + +2026-08-24 16:34:11,806 INFO image_rx_daemon: frag_reordered: 3 late out-of-order arrivals had a provisional loss retracted (in-order assumption violated — see RS-11.4) + +2026-08-24 16:34:13,100 INFO image_rx_daemon: published frame_id=0 seq=155 2992 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:34:13,263 INFO image_rx_daemon: published frame_id=0 seq=160 182 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:34:14,720 INFO image_rx_daemon: published frame_id=0 seq=161 2910 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:34:14,999 INFO image_rx_daemon: published frame_id=0 seq=166 196 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:34:15,002 INFO image_rx_daemon: published frame_id=0 seq=166 228 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:34:16,460 INFO image_rx_daemon: published frame_id=0 seq=169 2905 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:34:16,632 INFO image_rx_daemon: published frame_id=0 seq=174 236 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:34:16,937 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=-0.5 rssi=-69 dump=0102000000000000feafc0462045f482875e0ffa0a9b7cad3df7eccab57863b2013d7c0f261de1b25ef8fde70641c8341afd8e311fb5cfc106bd43a77c8e308687733e26144a6d1d28b22c015876181c0cdf5254f1e9d26f9273ea11e2d4629af6ecbd7baa345f0cd319ec5384c1d35a95bde6b0f4cf0367dbb64b28c6b680efe0d9cadcb81f5abc7f3cebfdd97b45c5e1bd9717f044ffc0ff3f9ac7d25584941ded667739b6024edc58081cc38931b9017fdfe7f34e9c3de4e48f378b732afbed974e3a81f0dd0615dcc7f3076a8dfc0aa149441490c4c87260b928b5aaf9eb07fe56e8f30062da90b7289e1f03fc09f6a99b6233f50d5ce0ab36 + +2026-08-24 16:34:18,311 INFO image_rx_daemon: published frame_id=0 seq=180 204 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:34:19,801 INFO image_rx_daemon: published frame_id=0 seq=181 2985 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:34:20,188 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=-0.2 rssi=-69 dump=0102000000000066b6582d1291e09490d73cdd0cbeb31c819c1c024384cb6094c5de14b18519aa15d257873a2ed02a2fbbc052c3711209d3a33c18266a444e97e7b1362530d9c41c75df8083227fb44b2e5de6f98d266a39e7b2bbca6c4b85fdccd8512209656a9cdaf5ed2d2d83c6c4f38c90edfb3d2092c62931cafd1680ded2094261fa8b8c88fb8c4e934e658c08081333e0e513e501a8be5f07af2017714709e48b703a5b9e8eb498e0deeab49ee242d50bc9485537984dd9104fa00c3c8c23e9ca16f3c658012b0a7abbb5d69b222a5187d080612b5692e23d00077f025e49e0cf1997b84e57d803d95a880be7cbab21bddcc247ae31f463 + +2026-08-24 16:34:21,639 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=1.2 rssi=-68 dump=086814e314cee29f7530e09832810b330bb239a21c23f4e5f5de79b9e7acf1404f34b4d955169a9755dcebdfae40f564fd3191cf9cdc44b3b067cc721ad8dc99a0ab844daff789556410b80f630058dde928fe8cedb67bae4ade37711870f071008ea38fce13fe02ffcc87957208eeb0c5fdcdc87668791a5b8862c92ecdeee08ceffae18a80c43cb1c27c6770e9723aac037ca3faa7b89377f6fda59ee5476dd6650ad791828d0b0b089aaee01040779656fcd7c0f38adaba552eb9f1d9559aa6ca97852f2fb2ea9439c1df44a4ae5d95998ab4a09f02204ec7d02860910d2e4d95d6aeaa8dbaf95edc1e05e2aefcac3487344f904e38f4f807f5 + +2026-08-24 16:34:21,814 INFO image_rx_daemon: stats: rx_frames=1894 rx_decode_err=0 frames_published=273 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=50 parity_recon=0 + +2026-08-24 16:34:21,816 INFO image_rx_daemon: air_gap: n=78 dt_med=117137us dt_p95=191376us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:34:21,818 INFO image_rx_daemon: air_gap_hist(ms): <40:1 <80:2 <120:63 <200:9 <400:3 + +2026-08-24 16:34:21,819 INFO image_rx_daemon: rx_rf: n_rssi=78 n_snr=78 rssi[min/med/max]=-73/-72/-71 snr[min/med/max]=5.0/6.0/6.0 + +2026-08-24 16:34:21,822 INFO image_rx_daemon: phase_telemetry: valid=79 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:34:21,823 INFO image_rx_daemon: published frame_id=0 seq=194 210 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:34:21,823 INFO image_rx_daemon: air_gap_by_class: seq: n=67 med=117.1ms | boundary: n=10 med=183.5ms | post_loss: n=1 med=226.1ms + +2026-08-24 16:34:21,825 INFO image_rx_daemon: lost_frag_idx: n=3 idx0=0 (0.00% of idx0 arrivals) other=3 (4.23%) verdict=not-clustered | top 1:2 11:1 + +2026-08-24 16:34:23,274 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=4.0 rssi=-69 dump=010200d0f06c16ce2a380f6ffc85f9c263490226a23e0ccb9b463e536eb752545a40e27ca4ac23a056f9825a2aaddff7cde632fda63cbdf22fba8574d26f78af82786a5226c5c0993631ee30e67ff5eddb455a5f3a66d2779c0569c626837efaee2cb12b3875a2460ac584075b61a482b5ce3621e4b3c8e99c65b4873e19c50b0294d070ac27bc88c5ff8074638006a051b6b8027689ad1b37dc3de2b66429f0a9ebfd1d3986fb4440df725ccf8d580fa5ae1b1d8ea58c47126322d6fdb9cd3e67a8e54eb43e065f8badbe9faa48b43bd945f867c29e890a4f93e614514204d85c40ca6300e0d9c63994095658026f182128923d6b020356ce51df + +2026-08-24 16:34:23,582 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=0.5 rssi=-69 dump=0102000093d5bae654730c6b6bcef1afc6ad1a74f8d4f000358cf8bf256ed19c11932d41992b1d9038a20d31931f18b1c4a24a250f078a761148b62a30fc1f68a02b531d8bfe747c7eda95183f1f07f780130e75403063c44a827f6517d1ebcccac88d4bef5c1b0d8ff9ec5dfc1f92fa217e427a722d1dc0325769e92f05681877b6436ea5c0d6eb6c9319ca30297997f5e0d793713d382cd1b165a58dbb7923d0f78ca88fe2c61b05928cde6a5d084204de5f888b0582670080c50d2f83b83ee8bd590dc69db14292979037d03829346efc3b5d98305f9ff711879944211e8d3d114337db4666b4a0f83435ff55a12a14e7bf847291925f216b52 + +2026-08-24 16:34:24,114 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=3.2 rssi=-73 dump=01c20000000000003ecb036c00006d524946466a0000055f454250565038205a608000f003009d012a2020e0003ec150a84e3425243228080280180964009d39413affeab120004286ac5000fefaf663470b9056ed6274ecd96d93c3b99b009b1b898ca26d24c15ab587fb56bd8352df670998a9848d51851c85fc0000f352494646ec0000005745425056503820e00000097007009d012a200020063ec15aa64ea7a323b328c8026018096c039d3283ca4b803700cc091d00e0006919f2256976788a700176c371f22b739205f980592be8564326c000fef0c19bbd63fc2ddecb5f5affff7dad0fffab43ccf03ed4f527a7b07ae3a3b2df1fcf05 + +2026-08-24 16:34:25,352 INFO image_rx_daemon: published frame_id=0 seq=208 237 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:34:26,850 INFO image_rx_daemon: published frame_id=0 seq=209 3000 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:34:27,185 INFO image_rx_daemon: published frame_id=0 seq=214 180 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:34:27,187 INFO image_rx_daemon: published frame_id=0 seq=214 196 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:34:28,634 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=2.2 rssi=-69 dump=010200000000008694b33c9b48faae0f83d23067417481d4c25b4d1d79ec2bf42aad91d124e99bacb429eebc6212215c138151e1c5593d24fc60eb2b30dd9c6e42cd981c7c8d87e6f5fd390eff774dc354f23e23c339f0541aa82cad0678903a732647209ca7c897ae65d628cc97c24a7cb7997cc85fe4a115851a43c0e1505b12736e9b96866cb0e453eaa3268dac4a81801f5ae3c02791004b792e4a9dede81994e63972af9f058fef9ebb9dc494c411270c4ca544e08ec4664f029bf60bd6ea6a80a0bcfcd40ab7baf2ed64eed69c7aa66255b2812eac9dd26f7c9fc9fcfc62b9dab06e3660d5a198521121fc3c979824fc48f7c1d801c7df1e + +2026-08-24 16:34:28,799 INFO image_rx_daemon: published frame_id=0 seq=222 180 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:34:30,259 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=-0.5 rssi=-68 dump=f6f628353d41149f6a561a978fbe431b2f10e7f3d7ebb964abf4e590b3462fce4c01e622b74342fe372848601cbbf7688e46c936f4e68250ad3a95f1b2f3836ad70553187860db2df5e9184e757282913e9cf06c2c44063c2f3f71343d82368ba9f688bd65b2072411ec2fa00e389665822c8eae10f2bb5474f197be9020df76e7d5a5f5251f7541475479fd9aa117aab21f39317604714bd7b89339835fecaa04cf4b7079f4af7733b08dec038b248ef193e3579d358bf71dcf9e4e18df9b2ccea85db96605fd864027fa8eddbd2af4378bd01c37e67b1e84ade87f093f2b4dab49643fd0fdc3e94701d10f4ea24e8c856b37c675283385ac65b2 + +2026-08-24 16:34:30,431 INFO image_rx_daemon: published frame_id=0 seq=230 188 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:34:31,639 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=235 snr=2.8 rssi=-69 dump=437dc6dd762ae3b0495e8e02bf434ae38bbf3a63ba26db466d894a0c65f4c9c4bc55ad5072a7d544f56da6abce4ea993386bca3afd18cb3b3dc71b31dc2bfbe7e1d2ee99da458b891f8f37316a7dc1abb3c832a1af6c2b8bc8cca8b11e22264b27a362c2c8325463d66e93a1084a23327b25c408c3f13e2924219728ef109c41c90ff977dc55b8a8bfbab529404748c41eea2487bb66e7c7b04ccb01b65f2791a2158c9d1c054e621f122283befb731be289e1f78d31131d15efd69e238fe9b8f16f352063fc3bf83bed6f704cec1c851d43fa7bbb6529dbab204b7dda9aacfa4424fa0928e798e4497dfa + +2026-08-24 16:34:31,829 INFO image_rx_daemon: stats: rx_frames=1968 rx_decode_err=0 frames_published=280 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=57 parity_recon=0 + +2026-08-24 16:34:31,831 INFO image_rx_daemon: air_gap: n=74 dt_med=117126us dt_p95=278431us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:34:31,833 INFO image_rx_daemon: air_gap_hist(ms): <80:3 <120:56 <200:5 <400:10 + +2026-08-24 16:34:31,834 INFO image_rx_daemon: rx_rf: n_rssi=73 n_snr=73 rssi[min/med/max]=-73/-73/-72 snr[min/med/max]=5.0/6.0/6.0 + +2026-08-24 16:34:31,835 INFO image_rx_daemon: phase_telemetry: valid=73 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:34:31,836 INFO image_rx_daemon: air_gap_by_class: seq: n=59 med=117.1ms | boundary: n=12 med=256.2ms | post_loss: n=3 med=234.3ms + +2026-08-24 16:34:31,837 INFO image_rx_daemon: lost_frag_idx: n=7 idx0=0 (0.00% of idx0 arrivals) other=7 (10.14%) verdict=not-clustered | top 11:3 1:1 3:1 5:1 9:1 + +2026-08-24 16:34:32,427 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=-1.0 rssi=-69 dump=0102000000000000fee3a16bf5612bcb01af3880460f4bfd37f69cff1e58293586bcccd8f6e10a5e253045657aa4c9e4a291708e6ddc3534af1e90fcf63e7dea6a65cfb6df267ddbeaa1485dd991451b2fc913b5ca75108c380382bf854eeea9a8054e41a70a17f97385c4d66720ef734be6f73e7df402597cd18784bb4616d343bb367fbdbc6bbc1f2e7b40a9f82116023912cd2fe11b09a7049dcf63803b42776a4c240d5a4996be7e31082984211aed7a6d1e8880cc3005a314d4cf7aa49bc873af870353e941c1296e0b370fff542e24f3c7a1a57002d1a56c407693f7c63f7a877dbb5df60803d5ca4c61cea92baa9feb0590da53465125b8 + +2026-08-24 16:34:33,772 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=3.5 rssi=-68 dump=acbdc3adfab39afae2a988a9620342118114547c25ab3dcfc30f93a053cb63a893d0c6f7f3f64a9cb6b0372601c0cea84734eced374ec23e4fb166e17e4cc2c8971585d331ec4ddbfd98c9e8dcfcdc90b4913ef5a1c76b2e9a6be6a0cb7d6d146a90c34ec69cf0ec75fad574d076ff0901e1d3ed0a7d0975c38a2c16a57b386a9e9cd59f9f785bc04d4806dc206f95d870ceadb0844ac3c7ac78dcadd2ed5a449f01d167a10b649651927675fb9fa964ad6f2e2116735ec1907930ab2941fe9103e17bc16f07cbdbb7aa4e7e1db0bcc27b0f2a4ab19ea8e95b4eb9a8fbd1d378c9c76a56c4d076e8e9c761917a23b7efe6ffd4a77388a7141be454 + +2026-08-24 16:34:35,235 INFO image_rx_daemon: published frame_id=0 seq=243 2934 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:34:35,523 INFO image_rx_daemon: published frame_id=0 seq=248 243 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:34:35,524 INFO image_rx_daemon: published frame_id=0 seq=248 178 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:34:36,399 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=2.8 rssi=-72 dump=01c2000000000000fefb060ca3524946469c000080574542500550382090000060d005009d012a200020033ec156f34d27a4b2b12809aa5018096c009d32826804b006f068e30030e73c42118449ed76a8d4dd8000fe63dd787d7aa5595acc3fd07e2da896d6fdb1ccd7d38d42631537a09f552c2a449c8c55bf3152db3edda60af4b74b06d91d65f74b585968ee89531c459adf4aa4af0a2474561dfc7df374ca4d1991c9d2dc01991ca7e9547fde6000c952494646c200000037454260564c2810b600000050070097011a200e20023ec960626fa7f4af22a83750f01b856c305db284103bbf641396058e1afda7837958093400599d80b0206c + +2026-08-24 16:34:37,172 INFO image_rx_daemon: published frame_id=0 seq=0 226 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:34:38,682 INFO image_rx_daemon: published frame_id=0 seq=1 2985 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:34:38,951 INFO image_rx_daemon: published frame_id=0 seq=6 242 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:34:40,439 INFO image_rx_daemon: published frame_id=0 seq=7 2979 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:34:41,843 INFO image_rx_daemon: stats: rx_frames=2047 rx_decode_err=0 frames_published=287 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=61 parity_recon=0 + +2026-08-24 16:34:41,848 INFO image_rx_daemon: air_gap: n=79 dt_med=117105us dt_p95=261432us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:34:41,850 INFO image_rx_daemon: air_gap_hist(ms): <20:1 <40:2 <80:2 <120:60 <200:8 <400:6 + +2026-08-24 16:34:41,851 INFO image_rx_daemon: rx_rf: n_rssi=79 n_snr=79 rssi[min/med/max]=-74/-73/-72 snr[min/med/max]=5.0/6.0/6.0 + +2026-08-24 16:34:41,851 INFO image_rx_daemon: phase_telemetry: valid=79 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:34:41,852 INFO image_rx_daemon: air_gap_by_class: seq: n=64 med=117.1ms | boundary: n=10 med=185.8ms | post_loss: n=2 med=234.3ms + +2026-08-24 16:34:41,852 INFO image_rx_daemon: lost_frag_idx: n=3 idx0=0 (0.00% of idx0 arrivals) other=3 (4.17%) verdict=not-clustered | top 2:1 1:1 6:1 + +2026-08-24 16:34:41,853 INFO image_rx_daemon: frag_reordered: 3 late out-of-order arrivals had a provisional loss retracted (in-order assumption violated — see RS-11.4) + +2026-08-24 16:34:42,054 INFO image_rx_daemon: published frame_id=0 seq=13 2991 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:34:42,418 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=3.2 rssi=-68 dump=f015f8d846c576f821ae92a94ba627198ae4b700a294934bfb6d7c6a4a347db5865662bf4c629bb5e80b839efccfde59de9ad82d84ca81b2e64e27f358e87da9d22d1dbd53008ff77304bfe2e6434eb99952d4e7c300acc9cbdca351f4a9944c83bb3ccb46214f0257c6f9860d5b276295aea197cb8a1141eec961ee8d7108b3441a78e5c031608105b62b5bf405eeebb28af8f0135b31f11af2a05f23fdfa35203d7e9fbb91227f2266312d642f6fca789516d340c732e398c765dc9209d611cbbaef1c2e7a35327406da253c192a812096125c96aa78dfc99ebe8c58fb409cbf1457d834b88e0489f673bf63532465b1957349339cd6ff8f229e + +2026-08-24 16:34:43,888 INFO image_rx_daemon: published frame_id=0 seq=21 2923 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:34:43,935 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=62 snr=-11.8 rssi=-115 dump=8cc17038317013393b7616ab2cdd71550f41d88fa7563185673494c7624c87e4c311a5b83cff3552cedb8678b6fb10c69ba903347c5af37f80dea8f5f1e9 + +2026-08-24 16:34:45,410 INFO image_rx_daemon: published frame_id=0 seq=27 2992 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:34:45,776 INFO image_rx_daemon: published frame_id=0 seq=28 210 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:34:45,777 INFO image_rx_daemon: published frame_id=0 seq=28 224 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:34:47,266 INFO image_rx_daemon: published frame_id=0 seq=35 2985 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:34:47,439 INFO image_rx_daemon: published frame_id=0 seq=42 212 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:34:48,896 INFO image_rx_daemon: published frame_id=0 seq=43 2915 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:34:49,423 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=0.8 rssi=-70 dump=0102000000000086f0033ed4edc907b44ab91f646dd0a040c05d238609c89a5d564a45821bf2b1d12c25013e98c8af12d8f250a9b7c7181e9a2cea0dd3a8ef72a54c7bab4a85980f2fc813a77a0c92c81dbf7c1f6207a6aa2e9b544e9de1b9c17224c4db911bbb4a9b11f1f6cd09f02b136429dd7c9e084bad88fe32d92a8c72fd222ae7f4649dbb1c9da5b6bdb52b6dd7f61390a847a2b852eef9024936cb30a00762a1321f6c291c6758d7d4008e532ae86d7367b7a768039ef66df4b17b8906270473a58ef4234fb780bf73b385da1ebcca61d3e71880c231f7e96b561a847787e7dc5b3de50dd22e58c42f11d20c8813a7c0f9286aebb7fd0b + +2026-08-24 16:34:50,135 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=2.8 rssi=-72 dump=01c20000000000303e2f090c7b77b1f18ccaa633a5a8ae98bdae039e56b98a386000feda84d2d797a3fa361e49a4f6bf889b095367e7eafd2ea1f521802e0a0329f6826f6c2ffe29fde4137e7c0ae251b5c456699836ec68dec98fdaa90b8756d405111f164a3622c10d4baaa06f65c1868757b31da09d21f3fa5579efe50181724d6591e6371857cff53124ab266ffe5b96fac86f8b2169559d32670ee3c975c9419ad3157fc390652000006b72494646640003005745425a5650382068a000007004009d012a200020003ec154a64ebe2523b2240802801809a4009d4fa22415600042802a7e6d1f2d9dc62000feeadb9edaf0b966a7a54fe874 + +2026-08-24 16:34:50,747 INFO image_rx_daemon: published frame_id=0 seq=48 196 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:34:50,748 INFO image_rx_daemon: published frame_id=0 seq=48 180 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:34:51,863 INFO image_rx_daemon: stats: rx_frames=2126 rx_decode_err=0 frames_published=297 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=62 parity_recon=0 + +2026-08-24 16:34:51,866 INFO image_rx_daemon: air_gap: n=80 dt_med=117118us dt_p95=258723us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:34:51,866 INFO image_rx_daemon: air_gap_hist(ms): <20:1 <40:1 <80:4 <120:60 <200:8 <400:6 + +2026-08-24 16:34:51,867 INFO image_rx_daemon: rx_rf: n_rssi=80 n_snr=80 rssi[min/med/max]=-74/-72/-72 snr[min/med/max]=5.0/6.0/7.0 + +2026-08-24 16:34:51,867 INFO image_rx_daemon: phase_telemetry: valid=80 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:34:51,868 INFO image_rx_daemon: air_gap_by_class: seq: n=67 med=117.1ms | boundary: n=10 med=186.3ms | post_loss: n=2 med=234.2ms + +2026-08-24 16:34:51,868 INFO image_rx_daemon: lost_frag_idx: n=3 idx0=0 (0.00% of idx0 arrivals) other=3 (4.11%) verdict=not-clustered | top 1:1 3:1 9:1 + +2026-08-24 16:34:51,869 INFO image_rx_daemon: frag_reordered: 1 late out-of-order arrivals had a provisional loss retracted (in-order assumption violated — see RS-11.4) + +2026-08-24 16:34:51,963 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=0.2 rssi=-69 dump=01020000000000c8fa3fcc72f8ad6b0ae8d3dcaaa4b32c40008100909ca109a09df78e19591377e729a24eecf4480e781f40c3e8cc18a130dd5e8c6d1d73411e3f9a587566ca34e7b3e1134b126982dd6386b77b54da06475c5e60d80e8acb3c25cd42a8f9b5aece08faa53515dcba36097a374cd7b3f40432c7ad50cb6f45be201b9bd5cc83ab9e41eab2453221411e499a40f3a8eaf38477b2d855c3099eb483ddf594aa69d5b048e2ab3c4ffadaa06b67648661e997867633d25ec0300b1e33effb988fa66b79c51d94c45bbd932bbea5bb7ce11d7549477e5b652665fd16b2901821bb1fe8e959e72fabcb55a0c006300c609421c465b5cee1 + +2026-08-24 16:34:52,375 INFO image_rx_daemon: published frame_id=0 seq=62 186 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:34:53,851 INFO image_rx_daemon: published frame_id=0 seq=63 2949 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:34:55,311 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=-1.0 rssi=-69 dump=010a8868eae53da7bd3fd4e041d42eabf7ab9e26bf59b86fe09450a3a93ae42f0d82779eff48c8bc78e661b69bf903aff1a11b60c9794d1ffd9513c307db076ca98c04854de80486e25a7221d8b01efbb9397046dd776af50e2b1c145d5954e6457915979e8c77853331ac472595caf2e627a1c35bb121b72ebac798350038b050a44cb737d4144eb6bad8bb9438d718cf5105e85b161e42d9a8f91de45ff4417540c4695a12f8f9c657e59713c4ed039467a8cdb596127cc212269752e377bddc1028f7c297eeaca74a9f56a1a4634f9b9f33d3de654140f6053f822a9ee3f93a389edece9b7000a82cbe807aabb801e7426e367ed07824abed7b + +2026-08-24 16:34:55,615 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=3.0 rssi=-69 dump=d1addd0b288b4b87a775287b3ed1a1277989c75b484d3413da8b23a1d3ad3ec751c6b30e4b5af4b1fc4f1083ce8aed657ebdd5aede66afa9586f0d819a3d8f18262e739f9f94cfa2c052ae0175cbc62e7f7471614e9a1da077724ae7e94ce9b1977a55ea3e88d68c9e108eaa79a962128d587731a7c64edac62314e34ed05c69c3a34f7ba126b6b0e5b90a6281da72b3b3f8545dab2e9886f7ab5a6dec3f62fa2041c1c7119363e2a2e1eae64425fcffb04fac0447f03315a57add4fedb83a44b7464e292ea687f0ec6f2c1d33b582076af974de0aa96ca130d0972dc752539934837462aeafd10b716bcf746f43377e3f824c9134263c05846317 + +2026-08-24 16:34:57,137 INFO image_rx_daemon: published frame_id=0 seq=75 2991 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:34:58,733 INFO image_rx_daemon: published frame_id=0 seq=81 3000 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:34:58,887 INFO image_rx_daemon: published frame_id=0 seq=82 194 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:35:00,392 INFO image_rx_daemon: published frame_id=0 seq=87 2993 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:35:01,871 INFO image_rx_daemon: stats: rx_frames=2206 rx_decode_err=0 frames_published=303 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=66 parity_recon=0 + +2026-08-24 16:35:01,874 INFO image_rx_daemon: air_gap: n=79 dt_med=117133us dt_p95=258786us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:35:01,878 INFO image_rx_daemon: air_gap_hist(ms): <40:1 <80:3 <120:65 <200:5 <400:5 + +2026-08-24 16:35:01,878 INFO image_rx_daemon: rx_rf: n_rssi=79 n_snr=79 rssi[min/med/max]=-73/-73/-72 snr[min/med/max]=5.0/6.0/6.0 + +2026-08-24 16:35:01,879 INFO image_rx_daemon: phase_telemetry: valid=79 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:35:01,880 INFO image_rx_daemon: air_gap_by_class: seq: n=68 med=117.1ms | boundary: n=9 med=181.3ms | post_loss: n=1 med=225.4ms + +2026-08-24 16:35:01,880 INFO image_rx_daemon: lost_frag_idx: n=3 idx0=0 (0.00% of idx0 arrivals) other=3 (4.11%) verdict=not-clustered | top 9:1 11:1 1:1 + +2026-08-24 16:35:01,881 INFO image_rx_daemon: frag_reordered: 1 late out-of-order arrivals had a provisional loss retracted (in-order assumption violated — see RS-11.4) + +2026-08-24 16:35:01,947 INFO image_rx_daemon: published frame_id=0 seq=93 2915 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:35:02,224 INFO image_rx_daemon: published frame_id=0 seq=94 238 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:35:02,225 INFO image_rx_daemon: published frame_id=0 seq=94 208 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:35:03,731 INFO image_rx_daemon: published frame_id=0 seq=101 2980 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:35:04,101 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=-1.2 rssi=-69 dump=810200b07046de9dc04deec5d46f8ba97aa92f48fef96855f24a34d39ccc749b7c219cbfd24ff40e2d2d9954c8c99a78985114966934e6fb2360f94bdfaa49f0b7b8fb5c612be09d8aec7d7eb57c4307bc63e1643baf941c23e4152603bf4f7df87133a41fa2d857a7f7bfaa6dfa858d7748dcb8c61890eda35836457b5e0232056f114cdb194cd4585528a311b5ada6b3ccddc37d1cfb32f6a8dca70ea0439ef2e8d532058811fe308f72121bdb5c31488bf07d9795c4b08a9ed191f6d559a1089e9fe5897b8c7f17480c4e3581504ccf9b5045bf6bbebdbcec782ab13626546e6d0930d3f1b2930633ba6c028869d3c09746b5c0c8aff2372126 + +2026-08-24 16:35:05,554 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=1.5 rssi=-69 dump=01020000000000e03241bed789b6258fc289296471d19386e01355ee5d78794ea796aa35308214053fd90ba492607c097e8683fceaa3141e1264bd426904385a94ff475ee4d60ca1902d3ba8b7936859c9fe97c66af7db6bde3bb484e374ddc43362bb40eee73e1c266f8838f6dd186f9f45518125dd5b6108308b3e688d29853bcacbb425dbad45e388697c1ed83284b881aed965ec910a7e01d11e22d0f51ff7f2a97b508b8805f4822e09dce5ffc02aa20924c510af57676df5649204a78b483faef4e76b920759e2c84b2dbcd79ddc0d9a8015a5ac75c0705b5b4d61a5221185ec73498598cafb5ff392a907653670ec549257b07a057706e5 + +2026-08-24 16:35:05,739 INFO image_rx_daemon: published frame_id=0 seq=114 202 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:35:07,218 INFO image_rx_daemon: published frame_id=0 seq=115 2934 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:35:07,519 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=4.0 rssi=-70 dump=5f3b32a6cc6493393a27a916ac3b3f55f41bfe1431311bc7073f254c95b5c5b2388a3a4a19085100aa5d97d0001912109aa3fca5699aaa673b34f9b12816226ae37b56ede88ac442fe41c758053330b260c8b0a133e3298f3b7e2d77c165184180a5a8905040ca8a8bcee931de5bbac055a058549e1e0d2e29ef3a6d6ae786f8a3fc6887d6058bc2e0ce6aadd3da5a55f1ecea2d631b77919c9d3913a78832216b65f85d2dd21cabd86f87f34acd75b0195b4e6fd2791c9394f9cdca0ee5d1cac09001ab90526230120b05d83a6766bffc6ca94099bc9a5c2ed8818c3ecbfc7bc97ca49093b4aa834301307e0d6f270d28fb1872ecf21ac3c7eccc + +2026-08-24 16:35:08,993 INFO image_rx_daemon: published frame_id=0 seq=123 2919 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:35:09,171 INFO image_rx_daemon: published frame_id=0 seq=128 237 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:35:09,326 INFO image_rx_daemon: published frame_id=0 seq=134 182 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:35:09,379 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=124 snr=-11.5 rssi=-115 dump=21a3753dcf5a1b96218499336957b8c57b0956303403ba7dbb8fe4f50c35df763b040b0363aee3db0659a6004cb2764c2c37ebbcaf504230d0a7f45c0cb732fc4d6df2b264fd91a0739adcbea855429e618cb5c03ca9070aa58cf217e94aecee482ddf7b1b8cc2607daa6ef34ed0cbbd47371cecc8ffb247cf5ccbf1 + +2026-08-24 16:35:10,994 INFO image_rx_daemon: published frame_id=0 seq=136 200 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:35:11,884 INFO image_rx_daemon: stats: rx_frames=2284 rx_decode_err=0 frames_published=313 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=69 parity_recon=0 + +2026-08-24 16:35:11,886 INFO image_rx_daemon: air_gap: n=78 dt_med=117160us dt_p95=262952us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 16:35:11,888 INFO image_rx_daemon: air_gap_hist(ms): <20:1 <40:2 <80:1 <120:59 <200:10 <400:5 + +2026-08-24 16:35:11,889 INFO image_rx_daemon: rx_rf: n_rssi=78 n_snr=78 rssi[min/med/max]=-74/-72/-72 snr[min/med/max]=5.0/6.0/6.0 + +2026-08-24 16:35:11,890 INFO image_rx_daemon: phase_telemetry: valid=78 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 16:35:11,891 INFO image_rx_daemon: air_gap_by_class: seq: n=64 med=117.1ms | boundary: n=13 med=181.9ms | post_loss: n=1 med=234.4ms + +2026-08-24 16:35:11,892 INFO image_rx_daemon: lost_frag_idx: n=4 idx0=0 (0.00% of idx0 arrivals) other=4 (5.80%) verdict=not-clustered | top 1:2 11:1 5:1 + +2026-08-24 16:35:12,479 INFO image_rx_daemon: published frame_id=0 seq=137 2959 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:35:12,649 INFO image_rx_daemon: published frame_id=0 seq=142 180 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:35:14,139 INFO image_rx_daemon: published frame_id=0 seq=143 2951 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:35:14,311 INFO image_rx_daemon: published frame_id=0 seq=148 232 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:35:15,805 INFO image_rx_daemon: published frame_id=0 seq=149 2923 B → lifetrac/v25/video/tile_delta + +2026-08-24 16:35:16,045 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=190 snr=-1.5 rssi=-70 dump=e3b0e5005e54275b516c80fb2b035181a96936775c8810ddd60bac14aeb312b97b75e3f036dca6fd78f3353d748c61f2f00cf8984293cc45d54a15ae98d73ad8c2ea8de3ef98de7b0a612774358c6b4744674564d3ac8ae571f58bf597728bb629661a675ecef81bdc95a19a40cb82b75eeb5ebbae53384cf159d4f3d6bc766073945b422b40a5fc78905466468ca10fc7b813fe1e78143fca8e37290a642ad805b21d79544fba08c41c187d11a17ad66e24205caa77c8af777654851a04 + diff --git a/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20260824_113520_e9f6ffd6/synth_pub.log b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20260824_113520_e9f6ffd6/synth_pub.log new file mode 100644 index 00000000..99399f8f --- /dev/null +++ b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20260824_113520_e9f6ffd6/synth_pub.log @@ -0,0 +1,28 @@ +Starting synthetic camera publisher (broker=127.0.0.1, fps=2.0, duration=310.0s, budget=3000B, prebuild=32)... + +PREBUILT: 32 frames, sizes 2892..3000 B + +[000] Publishing synthetic frame of size 2985 bytes... + +[050] Publishing synthetic frame of size 2979 bytes... + +[100] Publishing synthetic frame of size 2915 bytes... + +[150] Publishing synthetic frame of size 2951 bytes... + +[200] Publishing synthetic frame of size 2934 bytes... + +[250] Publishing synthetic frame of size 2993 bytes... + +[300] Publishing synthetic frame of size 2919 bytes... + +[350] Publishing synthetic frame of size 2903 bytes... + +[400] Publishing synthetic frame of size 2892 bytes... + +[450] Publishing synthetic frame of size 2983 bytes... + +[500] Publishing synthetic frame of size 2991 bytes... + +[550] Publishing synthetic frame of size 2975 bytes... + diff --git a/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20260824_113520_e9f6ffd6/tx_daemon.log b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20260824_113520_e9f6ffd6/tx_daemon.log new file mode 100644 index 00000000..1d438736 --- /dev/null +++ b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20260824_113520_e9f6ffd6/tx_daemon.log @@ -0,0 +1,862 @@ +2026-08-11 08:40:44,047 INFO image_tx_daemon: opening L072 HostLink on /dev/ttymxc3 @ 921600 + +2026-08-11 08:40:44,049 INFO image_tx_daemon: image_tx_daemon started; mqtt=127.0.0.1:1883 uart=/dev/ttymxc3 + +2026-08-11 08:40:44,050 INFO image_tx_daemon: no_park_last=0 gap_ms=80 pipeline_depth=2 + +2026-08-11 08:40:44,061 INFO image_tx_daemon: MQTT connected; subscribing to lifetrac/v25/cmd/image_frame + +2026-08-11 08:40:44,067 INFO image_tx_daemon: LIFETRAC_SKIP_RESET_REQ=1 — relying on external NRST; draining boot chatter only + +2026-08-11 08:40:44,084 INFO image_tx_daemon: link_budget: published n_frag=1 profile_idx=6 (profile 2) + +Initializing regulatory profile 2 on co-processor... + + FHSS mask: single channel 0 (0100000000000000) + +CFG_SET_REQ(FHSS_CHANNEL_MASK) OK: 07000800 + +CFG_SET_REQ(ANTENNA_GAIN_DBI) OK: 15000100 + +CFG_SET_REQ(HW_CEILING_DBM) OK: 16000100 + + FHSS seed: (0,0) legacy shared permutation [set LIFETRAC_FHSS_FARM_ID / LIFETRAC_FHSS_LINK_ID to separate pairs] + +CFG_SET_REQ(FHSS_FARM_ID) OK: 17000800 + +CFG_SET_REQ(FHSS_NODE_ID) OK: 18000800 + +CFG_SET_REQ(REG_PROFILE=2) OK: 14000100 + + forcing FRF -> 927.500 MHz (raw=0xE7E000 -> Msb=0xE7 Mid=0xE0 Lsb=0x00) + + FRF readback: 0xE7E000 = 927.500 MHz (OK) + +PHY contract OK: image_bw500 == {'sf': 7, 'bw_khz': 500, 'cr_den': 5, 'preamble': 8} + +2026-08-11 08:40:44,971 INFO image_tx_daemon: LBT_ENABLE=0 (matches W1-10b TX_BURST rationale) + +2026-08-11 08:40:44,994 INFO image_tx_daemon: RXCONT armed for command downlink (opmode 0x81 -> 0x85) + +2026-08-11 08:40:44,995 INFO image_tx_daemon: TX worker ready (inter_cycle_s=0.050, max 8 frags/dwell) + +2026-08-11 08:40:45,050 INFO image_tx_daemon: stats: goodput=0.0 B/s util=0% pipeline=v3 frames_in=2 ok=0 fail=0 drop_full=0 drop_stale=0 frags_ok=0 frags_fail=0 qdepth=1 parity_tx=0 + +2026-08-11 08:40:45,128 INFO image_tx_daemon: frame seq=1 done (pipelined): 1 fragments ok + +2026-08-11 08:40:45,290 INFO image_tx_daemon: frame seq=2 done (pipelined): 1 fragments ok + +2026-08-11 08:40:45,553 INFO image_tx_daemon: LoRa cmd: ENCODE_MODE 0 + +2026-08-11 08:40:45,664 INFO image_tx_daemon: frame seq=3 done (pipelined): 1 fragments ok + +2026-08-11 08:40:45,958 INFO image_tx_daemon: LoRa cmd: ENCODE_MODE 0 + +2026-08-11 08:40:46,171 INFO image_tx_daemon: frame seq=4 done (pipelined): 1 fragments ok + +2026-08-11 08:40:46,454 INFO image_tx_daemon: LoRa cmd: ENCODE_MODE 0 + +2026-08-11 08:40:46,663 INFO image_tx_daemon: frame seq=5 done (pipelined): 1 fragments ok + +2026-08-11 08:40:46,937 INFO image_tx_daemon: LoRa cmd: ENCODE_MODE 0 + +2026-08-11 08:40:47,171 INFO image_tx_daemon: frame seq=6 done (pipelined): 1 fragments ok + +2026-08-11 08:40:47,464 INFO image_tx_daemon: LoRa cmd: ENCODE_MODE 0 + +2026-08-11 08:40:47,682 INFO image_tx_daemon: frame seq=7 done (pipelined): 1 fragments ok + +2026-08-11 08:40:47,975 INFO image_tx_daemon: LoRa cmd: ENCODE_MODE 0 + +2026-08-11 08:40:48,170 INFO image_tx_daemon: frame seq=8 done (pipelined): 1 fragments ok + +2026-08-11 08:40:48,454 INFO image_tx_daemon: LoRa cmd: ENCODE_MODE 0 + +2026-08-11 08:40:48,662 INFO image_tx_daemon: frame seq=9 done (pipelined): 1 fragments ok + +2026-08-11 08:40:48,956 INFO image_tx_daemon: LoRa cmd: ENCODE_MODE 0 + +2026-08-11 08:40:49,158 INFO image_tx_daemon: frame seq=10 done (pipelined): 1 fragments ok + +2026-08-11 08:40:49,442 INFO image_tx_daemon: LoRa cmd: ENCODE_MODE 0 + +2026-08-11 08:40:49,649 INFO image_tx_daemon: frame seq=11 done (pipelined): 1 fragments ok + +2026-08-11 08:40:49,942 INFO image_tx_daemon: LoRa cmd: ENCODE_MODE 0 + +2026-08-11 08:40:50,184 INFO image_tx_daemon: frame seq=12 done (pipelined): 1 fragments ok + +2026-08-11 08:40:50,468 INFO image_tx_daemon: LoRa cmd: ENCODE_MODE 0 + +2026-08-11 08:40:50,680 INFO image_tx_daemon: frame seq=13 done (pipelined): 1 fragments ok + +2026-08-11 08:40:50,964 INFO image_tx_daemon: LoRa cmd: ENCODE_MODE 0 + +2026-08-11 08:40:51,193 INFO image_tx_daemon: frame seq=14 done (pipelined): 1 fragments ok + +2026-08-11 08:40:51,466 INFO image_tx_daemon: LoRa cmd: ENCODE_MODE 0 + +2026-08-11 08:40:51,695 INFO image_tx_daemon: frame seq=15 done (pipelined): 1 fragments ok + +2026-08-11 08:40:51,979 INFO image_tx_daemon: LoRa cmd: ENCODE_MODE 0 + +2026-08-11 08:40:52,211 INFO image_tx_daemon: frame seq=16 done (pipelined): 1 fragments ok + +2026-08-11 08:40:52,495 INFO image_tx_daemon: LoRa cmd: ENCODE_MODE 0 + +2026-08-11 08:40:52,721 INFO image_tx_daemon: frame seq=17 done (pipelined): 1 fragments ok + +2026-08-11 08:40:53,004 INFO image_tx_daemon: LoRa cmd: ENCODE_MODE 0 + +2026-08-11 08:40:53,188 INFO image_tx_daemon: frame seq=18 done (pipelined): 1 fragments ok + +2026-08-11 08:40:53,473 INFO image_tx_daemon: LoRa cmd: ENCODE_MODE 0 + +2026-08-11 08:40:53,699 INFO image_tx_daemon: frame seq=19 done (pipelined): 1 fragments ok + +2026-08-11 08:40:53,983 INFO image_tx_daemon: LoRa cmd: ENCODE_MODE 0 + +2026-08-11 08:40:54,203 INFO image_tx_daemon: frame seq=20 done (pipelined): 1 fragments ok + +2026-08-11 08:40:54,656 INFO image_tx_daemon: frame seq=21 done (pipelined): 1 fragments ok + +2026-08-11 08:40:55,065 INFO image_tx_daemon: stats: goodput=454.7 B/s util=19% pipeline=v3 frames_in=22 ok=21 fail=0 drop_full=0 drop_stale=0 frags_ok=21 frags_fail=0 qdepth=0 parity_tx=0 + +2026-08-11 08:40:55,163 INFO image_tx_daemon: frame seq=22 done (pipelined): 1 fragments ok + +2026-08-11 08:40:55,611 INFO image_tx_daemon: frame seq=23 done (pipelined): 1 fragments ok + +2026-08-11 08:40:56,179 INFO image_tx_daemon: frame seq=24 done (pipelined): 1 fragments ok + +2026-08-11 08:40:56,671 INFO image_tx_daemon: frame seq=25 done (pipelined): 1 fragments ok + +2026-08-11 08:40:57,143 INFO image_tx_daemon: frame seq=26 done (pipelined): 1 fragments ok + +2026-08-11 08:40:57,679 INFO image_tx_daemon: frame seq=27 done (pipelined): 1 fragments ok + +2026-08-11 08:40:58,167 INFO image_tx_daemon: frame seq=28 done (pipelined): 1 fragments ok + +2026-08-11 08:40:58,688 INFO image_tx_daemon: frame seq=29 done (pipelined): 1 fragments ok + +2026-08-11 08:40:59,139 INFO image_tx_daemon: frame seq=30 done (pipelined): 1 fragments ok + +2026-08-11 08:40:59,664 INFO image_tx_daemon: frame seq=31 done (pipelined): 1 fragments ok + +2026-08-11 08:41:00,177 INFO image_tx_daemon: frame seq=32 done (pipelined): 1 fragments ok + +2026-08-11 08:41:00,663 INFO image_tx_daemon: frame seq=33 done (pipelined): 1 fragments ok + +2026-08-11 08:41:01,186 INFO image_tx_daemon: frame seq=34 done (pipelined): 1 fragments ok + +2026-08-11 08:41:02,695 INFO image_tx_daemon: frame seq=35 done (pipelined): 13 fragments ok + +2026-08-11 08:41:02,856 INFO image_tx_daemon: frame seq=36 done (pipelined): 1 fragments ok + +2026-08-11 08:41:03,026 INFO image_tx_daemon: frame seq=38 done (pipelined): 1 fragments ok + +2026-08-11 08:41:04,530 INFO image_tx_daemon: frame seq=39 done (pipelined): 13 fragments ok + +2026-08-11 08:41:04,694 INFO image_tx_daemon: frame seq=40 done (pipelined): 1 fragments ok + +2026-08-11 08:41:05,076 INFO image_tx_daemon: stats: goodput=995.6 B/s util=41% pipeline=v3 frames_in=50 ok=39 fail=0 drop_full=4 drop_stale=0 frags_ok=65 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 08:41:06,152 INFO image_tx_daemon: frame seq=41 done (pipelined): 12 fragments ok + +2026-08-11 08:41:06,334 INFO image_tx_daemon: batching: 2 frames in 1 trains so far (this train: 2 frames, 420 B) + +2026-08-11 08:41:07,622 INFO image_tx_daemon: frame seq=45 done (pipelined): 12 fragments ok + +2026-08-11 08:41:07,907 INFO image_tx_daemon: frame seq=46 done (pipelined): 2 fragments ok + +2026-08-11 08:41:09,415 INFO image_tx_daemon: frame seq=53 done (pipelined): 13 fragments ok + +2026-08-11 08:41:09,576 INFO image_tx_daemon: frame seq=58 done (pipelined): 1 fragments ok + +2026-08-11 08:41:11,072 INFO image_tx_daemon: frame seq=59 done (pipelined): 13 fragments ok + +2026-08-11 08:41:11,341 INFO image_tx_daemon: frame seq=64 done (pipelined): 2 fragments ok + +2026-08-11 08:41:12,792 INFO image_tx_daemon: frame seq=67 done (pipelined): 12 fragments ok + +2026-08-11 08:41:12,988 INFO image_tx_daemon: frame seq=72 done (pipelined): 1 fragments ok + +2026-08-11 08:41:14,495 INFO image_tx_daemon: frame seq=73 done (pipelined): 13 fragments ok + +2026-08-11 08:41:14,667 INFO image_tx_daemon: frame seq=78 done (pipelined): 1 fragments ok + +2026-08-11 08:41:15,087 INFO image_tx_daemon: stats: goodput=1963.9 B/s util=80% pipeline=v3 frames_in=90 ok=50 fail=0 drop_full=31 drop_stale=0 frags_ok=148 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 08:41:16,164 INFO image_tx_daemon: frame seq=79 done (pipelined): 13 fragments ok + +2026-08-11 08:41:17,647 INFO image_tx_daemon: frame seq=85 done (pipelined): 13 fragments ok + +2026-08-11 08:41:17,910 INFO image_tx_daemon: frame seq=86 done (pipelined): 2 fragments ok + +2026-08-11 08:41:19,372 INFO image_tx_daemon: frame seq=93 done (pipelined): 12 fragments ok + +2026-08-11 08:41:19,552 INFO image_tx_daemon: frame seq=98 done (pipelined): 1 fragments ok + +2026-08-11 08:41:21,060 INFO image_tx_daemon: frame seq=99 done (pipelined): 13 fragments ok + +2026-08-11 08:41:21,211 INFO image_tx_daemon: frame seq=106 done (pipelined): 1 fragments ok + +2026-08-11 08:41:22,673 INFO image_tx_daemon: frame seq=107 done (pipelined): 12 fragments ok + +2026-08-11 08:41:22,862 INFO image_tx_daemon: frame seq=112 done (pipelined): 1 fragments ok + +2026-08-11 08:41:24,369 INFO image_tx_daemon: frame seq=113 done (pipelined): 13 fragments ok + +2026-08-11 08:41:24,630 INFO image_tx_daemon: frame seq=118 done (pipelined): 1 fragments ok + +2026-08-11 08:41:25,099 INFO image_tx_daemon: stats: goodput=1926.7 B/s util=78% pipeline=v3 frames_in=130 ok=61 fail=0 drop_full=60 drop_stale=0 frags_ok=230 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 08:41:26,093 INFO image_tx_daemon: frame seq=119 done (pipelined): 12 fragments ok + +2026-08-11 08:41:26,281 INFO image_tx_daemon: frame seq=126 done (pipelined): 1 fragments ok + +2026-08-11 08:41:26,453 INFO image_tx_daemon: frame seq=132 done (pipelined): 1 fragments ok + +2026-08-11 08:41:27,951 INFO image_tx_daemon: frame seq=133 done (pipelined): 13 fragments ok + +2026-08-11 08:41:28,114 INFO image_tx_daemon: frame seq=134 done (pipelined): 1 fragments ok + +2026-08-11 08:41:29,621 INFO image_tx_daemon: frame seq=135 done (pipelined): 13 fragments ok + +2026-08-11 08:41:31,213 INFO image_tx_daemon: frame seq=139 done (pipelined): 13 fragments ok + +2026-08-11 08:41:31,374 INFO image_tx_daemon: frame seq=146 done (pipelined): 1 fragments ok + +2026-08-11 08:41:32,872 INFO image_tx_daemon: frame seq=147 done (pipelined): 13 fragments ok + +2026-08-11 08:41:33,029 INFO image_tx_daemon: frame seq=152 done (pipelined): 1 fragments ok + +2026-08-11 08:41:34,480 INFO image_tx_daemon: frame seq=153 done (pipelined): 12 fragments ok + +2026-08-11 08:41:34,782 INFO image_tx_daemon: frame seq=158 done (pipelined): 2 fragments ok + +2026-08-11 08:41:35,112 INFO image_tx_daemon: stats: goodput=1928.6 B/s util=78% pipeline=v3 frames_in=170 ok=73 fail=0 drop_full=87 drop_stale=0 frags_ok=312 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 08:41:36,249 INFO image_tx_daemon: frame seq=161 done (pipelined): 12 fragments ok + +2026-08-11 08:41:36,437 INFO image_tx_daemon: frame seq=166 done (pipelined): 1 fragments ok + +2026-08-11 08:41:36,598 INFO image_tx_daemon: frame seq=172 done (pipelined): 1 fragments ok + +2026-08-11 08:41:38,051 INFO image_tx_daemon: frame seq=173 done (pipelined): 12 fragments ok + +2026-08-11 08:41:38,246 INFO image_tx_daemon: frame seq=174 done (pipelined): 1 fragments ok + +2026-08-11 08:41:39,743 INFO image_tx_daemon: frame seq=175 done (pipelined): 13 fragments ok + +2026-08-11 08:41:39,894 INFO image_tx_daemon: frame seq=180 done (pipelined): 1 fragments ok + +2026-08-11 08:41:41,403 INFO image_tx_daemon: frame seq=181 done (pipelined): 13 fragments ok + +2026-08-11 08:41:41,562 INFO image_tx_daemon: frame seq=186 done (pipelined): 1 fragments ok + +2026-08-11 08:41:43,045 INFO image_tx_daemon: frame seq=187 done (pipelined): 13 fragments ok + +2026-08-11 08:41:43,301 INFO image_tx_daemon: frame seq=192 done (pipelined): 2 fragments ok + +2026-08-11 08:41:44,752 INFO image_tx_daemon: frame seq=195 done (pipelined): 12 fragments ok + +2026-08-11 08:41:44,948 INFO image_tx_daemon: frame seq=200 done (pipelined): 1 fragments ok + +2026-08-11 08:41:45,122 INFO image_tx_daemon: stats: goodput=1934.5 B/s util=79% pipeline=v3 frames_in=210 ok=86 fail=0 drop_full=113 drop_stale=0 frags_ok=394 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 08:41:46,449 INFO image_tx_daemon: frame seq=201 done (pipelined): 13 fragments ok + +2026-08-11 08:41:46,622 INFO image_tx_daemon: frame seq=206 done (pipelined): 1 fragments ok + +2026-08-11 08:41:48,103 INFO image_tx_daemon: frame seq=213 done (pipelined): 13 fragments ok + +2026-08-11 08:41:48,275 INFO image_tx_daemon: frame seq=214 done (pipelined): 1 fragments ok + +2026-08-11 08:41:49,782 INFO image_tx_daemon: frame seq=215 done (pipelined): 13 fragments ok + +2026-08-11 08:41:50,042 INFO image_tx_daemon: frame seq=220 done (pipelined): 1 fragments ok + +2026-08-11 08:41:51,507 INFO image_tx_daemon: frame seq=221 done (pipelined): 12 fragments ok + +2026-08-11 08:41:51,785 INFO image_tx_daemon: frame seq=226 done (pipelined): 2 fragments ok + +2026-08-11 08:41:53,293 INFO image_tx_daemon: frame seq=229 done (pipelined): 13 fragments ok + +2026-08-11 08:41:53,462 INFO image_tx_daemon: frame seq=234 done (pipelined): 1 fragments ok + +2026-08-11 08:41:54,925 INFO image_tx_daemon: frame seq=235 done (pipelined): 12 fragments ok + +2026-08-11 08:41:55,096 INFO image_tx_daemon: frame seq=240 done (pipelined): 1 fragments ok + +2026-08-11 08:41:55,134 INFO image_tx_daemon: stats: goodput=1928.0 B/s util=78% pipeline=v3 frames_in=250 ok=98 fail=0 drop_full=140 drop_stale=0 frags_ok=476 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 08:41:56,603 INFO image_tx_daemon: frame seq=241 done (pipelined): 13 fragments ok + +2026-08-11 08:41:56,769 INFO image_tx_daemon: frame seq=246 done (pipelined): 1 fragments ok + +2026-08-11 08:41:56,941 INFO image_tx_daemon: frame seq=254 done (pipelined): 1 fragments ok + +2026-08-11 08:41:58,437 INFO image_tx_daemon: frame seq=255 done (pipelined): 13 fragments ok + +2026-08-11 08:41:58,609 INFO image_tx_daemon: frame seq=0 done (pipelined): 1 fragments ok + +2026-08-11 08:42:00,118 INFO image_tx_daemon: frame seq=1 done (pipelined): 13 fragments ok + +2026-08-11 08:42:01,706 INFO image_tx_daemon: frame seq=5 done (pipelined): 13 fragments ok + +2026-08-11 08:42:01,971 INFO image_tx_daemon: frame seq=6 done (pipelined): 2 fragments ok + +2026-08-11 08:42:03,478 INFO image_tx_daemon: frame seq=13 done (pipelined): 13 fragments ok + +2026-08-11 08:42:03,639 INFO image_tx_daemon: frame seq=18 done (pipelined): 1 fragments ok + +2026-08-11 08:42:05,145 INFO image_tx_daemon: stats: goodput=1946.2 B/s util=79% pipeline=v3 frames_in=290 ok=109 fail=0 drop_full=168 drop_stale=0 frags_ok=560 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 08:42:05,147 INFO image_tx_daemon: frame seq=19 done (pipelined): 13 fragments ok + +2026-08-11 08:42:06,685 INFO image_tx_daemon: frame seq=25 done (pipelined): 12 fragments ok + +2026-08-11 08:42:06,858 INFO image_tx_daemon: frame seq=26 done (pipelined): 1 fragments ok + +2026-08-11 08:42:07,035 INFO image_tx_daemon: frame seq=32 done (pipelined): 1 fragments ok + +2026-08-11 08:42:07,207 INFO image_tx_daemon: frame seq=38 done (pipelined): 1 fragments ok + +2026-08-11 08:42:08,714 INFO image_tx_daemon: frame seq=39 done (pipelined): 13 fragments ok + +2026-08-11 08:42:08,865 INFO image_tx_daemon: frame seq=40 done (pipelined): 1 fragments ok + +2026-08-11 08:42:10,322 INFO image_tx_daemon: frame seq=41 done (pipelined): 12 fragments ok + +2026-08-11 08:42:10,512 INFO image_tx_daemon: frame seq=46 done (pipelined): 1 fragments ok + +2026-08-11 08:42:12,013 INFO image_tx_daemon: frame seq=47 done (pipelined): 13 fragments ok + +2026-08-11 08:42:12,376 INFO image_tx_daemon: frame seq=52 done (pipelined): 2 fragments ok + +2026-08-11 08:42:13,837 INFO image_tx_daemon: frame seq=55 done (pipelined): 12 fragments ok + +2026-08-11 08:42:15,156 INFO image_tx_daemon: stats: goodput=1891.0 B/s util=77% pipeline=v3 frames_in=331 ok=120 fail=0 drop_full=195 drop_stale=0 frags_ok=639 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 08:42:15,306 INFO image_tx_daemon: frame seq=61 done (pipelined): 12 fragments ok + +2026-08-11 08:42:15,599 INFO image_tx_daemon: frame seq=62 done (pipelined): 2 fragments ok + +2026-08-11 08:42:17,050 INFO image_tx_daemon: frame seq=67 done (pipelined): 12 fragments ok + +2026-08-11 08:42:17,246 INFO image_tx_daemon: frame seq=72 done (pipelined): 1 fragments ok + +2026-08-11 08:42:17,418 INFO image_tx_daemon: frame seq=80 done (pipelined): 1 fragments ok + +2026-08-11 08:42:18,926 INFO image_tx_daemon: frame seq=81 done (pipelined): 13 fragments ok + +2026-08-11 08:42:19,087 INFO image_tx_daemon: frame seq=82 done (pipelined): 1 fragments ok + +2026-08-11 08:42:20,584 INFO image_tx_daemon: frame seq=83 done (pipelined): 13 fragments ok + +2026-08-11 08:42:22,186 INFO image_tx_daemon: frame seq=87 done (pipelined): 13 fragments ok + +2026-08-11 08:42:22,513 INFO image_tx_daemon: frame seq=88 done (pipelined): 2 fragments ok + +2026-08-11 08:42:23,969 INFO image_tx_daemon: frame seq=95 done (pipelined): 12 fragments ok + +2026-08-11 08:42:24,141 INFO image_tx_daemon: frame seq=102 done (pipelined): 1 fragments ok + +2026-08-11 08:42:25,168 INFO image_tx_daemon: stats: goodput=1914.7 B/s util=78% pipeline=v3 frames_in=371 ok=132 fail=0 drop_full=222 drop_stale=0 frags_ok=720 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 08:42:25,649 INFO image_tx_daemon: frame seq=103 done (pipelined): 13 fragments ok + +2026-08-11 08:42:27,198 INFO image_tx_daemon: frame seq=107 done (pipelined): 12 fragments ok + +2026-08-11 08:42:27,476 INFO image_tx_daemon: frame seq=108 done (pipelined): 2 fragments ok + +2026-08-11 08:42:28,973 INFO image_tx_daemon: frame seq=115 done (pipelined): 13 fragments ok + +2026-08-11 08:42:29,123 INFO image_tx_daemon: frame seq=120 done (pipelined): 1 fragments ok + +2026-08-11 08:42:30,621 INFO image_tx_daemon: frame seq=121 done (pipelined): 13 fragments ok + +2026-08-11 08:42:32,119 INFO image_tx_daemon: frame seq=127 done (pipelined): 13 fragments ok + +2026-08-11 08:42:32,385 INFO image_tx_daemon: frame seq=128 done (pipelined): 2 fragments ok + +2026-08-11 08:42:33,892 INFO image_tx_daemon: frame seq=135 done (pipelined): 13 fragments ok + +2026-08-11 08:42:34,063 INFO image_tx_daemon: frame seq=140 done (pipelined): 1 fragments ok + +2026-08-11 08:42:35,180 INFO image_tx_daemon: stats: goodput=1953.7 B/s util=79% pipeline=v3 frames_in=411 ok=142 fail=0 drop_full=249 drop_stale=0 frags_ok=804 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 08:42:35,570 INFO image_tx_daemon: frame seq=141 done (pipelined): 13 fragments ok + +2026-08-11 08:42:35,911 INFO image_tx_daemon: frame seq=146 done (pipelined): 2 fragments ok + +2026-08-11 08:42:37,395 INFO image_tx_daemon: frame seq=149 done (pipelined): 13 fragments ok + +2026-08-11 08:42:37,562 INFO image_tx_daemon: frame seq=154 done (pipelined): 1 fragments ok + +2026-08-11 08:42:37,720 INFO image_tx_daemon: frame seq=160 done (pipelined): 1 fragments ok + +2026-08-11 08:42:39,179 INFO image_tx_daemon: frame seq=161 done (pipelined): 12 fragments ok + +2026-08-11 08:42:39,366 INFO image_tx_daemon: frame seq=162 done (pipelined): 1 fragments ok + +2026-08-11 08:42:40,874 INFO image_tx_daemon: frame seq=163 done (pipelined): 13 fragments ok + +2026-08-11 08:42:41,046 INFO image_tx_daemon: frame seq=168 done (pipelined): 1 fragments ok + +2026-08-11 08:42:42,502 INFO image_tx_daemon: frame seq=169 done (pipelined): 12 fragments ok + +2026-08-11 08:42:42,800 INFO image_tx_daemon: frame seq=174 done (pipelined): 2 fragments ok + +2026-08-11 08:42:44,308 INFO image_tx_daemon: frame seq=177 done (pipelined): 13 fragments ok + +2026-08-11 08:42:44,470 INFO image_tx_daemon: frame seq=182 done (pipelined): 1 fragments ok + +2026-08-11 08:42:45,192 INFO image_tx_daemon: stats: goodput=1895.6 B/s util=77% pipeline=v3 frames_in=451 ok=155 fail=0 drop_full=275 drop_stale=0 frags_ok=885 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 08:42:45,941 INFO image_tx_daemon: frame seq=183 done (pipelined): 12 fragments ok + +2026-08-11 08:42:47,409 INFO image_tx_daemon: frame seq=189 done (pipelined): 12 fragments ok + +2026-08-11 08:42:47,584 INFO image_tx_daemon: frame seq=190 done (pipelined): 1 fragments ok + +2026-08-11 08:42:49,032 INFO image_tx_daemon: frame seq=195 done (pipelined): 12 fragments ok + +2026-08-11 08:42:49,295 INFO image_tx_daemon: frame seq=200 done (pipelined): 2 fragments ok + +2026-08-11 08:42:50,809 INFO image_tx_daemon: frame seq=203 done (pipelined): 13 fragments ok + +2026-08-11 08:42:50,956 INFO image_tx_daemon: frame seq=208 done (pipelined): 1 fragments ok + +2026-08-11 08:42:52,478 INFO image_tx_daemon: frame seq=209 done (pipelined): 13 fragments ok + +2026-08-11 08:42:52,640 INFO image_tx_daemon: frame seq=214 done (pipelined): 1 fragments ok + +2026-08-11 08:42:54,148 INFO image_tx_daemon: frame seq=215 done (pipelined): 13 fragments ok + +2026-08-11 08:42:55,204 INFO image_tx_daemon: stats: goodput=1942.9 B/s util=79% pipeline=v3 frames_in=491 ok=165 fail=0 drop_full=303 drop_stale=0 frags_ok=967 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 08:42:55,695 INFO image_tx_daemon: frame seq=221 done (pipelined): 12 fragments ok + +2026-08-11 08:42:55,953 INFO image_tx_daemon: frame seq=222 done (pipelined): 2 fragments ok + +2026-08-11 08:42:57,468 INFO image_tx_daemon: frame seq=229 done (pipelined): 13 fragments ok + +2026-08-11 08:42:57,629 INFO image_tx_daemon: frame seq=234 done (pipelined): 1 fragments ok + +2026-08-11 08:42:59,136 INFO image_tx_daemon: frame seq=241 done (pipelined): 13 fragments ok + +2026-08-11 08:42:59,308 INFO image_tx_daemon: frame seq=242 done (pipelined): 1 fragments ok + +2026-08-11 08:43:00,798 INFO image_tx_daemon: frame seq=243 done (pipelined): 13 fragments ok + +2026-08-11 08:43:00,959 INFO image_tx_daemon: frame seq=248 done (pipelined): 1 fragments ok + +2026-08-11 08:43:02,464 INFO image_tx_daemon: frame seq=249 done (pipelined): 13 fragments ok + +2026-08-11 08:43:02,616 INFO image_tx_daemon: frame seq=254 done (pipelined): 1 fragments ok + +2026-08-11 08:43:04,112 INFO image_tx_daemon: frame seq=255 done (pipelined): 13 fragments ok + +2026-08-11 08:43:05,215 INFO image_tx_daemon: stats: goodput=1971.1 B/s util=80% pipeline=v3 frames_in=531 ok=176 fail=0 drop_full=331 drop_stale=0 frags_ok=1052 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 08:43:05,611 INFO image_tx_daemon: frame seq=5 done (pipelined): 13 fragments ok + +2026-08-11 08:43:05,852 INFO image_tx_daemon: frame seq=6 done (pipelined): 2 fragments ok + +2026-08-11 08:43:07,361 INFO image_tx_daemon: frame seq=13 done (pipelined): 13 fragments ok + +2026-08-11 08:43:07,519 INFO image_tx_daemon: frame seq=18 done (pipelined): 1 fragments ok + +2026-08-11 08:43:09,018 INFO image_tx_daemon: frame seq=19 done (pipelined): 13 fragments ok + +2026-08-11 08:43:09,350 INFO image_tx_daemon: frame seq=24 done (pipelined): 2 fragments ok + +2026-08-11 08:43:10,857 INFO image_tx_daemon: frame seq=27 done (pipelined): 13 fragments ok + +2026-08-11 08:43:11,019 INFO image_tx_daemon: frame seq=32 done (pipelined): 1 fragments ok + +2026-08-11 08:43:12,476 INFO image_tx_daemon: frame seq=33 done (pipelined): 12 fragments ok + +2026-08-11 08:43:12,781 INFO image_tx_daemon: frame seq=38 done (pipelined): 2 fragments ok + +2026-08-11 08:43:14,238 INFO image_tx_daemon: frame seq=41 done (pipelined): 12 fragments ok + +2026-08-11 08:43:14,431 INFO image_tx_daemon: frame seq=46 done (pipelined): 1 fragments ok + +2026-08-11 08:43:15,226 INFO image_tx_daemon: stats: goodput=1917.5 B/s util=78% pipeline=v3 frames_in=571 ok=188 fail=0 drop_full=357 drop_stale=0 frags_ok=1134 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 08:43:15,938 INFO image_tx_daemon: frame seq=47 done (pipelined): 13 fragments ok + +2026-08-11 08:43:16,110 INFO image_tx_daemon: frame seq=52 done (pipelined): 1 fragments ok + +2026-08-11 08:43:17,618 INFO image_tx_daemon: frame seq=53 done (pipelined): 13 fragments ok + +2026-08-11 08:43:17,779 INFO image_tx_daemon: frame seq=58 done (pipelined): 1 fragments ok + +2026-08-11 08:43:17,962 INFO image_tx_daemon: frame seq=60 done (pipelined): 1 fragments ok + +2026-08-11 08:43:18,134 INFO image_tx_daemon: frame seq=66 done (pipelined): 1 fragments ok + +2026-08-11 08:43:19,587 INFO image_tx_daemon: frame seq=67 done (pipelined): 12 fragments ok + +2026-08-11 08:43:19,762 INFO image_tx_daemon: frame seq=68 done (pipelined): 1 fragments ok + +2026-08-11 08:43:21,259 INFO image_tx_daemon: frame seq=69 done (pipelined): 13 fragments ok + +2026-08-11 08:43:21,420 INFO image_tx_daemon: frame seq=74 done (pipelined): 1 fragments ok + +2026-08-11 08:43:22,932 INFO image_tx_daemon: frame seq=75 done (pipelined): 13 fragments ok + +2026-08-11 08:43:24,520 INFO image_tx_daemon: frame seq=81 done (pipelined): 13 fragments ok + +2026-08-11 08:43:24,894 INFO image_tx_daemon: frame seq=82 done (pipelined): 2 fragments ok + +2026-08-11 08:43:25,237 INFO image_tx_daemon: stats: goodput=1891.8 B/s util=77% pipeline=v3 frames_in=611 ok=201 fail=0 drop_full=383 drop_stale=0 frags_ok=1215 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 08:43:26,348 INFO image_tx_daemon: frame seq=89 done (pipelined): 12 fragments ok + +2026-08-11 08:43:26,550 INFO image_tx_daemon: frame seq=94 done (pipelined): 1 fragments ok + +2026-08-11 08:43:28,006 INFO image_tx_daemon: frame seq=95 done (pipelined): 12 fragments ok + +2026-08-11 08:43:28,197 INFO image_tx_daemon: frame seq=102 done (pipelined): 1 fragments ok + +2026-08-11 08:43:29,704 INFO image_tx_daemon: frame seq=103 done (pipelined): 13 fragments ok + +2026-08-11 08:43:31,250 INFO image_tx_daemon: frame seq=107 done (pipelined): 12 fragments ok + +2026-08-11 08:43:31,527 INFO image_tx_daemon: frame seq=108 done (pipelined): 2 fragments ok + +2026-08-11 08:43:33,017 INFO image_tx_daemon: frame seq=115 done (pipelined): 13 fragments ok + +2026-08-11 08:43:33,267 INFO image_tx_daemon: frame seq=120 done (pipelined): 2 fragments ok + +2026-08-11 08:43:34,748 INFO image_tx_daemon: frame seq=123 done (pipelined): 13 fragments ok + +2026-08-11 08:43:34,921 INFO image_tx_daemon: frame seq=128 done (pipelined): 1 fragments ok + +2026-08-11 08:43:35,251 INFO image_tx_daemon: stats: goodput=1937.1 B/s util=79% pipeline=v3 frames_in=651 ok=212 fail=0 drop_full=410 drop_stale=0 frags_ok=1297 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 08:43:36,428 INFO image_tx_daemon: frame seq=129 done (pipelined): 13 fragments ok + +2026-08-11 08:43:36,685 INFO image_tx_daemon: frame seq=134 done (pipelined): 1 fragments ok + +2026-08-11 08:43:38,193 INFO image_tx_daemon: frame seq=135 done (pipelined): 13 fragments ok + +2026-08-11 08:43:39,790 INFO image_tx_daemon: frame seq=141 done (pipelined): 13 fragments ok + +2026-08-11 08:43:39,967 INFO image_tx_daemon: frame seq=142 done (pipelined): 1 fragments ok + +2026-08-11 08:43:40,141 INFO image_tx_daemon: frame seq=154 done (pipelined): 1 fragments ok + +2026-08-11 08:43:41,648 INFO image_tx_daemon: frame seq=155 done (pipelined): 13 fragments ok + +2026-08-11 08:43:41,799 INFO image_tx_daemon: frame seq=156 done (pipelined): 1 fragments ok + +2026-08-11 08:43:43,261 INFO image_tx_daemon: frame seq=157 done (pipelined): 12 fragments ok + +2026-08-11 08:43:43,454 INFO image_tx_daemon: frame seq=162 done (pipelined): 1 fragments ok + +2026-08-11 08:43:44,964 INFO image_tx_daemon: frame seq=163 done (pipelined): 13 fragments ok + +2026-08-11 08:43:45,266 INFO image_tx_daemon: stats: goodput=1897.7 B/s util=77% pipeline=v3 frames_in=691 ok=223 fail=0 drop_full=440 drop_stale=0 frags_ok=1378 frags_fail=0 qdepth=3 parity_tx=0 + +2026-08-11 08:43:46,503 INFO image_tx_daemon: frame seq=169 done (pipelined): 12 fragments ok + +2026-08-11 08:43:46,694 INFO image_tx_daemon: frame seq=170 done (pipelined): 1 fragments ok + +2026-08-11 08:43:46,877 INFO image_tx_daemon: frame seq=176 done (pipelined): 1 fragments ok + +2026-08-11 08:43:48,384 INFO image_tx_daemon: frame seq=181 done (pipelined): 13 fragments ok + +2026-08-11 08:43:48,652 INFO image_tx_daemon: frame seq=182 done (pipelined): 1 fragments ok + +2026-08-11 08:43:50,121 INFO image_tx_daemon: frame seq=183 done (pipelined): 12 fragments ok + +2026-08-11 08:43:50,267 INFO image_tx_daemon: frame seq=190 done (pipelined): 1 fragments ok + +2026-08-11 08:43:51,763 INFO image_tx_daemon: frame seq=191 done (pipelined): 13 fragments ok + +2026-08-11 08:43:51,924 INFO image_tx_daemon: frame seq=196 done (pipelined): 1 fragments ok + +2026-08-11 08:43:53,421 INFO image_tx_daemon: frame seq=197 done (pipelined): 13 fragments ok + +2026-08-11 08:43:53,582 INFO image_tx_daemon: frame seq=202 done (pipelined): 1 fragments ok + +2026-08-11 08:43:55,090 INFO image_tx_daemon: frame seq=203 done (pipelined): 13 fragments ok + +2026-08-11 08:43:55,251 INFO image_tx_daemon: frame seq=210 done (pipelined): 1 fragments ok + +2026-08-11 08:43:55,278 INFO image_tx_daemon: stats: goodput=1924.5 B/s util=78% pipeline=v3 frames_in=731 ok=236 fail=0 drop_full=468 drop_stale=0 frags_ok=1460 frags_fail=0 qdepth=3 parity_tx=0 + +2026-08-11 08:43:56,758 INFO image_tx_daemon: frame seq=211 done (pipelined): 13 fragments ok + +2026-08-11 08:43:56,931 INFO image_tx_daemon: frame seq=216 done (pipelined): 1 fragments ok + +2026-08-11 08:43:58,389 INFO image_tx_daemon: frame seq=217 done (pipelined): 12 fragments ok + +2026-08-11 08:43:58,567 INFO image_tx_daemon: frame seq=222 done (pipelined): 1 fragments ok + +2026-08-11 08:44:00,023 INFO image_tx_daemon: frame seq=223 done (pipelined): 12 fragments ok + +2026-08-11 08:44:00,214 INFO image_tx_daemon: frame seq=230 done (pipelined): 1 fragments ok + +2026-08-11 08:44:01,733 INFO image_tx_daemon: frame seq=231 done (pipelined): 13 fragments ok + +2026-08-11 08:44:03,276 INFO image_tx_daemon: frame seq=235 done (pipelined): 12 fragments ok + +2026-08-11 08:44:03,549 INFO image_tx_daemon: frame seq=236 done (pipelined): 2 fragments ok + +2026-08-11 08:44:05,038 INFO image_tx_daemon: frame seq=243 done (pipelined): 13 fragments ok + +2026-08-11 08:44:05,290 INFO image_tx_daemon: stats: goodput=1922.4 B/s util=78% pipeline=v3 frames_in=771 ok=246 fail=0 drop_full=495 drop_stale=0 frags_ok=1541 frags_fail=0 qdepth=3 parity_tx=0 + +2026-08-11 08:44:05,329 INFO image_tx_daemon: frame seq=248 done (pipelined): 2 fragments ok + +2026-08-11 08:44:06,813 INFO image_tx_daemon: frame seq=251 done (pipelined): 13 fragments ok + +2026-08-11 08:44:06,975 INFO image_tx_daemon: frame seq=0 done (pipelined): 1 fragments ok + +2026-08-11 08:44:08,485 INFO image_tx_daemon: frame seq=1 done (pipelined): 13 fragments ok + +2026-08-11 08:44:08,657 INFO image_tx_daemon: frame seq=6 done (pipelined): 1 fragments ok + +2026-08-11 08:44:10,165 INFO image_tx_daemon: frame seq=7 done (pipelined): 13 fragments ok + +2026-08-11 08:44:11,768 INFO image_tx_daemon: frame seq=13 done (pipelined): 13 fragments ok + +2026-08-11 08:44:12,099 INFO image_tx_daemon: frame seq=14 done (pipelined): 2 fragments ok + +2026-08-11 08:44:12,264 INFO image_tx_daemon: batching: 52 frames in 26 trains so far (this train: 2 frames, 420 B) + +2026-08-11 08:44:13,583 INFO image_tx_daemon: frame seq=21 done (pipelined): 13 fragments ok + +2026-08-11 08:44:13,847 INFO image_tx_daemon: frame seq=26 done (pipelined): 2 fragments ok + +2026-08-11 08:44:15,302 INFO image_tx_daemon: stats: goodput=1954.9 B/s util=80% pipeline=v3 frames_in=811 ok=257 fail=0 drop_full=522 drop_stale=0 frags_ok=1625 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 08:44:15,310 INFO image_tx_daemon: frame seq=29 done (pipelined): 12 fragments ok + +2026-08-11 08:44:15,478 INFO image_tx_daemon: frame seq=34 done (pipelined): 1 fragments ok + +2026-08-11 08:44:16,993 INFO image_tx_daemon: frame seq=35 done (pipelined): 13 fragments ok + +2026-08-11 08:44:18,528 INFO image_tx_daemon: frame seq=41 done (pipelined): 12 fragments ok + +2026-08-11 08:44:18,817 INFO image_tx_daemon: frame seq=42 done (pipelined): 2 fragments ok + +2026-08-11 08:44:20,324 INFO image_tx_daemon: frame seq=49 done (pipelined): 13 fragments ok + +2026-08-11 08:44:20,475 INFO image_tx_daemon: frame seq=54 done (pipelined): 1 fragments ok + +2026-08-11 08:44:21,950 INFO image_tx_daemon: frame seq=55 done (pipelined): 12 fragments ok + +2026-08-11 08:44:23,413 INFO image_tx_daemon: frame seq=61 done (pipelined): 12 fragments ok + +2026-08-11 08:44:23,604 INFO image_tx_daemon: frame seq=62 done (pipelined): 1 fragments ok + +2026-08-11 08:44:25,055 INFO image_tx_daemon: frame seq=67 done (pipelined): 12 fragments ok + +2026-08-11 08:44:25,314 INFO image_tx_daemon: stats: goodput=1918.4 B/s util=78% pipeline=v3 frames_in=851 ok=267 fail=0 drop_full=551 drop_stale=0 frags_ok=1705 frags_fail=0 qdepth=2 parity_tx=0 + +2026-08-11 08:44:26,579 INFO image_tx_daemon: frame seq=73 done (pipelined): 13 fragments ok + +2026-08-11 08:44:26,832 INFO image_tx_daemon: frame seq=74 done (pipelined): 2 fragments ok + +2026-08-11 08:44:28,351 INFO image_tx_daemon: frame seq=81 done (pipelined): 13 fragments ok + +2026-08-11 08:44:28,607 INFO image_tx_daemon: frame seq=86 done (pipelined): 1 fragments ok + +2026-08-11 08:44:30,114 INFO image_tx_daemon: frame seq=87 done (pipelined): 13 fragments ok + +2026-08-11 08:44:31,660 INFO image_tx_daemon: frame seq=93 done (pipelined): 12 fragments ok + +2026-08-11 08:44:31,938 INFO image_tx_daemon: frame seq=94 done (pipelined): 2 fragments ok + +2026-08-11 08:44:33,458 INFO image_tx_daemon: frame seq=101 done (pipelined): 13 fragments ok + +2026-08-11 08:44:33,622 INFO image_tx_daemon: frame seq=106 done (pipelined): 1 fragments ok + +2026-08-11 08:44:35,083 INFO image_tx_daemon: frame seq=107 done (pipelined): 12 fragments ok + +2026-08-11 08:44:35,326 INFO image_tx_daemon: stats: goodput=1932.8 B/s util=79% pipeline=v3 frames_in=891 ok=277 fail=0 drop_full=579 drop_stale=0 frags_ok=1787 frags_fail=0 qdepth=2 parity_tx=0 + +2026-08-11 08:44:36,604 INFO image_tx_daemon: frame seq=113 done (pipelined): 13 fragments ok + +2026-08-11 08:44:36,966 INFO image_tx_daemon: frame seq=114 done (pipelined): 2 fragments ok + +2026-08-11 08:44:38,463 INFO image_tx_daemon: frame seq=121 done (pipelined): 13 fragments ok + +2026-08-11 08:44:38,620 INFO image_tx_daemon: frame seq=126 done (pipelined): 1 fragments ok + +2026-08-11 08:44:40,117 INFO image_tx_daemon: frame seq=127 done (pipelined): 13 fragments ok + +2026-08-11 08:44:41,609 INFO image_tx_daemon: frame seq=133 done (pipelined): 13 fragments ok + +2026-08-11 08:44:41,760 INFO image_tx_daemon: frame seq=134 done (pipelined): 1 fragments ok + +2026-08-11 08:44:41,932 INFO image_tx_daemon: frame seq=146 done (pipelined): 1 fragments ok + +2026-08-11 08:44:43,440 INFO image_tx_daemon: frame seq=147 done (pipelined): 13 fragments ok + +2026-08-11 08:44:43,612 INFO image_tx_daemon: frame seq=148 done (pipelined): 1 fragments ok + +2026-08-11 08:44:45,090 INFO image_tx_daemon: frame seq=149 done (pipelined): 13 fragments ok + +2026-08-11 08:44:45,340 INFO image_tx_daemon: stats: goodput=1935.4 B/s util=79% pipeline=v3 frames_in=931 ok=288 fail=0 drop_full=606 drop_stale=0 frags_ok=1871 frags_fail=0 qdepth=3 parity_tx=0 + +2026-08-11 08:44:45,364 INFO image_tx_daemon: frame seq=152 done (pipelined): 2 fragments ok + +2026-08-11 08:44:46,872 INFO image_tx_daemon: frame seq=155 done (pipelined): 13 fragments ok + +2026-08-11 08:44:47,019 INFO image_tx_daemon: frame seq=160 done (pipelined): 1 fragments ok + +2026-08-11 08:44:48,482 INFO image_tx_daemon: frame seq=161 done (pipelined): 12 fragments ok + +2026-08-11 08:44:48,759 INFO image_tx_daemon: frame seq=166 done (pipelined): 2 fragments ok + +2026-08-11 08:44:50,226 INFO image_tx_daemon: frame seq=169 done (pipelined): 12 fragments ok + +2026-08-11 08:44:50,406 INFO image_tx_daemon: frame seq=174 done (pipelined): 1 fragments ok + +2026-08-11 08:44:51,914 INFO image_tx_daemon: frame seq=175 done (pipelined): 13 fragments ok + +2026-08-11 08:44:52,078 INFO image_tx_daemon: frame seq=180 done (pipelined): 1 fragments ok + +2026-08-11 08:44:53,585 INFO image_tx_daemon: frame seq=181 done (pipelined): 13 fragments ok + +2026-08-11 08:44:53,951 INFO image_tx_daemon: frame seq=186 done (pipelined): 2 fragments ok + +2026-08-11 08:44:55,349 INFO image_tx_daemon: stats: goodput=1947.5 B/s util=79% pipeline=v3 frames_in=971 ok=299 fail=0 drop_full=632 drop_stale=0 frags_ok=1953 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 08:44:55,410 INFO image_tx_daemon: frame seq=189 done (pipelined): 12 fragments ok + +2026-08-11 08:44:55,592 INFO image_tx_daemon: frame seq=194 done (pipelined): 1 fragments ok + +2026-08-11 08:44:57,043 INFO image_tx_daemon: frame seq=195 done (pipelined): 12 fragments ok + +2026-08-11 08:44:57,346 INFO image_tx_daemon: frame seq=200 done (pipelined): 2 fragments ok + +2026-08-11 08:44:58,853 INFO image_tx_daemon: frame seq=203 done (pipelined): 13 fragments ok + +2026-08-11 08:44:59,110 INFO image_tx_daemon: frame seq=208 done (pipelined): 1 fragments ok + +2026-08-11 08:45:00,618 INFO image_tx_daemon: frame seq=209 done (pipelined): 13 fragments ok + +2026-08-11 08:45:00,946 INFO image_tx_daemon: frame seq=214 done (pipelined): 2 fragments ok + +2026-08-11 08:45:02,399 INFO image_tx_daemon: frame seq=217 done (pipelined): 12 fragments ok + +2026-08-11 08:45:02,572 INFO image_tx_daemon: frame seq=222 done (pipelined): 1 fragments ok + +2026-08-11 08:45:04,030 INFO image_tx_daemon: frame seq=223 done (pipelined): 12 fragments ok + +2026-08-11 08:45:04,197 INFO image_tx_daemon: frame seq=230 done (pipelined): 1 fragments ok + +2026-08-11 08:45:05,362 INFO image_tx_daemon: stats: goodput=1905.4 B/s util=77% pipeline=v3 frames_in=1011 ok=311 fail=0 drop_full=658 drop_stale=0 frags_ok=2033 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 08:45:05,704 INFO image_tx_daemon: frame seq=231 done (pipelined): 13 fragments ok + +2026-08-11 08:45:07,250 INFO image_tx_daemon: frame seq=235 done (pipelined): 12 fragments ok + +2026-08-11 08:45:07,534 INFO image_tx_daemon: frame seq=236 done (pipelined): 2 fragments ok + +2026-08-11 08:45:09,024 INFO image_tx_daemon: frame seq=243 done (pipelined): 13 fragments ok + +2026-08-11 08:45:09,288 INFO image_tx_daemon: frame seq=248 done (pipelined): 2 fragments ok + +2026-08-11 08:45:10,770 INFO image_tx_daemon: frame seq=251 done (pipelined): 13 fragments ok + +2026-08-11 08:45:10,942 INFO image_tx_daemon: frame seq=0 done (pipelined): 1 fragments ok + +2026-08-11 08:45:12,452 INFO image_tx_daemon: frame seq=1 done (pipelined): 13 fragments ok + +2026-08-11 08:45:12,718 INFO image_tx_daemon: frame seq=6 done (pipelined): 1 fragments ok + +2026-08-11 08:45:14,225 INFO image_tx_daemon: frame seq=7 done (pipelined): 13 fragments ok + +2026-08-11 08:45:15,374 INFO image_tx_daemon: stats: goodput=1912.9 B/s util=78% pipeline=v3 frames_in=1051 ok=321 fail=0 drop_full=685 drop_stale=0 frags_ok=2115 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 08:45:15,821 INFO image_tx_daemon: frame seq=13 done (pipelined): 13 fragments ok + +2026-08-11 08:45:16,184 INFO image_tx_daemon: frame seq=14 done (pipelined): 2 fragments ok + +2026-08-11 08:45:17,667 INFO image_tx_daemon: frame seq=21 done (pipelined): 13 fragments ok + +2026-08-11 08:45:19,174 INFO image_tx_daemon: frame seq=27 done (pipelined): 13 fragments ok + +2026-08-11 08:45:19,529 INFO image_tx_daemon: frame seq=28 done (pipelined): 2 fragments ok + +2026-08-11 08:45:21,037 INFO image_tx_daemon: frame seq=35 done (pipelined): 13 fragments ok + +2026-08-11 08:45:21,198 INFO image_tx_daemon: frame seq=42 done (pipelined): 1 fragments ok + +2026-08-11 08:45:22,660 INFO image_tx_daemon: frame seq=43 done (pipelined): 12 fragments ok + +2026-08-11 08:45:24,169 INFO image_tx_daemon: frame seq=47 done (pipelined): 13 fragments ok + +2026-08-11 08:45:24,509 INFO image_tx_daemon: frame seq=48 done (pipelined): 2 fragments ok + +2026-08-11 08:45:25,385 INFO image_tx_daemon: stats: goodput=1934.0 B/s util=79% pipeline=v3 frames_in=1091 ok=331 fail=0 drop_full=713 drop_stale=0 frags_ok=2198 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 08:45:25,972 INFO image_tx_daemon: frame seq=55 done (pipelined): 12 fragments ok + +2026-08-11 08:45:26,136 INFO image_tx_daemon: frame seq=62 done (pipelined): 1 fragments ok + +2026-08-11 08:45:27,632 INFO image_tx_daemon: frame seq=63 done (pipelined): 13 fragments ok + +2026-08-11 08:45:29,082 INFO image_tx_daemon: frame seq=67 done (pipelined): 12 fragments ok + +2026-08-11 08:45:29,391 INFO image_tx_daemon: frame seq=68 done (pipelined): 2 fragments ok + +2026-08-11 08:45:30,903 INFO image_tx_daemon: frame seq=75 done (pipelined): 13 fragments ok + +2026-08-11 08:45:32,495 INFO image_tx_daemon: frame seq=81 done (pipelined): 13 fragments ok + +2026-08-11 08:45:32,656 INFO image_tx_daemon: frame seq=82 done (pipelined): 1 fragments ok + +2026-08-11 08:45:34,166 INFO image_tx_daemon: frame seq=87 done (pipelined): 13 fragments ok + +2026-08-11 08:45:35,397 INFO image_tx_daemon: stats: goodput=1938.7 B/s util=79% pipeline=v3 frames_in=1131 ok=340 fail=0 drop_full=742 drop_stale=0 frags_ok=2280 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 08:45:35,710 INFO image_tx_daemon: frame seq=93 done (pipelined): 12 fragments ok + +2026-08-11 08:45:35,998 INFO image_tx_daemon: frame seq=94 done (pipelined): 2 fragments ok + +2026-08-11 08:45:37,499 INFO image_tx_daemon: frame seq=101 done (pipelined): 13 fragments ok + +2026-08-11 08:45:37,870 INFO image_tx_daemon: frame seq=106 done (pipelined): 2 fragments ok + +2026-08-11 08:45:39,322 INFO image_tx_daemon: frame seq=109 done (pipelined): 12 fragments ok + +2026-08-11 08:45:39,506 INFO image_tx_daemon: frame seq=114 done (pipelined): 1 fragments ok + +2026-08-11 08:45:41,006 INFO image_tx_daemon: frame seq=115 done (pipelined): 13 fragments ok + +2026-08-11 08:45:41,285 INFO image_tx_daemon: frame seq=120 done (pipelined): 2 fragments ok + +2026-08-11 08:45:42,768 INFO image_tx_daemon: frame seq=123 done (pipelined): 13 fragments ok + +2026-08-11 08:45:42,941 INFO image_tx_daemon: frame seq=128 done (pipelined): 1 fragments ok + +2026-08-11 08:45:43,095 INFO image_tx_daemon: frame seq=134 done (pipelined): 1 fragments ok + +2026-08-11 08:45:44,603 INFO image_tx_daemon: frame seq=135 done (pipelined): 13 fragments ok + +2026-08-11 08:45:44,764 INFO image_tx_daemon: frame seq=136 done (pipelined): 1 fragments ok + +2026-08-11 08:45:45,408 INFO image_tx_daemon: stats: goodput=1915.2 B/s util=78% pipeline=v3 frames_in=1171 ok=353 fail=0 drop_full=767 drop_stale=0 frags_ok=2362 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 08:45:46,265 INFO image_tx_daemon: frame seq=137 done (pipelined): 13 fragments ok + +2026-08-11 08:45:46,415 INFO image_tx_daemon: frame seq=142 done (pipelined): 1 fragments ok + +2026-08-11 08:45:47,911 INFO image_tx_daemon: frame seq=143 done (pipelined): 13 fragments ok + +2026-08-11 08:45:48,089 INFO image_tx_daemon: frame seq=148 done (pipelined): 1 fragments ok + +2026-08-11 08:45:49,583 INFO image_tx_daemon: frame seq=149 done (pipelined): 13 fragments ok + +2026-08-11 08:45:49,847 INFO image_tx_daemon: frame seq=154 done (pipelined): 2 fragments ok + diff --git a/LifeTrac-v25/DESIGN-CONTROLLER/tools/rs12_leg_report.py b/LifeTrac-v25/DESIGN-CONTROLLER/tools/rs12_leg_report.py index 46eb971c..6f1a6cda 100644 --- a/LifeTrac-v25/DESIGN-CONTROLLER/tools/rs12_leg_report.py +++ b/LifeTrac-v25/DESIGN-CONTROLLER/tools/rs12_leg_report.py @@ -63,17 +63,44 @@ def main() -> int: idx[int(i)] += int(c) tot = sum(idx.values()) if tot: - # train length from the most common `total` byte in dumps, fallback 13 - totals = collections.Counter() - for m in re.finditer(r"dump=([0-9a-f]{24,})", rx): - d = bytes.fromhex(m.group(1)[:24]) - if d[8] == 0xFE: - totals[d[11] + 1] += 1 - tlen = totals.most_common(1)[0][0] if totals else 13 + # Train length comes from the TX log's healthy "K fragments ok" + # lines, and the penultimate metric is scoped to the LONG-train + # population (>= MIN_LONG fragments). + # + # 2026-08-24, two bugs found in one leg: + # (a) this used to read the `total` byte out of CORRUPT capture + # headers — the one population whose bytes are unreliable — + # with most_common(1) and no sanity bound. A control leg + # with a single readable dump reported train length 208 off + # that one garbage byte, moving "penultimate" to idx 206 and + # printing 0 % while the real lock sat at 35 % on idx 11: a + # false NEGATIVE on the campaign's headline metric. + # (b) a plain modal over ALL trains is also wrong — these legs + # carry a MIXTURE (e.g. 143x1, 45x2, 56x12, 115x13), so the + # overall mode is 1 and "penultimate" collapses to idx -1. + # Short trains have no penultimate to lock, so the metric is + # only meaningful over long trains. + # The mixture is printed so a reader can never mistake a + # mixed-length leg for a uniform one. + MIN_LONG = 3 + tx_lens = collections.Counter( + int(n) for n in re.findall(r"(\d+) fragments ok", tx)) + long_lens = collections.Counter( + {k: v for k, v in tx_lens.items() if k >= MIN_LONG}) + if long_lens: + tlen = long_lens.most_common(1)[0][0] + tlen_src = (f"tx log, modal of {sum(long_lens.values())} long " + f"trains; mixture " + + " ".join(f"{k}x{v}" for k, v in + sorted(tx_lens.items()))) + else: + tlen = 13 + tlen_src = "DEFAULT 13 — no long trains in tx log, treat with care" pen = tlen - 2 - print(f"train length {tlen}; attributed {tot}; " - f"penultimate idx {pen} = {idx.get(pen, 0)} " - f"({100 * idx.get(pen, 0) / tot:.0f}%)") + print(f"train length {tlen} [{tlen_src}]") + print(f"attributed {tot}; penultimate idx {pen} = {idx.get(pen, 0)} " + f"({100 * idx.get(pen, 0) / tot:.0f}%, uniform " + f"{100 / tlen:.0f}%)") print(" " + " ".join(f"{i}:{idx.get(i, 0)}" for i in range(tlen))) # corrupt-capture indices From be989c0a867d24dba4504bb106351b60d71b930d Mon Sep 17 00:00:00 2001 From: dorkmo <1923070+dorkmo@users.noreply.github.com> Date: Mon, 24 Aug 2026 12:07:02 -0500 Subject: [PATCH 2/4] evidence(RS-11.8): 2nd chantab survey -- binary criterion saturated, gradient gives first hail-set candidates 50/50 hot this pass (08-22 lone clean channel 904.25 went -84 -> -48), confirming the zero-hot criterion cannot pick a channel on the production grid while the ticker is active. Ranking on continuous metrics across both surveys DOES discriminate and reproduces the band-edge pattern from the x.0/x.5 grid: band median hot-sum 7.5 vs top-edge (>=925 MHz) median 5.0. First evidence-based hail-set candidates for POWER_MANAGEMENT rendezvous: 927.25 (best on both metrics, adjacent to the 5/5-clean 927.5), then 926.75, then 925.25 -- all top-edge. Bounds stated in-document: n=2 same week, gradient not a clean split, 927.25 leaves only a 500 kHz top guard (legal, and the reason it is quiet, but a deliberate choice). Makes the table-extension question less urgent since a table channel with similar protection now exists. Method note: survey_compare ranks hot-first and will read as 0-of-50-clean on this grid; the hot-sum-across-surveys ranking is the one to use for chantab picks. Folding it into the tool is the next RS-11.7 v1 step. Co-Authored-By: Claude Fable 5 --- .../RS_11_8_chantab_2026-08-24/RESULTS.md | 71 ++++++++++ .../chantab_survey_20260824.jsonl | 126 ++++++++++++++++++ 2 files changed, 197 insertions(+) create mode 100644 LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_11_8_chantab_2026-08-24/RESULTS.md create mode 100644 LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_11_8_chantab_2026-08-24/chantab_survey_20260824.jsonl diff --git a/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_11_8_chantab_2026-08-24/RESULTS.md b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_11_8_chantab_2026-08-24/RESULTS.md new file mode 100644 index 00000000..f0f139e1 --- /dev/null +++ b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_11_8_chantab_2026-08-24/RESULTS.md @@ -0,0 +1,71 @@ +# RS-11.8 — second chantab-grid survey: the binary criterion is dead, the gradient works (2026-08-24) + +**Headline: 50/50 channels hot this pass (08-22's lone "clean" 904.25 +went −84 → −48), so the zero-hot criterion is fully saturated on the +production grid and cannot pick a channel — as predicted. But ranking on +the CONTINUOUS metrics across both surveys does discriminate, and it +reproduces the band-edge pattern found on the x.0/x.5 grid: the +chantab's top edge is systematically quieter than the band.** + +## Captures + +- `chantab_survey_20260824.jsonl` — 50 channels, 902.75–927.25 MHz, + 30 s dwell, 0.05 s sampling, base radio, container `chantab2`. +- Compare against `RS_11_8_chantab_2026-08-22/chantab_survey_20260822.jsonl`. +- Same-day x.0/x.5 control: 927.5 MHz spot-check 0 hot / max −94 dBm + (**clean 5/5** across all surveys to date). + +## Cross-survey ranking (sum of hot counts, tiebreak worst peak) + +| channel | hot sum (08-22 + 08-24) | worst peak | +|---|---:|---:| +| **927.25 MHz** | **4** (2+2) | **−56 dBm** | +| 906.25 | 4 (2+2) | −48 | +| 913.25 | 4 (2+2) | −48 | +| 921.25 | 4 (2+2) | −46 | +| 925.25 | 5 (2+3) | −56 | +| 926.75 | 5 (3+2) | −52 | +| … | | | +| 922.75 / 923.25 (worst) | 12 | −49 / −46 | + +**Band median hot-sum 7.5; top-edge (≥925 MHz) median 5.0.** Four of the +five quietest-by-peak channels sit at the top edge, and 927.25 — the +chantab channel adjacent to our 5/5-clean 927.5 — is the only channel +that is simultaneously in the lowest hot-count group AND the lowest-peak +group. The band-edge protection seen on the x.0/x.5 grid therefore +extends onto the production grid. + +## Consequence: first evidence-based hail-set candidates + +POWER_MANAGEMENT.md's rendezvous design needs 2–3 stable channels drawn +from the production table. On this evidence the candidates are, in order: + +1. **927.25 MHz** — chantab idx 49, top edge, best on both metrics +2. **926.75 MHz** — top edge, hot-sum 5, peak −52 +3. **925.25 MHz** — top edge, hot-sum 5, peak −56 + +Bounds on this recommendation, stated plainly: + +- **n=2 surveys, same week.** The x.0/x.5 history needed four passes + before 927.5's 4/4 record meant anything; this is two. Treat as + provisional and keep accumulating (one chantab pass per survey day). +- The separation is real but not dramatic (hot-sum 4–5 vs median 7.5); + it is a gradient, not a clean/dirty split, and it rests on a ticker + whose channel occupancy reshuffles in hours. +- 927.25 sits at the table's upper limit, so a 500 kHz occupied + bandwidth centred there reaches 927.5 — inside the band, but the + **top guard is only 500 kHz**. That is legal and is exactly why the + channel is quiet, but it should be a deliberate decision, not an + accident. +- This does not resolve the table-extension question (adding 927.5 + itself): it makes it *less* urgent, because a table channel with + similar protection now exists. + +## Method note carried forward + +The zero-hot criterion should not be used on this grid while the ticker +is active. `survey_compare.py` still ranks by `hot` first, so it will +report "0 of 50 zero-hot" and then fall back to peak ranking — correct +but easy to misread. The ranking that produced the table above (hot-sum +across surveys, tiebreak worst peak) is the one to use for chantab +picks; folding it into the tool is the obvious next step for RS-11.7 v1. diff --git a/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_11_8_chantab_2026-08-24/chantab_survey_20260824.jsonl b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_11_8_chantab_2026-08-24/chantab_survey_20260824.jsonl new file mode 100644 index 00000000..1a0e40af --- /dev/null +++ b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_11_8_chantab_2026-08-24/chantab_survey_20260824.jsonl @@ -0,0 +1,126 @@ +SURVEY_META {"start_hz": 902750000, "stop_hz": 927250000, "step_hz": 500000, "dwell_s": 30.0, "ts_start": 1787589579.731833} + +Initializing regulatory profile 2 on co-processor... + + FHSS mask: single channel 0 (0100000000000000) + +CFG_SET_REQ(FHSS_CHANNEL_MASK) OK: 07000800 + +CFG_SET_REQ(ANTENNA_GAIN_DBI) OK: 15000100 + +CFG_SET_REQ(HW_CEILING_DBM) OK: 16000100 + + FHSS seed: (0,0) legacy shared permutation [set LIFETRAC_FHSS_FARM_ID / LIFETRAC_FHSS_LINK_ID to separate pairs] + +CFG_SET_REQ(FHSS_FARM_ID) OK: 17000800 + +CFG_SET_REQ(FHSS_NODE_ID) OK: 18000800 + +CFG_SET_REQ(REG_PROFILE=2) OK: 14000100 + + forcing FRF -> 915.000 MHz (raw=0xE4C000 -> Msb=0xE4 Mid=0xC0 Lsb=0x00) + + FRF readback: 0xE4C000 = 915.000 MHz (OK) + +SURVEY_CH {"freq_hz": 902750000, "n": 475, "hot": 6, "max_dbm": -50, "hot_ts": [1787589582.967, 1787589590.106, 1787589592.127, 1787589599.197, 1787589604.07, 1787589606.157]} + +SURVEY_CH {"freq_hz": 903250000, "n": 475, "hot": 4, "max_dbm": -47, "hot_ts": [1787589613.197, 1787589618.252, 1787589627.932, 1787589639.96]} + +SURVEY_CH {"freq_hz": 903750000, "n": 474, "hot": 3, "max_dbm": -48, "hot_ts": [1787589646.052, 1787589646.24, 1787589667.06]} + +SURVEY_CH {"freq_hz": 904250000, "n": 475, "hot": 5, "max_dbm": -48, "hot_ts": [1787589672.977, 1787589674.117, 1787589688.141, 1787589694.078, 1787589701.081]} + +SURVEY_CH {"freq_hz": 904750000, "n": 475, "hot": 6, "max_dbm": -49, "hot_ts": [1787589703.187, 1787589708.184, 1787589710.264, 1787589717.213, 1787589722.148, 1787589724.231]} + +SURVEY_CH {"freq_hz": 905250000, "n": 474, "hot": 4, "max_dbm": -49, "hot_ts": [1787589742.23, 1787589745.96, 1787589752.245, 1787589759.98]} + +SURVEY_CH {"freq_hz": 905750000, "n": 474, "hot": 5, "max_dbm": -46, "hot_ts": [1787589763.217, 1787589774.302, 1787589785.325, 1787589791.068, 1787589792.091]} + +SURVEY_CH {"freq_hz": 906250000, "n": 475, "hot": 2, "max_dbm": -49, "hot_ts": [1787589803.072, 1787589814.259]} + +SURVEY_CH {"freq_hz": 906750000, "n": 474, "hot": 2, "max_dbm": -48, "hot_ts": [1787589831.128, 1787589850.06]} + +SURVEY_CH {"freq_hz": 907250000, "n": 475, "hot": 6, "max_dbm": -44, "hot_ts": [1787589856.138, 1787589863.196, 1787589864.147, 1787589870.88, 1787589877.21, 1787589878.1]} + +SURVEY_CH {"freq_hz": 907750000, "n": 474, "hot": 4, "max_dbm": -44, "hot_ts": [1787589891.232, 1787589891.925, 1787589898.241, 1787589899.061]} + +SURVEY_CH {"freq_hz": 908250000, "n": 475, "hot": 4, "max_dbm": -46, "hot_ts": [1787589914.106, 1787589920.098, 1787589928.075, 1787589935.167]} + +SURVEY_CH {"freq_hz": 908750000, "n": 475, "hot": 3, "max_dbm": -48, "hot_ts": [1787589949.112, 1787589960.884, 1787589963.169]} + +SURVEY_CH {"freq_hz": 909250000, "n": 475, "hot": 3, "max_dbm": -48, "hot_ts": [1787589988.423, 1787589989.048, 1787590003.041]} + +SURVEY_CH {"freq_hz": 909750000, "n": 474, "hot": 3, "max_dbm": -47, "hot_ts": [1787590008.058, 1787590015.219, 1787590029.095]} + +SURVEY_CH {"freq_hz": 910250000, "n": 475, "hot": 5, "max_dbm": -48, "hot_ts": [1787590049.233, 1787590050.177, 1787590056.248, 1787590063.212, 1787590064.223]} + +SURVEY_CH {"freq_hz": 910750000, "n": 474, "hot": 5, "max_dbm": -41, "hot_ts": [1787590070.192, 1787590077.161, 1787590084.178, 1787590091.207, 1787590092.096]} + +SURVEY_CH {"freq_hz": 911250000, "n": 474, "hot": 4, "max_dbm": -44, "hot_ts": [1787590096.049, 1787590103.134, 1787590117.125, 1787590120.037]} + +SURVEY_CH {"freq_hz": 911750000, "n": 474, "hot": 3, "max_dbm": -47, "hot_ts": [1787590138.164, 1787590149.951, 1787590152.931]} + +SURVEY_CH {"freq_hz": 912250000, "n": 474, "hot": 2, "max_dbm": -49, "hot_ts": [1787590167.132, 1787590174.096]} + +SURVEY_CH {"freq_hz": 912750000, "n": 474, "hot": 4, "max_dbm": -47, "hot_ts": [1787590188.953, 1787590195.92, 1787590202.195, 1787590209.923]} + +SURVEY_CH {"freq_hz": 913250000, "n": 474, "hot": 2, "max_dbm": -48, "hot_ts": [1787590224.171, 1787590245.232]} + +SURVEY_CH {"freq_hz": 913750000, "n": 474, "hot": 3, "max_dbm": -49, "hot_ts": [1787590252.208, 1787590266.975, 1787590274.127]} + +SURVEY_CH {"freq_hz": 914250000, "n": 474, "hot": 5, "max_dbm": -45, "hot_ts": [1787590278.075, 1787590285.053, 1787590287.205, 1787590301.179, 1787590306.062]} + +SURVEY_CH {"freq_hz": 914750000, "n": 474, "hot": 4, "max_dbm": -44, "hot_ts": [1787590308.116, 1787590322.12, 1787590336.133, 1787590336.258]} + +SURVEY_CH {"freq_hz": 915250000, "n": 474, "hot": 2, "max_dbm": -50, "hot_ts": [1787590343.195, 1787590352.247]} + +SURVEY_CH {"freq_hz": 915750000, "n": 474, "hot": 3, "max_dbm": -45, "hot_ts": [1787590368.037, 1787590382.054, 1787590396.057]} + +SURVEY_CH {"freq_hz": 916250000, "n": 474, "hot": 4, "max_dbm": -47, "hot_ts": [1787590401.204, 1787590408.228, 1787590416.192, 1787590421.264]} + +SURVEY_CH {"freq_hz": 916750000, "n": 473, "hot": 3, "max_dbm": -49, "hot_ts": [1787590450.097, 1787590451.049, 1787590457.13]} + +SURVEY_CH {"freq_hz": 917250000, "n": 474, "hot": 4, "max_dbm": -46, "hot_ts": [1787590458.236, 1787590465.144, 1787590472.236, 1787590486.137]} + +SURVEY_CH {"freq_hz": 917750000, "n": 474, "hot": 4, "max_dbm": -48, "hot_ts": [1787590489.14, 1787590503.208, 1787590508.096, 1787590515.071]} + +SURVEY_CH {"freq_hz": 918250000, "n": 473, "hot": 4, "max_dbm": -46, "hot_ts": [1787590521.24, 1787590529.101, 1787590539.102, 1787590540.182]} + +SURVEY_CH {"freq_hz": 918750000, "n": 473, "hot": 4, "max_dbm": -46, "hot_ts": [1787590550.818, 1787590563.135, 1787590569.101, 1787590570.058]} + +SURVEY_CH {"freq_hz": 919250000, "n": 474, "hot": 5, "max_dbm": -49, "hot_ts": [1787590589.217, 1787590590.157, 1787590596.187, 1787590603.201, 1787590604.155]} + +SURVEY_CH {"freq_hz": 919750000, "n": 474, "hot": 5, "max_dbm": -46, "hot_ts": [1787590612.106, 1787590619.142, 1787590625.048, 1787590626.18, 1787590633.158]} + +SURVEY_CH {"freq_hz": 920250000, "n": 474, "hot": 2, "max_dbm": -46, "hot_ts": [1787590647.24, 1787590654.209]} + +SURVEY_CH {"freq_hz": 920750000, "n": 474, "hot": 5, "max_dbm": -48, "hot_ts": [1787590670.244, 1787590676.149, 1787590676.276, 1787590682.118, 1787590694.112]} + +SURVEY_CH {"freq_hz": 921250000, "n": 474, "hot": 2, "max_dbm": -46, "hot_ts": [1787590712.244, 1787590719.081]} + +SURVEY_CH {"freq_hz": 921750000, "n": 474, "hot": 5, "max_dbm": -49, "hot_ts": [1787590730.283, 1787590743.243, 1787590749.957, 1787590755.977, 1787590756.102]} + +SURVEY_CH {"freq_hz": 922250000, "n": 474, "hot": 6, "max_dbm": -49, "hot_ts": [1787590766.113, 1787590769.09, 1787590772.197, 1787590775.123, 1787590781.088, 1787590784.138]} + +SURVEY_CH {"freq_hz": 922750000, "n": 473, "hot": 7, "max_dbm": -49, "hot_ts": [1787590791.071, 1787590793.294, 1787590800.919, 1787590804.095, 1787590806.954, 1787590810.117, 1787590812.217]} + +SURVEY_CH {"freq_hz": 923250000, "n": 473, "hot": 6, "max_dbm": -46, "hot_ts": [1787590824.226, 1787590836.2, 1787590837.153, 1787590842.176, 1787590848.198, 1787590849.859]} + +SURVEY_CH {"freq_hz": 923750000, "n": 473, "hot": 3, "max_dbm": -50, "hot_ts": [1787590859.078, 1787590866.18, 1787590879.069]} + +SURVEY_CH {"freq_hz": 924250000, "n": 474, "hot": 3, "max_dbm": -52, "hot_ts": [1787590884.107, 1787590890.971, 1787590907.192]} + +SURVEY_CH {"freq_hz": 924750000, "n": 473, "hot": 2, "max_dbm": -54, "hot_ts": [1787590921.189, 1787590929.065]} + +SURVEY_CH {"freq_hz": 925250000, "n": 473, "hot": 3, "max_dbm": -56, "hot_ts": [1787590952.063, 1787590957.954, 1787590962.914]} + +SURVEY_CH {"freq_hz": 925750000, "n": 474, "hot": 4, "max_dbm": -54, "hot_ts": [1787590977.053, 1787590984.061, 1787590989.06, 1787590998.123]} + +SURVEY_CH {"freq_hz": 926250000, "n": 473, "hot": 1, "max_dbm": -60, "hot_ts": [1787591017.05]} + +SURVEY_CH {"freq_hz": 926750000, "n": 474, "hot": 2, "max_dbm": -52, "hot_ts": [1787591036.191, 1787591050.861]} + +SURVEY_CH {"freq_hz": 927250000, "n": 473, "hot": 2, "max_dbm": -59, "hot_ts": [1787591065.048, 1787591083.052]} + +SURVEY_SUMMARY {"hot_channels": [{"freq_hz": 902750000, "hot": 6, "max_dbm": -50}, {"freq_hz": 903250000, "hot": 4, "max_dbm": -47}, {"freq_hz": 903750000, "hot": 3, "max_dbm": -48}, {"freq_hz": 904250000, "hot": 5, "max_dbm": -48}, {"freq_hz": 904750000, "hot": 6, "max_dbm": -49}, {"freq_hz": 905250000, "hot": 4, "max_dbm": -49}, {"freq_hz": 905750000, "hot": 5, "max_dbm": -46}, {"freq_hz": 906250000, "hot": 2, "max_dbm": -49}, {"freq_hz": 906750000, "hot": 2, "max_dbm": -48}, {"freq_hz": 907250000, "hot": 6, "max_dbm": -44}, {"freq_hz": 907750000, "hot": 4, "max_dbm": -44}, {"freq_hz": 908250000, "hot": 4, "max_dbm": -46}, {"freq_hz": 908750000, "hot": 3, "max_dbm": -48}, {"freq_hz": 909250000, "hot": 3, "max_dbm": -48}, {"freq_hz": 909750000, "hot": 3, "max_dbm": -47}, {"freq_hz": 910250000, "hot": 5, "max_dbm": -48}, {"freq_hz": 910750000, "hot": 5, "max_dbm": -41}, {"freq_hz": 911250000, "hot": 4, "max_dbm": -44}, {"freq_hz": 911750000, "hot": 3, "max_dbm": -47}, {"freq_hz": 912250000, "hot": 2, "max_dbm": -49}, {"freq_hz": 912750000, "hot": 4, "max_dbm": -47}, {"freq_hz": 913250000, "hot": 2, "max_dbm": -48}, {"freq_hz": 913750000, "hot": 3, "max_dbm": -49}, {"freq_hz": 914250000, "hot": 5, "max_dbm": -45}, {"freq_hz": 914750000, "hot": 4, "max_dbm": -44}, {"freq_hz": 915250000, "hot": 2, "max_dbm": -50}, {"freq_hz": 915750000, "hot": 3, "max_dbm": -45}, {"freq_hz": 916250000, "hot": 4, "max_dbm": -47}, {"freq_hz": 916750000, "hot": 3, "max_dbm": -49}, {"freq_hz": 917250000, "hot": 4, "max_dbm": -46}, {"freq_hz": 917750000, "hot": 4, "max_dbm": -48}, {"freq_hz": 918250000, "hot": 4, "max_dbm": -46}, {"freq_hz": 918750000, "hot": 4, "max_dbm": -46}, {"freq_hz": 919250000, "hot": 5, "max_dbm": -49}, {"freq_hz": 919750000, "hot": 5, "max_dbm": -46}, {"freq_hz": 920250000, "hot": 2, "max_dbm": -46}, {"freq_hz": 920750000, "hot": 5, "max_dbm": -48}, {"freq_hz": 921250000, "hot": 2, "max_dbm": -46}, {"freq_hz": 921750000, "hot": 5, "max_dbm": -49}, {"freq_hz": 922250000, "hot": 6, "max_dbm": -49}, {"freq_hz": 922750000, "hot": 7, "max_dbm": -49}, {"freq_hz": 923250000, "hot": 6, "max_dbm": -46}, {"freq_hz": 923750000, "hot": 3, "max_dbm": -50}, {"freq_hz": 924250000, "hot": 3, "max_dbm": -52}, {"freq_hz": 924750000, "hot": 2, "max_dbm": -54}, {"freq_hz": 925250000, "hot": 3, "max_dbm": -56}, {"freq_hz": 925750000, "hot": 4, "max_dbm": -54}, {"freq_hz": 926250000, "hot": 1, "max_dbm": -60}, {"freq_hz": 926750000, "hot": 2, "max_dbm": -52}, {"freq_hz": 927250000, "hot": 2, "max_dbm": -59}]} + From 09a71152d6d633af98dda112f44b3037f3c8c3b3 Mon Sep 17 00:00:00 2001 From: dorkmo <1923070+dorkmo@users.noreply.github.com> Date: Mon, 24 Aug 2026 12:17:40 -0500 Subject: [PATCH 3/4] evidence(RS-11.8): link test REFUTES the survey-ranked channel -- recommendation retracted Ran the obvious follow-up and it overturned this session own earlier conclusion, so both are on the record. Survey ranking put 927.25 first of 50 production-grid channels. A 300 s link leg at 927.25 (same config, same session as the morning 927.5 leg): 927.5 loss 1.5% crc 26 timeouts 31 penultimate 6% 927.25 loss 3.5% crc 63 timeouts 61 penultimate 11% (uniform) 2.3x worse, with a FLAT per-index drop profile = interference, not the RS-12 mechanism. Paired 60 s spot-checks straight after the leg name the cause: 927.25 took 5 hits at -55 dBm on a clean 7.02 s grid (the device-A ticker is ON it) while 927.5 took 0 at a -94 dBm floor. Retracted: the 927.25-first hail recommendation, and the claim that the table-extension question became less urgent. Both reversed -- no channel in the production table is emitter-free today, while an off-grid channel 250 kHz above the table top is clean 5/5, so extension gets MORE attractive. New RS-11.8 gate: no hail-set constant is adopted from passive ranking; every candidate must pass a link leg (926.75 and 925.25 are next). Method note rewritten -- do NOT promote hot-sum ranking to an automatic picker; surface hit CADENCE, noise floor, and an explicit no-clean-channel verdict instead. Caveat kept: n=1 link leg per channel and this bench varies run to run (crc swung 26->70 at fixed 927.5 across legs A/B), so the direction is corroborated by the spot-checks but the 2.3x magnitude is not pinned. Co-Authored-By: Claude Fable 5 --- .../RS_11_8_chantab_2026-08-24/RESULTS.md | 154 +- .../hail_post_base.txt | 28 + .../hail_post_tractor.txt | 28 + .../hail_pre_base.txt | 28 + .../hail_pre_tractor.txt | 28 + .../params.txt | 32 + .../rx_daemon.log | 1362 +++++++++++++++++ .../synth_pub.log | 28 + .../tx_daemon.log | 806 ++++++++++ 9 files changed, 2451 insertions(+), 43 deletions(-) create mode 100644 LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_11_8_chantab_2026-08-24/hail_post_base.txt create mode 100644 LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_11_8_chantab_2026-08-24/hail_post_tractor.txt create mode 100644 LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_11_8_chantab_2026-08-24/hail_pre_base.txt create mode 100644 LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_11_8_chantab_2026-08-24/hail_pre_tractor.txt create mode 100644 LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20260824_121253_be989c0a/params.txt create mode 100644 LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20260824_121253_be989c0a/rx_daemon.log create mode 100644 LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20260824_121253_be989c0a/synth_pub.log create mode 100644 LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20260824_121253_be989c0a/tx_daemon.log diff --git a/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_11_8_chantab_2026-08-24/RESULTS.md b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_11_8_chantab_2026-08-24/RESULTS.md index f0f139e1..865c8694 100644 --- a/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_11_8_chantab_2026-08-24/RESULTS.md +++ b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_11_8_chantab_2026-08-24/RESULTS.md @@ -1,11 +1,15 @@ -# RS-11.8 — second chantab-grid survey: the binary criterion is dead, the gradient works (2026-08-24) +# RS-11.8 — second chantab-grid survey: no production channel is clean, and survey ranking does not predict link loss (2026-08-24) -**Headline: 50/50 channels hot this pass (08-22's lone "clean" 904.25 -went −84 → −48), so the zero-hot criterion is fully saturated on the -production grid and cannot pick a channel — as predicted. But ranking on -the CONTINUOUS metrics across both surveys does discriminate, and it -reproduces the band-edge pattern found on the x.0/x.5 grid: the -chantab's top edge is systematically quieter than the band.** +**Headline, after the link test below overturned this document's first +conclusion: 50/50 chantab channels were hot this pass (08-22's lone +"clean" 904.25 went −84 → −48), so the zero-hot criterion is saturated +on the production grid — as predicted. A continuous-metric ranking does +produce an ordering, and the top edge does score quieter, BUT the +top-ranked channel (927.25) then lost 2.3× more traffic on a real link +leg than off-grid 927.5, because the ~7 s ticker is sitting on it. +Passive ranking within an emitter-occupied band is not channel +selection. No channel in the production table is currently +emitter-free.** ## Captures @@ -29,43 +33,107 @@ chantab's top edge is systematically quieter than the band.** | 922.75 / 923.25 (worst) | 12 | −49 / −46 | **Band median hot-sum 7.5; top-edge (≥925 MHz) median 5.0.** Four of the -five quietest-by-peak channels sit at the top edge, and 927.25 — the -chantab channel adjacent to our 5/5-clean 927.5 — is the only channel -that is simultaneously in the lowest hot-count group AND the lowest-peak -group. The band-edge protection seen on the x.0/x.5 grid therefore -extends onto the production grid. - -## Consequence: first evidence-based hail-set candidates - -POWER_MANAGEMENT.md's rendezvous design needs 2–3 stable channels drawn -from the production table. On this evidence the candidates are, in order: - -1. **927.25 MHz** — chantab idx 49, top edge, best on both metrics -2. **926.75 MHz** — top edge, hot-sum 5, peak −52 -3. **925.25 MHz** — top edge, hot-sum 5, peak −56 - -Bounds on this recommendation, stated plainly: - -- **n=2 surveys, same week.** The x.0/x.5 history needed four passes - before 927.5's 4/4 record meant anything; this is two. Treat as - provisional and keep accumulating (one chantab pass per survey day). -- The separation is real but not dramatic (hot-sum 4–5 vs median 7.5); - it is a gradient, not a clean/dirty split, and it rests on a ticker - whose channel occupancy reshuffles in hours. -- 927.25 sits at the table's upper limit, so a 500 kHz occupied - bandwidth centred there reaches 927.5 — inside the band, but the - **top guard is only 500 kHz**. That is legal and is exactly why the - channel is quiet, but it should be a deliberate decision, not an - accident. -- This does not resolve the table-extension question (adding 927.5 - itself): it makes it *less* urgent, because a table channel with - similar protection now exists. +five quietest-by-peak channels sit at the top edge, and 927.25 is the +only channel simultaneously in the lowest hot-count group AND the +lowest-peak group. + +⚠️ **This ordering did NOT survive its link test — read the next section +before using this table for anything.** The top-edge *gradient* is real +as a statistic, but it does not mean the band-edge protection that keeps +927.5 clean extends onto the grid: it does not. 927.25 ranked first here +and still carries the ticker. + +## ⚠️ RETRACTED: the survey-ranked candidate FAILED its link test + +An earlier revision of this document recommended **927.25 MHz** as hail +candidate #1 on the strength of the ranking above, and argued the +table-extension question was thereby *less* urgent. **A link leg run the +same session refuted both claims and they are withdrawn.** + +### The link test + +`radio_monitor_20260824_121253_be989c0a` — 300 s synth leg at **927.25**, +`no_park_last=1` (archive-recorded), bracketed, identical config to the +morning's 927.5 leg A: + +| | 927.5 (leg A) | **927.25 (this leg)** | +|---|---:|---:| +| loss | 1.5 % | **3.5 %** | +| crc dumps | 26 | 63 | +| timeouts | 31 | 61 | +| penultimate share | 6 % | 11 % (≈ uniform 8 %) | + +Loss is **2.3× worse**, and the per-index drop profile is flat +(0:5 1:7 2:11 3:5 4:4 5:6 6:2 7:3 8:6 9:8 10:6 11:8) — interference +shaped, not the RS-12 mechanism (the hold is working: penultimate sits +at uniform). + +### Why, confirmed directly + +Paired 60 s spot-checks run back-to-back immediately after the leg, same +instrument, minutes apart: + +| channel | hot | max | pattern | +|---|---:|---:|---| +| **927.25** | **5** | **−55 dBm** | inter-hit gaps 7.02 / 6.99 / 21.07 (=3×7.02) / 7.08 s — **the ~7 s device-A ticker is ON this channel** | +| 927.5 | 0 | −94 dBm | nothing | + +So the two channels are not "similar with a gradient" — one carries the +emitter and one does not. + +### What this actually teaches + +1. **Passive hot-COUNT ranking at 30 s dwell is a weak predictor of link + loss.** 927.25 scored hot=2 per dwell and ranked best of 50; it then + lost 2.3× more traffic than a channel the same ranking could not even + see (927.5 is off-grid). Rank ordering *within* an emitter-occupied + population is not the same as finding a channel outside the emitter's + footprint. +2. **No chantab channel is clean.** The best production-grid channel is + merely *less hit* (hot-sum 4 of two dwells); 927.5 is qualitatively + different — zero hits at a −94 dBm floor, now 5/5 surveys. +3. **The table-extension question therefore gets MORE urgent, not less** + — the opposite of the retracted claim. If the production hop/hail set + must live inside 902.75–927.25, it has no emitter-free channel today, + while a legal channel 250 kHz above the table's top is repeatedly + clean. + +### Standing recommendation (replaces the retracted list) + +- **Do not adopt hail-set constants from passive survey ranking alone.** + Every candidate must pass a link leg; that is now the RS-11.8 gate. +- Candidates still worth link-testing (top-edge, quietest by survey): + 926.75 and 925.25. Test them the same way — 300 s leg + paired + post-leg spot-checks — before any of them enters POWER_MANAGEMENT.md. +- Carry the finding that **927.5 is the only measured emitter-free + channel** into the table-extension decision. +- Caveats retained: n=1 link leg per channel, and the bench RF + environment varies run to run (crc dumps swung 26→70 at *fixed* + 927.5 between legs A and B), so replicate before treating the 2.3× + as a precise ratio. The direction is corroborated by the independent + spot-checks; the magnitude is not yet pinned. ## Method note carried forward The zero-hot criterion should not be used on this grid while the ticker -is active. `survey_compare.py` still ranks by `hot` first, so it will -report "0 of 50 zero-hot" and then fall back to peak ranking — correct -but easy to misread. The ranking that produced the table above (hot-sum -across surveys, tiebreak worst peak) is the one to use for chantab -picks; folding it into the tool is the obvious next step for RS-11.7 v1. +is active. `survey_compare.py` ranks by `hot` first, so it will report +"0 of 50 zero-hot" and fall back to peak ranking — correct but easy to +misread as "no candidates" rather than "criterion saturated". + +**Do NOT fold the hot-sum ranking into the tool as a picker** (an +earlier revision of this note proposed exactly that, before the link +test). This session's result is that the ranking's own top pick loses +2.3× on air, so promoting it to an automatic recommendation would +automate a wrong answer. What the tool should surface instead: + +- the **hit CADENCE**, not just the count — 927.25's five hits fell on a + clean 7.02 s grid, which identifies the emitter positively; a channel + with the ticker's period on it is disqualified regardless of rank; +- the **noise floor** alongside the peak — 927.5 reads −94 dBm floor vs + 927.25's −55 dBm peak: an order-of-magnitude difference in kind, not + a rank difference; +- an explicit "no clean channel found" verdict when every candidate is + hit, rather than a ranked list that implies one is good enough. + +RS-11.7 v1 should therefore present survey output as *screening*, with +the link leg as the gate. diff --git a/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_11_8_chantab_2026-08-24/hail_post_base.txt b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_11_8_chantab_2026-08-24/hail_post_base.txt new file mode 100644 index 00000000..f2f00ba9 --- /dev/null +++ b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_11_8_chantab_2026-08-24/hail_post_base.txt @@ -0,0 +1,28 @@ +radio_rx_ok=10745 + +radio_crc_err=209 + +radio_dio0=11139 + +radio_tx_ok=118 + +host_rx_ring_ovf=0 + +host_dropped=0 + +host_queue_full=0 + +host_parse_ok=76892 + +host_parse_err=0 + +radio_state=4 + +tx_fifo_rb_ok=118 + +tx_fifo_rb_bad=0 + +tx_done_early=0 + +ALL: {'host_irq_idle': 76893, 'radio_dio0': 11139, 'radio_crc_err': 209, 'radio_rx_ok': 10745, 'radio_tx_ok': 118, 'radio_state': 4, 'host_rx_bytes': 1001288, 'host_rx_lpuart_bytes': 1001288, 'host_parse_ok': 76892, 'tx_fifo_rb_ok': 118} + diff --git a/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_11_8_chantab_2026-08-24/hail_post_tractor.txt b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_11_8_chantab_2026-08-24/hail_post_tractor.txt new file mode 100644 index 00000000..e9b46c5b --- /dev/null +++ b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_11_8_chantab_2026-08-24/hail_post_tractor.txt @@ -0,0 +1,28 @@ +radio_rx_ok=18 + +radio_crc_err=0 + +radio_dio0=2226 + +radio_tx_ok=2208 + +host_rx_ring_ovf=0 + +host_dropped=0 + +host_queue_full=0 + +host_parse_ok=2590 + +host_parse_err=0 + +radio_state=4 + +tx_fifo_rb_ok=2208 + +tx_fifo_rb_bad=0 + +tx_done_early=0 + +ALL: {'host_irq_idle': 2590, 'radio_dio0': 2226, 'radio_rx_ok': 18, 'radio_tx_ok': 2208, 'radio_state': 4, 'host_rx_bytes': 555390, 'host_rx_lpuart_bytes': 555390, 'host_parse_ok': 2590, 'tx_fifo_rb_ok': 2208} + diff --git a/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_11_8_chantab_2026-08-24/hail_pre_base.txt b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_11_8_chantab_2026-08-24/hail_pre_base.txt new file mode 100644 index 00000000..45f1b08c --- /dev/null +++ b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_11_8_chantab_2026-08-24/hail_pre_base.txt @@ -0,0 +1,28 @@ +radio_rx_ok=8615 + +radio_crc_err=146 + +radio_dio0=8909 + +radio_tx_ok=100 + +host_rx_ring_ovf=0 + +host_dropped=0 + +host_queue_full=0 + +host_parse_ok=76825 + +host_parse_err=0 + +radio_state=4 + +tx_fifo_rb_ok=100 + +tx_fifo_rb_bad=0 + +tx_done_early=0 + +ALL: {'host_irq_idle': 76826, 'radio_dio0': 8909, 'radio_crc_err': 146, 'radio_rx_ok': 8615, 'radio_tx_ok': 100, 'radio_state': 4, 'host_rx_bytes': 1000308, 'host_rx_lpuart_bytes': 1000308, 'host_parse_ok': 76825, 'tx_fifo_rb_ok': 100} + diff --git a/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_11_8_chantab_2026-08-24/hail_pre_tractor.txt b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_11_8_chantab_2026-08-24/hail_pre_tractor.txt new file mode 100644 index 00000000..1f6c3ed1 --- /dev/null +++ b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_11_8_chantab_2026-08-24/hail_pre_tractor.txt @@ -0,0 +1,28 @@ +radio_rx_ok=54 + +radio_crc_err=16 + +radio_dio0=7007 + +radio_tx_ok=6924 + +host_rx_ring_ovf=0 + +host_dropped=0 + +host_queue_full=0 + +host_parse_ok=8115 + +host_parse_err=0 + +radio_state=4 + +tx_fifo_rb_ok=6924 + +tx_fifo_rb_bad=0 + +tx_done_early=0 + +ALL: {'host_irq_idle': 8115, 'radio_dio0': 7007, 'radio_crc_err': 16, 'radio_rx_ok': 54, 'radio_tx_ok': 6924, 'radio_state': 4, 'host_rx_bytes': 1739743, 'host_rx_lpuart_bytes': 1739743, 'host_parse_ok': 8115, 'tx_fifo_rb_ok': 6924} + diff --git a/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20260824_121253_be989c0a/params.txt b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20260824_121253_be989c0a/params.txt new file mode 100644 index 00000000..f5725a25 --- /dev/null +++ b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20260824_121253_be989c0a/params.txt @@ -0,0 +1,32 @@ +git_sha=be989c0a +duration_s=300 +synth_fps=2 +synth_budget_b=3000 +tx_pipeline=v3 +tx_pipeline_depth=2 +tx_batch=1 +tx_prepare_ahead=1 +train_gap_ms=40 +kf_request_disable=1 +no_park_last=1 +parity_group=0 +aligned_pump=1 +reactive_fire=0 +probe_phase_sweep_ms= +probe_sizes_b= +ack_copies=2 +probe_echo=0 +fhss_farm_id=0 +fhss_link_id=0 +airtime_budget_us=0 +pacing_mode=smooth +pacing_headroom=0 +rxcont_arm=1 +tx_power_dbm= +tx_feed=local +reg_profile=2 +force_frf_hz=927250000 +tx_serial=2E2C1209DABC240B +rx_serial=2D0A1209DABC240B +host_ip=192.168.1.79 +timestamp=20260824_121253 diff --git a/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20260824_121253_be989c0a/rx_daemon.log b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20260824_121253_be989c0a/rx_daemon.log new file mode 100644 index 00000000..2088a81e --- /dev/null +++ b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20260824_121253_be989c0a/rx_daemon.log @@ -0,0 +1,1362 @@ +2026-08-24 17:07:45,838 INFO image_rx_daemon: opening L072 HostLink on /dev/ttymxc3 @ 921600 + +2026-08-24 17:07:45,841 INFO image_rx_daemon: image_rx_daemon started; mqtt=127.0.0.1:1883 uart=/dev/ttymxc3 + +2026-08-24 17:07:45,843 INFO image_rx_daemon: ctrl MQTT connected (192.168.1.79) + +2026-08-24 17:07:45,850 INFO image_rx_daemon: MQTT connected; ready to publish lifetrac/v25/video/tile_delta + +2026-08-24 17:07:45,853 INFO image_rx_daemon: LIFETRAC_SKIP_RESET_REQ=1 — relying on external NRST; draining boot chatter only + +2026-08-24 17:07:45,868 INFO image_rx_daemon: accepting first retained lifetrac/v25/control/radio_profile pin after start (restart convergence) + +2026-08-24 17:07:46,280 INFO image_rx_daemon: L072 VER warm-up ok (attempt 1) + +Initializing regulatory profile 2 on co-processor... + + FHSS mask: single channel 0 (0100000000000000) + +CFG_SET_REQ(FHSS_CHANNEL_MASK) OK: 07000800 + +CFG_SET_REQ(ANTENNA_GAIN_DBI) OK: 15000100 + +CFG_SET_REQ(HW_CEILING_DBM) OK: 16000100 + + FHSS seed: (0,0) legacy shared permutation [set LIFETRAC_FHSS_FARM_ID / LIFETRAC_FHSS_LINK_ID to separate pairs] + +CFG_SET_REQ(FHSS_FARM_ID) OK: 17000800 + +CFG_SET_REQ(FHSS_NODE_ID) OK: 18000800 + +CFG_SET_REQ(REG_PROFILE=2) OK: 14000100 + + forcing FRF -> 927.250 MHz (raw=0xE7D000 -> Msb=0xE7 Mid=0xD0 Lsb=0x00) + + FRF readback: 0xE7D000 = 927.250 MHz (OK) + +2026-08-24 17:07:46,726 INFO image_rx_daemon: LBT_ENABLE=0 (command uplink shares the image channel) + +PHY contract OK: image_bw500 == {'sf': 7, 'bw_khz': 500, 'cr_den': 5, 'preamble': 8} + +2026-08-24 17:07:46,810 INFO image_rx_daemon: SX1276 RXCONT autowake: opmode 0x81 -> 0x85 + +2026-08-24 17:07:46,811 INFO image_rx_daemon: RX worker ready; draining RX_FRAME_URC... + +2026-08-24 17:07:46,841 INFO image_rx_daemon: stats: rx_frames=0 rx_decode_err=0 frames_published=0 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=0 parity_recon=0 + +RFCO_PERTX during TX wait: profile_id=2 tx_status=0x00(OK) hop_idx=0 channel_idx=0 epoch=0 freq_hz=0 pkt_toa_us=10304 legal_dwell_used_us_10s=0 + +2026-08-24 17:07:47,089 INFO image_rx_daemon: command TX opcode=0x63 copy=1/1 OK (on air) + +2026-08-24 17:07:47,288 INFO image_rx_daemon: published frame_id=0 seq=3 243 B → lifetrac/v25/video/tile_delta + +RFCO_PERTX during TX wait: profile_id=2 tx_status=0x00(OK) hop_idx=0 channel_idx=0 epoch=0 freq_hz=0 pkt_toa_us=10304 legal_dwell_used_us_10s=0 + +2026-08-24 17:07:47,568 INFO image_rx_daemon: command TX opcode=0x63 copy=1/1 OK (on air) + +2026-08-24 17:07:47,756 INFO image_rx_daemon: published frame_id=0 seq=4 184 B → lifetrac/v25/video/tile_delta + +RFCO_PERTX during TX wait: profile_id=2 tx_status=0x00(OK) hop_idx=0 channel_idx=0 epoch=0 freq_hz=0 pkt_toa_us=10304 legal_dwell_used_us_10s=0 + +2026-08-24 17:07:48,035 INFO image_rx_daemon: command TX opcode=0x63 copy=1/1 OK (on air) + +2026-08-24 17:07:48,248 INFO image_rx_daemon: published frame_id=0 seq=5 186 B → lifetrac/v25/video/tile_delta + +RFCO_PERTX during TX wait: profile_id=2 tx_status=0x00(OK) hop_idx=0 channel_idx=0 epoch=0 freq_hz=0 pkt_toa_us=10304 legal_dwell_used_us_10s=0 + +2026-08-24 17:07:48,528 INFO image_rx_daemon: command TX opcode=0x63 copy=1/1 OK (on air) + +2026-08-24 17:07:48,747 INFO image_rx_daemon: published frame_id=0 seq=6 184 B → lifetrac/v25/video/tile_delta + +RFCO_PERTX during TX wait: profile_id=2 tx_status=0x00(OK) hop_idx=0 channel_idx=0 epoch=0 freq_hz=0 pkt_toa_us=10304 legal_dwell_used_us_10s=0 + +2026-08-24 17:07:49,020 INFO image_rx_daemon: command TX opcode=0x63 copy=1/1 OK (on air) + +2026-08-24 17:07:49,248 INFO image_rx_daemon: published frame_id=0 seq=7 243 B → lifetrac/v25/video/tile_delta + +RFCO_PERTX during TX wait: profile_id=2 tx_status=0x00(OK) hop_idx=0 channel_idx=0 epoch=0 freq_hz=0 pkt_toa_us=10304 legal_dwell_used_us_10s=0 + +2026-08-24 17:07:49,535 INFO image_rx_daemon: command TX opcode=0x63 copy=1/1 OK (on air) + +2026-08-24 17:07:49,763 INFO image_rx_daemon: published frame_id=0 seq=8 202 B → lifetrac/v25/video/tile_delta + +RFCO_PERTX during TX wait: profile_id=2 tx_status=0x00(OK) hop_idx=0 channel_idx=0 epoch=0 freq_hz=0 pkt_toa_us=10304 legal_dwell_used_us_10s=0 + +2026-08-24 17:07:50,042 INFO image_rx_daemon: command TX opcode=0x63 copy=1/1 OK (on air) + +2026-08-24 17:07:50,235 INFO image_rx_daemon: published frame_id=0 seq=9 196 B → lifetrac/v25/video/tile_delta + +RFCO_PERTX during TX wait: profile_id=2 tx_status=0x00(OK) hop_idx=0 channel_idx=0 epoch=0 freq_hz=0 pkt_toa_us=10304 legal_dwell_used_us_10s=0 + +2026-08-24 17:07:50,523 INFO image_rx_daemon: command TX opcode=0x63 copy=1/1 OK (on air) + +2026-08-24 17:07:50,723 INFO image_rx_daemon: published frame_id=0 seq=10 214 B → lifetrac/v25/video/tile_delta + +RFCO_PERTX during TX wait: profile_id=2 tx_status=0x00(OK) hop_idx=0 channel_idx=0 epoch=0 freq_hz=0 pkt_toa_us=10304 legal_dwell_used_us_10s=0 + +2026-08-24 17:07:51,001 INFO image_rx_daemon: command TX opcode=0x63 copy=1/1 OK (on air) + +2026-08-24 17:07:51,260 INFO image_rx_daemon: published frame_id=0 seq=11 222 B → lifetrac/v25/video/tile_delta + +RFCO_PERTX during TX wait: profile_id=2 tx_status=0x00(OK) hop_idx=0 channel_idx=0 epoch=0 freq_hz=0 pkt_toa_us=10304 legal_dwell_used_us_10s=0 + +2026-08-24 17:07:51,541 INFO image_rx_daemon: command TX opcode=0x63 copy=1/1 OK (on air) + +2026-08-24 17:07:51,755 INFO image_rx_daemon: published frame_id=0 seq=12 216 B → lifetrac/v25/video/tile_delta + +RFCO_PERTX during TX wait: profile_id=2 tx_status=0x00(OK) hop_idx=0 channel_idx=0 epoch=0 freq_hz=0 pkt_toa_us=10304 legal_dwell_used_us_10s=0 + +2026-08-24 17:07:52,030 INFO image_rx_daemon: command TX opcode=0x63 copy=1/1 OK (on air) + +2026-08-24 17:07:52,256 INFO image_rx_daemon: published frame_id=0 seq=13 190 B → lifetrac/v25/video/tile_delta + +RFCO_PERTX during TX wait: profile_id=2 tx_status=0x00(OK) hop_idx=0 channel_idx=0 epoch=0 freq_hz=0 pkt_toa_us=10304 legal_dwell_used_us_10s=0 + +2026-08-24 17:07:52,536 INFO image_rx_daemon: command TX opcode=0x63 copy=1/1 OK (on air) + +2026-08-24 17:07:52,796 INFO image_rx_daemon: published frame_id=0 seq=14 243 B → lifetrac/v25/video/tile_delta + +RFCO_PERTX during TX wait: profile_id=2 tx_status=0x00(OK) hop_idx=0 channel_idx=0 epoch=0 freq_hz=0 pkt_toa_us=10304 legal_dwell_used_us_10s=0 + +2026-08-24 17:07:53,075 INFO image_rx_daemon: command TX opcode=0x63 copy=1/1 OK (on air) + +2026-08-24 17:07:53,267 INFO image_rx_daemon: published frame_id=0 seq=15 188 B → lifetrac/v25/video/tile_delta + +RFCO_PERTX during TX wait: profile_id=2 tx_status=0x00(OK) hop_idx=0 channel_idx=0 epoch=0 freq_hz=0 pkt_toa_us=10304 legal_dwell_used_us_10s=0 + +2026-08-24 17:07:53,549 INFO image_rx_daemon: command TX opcode=0x63 copy=1/1 OK (on air) + +2026-08-24 17:07:53,766 INFO image_rx_daemon: published frame_id=0 seq=16 176 B → lifetrac/v25/video/tile_delta + +RFCO_PERTX during TX wait: profile_id=2 tx_status=0x00(OK) hop_idx=0 channel_idx=0 epoch=0 freq_hz=0 pkt_toa_us=10304 legal_dwell_used_us_10s=0 + +2026-08-24 17:07:54,041 INFO image_rx_daemon: command TX opcode=0x63 copy=1/1 OK (on air) + +2026-08-24 17:07:54,305 INFO image_rx_daemon: published frame_id=0 seq=17 237 B → lifetrac/v25/video/tile_delta + +RFCO_PERTX during TX wait: profile_id=2 tx_status=0x00(OK) hop_idx=0 channel_idx=0 epoch=0 freq_hz=0 pkt_toa_us=10304 legal_dwell_used_us_10s=0 + +2026-08-24 17:07:54,584 INFO image_rx_daemon: command TX opcode=0x63 copy=1/1 OK (on air) + +2026-08-24 17:07:54,799 INFO image_rx_daemon: published frame_id=0 seq=18 192 B → lifetrac/v25/video/tile_delta + +RFCO_PERTX during TX wait: profile_id=2 tx_status=0x00(OK) hop_idx=0 channel_idx=0 epoch=0 freq_hz=0 pkt_toa_us=10304 legal_dwell_used_us_10s=0 + +2026-08-24 17:07:55,088 INFO image_rx_daemon: command TX opcode=0x63 copy=1/1 OK (on air) + +2026-08-24 17:07:55,327 INFO image_rx_daemon: published frame_id=0 seq=19 233 B → lifetrac/v25/video/tile_delta + +RFCO_PERTX during TX wait: profile_id=2 tx_status=0x00(OK) hop_idx=0 channel_idx=0 epoch=0 freq_hz=0 pkt_toa_us=10304 legal_dwell_used_us_10s=0 + +2026-08-24 17:07:55,601 INFO image_rx_daemon: command TX opcode=0x63 copy=1/1 OK (on air) + +2026-08-24 17:07:55,835 INFO image_rx_daemon: published frame_id=0 seq=20 237 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:07:56,097 WARNING image_rx_daemon: cmd 0x63 GAVE UP after 18 attempts (10.2 s) + +2026-08-24 17:07:56,288 INFO image_rx_daemon: published frame_id=0 seq=21 200 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:07:56,820 INFO image_rx_daemon: published frame_id=0 seq=22 202 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:07:56,846 INFO image_rx_daemon: stats: rx_frames=20 rx_decode_err=0 frames_published=20 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=0 parity_recon=0 + +2026-08-24 17:07:56,849 INFO image_rx_daemon: air_gap: n=19 dt_med=492872us dt_p95=552697us len_med=206B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 17:07:56,852 INFO image_rx_daemon: air_gap_hist(ms): <1000:19 + +2026-08-24 17:07:56,852 INFO image_rx_daemon: rx_rf: n_rssi=20 n_snr=20 rssi[min/med/max]=-73/-73/-72 snr[min/med/max]=5.0/6.0/6.0 + +2026-08-24 17:07:56,853 INFO image_rx_daemon: phase_telemetry: valid=20 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 17:07:56,853 INFO image_rx_daemon: air_gap_by_class: boundary: n=19 med=492.9ms + +2026-08-24 17:07:57,310 INFO image_rx_daemon: published frame_id=0 seq=23 180 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:07:57,840 INFO image_rx_daemon: published frame_id=0 seq=24 239 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:07:58,294 INFO image_rx_daemon: published frame_id=0 seq=25 180 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:07:58,815 INFO image_rx_daemon: published frame_id=0 seq=26 235 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:07:59,303 INFO image_rx_daemon: published frame_id=0 seq=27 206 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:07:59,751 INFO image_rx_daemon: published frame_id=0 seq=28 182 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:00,304 INFO image_rx_daemon: published frame_id=0 seq=29 224 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:00,779 INFO image_rx_daemon: published frame_id=0 seq=30 198 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:01,303 INFO image_rx_daemon: published frame_id=0 seq=31 224 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:01,812 INFO image_rx_daemon: published frame_id=0 seq=32 240 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:02,320 INFO image_rx_daemon: published frame_id=0 seq=33 210 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:02,825 INFO image_rx_daemon: published frame_id=0 seq=34 216 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:04,123 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=5.8 rssi=-72 dump=0102000000000000fe230a0c80180964009d2fb17a000427ffc84b2a56916000fee2b8dc8e4ecccbf8b5ecd81ebabe22946c7e8de35de490fd89060eb84fb5bf350f0c43c20c1c94a5eacd93b8b785a83be95a280000f552494646ee0000005745425056503820e2000000100a009d012a200020003ec14ea04b27a42331b008023081906c009d32847577b37e2af266080fb00ed01e001a3ffd1f6a601dc637e41ed0261feef8b303f807e802a9779ffc103065708e1114f3198c7858cab8819d714e40a05e5c71a07aaf3937ffbe1b461e0161e017f95446fc94702c7642ffa500f12635c6df0a73e319f461e615f214f0503599dc97f48bf6df + +2026-08-24 17:08:04,579 INFO image_rx_daemon: published frame_id=0 seq=36 236 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:04,748 INFO image_rx_daemon: published frame_id=0 seq=38 242 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:06,358 INFO image_rx_daemon: published frame_id=0 seq=39 2983 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:06,539 INFO image_rx_daemon: published frame_id=0 seq=40 222 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:06,856 INFO image_rx_daemon: stats: rx_frames=62 rx_decode_err=0 frames_published=36 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=1 parity_recon=0 + +2026-08-24 17:08:06,857 INFO image_rx_daemon: air_gap: n=42 dt_med=132524us dt_p95=522782us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 17:08:06,859 INFO image_rx_daemon: air_gap_hist(ms): <120:21 <200:8 <400:1 <1000:12 + +2026-08-24 17:08:06,860 INFO image_rx_daemon: rx_rf: n_rssi=42 n_snr=42 rssi[min/med/max]=-73/-73/-72 snr[min/med/max]=5.0/6.0/6.0 + +2026-08-24 17:08:06,860 INFO image_rx_daemon: phase_telemetry: valid=42 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 17:08:06,862 INFO image_rx_daemon: air_gap_by_class: seq: n=23 med=117.1ms | boundary: n=18 med=483.3ms | post_loss: n=1 med=234.2ms + +2026-08-24 17:08:06,862 INFO image_rx_daemon: lost_frag_idx: n=1 idx0=0 (0.00% of idx0 arrivals) other=1 (4.00%) verdict=not-clustered | top 10:1 + +2026-08-24 17:08:08,115 INFO image_rx_daemon: published frame_id=0 seq=41 2905 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:08,275 INFO image_rx_daemon: published frame_id=0 seq=46 216 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:09,615 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=3.2 rssi=-72 dump=01c20000000000003e2f0a0c9b98d7795b00ca5f142c7c265ae9b50d4562ef1b400c0a03800065524946465e00000057454b5056503820520000085003009d012aa00020003ef154a44ab4253321ae0d5280180964059d32e002b0373d1000fdb1b91c3d9994621d91853fb6dc86d7784b34268d433a0b9cccdc545d961262bfcb8c14554c0b6d74728543c030a35249464f9c00c000574502505650382090000000d00400cd012a200020003dc150a3cc27b123321018080250180968006922929480102014b4c369f55b359b63a18b3000fe2a5696ab6dd057ffcda1920fe41fa5bf89eb9b309795db8d1f664b43f2584f002fefc2009441a032 + +2026-08-24 17:08:11,138 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=5.8 rssi=-72 dump=0102000000000000fe35090cd801a7fd6607f550de00ec1a09adf7a0a22a9b5fe9644dd8d4af0ee78000feaf062c2b26e8ed8048690339ae2b43b4758f2aaa5dea163c47076e6a116e090ff8ce755f2826cc314fc68a4871f7f23cd4b2bd3ca5f265f7f341f8529b32c4c04143699866a8e4b00cd5fa399bccbb519ef6c6404a3ca4b4810ff96d0602511e44f88ac73c40dd2260c2a50dbd1a42d44f4bcb92a3409fea1b72e3652ab732230000006f524946466800000057454250565038205c0000003004009d012a200020003ec15aa74e342523b228080280180964009d328484201cadbd913f51108f5e0000fee99d7e71ea97641093fb532b + +2026-08-24 17:08:11,886 INFO image_rx_daemon: published frame_id=0 seq=54 232 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:11,888 INFO image_rx_daemon: published frame_id=0 seq=54 178 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:13,483 INFO image_rx_daemon: published frame_id=0 seq=61 2901 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:13,657 INFO image_rx_daemon: published frame_id=0 seq=66 243 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:13,831 INFO image_rx_daemon: published frame_id=0 seq=74 240 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:15,619 INFO image_rx_daemon: published frame_id=0 seq=76 230 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:16,871 INFO image_rx_daemon: stats: rx_frames=136 rx_decode_err=0 frames_published=44 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=3 parity_recon=0 + +2026-08-24 17:08:16,872 INFO image_rx_daemon: air_gap: n=74 dt_med=117120us dt_p95=227342us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 17:08:16,874 INFO image_rx_daemon: air_gap_hist(ms): <120:55 <200:14 <400:5 + +2026-08-24 17:08:16,875 INFO image_rx_daemon: rx_rf: n_rssi=74 n_snr=74 rssi[min/med/max]=-73/-73/-72 snr[min/med/max]=5.0/6.0/6.0 + +2026-08-24 17:08:16,876 INFO image_rx_daemon: phase_telemetry: valid=74 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 17:08:16,877 INFO image_rx_daemon: air_gap_by_class: seq: n=61 med=117.1ms | boundary: n=10 med=175.1ms | post_loss: n=3 med=234.3ms + +2026-08-24 17:08:16,878 INFO image_rx_daemon: lost_frag_idx: n=3 idx0=0 (0.00% of idx0 arrivals) other=3 (4.48%) verdict=not-clustered | top 9:2 10:1 + +2026-08-24 17:08:17,222 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=87 snr=2.0 rssi=-72 dump=01020000000000003e4d0c0c23b328080a801809640094313218000850054fcda3c5ad6c0000feeba1af09b0b956cfcb3ffd2b7e95ad1bd7a876853eeff6d89ef78144bf39e96cc16d6d93e45b98f5fcc4625331a01600 + +2026-08-24 17:08:17,427 INFO image_rx_daemon: published frame_id=0 seq=82 237 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:18,183 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=-10.2 rssi=-59 dump=0102000000000000fe53050c00005745425056503820600000007004009d012a200020003ec15ca64eb42523b328080280180964009d331c802fb30042cc7089eb132098ea0000feea9196ab6dd057ffc94eb6d0e5ffbc095e286c0691debde201d619172cdea6743b3613e963d8d4cc45895cfd9f8cbd6f48006b52494646640000005745425056503820580000009003009d012a200020003ec160aa4eb42624332808028018096400ae4b027aa8042d16578000fdb1b91c9d9997daa84997f0f140314f9f18d7791a043beece394ae53715fb56bd806e97920d0b96140f85a83a53dd0220a0c75285da46549006605745b2da3b5438a8280090 + +2026-08-24 17:08:19,211 INFO image_rx_daemon: published frame_id=0 seq=90 231 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:20,831 INFO image_rx_daemon: published frame_id=0 seq=91 2992 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:22,427 INFO image_rx_daemon: published frame_id=0 seq=97 2910 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:22,799 INFO image_rx_daemon: published frame_id=0 seq=98 178 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:22,800 INFO image_rx_daemon: published frame_id=0 seq=98 237 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:24,378 INFO image_rx_daemon: published frame_id=0 seq=105 2905 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:24,755 INFO image_rx_daemon: published frame_id=0 seq=110 224 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:24,756 INFO image_rx_daemon: published frame_id=0 seq=110 192 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:25,175 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=4.8 rssi=-72 dump=0102000000000000fe71020cfec7324cbbaa33e64c66bb8b017d160dbdb77a8153f8df6f6c1affc55ca1b7f448e426bedebf0a58ab14d4cbdff1559160258c32e06fc55fabfec222fceaa0a7137f0130e37f37326bd01be3379af4c64be8b06ded67171fa234502ba6b6a546609f66bdf1bf9c17be3e25491015a1d022964324e51780006b52494646640000005745425056503820580000009004009d012a200020003ec15ca64eb42523b328080280180964009d2f6dfb37083e4000850054fcda345ad6c000feea9196ab6dd05798d793caaac057eee5fc41076c71c3c28857d7a35babb614379902572b4dbb65303261c8794c465a00000057 + +2026-08-24 17:08:25,511 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=-1.2 rssi=-69 dump=71d593cc60e0a294d0f05cc92b7ef9d9e34fe19a599b26602416eec90b863582297b723bcb61ec5a12df4e56133874acf15617ed60ec15c546b2c0343c677e7439e89765893a0a7b268d1a77b6b0b08edfb1fbe3c98c32cc227778b9d4cde583211b01aaaa77a4789ac4c4fa1f9e144004338a6b99b11efe6c0933565e6f0f5bc860e1ab5fb9d18f3cba18d3dfe273ebffa6b4ccf83c87d56b996f0bc758e44426f760539f0263da7b69da93f36ead52efde5d33738c9c667da90c0c84b9800d56973f5182fa3956b9dc445428f96a5ed2d850c9691a64878067caa23f1e0e1701c0095d1eb435c28b4f2fb543faa1455607cf2561ef486d938244 + +2026-08-24 17:08:26,769 INFO image_rx_daemon: published frame_id=0 seq=118 210 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:26,770 INFO image_rx_daemon: published frame_id=0 seq=118 212 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:26,886 INFO image_rx_daemon: stats: rx_frames=206 rx_decode_err=0 frames_published=55 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=6 parity_recon=0 + +2026-08-24 17:08:26,888 INFO image_rx_daemon: air_gap: n=70 dt_med=117187us dt_p95=234054us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 17:08:26,892 INFO image_rx_daemon: air_gap_hist(ms): <120:49 <200:13 <400:8 + +2026-08-24 17:08:26,894 INFO image_rx_daemon: rx_rf: n_rssi=70 n_snr=70 rssi[min/med/max]=-73/-73/-69 snr[min/med/max]=1.0/6.0/7.0 + +2026-08-24 17:08:26,895 INFO image_rx_daemon: phase_telemetry: valid=70 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 17:08:26,897 INFO image_rx_daemon: air_gap_by_class: seq: n=57 med=117.1ms | boundary: n=10 med=178.6ms | post_loss: n=3 med=234.1ms + +2026-08-24 17:08:26,897 INFO image_rx_daemon: lost_frag_idx: n=4 idx0=0 (0.00% of idx0 arrivals) other=4 (6.25%) verdict=not-clustered | top 5:2 12:1 2:1 + +2026-08-24 17:08:28,359 INFO image_rx_daemon: published frame_id=0 seq=121 2953 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:28,781 INFO image_rx_daemon: published frame_id=0 seq=126 240 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:28,782 INFO image_rx_daemon: published frame_id=0 seq=126 208 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:29,313 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=0.0 rssi=-69 dump=0102000000000000fe8102842f7599c913d05abd78418e6cf3eeafb1f7ef11e0695485646450aa0b3ac72c69f3c68d05278f67c75f330feb7df3aa40fd3e9e420232adefcf53d5efda50086808047bcc87ab03b6770f3b8d9830c00ae5bff2cbefa35fd75c1a2cdcb17b7c661b8971ef9c09c667f923a211341cf65082fef858af740388db1f3f30f02af8c8d460d9ea3aefbb66d2e6538897a451af580148b170a7fdc36bd87798ee58e69e5bd42b20de004c689b5e56ae31753e6e4946e4d7bddae7000f551708f36f29cd6c908c06fe8ea6a4404f2fd7232c1e26486efa970a3024c08211dd7bfbac5c5ad01ba9989c8e3ea77845af292da79e + +2026-08-24 17:08:29,691 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=82 snr=0.2 rssi=-69 dump=9794b295d6a1e2bd7a2a2c6cdb034da27faeba3619aa25586e32e2d559dc617f659b2839c967cd43766a652a693b93145f8ec3230501e0ca41b37a2c35fb0a8296924aa249a6e0efef1a05deb21f63d23f39 + +2026-08-24 17:08:30,799 INFO image_rx_daemon: published frame_id=0 seq=134 224 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:30,800 INFO image_rx_daemon: published frame_id=0 seq=134 204 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:32,797 INFO image_rx_daemon: published frame_id=0 seq=142 214 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:32,798 INFO image_rx_daemon: published frame_id=0 seq=142 212 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:34,411 INFO image_rx_daemon: published frame_id=0 seq=145 3000 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:34,813 INFO image_rx_daemon: published frame_id=0 seq=150 182 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:34,814 INFO image_rx_daemon: published frame_id=0 seq=150 241 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:36,375 INFO image_rx_daemon: published frame_id=0 seq=153 2897 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:36,764 INFO image_rx_daemon: published frame_id=0 seq=158 214 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:36,765 INFO image_rx_daemon: published frame_id=0 seq=158 196 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:36,916 INFO image_rx_daemon: stats: rx_frames=277 rx_decode_err=0 frames_published=68 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=9 parity_recon=0 + +2026-08-24 17:08:36,918 INFO image_rx_daemon: air_gap: n=71 dt_med=117170us dt_p95=219088us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 17:08:36,922 INFO image_rx_daemon: air_gap_hist(ms): <120:48 <200:14 <400:9 + +2026-08-24 17:08:36,928 INFO image_rx_daemon: rx_rf: n_rssi=72 n_snr=72 rssi[min/med/max]=-73/-72/-72 snr[min/med/max]=5.0/6.0/7.0 + +2026-08-24 17:08:36,928 INFO image_rx_daemon: phase_telemetry: valid=72 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 17:08:36,929 INFO image_rx_daemon: air_gap_by_class: seq: n=58 med=117.1ms | boundary: n=10 med=180.4ms | post_loss: n=3 med=234.2ms + +2026-08-24 17:08:36,929 INFO image_rx_daemon: lost_frag_idx: n=3 idx0=0 (0.00% of idx0 arrivals) other=3 (4.69%) verdict=not-clustered | top 3:1 7:1 11:1 + +2026-08-24 17:08:38,335 INFO image_rx_daemon: published frame_id=0 seq=161 2910 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:38,727 INFO image_rx_daemon: published frame_id=0 seq=166 204 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:38,729 INFO image_rx_daemon: published frame_id=0 seq=166 239 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:39,259 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=6.5 rssi=-73 dump=0102000000000000fea9030b4542505650382058000000b003009d012a200020003ec15aa84e3425243228080280180964009d333442b5a00051bf373000fe83cf6096e82a7f395817d446f46b03fc84c1e7bd39fc62a6f4003461d23bed5af60c729acb7e61ac0ae1cc66d402c0008d524946468600a00057454250565038207a000000f004009d012a200020003ed1538863f420a303c5579b8018906fc921df68e41f836c30dd1014336360d40a8a6dce238000fee5dc2d924ba0bfff0056703479c0b0de76ae272c1fa20ca293280a304655f2ea020d8c27983db3a81128f9ff538b597f2a620b1fea4e167de828edbfe3ffbfccfd82a1f52f + +2026-08-24 17:08:40,691 INFO image_rx_daemon: published frame_id=0 seq=174 204 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:40,692 INFO image_rx_daemon: published frame_id=0 seq=174 237 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:42,304 INFO image_rx_daemon: published frame_id=0 seq=177 2986 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:42,703 INFO image_rx_daemon: published frame_id=0 seq=182 192 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:42,704 INFO image_rx_daemon: published frame_id=0 seq=182 204 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:44,295 INFO image_rx_daemon: published frame_id=0 seq=185 2953 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:44,719 INFO image_rx_daemon: published frame_id=0 seq=190 184 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:44,720 INFO image_rx_daemon: published frame_id=0 seq=190 233 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:44,920 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=84 snr=2.8 rssi=-69 dump=e11d27485d73b00aa9fb8e4ca542e60190abfc5428dfe8182515e9a4555eb0cc8f56a85972a7d548f56da7abce4ea99fb86baa50fd1168996d85bbe90eb3336717390ce2ee004162f39b8c1a0ae8df49a22df000 + +2026-08-24 17:08:46,183 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=5.5 rssi=-72 dump=0102000000000000fec10b0cb4793e2ecd38af76310c6971a715ee6bfff4d1cdffa8fed689ffbfd7fdbdcc4635efffa8fed689ffbfd7fdbdcc46367dc1b68816bfa07b9403853ff9c51985c5bcf262d9c55f0e46ea1d1eca50f01d2d5bf74b561b3000006f524946466800000057454250565038205c0000005004009d012a200020003ec15ca74eb42523b328080280180964009d3333882f200042802a7e6d1a2d6b6000feed21bf27b3b332ffccd1fe517f442de7ae296bed31b83fc4f7bc0a25c1f83ca4a08dbf4d467bcbd35e213ddd4bc00a6d5249464666005005024043c057603b236a600060600a8905012a200020003ec15aa74eb425 + +2026-08-24 17:08:46,735 INFO image_rx_daemon: published frame_id=0 seq=198 218 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:46,736 INFO image_rx_daemon: published frame_id=0 seq=198 200 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:46,932 INFO image_rx_daemon: stats: rx_frames=346 rx_decode_err=0 frames_published=81 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=10 parity_recon=0 + +2026-08-24 17:08:46,932 INFO image_rx_daemon: air_gap: n=69 dt_med=117274us dt_p95=234111us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 17:08:46,933 INFO image_rx_daemon: air_gap_hist(ms): <120:43 <200:13 <400:13 + +2026-08-24 17:08:46,934 INFO image_rx_daemon: rx_rf: n_rssi=68 n_snr=68 rssi[min/med/max]=-73/-72/-72 snr[min/med/max]=5.0/6.0/6.0 + +2026-08-24 17:08:46,934 INFO image_rx_daemon: phase_telemetry: valid=68 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 17:08:46,935 INFO image_rx_daemon: air_gap_by_class: seq: n=53 med=117.1ms | boundary: n=11 med=177.0ms | post_loss: n=5 med=234.3ms + +2026-08-24 17:08:46,936 INFO image_rx_daemon: lost_frag_idx: n=5 idx0=0 (0.00% of idx0 arrivals) other=5 (7.94%) verdict=not-clustered | top 3:1 9:1 1:1 6:1 11:1 + +2026-08-24 17:08:47,839 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=-1.0 rssi=-69 dump=0102000000000000fec997e931c9b781d6ac9896da3fee7137e6def72f97c135e5658778c0a91268ea907505daec0dd3d3ca92f8b12fe4050bc07c37e80c5eab2c17581e76454e4078ab75647574e0dadc868d13c9cae4776ce9c8006812184c1c5b3f5d15b0fda925ef82657ec4acb3083bb82925e3f8efcb2270d6effe6b4745c3f3c50dfc0a024bed0103a7011970c4b78e72bfd52b55512cfcb9a6c0a8001e8005ea8bc1d82969e77389512b0c3b9834f8346f97bc323c37e74eaa8542195e378ea6a32cd000dc8f0fc12690cb1cfd971bae40264311689f0133877ab432c98c4d0e82d9111f5ba91be87987569de171ca34d22785a518e64c + +2026-08-24 17:08:48,739 INFO image_rx_daemon: published frame_id=0 seq=206 214 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:48,740 INFO image_rx_daemon: published frame_id=0 seq=206 216 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:50,366 INFO image_rx_daemon: published frame_id=0 seq=209 3000 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:50,771 INFO image_rx_daemon: published frame_id=0 seq=214 234 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:50,772 INFO image_rx_daemon: published frame_id=0 seq=214 206 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:52,335 INFO image_rx_daemon: published frame_id=0 seq=217 2897 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:52,740 INFO image_rx_daemon: published frame_id=0 seq=222 228 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:52,741 INFO image_rx_daemon: published frame_id=0 seq=222 206 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:53,274 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=-8.0 rssi=-64 dump=0102000000000000fee1030ba64eb42523b328080280180964009d333442cfa000462553e90d2cfd360000fee1a31d515ba0affad5f5eb475ed44b8adcb9c1e7bb492effe155b9013f29af10f01684c401773aa727296334cc36dbb4b54000fd52494646f60000005745425056503820ea0000007009009d012a200020003eb5469d4aa732a2b337faa8026016896c009d32847d1fb37e2af286880fb00de00d0ffe8ffd280f633fb00f680a301a142bf67303f807e80332bbe35eb0106da70628dc8a8251f496e000fef669087206b78dfff7c21fc8e133716866ff2aaabff611defd297fcdfdaf76f15deebfef75b44122c53e0e5baaaba4576e + +2026-08-24 17:08:54,704 INFO image_rx_daemon: published frame_id=0 seq=230 212 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:54,706 INFO image_rx_daemon: published frame_id=0 seq=230 212 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:56,267 INFO image_rx_daemon: published frame_id=0 seq=233 2905 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:56,643 INFO image_rx_daemon: published frame_id=0 seq=238 176 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:56,644 INFO image_rx_daemon: published frame_id=0 seq=238 243 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:56,938 INFO image_rx_daemon: stats: rx_frames=417 rx_decode_err=0 frames_published=94 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=13 parity_recon=0 + +2026-08-24 17:08:56,938 INFO image_rx_daemon: air_gap: n=71 dt_med=117204us dt_p95=219090us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 17:08:56,939 INFO image_rx_daemon: air_gap_hist(ms): <120:46 <200:15 <400:10 + +2026-08-24 17:08:56,940 INFO image_rx_daemon: rx_rf: n_rssi=71 n_snr=71 rssi[min/med/max]=-74/-73/-72 snr[min/med/max]=5.0/6.0/7.0 + +2026-08-24 17:08:56,940 INFO image_rx_daemon: phase_telemetry: valid=71 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 17:08:56,940 INFO image_rx_daemon: air_gap_by_class: seq: n=59 med=117.2ms | boundary: n=10 med=180.3ms | post_loss: n=2 med=233.8ms + +2026-08-24 17:08:56,941 INFO image_rx_daemon: lost_frag_idx: n=2 idx0=0 (0.00% of idx0 arrivals) other=2 (3.17%) verdict=not-clustered | top 8:1 3:1 + +2026-08-24 17:08:58,247 INFO image_rx_daemon: published frame_id=0 seq=241 2986 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:08:58,419 INFO image_rx_daemon: published frame_id=0 seq=246 210 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:09:00,000 INFO image_rx_daemon: published frame_id=0 seq=247 2915 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:09:00,163 INFO image_rx_daemon: published frame_id=0 seq=254 206 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:09:00,927 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=6.0 rssi=-72 dump=0102000000000000feff050c2493a6f9dec1495d1620ea0e0a7f29dd21f5680d76f4ac527db92a908ef6bdd46d80006f524946466800000057454250565038205c0000007004009d012a200020003ec15ca74eb42523b328080280180964009d2f81fa04480010a00a9f9b468b5ad80000feed67bf38f54bb2ffccd1cfede6eb73a6ebf26ef66d89ef4e1707e461cf6df8583304bf09987ec754239d4a5580a0625249464664000000574542505650786018000000b00303ae1122f8942aa03ec1daa7eef46523b7486e0e801809e4889d99a0004cebd965e861b0006e127ef27b37f33d848f63fe2ab97d7de50ec51a6f9b806c97e73e0e30db24 + +2026-08-24 17:09:02,172 INFO image_rx_daemon: published frame_id=0 seq=4 235 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:09:02,174 INFO image_rx_daemon: published frame_id=0 seq=4 204 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:09:02,724 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=50 snr=1.2 rssi=-69 dump=3c1005aca380838de9329643cc5be8cebc33eca55492da8e2966da619b43d524e717a8dc78a45a68a72c5417ef89b2f85472 + +2026-08-24 17:09:03,987 INFO image_rx_daemon: published frame_id=0 seq=12 231 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:09:04,139 INFO image_rx_daemon: published frame_id=0 seq=14 188 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:09:04,298 INFO image_rx_daemon: published frame_id=0 seq=20 241 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:09:05,879 INFO image_rx_daemon: published frame_id=0 seq=21 2923 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:09:06,051 INFO image_rx_daemon: published frame_id=0 seq=22 182 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:09:06,949 INFO image_rx_daemon: stats: rx_frames=492 rx_decode_err=0 frames_published=105 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=15 parity_recon=0 + +2026-08-24 17:09:06,950 INFO image_rx_daemon: air_gap: n=75 dt_med=117183us dt_p95=214495us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 17:09:06,952 INFO image_rx_daemon: air_gap_hist(ms): <120:55 <200:15 <400:5 + +2026-08-24 17:09:06,953 INFO image_rx_daemon: rx_rf: n_rssi=75 n_snr=75 rssi[min/med/max]=-73/-72/-72 snr[min/med/max]=5.0/5.0/7.0 + +2026-08-24 17:09:06,953 INFO image_rx_daemon: phase_telemetry: valid=75 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 17:09:06,954 INFO image_rx_daemon: air_gap_by_class: seq: n=61 med=117.1ms | boundary: n=12 med=174.0ms | post_loss: n=2 med=234.1ms + +2026-08-24 17:09:06,955 INFO image_rx_daemon: lost_frag_idx: n=2 idx0=0 (0.00% of idx0 arrivals) other=2 (3.08%) verdict=not-clustered | top 5:1 4:1 + +2026-08-24 17:09:07,290 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=6.0 rssi=-73 dump=0102000000000000fe17090c79bb24275bd1ecab03b29cfbdf41e1fc35a0a1b56dc1f3a62030cd16f1df51ac1b26e73a85647e2a2f0beb1912b7b7b1cd0c9c6e59e8bf67bc616fb3d405d7c887de6fe67acfbedfc512c7713500009152494646df000ac09745825c965038207e44400430050097012a200020003ec15aa74ea7a523b32808026018096600ac331c640e107c80102004e661cf8c470a98b5b7f1cd8000fe9bb0fbe9db3cfe4fa49e625cf662e7d6011c78d4cbcb88e23e441895c8ebbdf9d5044bfbca666d7ffe521795d6b5a15f26fa7911b8343bcfc7adcb21a899f3c33b419110de657b0000006b524946466400000057454250 + +2026-08-24 17:09:07,827 INFO image_rx_daemon: published frame_id=0 seq=28 196 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:09:09,407 INFO image_rx_daemon: published frame_id=0 seq=29 2915 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:09:11,013 INFO image_rx_daemon: published frame_id=0 seq=35 2985 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:09:11,212 INFO image_rx_daemon: published frame_id=0 seq=42 232 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:09:14,393 INFO image_rx_daemon: published frame_id=0 seq=49 2986 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:09:14,575 INFO image_rx_daemon: published frame_id=0 seq=50 226 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:09:14,739 INFO image_rx_daemon: published frame_id=0 seq=56 194 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:09:15,154 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=5.5 rssi=-72 dump=0102000000000000fe3f020c00fec38a65e950da9c34190320813b4ee65eb1c5412bd1f046f49f54eb0ae2a11a00fcda4584ede5c0c76512066a60dc4a00e7f88f51203bd0a1976466cbbd0a1a2b1fe3c0c379b2a760df6b007f4c2e45e89286e317186fe8cbe4199a8bd5aabf8297a2c1ce4f123d3ac09aa2960c096b5249c6c6600a2800776760c356f991267e062244d447009d012a200020003ec15aa74e342523b22808028018096400a74d8db40224000851d5860000fee7194db7e17191ced4c1246401ee46c03ec6f8c04aa998cd9b1f075f9d3fc88cffcbc7ef91fe4d3128d887800000006f524946466800000057454250565038205c + +2026-08-24 17:09:16,526 INFO image_rx_daemon: published frame_id=0 seq=64 210 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:09:16,969 INFO image_rx_daemon: stats: rx_frames=566 rx_decode_err=0 frames_published=113 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=17 parity_recon=0 + +2026-08-24 17:09:16,971 INFO image_rx_daemon: air_gap: n=74 dt_med=117182us dt_p95=222683us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 17:09:16,972 INFO image_rx_daemon: air_gap_hist(ms): <120:54 <200:15 <400:5 + +2026-08-24 17:09:16,973 INFO image_rx_daemon: rx_rf: n_rssi=74 n_snr=74 rssi[min/med/max]=-73/-73/-72 snr[min/med/max]=5.0/6.0/7.0 + +2026-08-24 17:09:16,974 INFO image_rx_daemon: phase_telemetry: valid=74 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 17:09:16,975 INFO image_rx_daemon: air_gap_by_class: seq: n=59 med=117.1ms | boundary: n=11 med=176.3ms | post_loss: n=3 med=234.2ms + +2026-08-24 17:09:16,976 INFO image_rx_daemon: lost_frag_idx: n=3 idx0=0 (0.00% of idx0 arrivals) other=3 (4.55%) verdict=not-clustered | top 9:1 7:1 2:1 + +2026-08-24 17:09:16,977 INFO image_rx_daemon: frag_reordered: 1 late out-of-order arrivals had a provisional loss retracted (in-order assumption violated — see RS-11.4) + +2026-08-24 17:09:18,127 INFO image_rx_daemon: published frame_id=0 seq=65 2985 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:09:18,300 INFO image_rx_daemon: published frame_id=0 seq=70 194 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:09:19,908 INFO image_rx_daemon: published frame_id=0 seq=71 2979 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:09:21,555 INFO image_rx_daemon: published frame_id=0 seq=77 2991 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:09:21,950 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=209 snr=6.0 rssi=-73 dump=0102000000000000fe4e01015650382052000000b004009d012a200020003ec14ca44aa7a423a1b0180c00f018096700bf3810a968e1119a79145560ecdde805810000fe111a562a43771de2a8f6daae9486fc2d6b4da27c1621aa1a2235e18ef9036c6000006952494646620000005745425056503820560000003004009f2328200020003ec1cecb2b41a22324a80d60e0090a5500ac391031f2864d22509def6e09db0000feb8e86f8bfeca72e3098fdb02a410b0b9a2cc0f4d38044c7b0f233cdce3bfc0b64951211b37b115d00000 + +2026-08-24 17:09:23,538 INFO image_rx_daemon: published frame_id=0 seq=85 2923 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:09:25,198 INFO image_rx_daemon: published frame_id=0 seq=91 2992 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:09:25,785 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=149 snr=1.2 rssi=-69 dump=d37a45f13aeb40cfa3fb971fd23d23bbdfa92a832ddea6b3f59fb4da62bcd7a69d1a6bd9005ec83f076b132e4cfafce065bd5bc06731c6d88f73e5bda85d91a1c7262e65cd0292331adb5a7f896a736ca87d26b398e41b0332d2fb1274f0d68980cb6586a01bbb2017e561b9cc8dc792cdef006e9dcc0c8109cd903191e49383198b2302da1a78e76142a15bc76cd973af1c06aeca + +2026-08-24 17:09:26,992 INFO image_rx_daemon: stats: rx_frames=642 rx_decode_err=0 frames_published=119 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=19 parity_recon=0 + +2026-08-24 17:09:26,995 INFO image_rx_daemon: air_gap: n=76 dt_med=117160us dt_p95=215445us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 17:09:26,999 INFO image_rx_daemon: air_gap_hist(ms): <120:61 <200:11 <400:4 + +2026-08-24 17:09:27,001 INFO image_rx_daemon: rx_rf: n_rssi=76 n_snr=76 rssi[min/med/max]=-73/-73/-72 snr[min/med/max]=5.0/6.0/6.0 + +2026-08-24 17:09:27,003 INFO image_rx_daemon: phase_telemetry: valid=76 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 17:09:27,004 INFO image_rx_daemon: air_gap_by_class: seq: n=67 med=117.1ms | boundary: n=8 med=187.1ms | post_loss: n=1 med=233.9ms + +2026-08-24 17:09:27,004 INFO image_rx_daemon: lost_frag_idx: n=2 idx0=0 (0.00% of idx0 arrivals) other=2 (2.86%) verdict=not-clustered | top 1:1 4:1 + +2026-08-24 17:09:28,398 INFO image_rx_daemon: published frame_id=0 seq=99 2985 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:09:28,574 INFO image_rx_daemon: published frame_id=0 seq=112 194 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:09:29,105 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=3.5 rssi=-72 dump=0102000000000000fe71030c5038204e0000001003009d012a200020002e9160b0583327a7a79300904b2004e998de2003f90c7200fdb2d0e4f54bb2ebd6cb759385fd5def67a9cf6d9c34f986ccff47317335f458498a09bee36618e9d3e000009d524946469600000057454250565038208a0000001005009d012a200020003ec156a24ba7b22331b018080240180968009d3284817faac480029c97f01d55ad2213291d6a0000fee9dc8e866dd057ffc580ec3d9572bed365eadf1ff532ff26c4a161e85fa3ffa8a2e5ff2b144bfa464073afd9f368c1d0baac0bdf7d7e5c9fd5347a57df42ba9ae75f989fce1b7b1dfffaffb7baf682e40b0c + +2026-08-24 17:09:30,355 INFO image_rx_daemon: published frame_id=0 seq=118 194 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:09:31,932 INFO image_rx_daemon: published frame_id=0 seq=119 2915 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:09:32,104 INFO image_rx_daemon: published frame_id=0 seq=126 216 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:09:33,211 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=2.5 rssi=-73 dump=01c20000000000003e7f086ca600000057454250565038209a0000005005009d012aa00020003ec158a34da6a532b2280aaa5018096a009d32ddfb071007a001b0014b4be0866640565ea85084ec4200fee6b423a8cc2e5565291ffdc7e72f9c683ec46c03ecc218aeb5249ec627139af86ff1e1c0c5f2196a73fc1b7a3463e0093765f245923139812e07933afe41068105f21a64df10fd0fc28745c4d2e62d99f3505feea377dde850cfd635234a114345d6e04000b552494646ae000000574542505650f820b20000003000009d012a200020003ec152a24bc7aca322240d50f018090c009d3284800610022060bf029f1be13de3feb21edf03 + +2026-08-24 17:09:33,887 INFO image_rx_daemon: published frame_id=0 seq=132 214 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:09:35,634 INFO image_rx_daemon: published frame_id=0 seq=140 180 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:09:36,175 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=6.5 rssi=-73 dump=c107c00c00000000fe8d030c4e4caa297dbe0172a68bfdbf54007e524946466800000057654250565078394d919100389e000d01232000209937c85ca84eb48924532b0b0280180964009d32ecfa75aac480010a00a9f9b468af9a6000fed033f27b3b332fa093714e7f0df4cf5d42d23bd72d03289b490f8ab207ef17d03333f42439b9b0a4c259610000f752494646f00000005745425056503820e40000007006009d012a200020003edd66ac5128a52432280802401b896c009d2f81a41faaa6c03f633d1d1cbfd6607f0054523ca5aa8f6e2e618b722f11dc0000feeff9d1325f6e82bffe9a47ff32bfff32beb1df6db35af53790b66dab9e + +2026-08-24 17:09:37,008 INFO image_rx_daemon: stats: rx_frames=716 rx_decode_err=0 frames_published=126 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=23 parity_recon=0 + +2026-08-24 17:09:37,008 INFO image_rx_daemon: air_gap: n=74 dt_med=117127us dt_p95=234129us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 17:09:37,009 INFO image_rx_daemon: air_gap_hist(ms): <120:53 <200:15 <400:6 + +2026-08-24 17:09:37,010 INFO image_rx_daemon: rx_rf: n_rssi=74 n_snr=74 rssi[min/med/max]=-73/-72/-71 snr[min/med/max]=5.0/6.0/6.0 + +2026-08-24 17:09:37,010 INFO image_rx_daemon: phase_telemetry: valid=74 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 17:09:37,011 INFO image_rx_daemon: air_gap_by_class: seq: n=57 med=117.1ms | boundary: n=10 med=172.9ms | post_loss: n=5 med=234.1ms + +2026-08-24 17:09:37,011 INFO image_rx_daemon: lost_frag_idx: n=5 idx0=0 (0.00% of idx0 arrivals) other=5 (7.25%) verdict=not-clustered | top 3:2 8:2 4:1 + +2026-08-24 17:09:37,012 INFO image_rx_daemon: frag_reordered: 2 late out-of-order arrivals had a provisional loss retracted (in-order assumption violated — see RS-11.4) + +2026-08-24 17:09:37,656 INFO image_rx_daemon: published frame_id=0 seq=146 210 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:09:37,658 INFO image_rx_daemon: published frame_id=0 seq=146 214 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:09:39,238 INFO image_rx_daemon: published frame_id=0 seq=149 2923 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:09:39,691 INFO image_rx_daemon: published frame_id=0 seq=154 243 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:09:39,692 INFO image_rx_daemon: published frame_id=0 seq=154 202 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:09:41,261 INFO image_rx_daemon: published frame_id=0 seq=157 2915 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:09:41,639 INFO image_rx_daemon: published frame_id=0 seq=162 229 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:09:41,640 INFO image_rx_daemon: published frame_id=0 seq=162 200 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:09:43,103 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=5.5 rssi=-73 dump=0102000000000000fea50b0c08026020096c009d3284802f99de87280e901e00175ffa44bfb55d600e5feb303fb32b57720fb49495e2c8216b01af2ce4200000fef379b2831b07ca18940fbc1019c88effede391f6f37f6f37fdae5c1e62d192becf9f5b316b11d2a6d5ee8b3c6a0599ff011e4a0f4ad22a14c72c61b872eeb539fc623057c5e0d27355d010a972d7d0b8571938a65ef25d442c06092a1da3810239b7dfc4a8f35ca337b8d9182a9308bb9580bdd72ccef42ec026a77a284ef7af90b76b658256acaa37f18222026d504b444af850695052414755065538205c8c040c5c3700ad018a8a9aa2aa3e51553647b42523b32808028018 + +2026-08-24 17:09:43,680 INFO image_rx_daemon: published frame_id=0 seq=170 242 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:09:43,680 INFO image_rx_daemon: published frame_id=0 seq=170 228 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:09:45,247 INFO image_rx_daemon: published frame_id=0 seq=173 2897 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:09:45,401 INFO image_rx_daemon: published frame_id=0 seq=178 190 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:09:45,575 INFO image_rx_daemon: published frame_id=0 seq=186 233 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:09:47,013 INFO image_rx_daemon: stats: rx_frames=788 rx_decode_err=0 frames_published=139 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=25 parity_recon=0 + +2026-08-24 17:09:47,014 INFO image_rx_daemon: air_gap: n=72 dt_med=117177us dt_p95=217568us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 17:09:47,015 INFO image_rx_daemon: air_gap_hist(ms): <120:52 <200:12 <400:8 + +2026-08-24 17:09:47,015 INFO image_rx_daemon: rx_rf: n_rssi=72 n_snr=72 rssi[min/med/max]=-73/-73/-72 snr[min/med/max]=5.0/6.0/6.0 + +2026-08-24 17:09:47,016 INFO image_rx_daemon: phase_telemetry: valid=72 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 17:09:47,016 INFO image_rx_daemon: air_gap_by_class: seq: n=60 med=117.1ms | boundary: n=11 med=180.1ms | post_loss: n=1 med=270.3ms + +2026-08-24 17:09:47,017 INFO image_rx_daemon: lost_frag_idx: n=1 idx0=0 (0.00% of idx0 arrivals) other=1 (1.61%) verdict=not-clustered | top 11:1 + +2026-08-24 17:09:47,142 INFO image_rx_daemon: published frame_id=0 seq=187 2919 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:09:47,356 INFO image_rx_daemon: published frame_id=0 seq=188 227 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:09:48,928 INFO image_rx_daemon: published frame_id=0 seq=189 2901 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:09:50,163 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=-10.2 rssi=-58 dump=0102000000000000fec1090c00f003009d012a200020003ec15aa74e342523b22808028018096400a72da00042802a7e6d1a2d6b6000fee64f2d825ba0a38c4ff24bd49f9579a72e7079ef9d914a723418cd96269407cd15d93e47f8c7872d989a000000006d524946466600000057454250565038205a0000007004009d012a200020003ec15aa74eb42523b32808028018096400a923c2f92c480010a00a9f9b468b15600000fe9323aa2b7415f9abdaaa007db1317cf75ab48ef63087f88a6bc155f534b6ec895fe74c69e9fecb20a2a00000c1524946461a00000a5745425056503820ae0000005006009d0122a00410030df31ea1453229aa + +2026-08-24 17:09:50,947 INFO image_rx_daemon: published frame_id=0 seq=194 243 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:09:50,948 INFO image_rx_daemon: published frame_id=0 seq=194 196 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:09:52,559 INFO image_rx_daemon: published frame_id=0 seq=201 2959 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:09:57,021 INFO image_rx_daemon: stats: rx_frames=863 rx_decode_err=0 frames_published=145 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=27 parity_recon=0 + +2026-08-24 17:09:57,022 INFO image_rx_daemon: air_gap: n=75 dt_med=117156us dt_p95=216620us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 17:09:57,023 INFO image_rx_daemon: air_gap_hist(ms): <120:56 <200:12 <400:7 + +2026-08-24 17:09:57,023 INFO image_rx_daemon: rx_rf: n_rssi=75 n_snr=75 rssi[min/med/max]=-73/-73/-72 snr[min/med/max]=5.0/6.0/6.0 + +2026-08-24 17:09:57,024 INFO image_rx_daemon: phase_telemetry: valid=75 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 17:09:57,025 INFO image_rx_daemon: air_gap_by_class: seq: n=60 med=117.1ms | boundary: n=8 med=189.5ms | post_loss: n=3 med=234.3ms + +2026-08-24 17:09:57,025 INFO image_rx_daemon: lost_frag_idx: n=3 idx0=0 (0.00% of idx0 arrivals) other=3 (4.35%) verdict=not-clustered | top 9:2 2:1 + +2026-08-24 17:09:57,026 INFO image_rx_daemon: frag_reordered: 4 late out-of-order arrivals had a provisional loss retracted (in-order assumption violated — see RS-11.4) + +2026-08-24 17:09:57,188 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=6.0 rssi=-73 dump=0102000000000000fed70a0c580000005003009d012a200020003ec15aa74e342523b228080280180964009d2faf013f7bdf8000fedb0db91c9d9911892fea2630df7dbdd1accc7d35ea4b37f0aae8534e75ce23e74ff2516ccf866c331336f3bf99a83af15de0006f52494646680000005745425c5a5038205c0000007004009d012a300020003ec11c2e86be2729a368081380181964409d2ba1035501814898aa96c112e62a453090dfdeb3c2cb8dfc6fda3e6bdf5fc5d19bf0ade51f8db4f8f691924faff5eea2a190ae20132a84972607c4e648f00000f152494646ea0000005745425056503820de000000b006009d012a200020003ef964 + +2026-08-24 17:09:57,863 INFO image_rx_daemon: published frame_id=0 seq=222 238 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:09:57,864 INFO image_rx_daemon: published frame_id=0 seq=222 178 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:09:59,880 INFO image_rx_daemon: published frame_id=0 seq=234 210 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:09:59,881 INFO image_rx_daemon: published frame_id=0 seq=234 212 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:01,423 INFO image_rx_daemon: published frame_id=0 seq=237 2897 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:01,827 INFO image_rx_daemon: published frame_id=0 seq=242 237 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:01,828 INFO image_rx_daemon: published frame_id=0 seq=242 206 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:03,429 INFO image_rx_daemon: published frame_id=0 seq=245 2985 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:03,834 INFO image_rx_daemon: published frame_id=0 seq=250 227 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:03,835 INFO image_rx_daemon: published frame_id=0 seq=250 202 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:03,836 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=11 snr=-12.0 rssi=-115 dump=fb0c49e3e0a0072bb801b2 + +2026-08-24 17:10:04,243 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=5.8 rssi=-72 dump=0102000000000000fefd020bd0c45c4de00000fec38ad182e793fe31b0e1fe8a230c5be207c034981f030e831a0638b23de18f516f1445366a03a6b8294a83be7444b37fc66e72e10fe7f6737b1e4c6226b12fe2b6f9859030fff171ff2d3a0ecb817104e21100aea3de439a3506aee924740ff97266cfdc052a0acec8fbd0517e8ca84c3a5fb7539508b38364b200006b5249464664000000574542505650382058000000f003009d012a200020003ec15ca64eb42523b32808028018096400a90da00042802a7e6d1a2d6b6000fee7cf5dec6172a44af3f47fddffa920ff4db331f4ed39756f55438f3ed1512c608f30c5f1e9584aa2a985d800 + +2026-08-24 17:10:05,577 INFO image_rx_daemon: published frame_id=0 seq=2 230 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:05,748 INFO image_rx_daemon: published frame_id=0 seq=4 228 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:07,027 INFO image_rx_daemon: stats: rx_frames=934 rx_decode_err=0 frames_published=157 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=31 parity_recon=0 + +2026-08-24 17:10:07,028 INFO image_rx_daemon: air_gap: n=71 dt_med=117242us dt_p95=219350us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 17:10:07,029 INFO image_rx_daemon: air_gap_hist(ms): <120:48 <200:14 <400:9 + +2026-08-24 17:10:07,030 INFO image_rx_daemon: rx_rf: n_rssi=71 n_snr=71 rssi[min/med/max]=-74/-73/-72 snr[min/med/max]=5.0/6.0/6.0 + +2026-08-24 17:10:07,031 INFO image_rx_daemon: phase_telemetry: valid=71 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 17:10:07,031 INFO image_rx_daemon: air_gap_by_class: seq: n=57 med=117.1ms | boundary: n=11 med=176.9ms | post_loss: n=3 med=234.1ms + +2026-08-24 17:10:07,032 INFO image_rx_daemon: lost_frag_idx: n=3 idx0=0 (0.00% of idx0 arrivals) other=3 (4.76%) verdict=not-clustered | top 10:2 2:1 + +2026-08-24 17:10:07,353 INFO image_rx_daemon: published frame_id=0 seq=11 2991 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:07,545 INFO image_rx_daemon: published frame_id=0 seq=12 233 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:09,152 INFO image_rx_daemon: published frame_id=0 seq=13 2991 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:09,346 INFO image_rx_daemon: published frame_id=0 seq=18 235 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:10,947 INFO image_rx_daemon: published frame_id=0 seq=19 2974 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:11,263 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=5.8 rssi=-73 dump=0182800800000000fe19010b52494646dc000000574542501636382085505089300b009d012a200020003eb94a9d7aae2222b33c0c027006096c009d2b82389ed675809625de31fdaa76aaafb8cc0fe01fa00cd6ee40ae438d7df58aed1dc71554f7c6426fdc730000fed70860345f56ff56d3ac7fe6c0ffecdffe3d6746218da2e17ed3d6f66f812caa06e9095274abe4e546bb6a19d1b1ca907fe647a93fddadf67ba38276c294bc23ae3533cba86221a03b69b5d19a345d8ef94182ffebf328dbc3083bdbadf167b886edb5463819b10d5903461b267362ac28040c414e945dc03a39ca3dadb9f3e177057e1960008752494646800000005745 + +2026-08-24 17:10:11,382 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=3.0 rssi=-72 dump=01c2000000000000fe19020b382074000c005004009d012a200020003ec45aa74ea7a523b3280a0269180a6304ae4b0000d1093dbf85a6dd7ec363e4a000f973f6a1ddf235a3f3fe8206ed5325779ed7279fe5465547c0a383bd969df73f9eb8b232f8b36364bef0adad9bd46d6fc1b81764c6fdb091acdffb8cf0ecf91eeadee3d4880000006c52494646620000005745e25056503820560000007004009d012a200020003e815aa74e382523b228080280180964009d331452c8b8b400042802a7e6979b9b2800fed89d47c585c9183cfedb8616098fddbc6bba90325b8aa3808292809341747b8e52acc756e800000071524946466a00000057 + +2026-08-24 17:10:12,907 INFO image_rx_daemon: published frame_id=0 seq=26 241 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:12,908 INFO image_rx_daemon: published frame_id=0 seq=26 190 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:14,488 INFO image_rx_daemon: published frame_id=0 seq=33 2910 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:14,855 INFO image_rx_daemon: published frame_id=0 seq=38 192 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:14,855 INFO image_rx_daemon: published frame_id=0 seq=38 194 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:16,427 INFO image_rx_daemon: published frame_id=0 seq=41 2905 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:16,817 INFO image_rx_daemon: published frame_id=0 seq=46 226 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:16,818 INFO image_rx_daemon: published frame_id=0 seq=46 228 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:16,886 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=184 snr=-12.5 rssi=-116 dump=7ebafdfc6971490c9b2e2c937979e46146cc74081d87294135fc62b87b004096752ebaed48396259adf8f27ee64e4a9da1ddd3c89facb11b8f9a8744537e54ccb9cfc814f85a452a08e5cd73098cb6c61cd739a1cfa8223fb978eaed8dfb99c42965cf621db8ac6a6a6cbb78382cfd1d9a57c892f5b9b669463d7ea1407ba703b27c5f7bfe88976410b1d755a6ec61be5e3b498dae5ea7ed2add23d964093809ba9078bad0bc0521befe1e8311df11996b94a17cb78090f8 + +2026-08-24 17:10:17,021 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=2.2 rssi=-72 dump=01c20000000000003e3b000c00080c082800ffff0f00000800000000009073524946466c0004005745425056543820600009005004001d012a800020003ec13ca74eb4e523b32808028018c964009d332547fb200042882a1e6d1a2be69800feeeb7d37b3a5cab7fe7a67fa4dfe5be07f5c1ccd3375ab48ef5663834d29b7c70ae005e162347a72e11013ae9ead906100000006ff249464668000005574542505e5038205c0000005004009d01aa200020003ec15ca74e142523b324080240180964009d3363882f200c42b02a7e5cdae3e94000fadffef62762b55bef67177b0d482d75bb1464c4dab8d1a5bd2051ee0f25a7c45c0ab9f185bef4 + +2026-08-24 17:10:17,035 INFO image_rx_daemon: stats: rx_frames=1005 rx_decode_err=0 frames_published=170 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=32 parity_recon=0 + +2026-08-24 17:10:17,035 INFO image_rx_daemon: air_gap: n=71 dt_med=117135us dt_p95=218530us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 17:10:17,036 INFO image_rx_daemon: air_gap_hist(ms): <120:51 <200:14 <400:6 + +2026-08-24 17:10:17,036 INFO image_rx_daemon: rx_rf: n_rssi=71 n_snr=71 rssi[min/med/max]=-74/-73/-72 snr[min/med/max]=5.0/6.0/6.0 + +2026-08-24 17:10:17,037 INFO image_rx_daemon: phase_telemetry: valid=71 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 17:10:17,037 INFO image_rx_daemon: air_gap_by_class: seq: n=60 med=117.1ms | boundary: n=10 med=179.5ms | post_loss: n=1 med=351.1ms + +2026-08-24 17:10:17,038 INFO image_rx_daemon: lost_frag_idx: n=2 idx0=0 (0.00% of idx0 arrivals) other=2 (3.17%) verdict=not-clustered | top 1:1 2:1 + +2026-08-24 17:10:18,282 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=6.5 rssi=-72 dump=0102000000000000fe310b0ca4b7e800c015096c009d3284799ec03f003a2a300263ff4903c803d955f68abe53303f807e8014e3e6ee81b6558600f27c0142cfe791dbe237d000feeb1972816beb01d9031ff487abd468fb13db1ebff4d16dc676fc2fd6736ecaf13013bfba54f47d68f8cd6cb03b916754154cd7eeedcf4f3f29b777af01db023fdc7e852bfcff2b8a9dafdfa5d79dd4e60eeba0ad59a35188e1aa45a2521a2ac6e09a9c5feaac231883f479aeedbf4c04eff400cdfb5c77091ad6aa0344926fba4584522c0ab8400073524946466c0000005745425056503820600000005004009d012a200020003ec15ca74eb42523b3280802 + +2026-08-24 17:10:18,821 INFO image_rx_daemon: published frame_id=0 seq=54 238 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:18,823 INFO image_rx_daemon: published frame_id=0 seq=54 202 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:20,294 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=3.2 rssi=-70 dump=8e6ebc67e06bf84156e659d7cbb4681642d41df68bd7d36ac87a01a28c8570ed969019fe237feac642c196e3530f39a61aac9ffa416e2e24f15c284f04dc89ebf7fd91342fd9b29c348ff15e61332e297aff7f3fc55d9174fe6195b0e45b2c281dc358c6bdcfea3a71ec2c878bcec24ddb47ce39d0ce5cc22314eb7c0373623d7f2c9c644733f02157198a339f6756c32ff2fd3928aac48b31e0ce0fb12f69f149ada20e8893b2402f5bd058398d939567d94d8634aa15e2ccfd060a9d98901761c46da8f6f190e9d5af94283129116fd3c0891c4cd2c2cf6f1f3e015b9254d96ac1ba9697b457b59fa42370f3e6cbedc37e45383e79e3b092f768 + +2026-08-24 17:10:20,859 INFO image_rx_daemon: published frame_id=0 seq=62 232 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:20,860 INFO image_rx_daemon: published frame_id=0 seq=62 194 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:22,470 INFO image_rx_daemon: published frame_id=0 seq=65 2985 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:22,874 INFO image_rx_daemon: published frame_id=0 seq=70 206 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:22,875 INFO image_rx_daemon: published frame_id=0 seq=70 228 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:24,474 INFO image_rx_daemon: published frame_id=0 seq=73 2959 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:24,919 INFO image_rx_daemon: published frame_id=0 seq=78 243 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:24,920 INFO image_rx_daemon: published frame_id=0 seq=78 233 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:25,319 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=6.0 rssi=-73 dump=0102000000000000fe51020c4ea7a523b32808026018096600a92734399fb37083e40004ee4439d34508bd3e39b80000fedee704b47028cb349fcffbb0c882de3ffcee2becdfc41a2e90bf6af64738c99c47fcf2114578c2f3b3583253dd82f1b6bbc300b9dd78d60daab01aea3d0c2702cebc9fc130be4215cbc8580000695249467662300000574542505650382056000000f003009d012a200020003ec15ca64eb42523b32808028018096400b105a0004625683b9627c9953000fedeaa7b6fc2e2e1bc7f47fcd6f60ee4eac691decc94aaec138f416631671315adbc0066ae24e5cc823c00000071524946466a00000057454250565038205e + +2026-08-24 17:10:26,015 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=2.5 rssi=-73 dump=01c2000000000000fe51080c4ea34b27ac2301a80d523018096c009d280226c425806822efc1cc0fa01fa00a9e167234568cda73f641e806e0f3a52c6e0c00feb6198d284d5981ccde9a8cf38cdfccc13ffac7ff6f27368a8a7c66996b1ea7ef67af67f607c11976ba953d4428c893cc94b5ea6660b1ec2bb030bf6437f64d66eabca81afb20ac7332be84ae895d7cfd4624f32fedfa99982c7b0aec134d0f32edbbc69060e3c5968832d72f7c6c91b3d993f1bedbb99daa8d86800c93528946468c0000505145425356503825800000001005009d012a200020007ec15aa74e97a52bb34808026018096650a52734399bb37083e40004ee4439d3 + +2026-08-24 17:10:27,041 INFO image_rx_daemon: stats: rx_frames=1076 rx_decode_err=0 frames_published=180 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=34 parity_recon=0 + +2026-08-24 17:10:27,043 INFO image_rx_daemon: air_gap: n=71 dt_med=117199us dt_p95=234245us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 17:10:27,045 INFO image_rx_daemon: air_gap_hist(ms): <120:48 <200:13 <400:10 + +2026-08-24 17:10:27,046 INFO image_rx_daemon: rx_rf: n_rssi=71 n_snr=71 rssi[min/med/max]=-73/-73/-72 snr[min/med/max]=5.0/6.0/7.0 + +2026-08-24 17:10:27,047 INFO image_rx_daemon: phase_telemetry: valid=71 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 17:10:27,048 INFO image_rx_daemon: air_gap_by_class: seq: n=57 med=117.1ms | boundary: n=9 med=183.6ms | post_loss: n=5 med=257.9ms + +2026-08-24 17:10:27,049 INFO image_rx_daemon: lost_frag_idx: n=5 idx0=1 (10.00% of idx0 arrivals) other=4 (6.06%) verdict=not-clustered | top 11:2 0:1 2:1 8:1 + +2026-08-24 17:10:28,166 INFO image_rx_daemon: published frame_id=0 seq=87 2993 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:28,324 INFO image_rx_daemon: published frame_id=0 seq=88 190 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:29,900 INFO image_rx_daemon: published frame_id=0 seq=95 2903 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:30,053 INFO image_rx_daemon: published frame_id=0 seq=102 204 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:31,671 INFO image_rx_daemon: published frame_id=0 seq=103 2983 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:31,855 INFO image_rx_daemon: published frame_id=0 seq=108 233 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:32,266 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=6.0 rssi=-72 dump=0102000000000000fe6d020b421ffc99726dbad2b36d2a5a68c9d672fb58df23fe6bf3ffc28e001759f7e25d283fff295b04eb27cf84e7e269ceb2b3152a9f9cd1be3bb23b8390524878681b3e5d51775ff5949bf13e3631fc077323e39354f49429fe6a797c8f24f9ea97b00faf2cc77219d7c1d29935473f0a052c8ae163936f7604303648b84558036d341a0a2eca821f6f72f8ccb593fa892a6e33ef4618a1365f8f08ae5b9575c000006b52494646640000005745425056503820580000009003009d012a200020003ec15ca64eb42523b328080280180964009d333218000851d5860000feeb59a6f470b956a9b24afc92e56752544732b1 + +2026-08-24 17:10:35,003 INFO image_rx_daemon: published frame_id=0 seq=115 2934 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:35,459 INFO image_rx_daemon: published frame_id=0 seq=116 243 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:35,460 INFO image_rx_daemon: published frame_id=0 seq=116 231 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:37,018 INFO image_rx_daemon: published frame_id=0 seq=123 2919 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:37,066 INFO image_rx_daemon: stats: rx_frames=1153 rx_decode_err=0 frames_published=190 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=36 parity_recon=0 + +2026-08-24 17:10:37,068 INFO image_rx_daemon: air_gap: n=77 dt_med=117135us dt_p95=214863us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 17:10:37,072 INFO image_rx_daemon: air_gap_hist(ms): <120:58 <200:14 <400:5 + +2026-08-24 17:10:37,072 INFO image_rx_daemon: rx_rf: n_rssi=77 n_snr=77 rssi[min/med/max]=-73/-73/-72 snr[min/med/max]=5.0/6.0/6.0 + +2026-08-24 17:10:37,073 INFO image_rx_daemon: phase_telemetry: valid=77 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 17:10:37,074 INFO image_rx_daemon: air_gap_by_class: seq: n=67 med=117.1ms | boundary: n=9 med=176.2ms | post_loss: n=1 med=233.4ms + +2026-08-24 17:10:37,074 INFO image_rx_daemon: lost_frag_idx: n=1 idx0=0 (0.00% of idx0 arrivals) other=1 (1.45%) verdict=not-clustered | top 2:1 + +2026-08-24 17:10:38,690 INFO image_rx_daemon: published frame_id=0 seq=129 2985 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:39,946 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=3.2 rssi=-71 dump=0102000000000000fe83090b0000005745425056503820580000007004009d012a200020003ec15ca64eb42523b32808028018096400a92dd134022400092532113d62640e714000fee5691d05d52d28468f8523873bc38bb2fbdaadbf77fef78923340f553d7f5413c045dc1c98598e6000006d524946466600000057454250565038205a0000009004009d012a200020003ec15aa64e342523b228080280180964009d2fb17a07112e4000850054fcda345ad6c000feabafc9ececccbaed390c6df504e3fd7733601f639cce9de1b3dc2e8a06cd98ce28e2c44c01762584000000bf52694646b200a0ca5ed9d7905e9c3820ac000000f006009d + +2026-08-24 17:10:41,879 INFO image_rx_daemon: published frame_id=0 seq=137 2959 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:42,287 INFO image_rx_daemon: published frame_id=0 seq=144 212 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:42,288 INFO image_rx_daemon: published frame_id=0 seq=144 208 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:43,898 INFO image_rx_daemon: published frame_id=0 seq=151 2993 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:44,303 INFO image_rx_daemon: published frame_id=0 seq=156 210 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:44,304 INFO image_rx_daemon: published frame_id=0 seq=156 224 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:45,871 INFO image_rx_daemon: published frame_id=0 seq=159 2903 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:46,052 INFO image_rx_daemon: published frame_id=0 seq=166 239 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:47,089 INFO image_rx_daemon: stats: rx_frames=1227 rx_decode_err=0 frames_published=199 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=37 parity_recon=0 + +2026-08-24 17:10:47,092 INFO image_rx_daemon: air_gap: n=74 dt_med=117132us dt_p95=216832us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 17:10:47,095 INFO image_rx_daemon: air_gap_hist(ms): <120:56 <200:11 <400:7 + +2026-08-24 17:10:47,097 INFO image_rx_daemon: rx_rf: n_rssi=74 n_snr=74 rssi[min/med/max]=-73/-73/-72 snr[min/med/max]=5.0/6.0/7.0 + +2026-08-24 17:10:47,099 INFO image_rx_daemon: phase_telemetry: valid=74 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 17:10:47,100 INFO image_rx_daemon: air_gap_by_class: seq: n=60 med=117.1ms | boundary: n=9 med=185.5ms | post_loss: n=2 med=234.5ms + +2026-08-24 17:10:47,101 INFO image_rx_daemon: lost_frag_idx: n=2 idx0=0 (0.00% of idx0 arrivals) other=2 (2.99%) verdict=not-clustered | top 9:1 1:1 + +2026-08-24 17:10:47,101 INFO image_rx_daemon: frag_reordered: 3 late out-of-order arrivals had a provisional loss retracted (in-order assumption violated — see RS-11.4) + +2026-08-24 17:10:47,819 INFO image_rx_daemon: published frame_id=0 seq=172 192 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:49,379 INFO image_rx_daemon: published frame_id=0 seq=173 2897 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:50,961 INFO image_rx_daemon: published frame_id=0 seq=179 2934 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:51,375 INFO image_rx_daemon: published frame_id=0 seq=180 228 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:51,377 INFO image_rx_daemon: published frame_id=0 seq=180 192 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:52,957 INFO image_rx_daemon: published frame_id=0 seq=187 2919 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:53,400 INFO image_rx_daemon: published frame_id=0 seq=192 229 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:53,402 INFO image_rx_daemon: published frame_id=0 seq=192 237 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:54,168 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=5.5 rssi=-73 dump=0102000000000000fec3050b080280180964100d2f77faa8042813b6e5ce2d0cc400fee61fbd2dd3b552ffc65bd02e5569eb9230a6eec0690a6a1e9f6eb93a7f21c74bc1181a988c7cbde3dfff06995c142abd6b3e3800006b52494646640000005745425056503820580000003004009d012a200020003ec15ca64eb42523b32808028018096400a92734399fb37083e400085a2cd20000fecdea6f470b956fd5262600f98c3c2ae0a5d97ddb81bf44e9ef46fcaffe74ff1c48f7ea5cd34fdd6167c00000a5524946469e000000574542505650382092000000f005009d012a200020003ec156a74ca7a4b0b3280aaa6018096a009d3941340379 + +2026-08-24 17:10:55,339 INFO image_rx_daemon: published frame_id=0 seq=200 206 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:55,339 INFO image_rx_daemon: published frame_id=0 seq=200 196 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:56,950 INFO image_rx_daemon: published frame_id=0 seq=203 2991 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:57,113 INFO image_rx_daemon: stats: rx_frames=1301 rx_decode_err=0 frames_published=210 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=39 parity_recon=0 + +2026-08-24 17:10:57,115 INFO image_rx_daemon: air_gap: n=74 dt_med=117167us dt_p95=214069us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 17:10:57,118 INFO image_rx_daemon: air_gap_hist(ms): <120:55 <200:13 <400:6 + +2026-08-24 17:10:57,119 INFO image_rx_daemon: rx_rf: n_rssi=74 n_snr=74 rssi[min/med/max]=-73/-73/-72 snr[min/med/max]=5.0/6.0/7.0 + +2026-08-24 17:10:57,120 INFO image_rx_daemon: phase_telemetry: valid=74 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 17:10:57,120 INFO image_rx_daemon: air_gap_by_class: seq: n=64 med=117.1ms | boundary: n=9 med=177.6ms | post_loss: n=1 med=234.1ms + +2026-08-24 17:10:57,121 INFO image_rx_daemon: lost_frag_idx: n=1 idx0=0 (0.00% of idx0 arrivals) other=1 (1.52%) verdict=not-clustered | top 5:1 + +2026-08-24 17:10:57,126 INFO image_rx_daemon: published frame_id=0 seq=210 233 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:58,734 INFO image_rx_daemon: published frame_id=0 seq=211 2974 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:10:58,895 INFO image_rx_daemon: published frame_id=0 seq=216 186 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:00,455 INFO image_rx_daemon: published frame_id=0 seq=217 2897 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:00,627 INFO image_rx_daemon: published frame_id=0 seq=224 234 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:01,035 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=2.8 rssi=-73 dump=01020000000000003ee1020b5c00000038040294012a200020503ec15cc64e2425e3b32808028018036400ae5541380c0850054fcda3457c640608feeed9b724d3bb30dd63c64d5db1f9ea8ff50b48ef6517ffe96bc0094cbb8cb972c697b4ed1e6c4a191c2d42d7908c00006f52434646ae0000005745425056503b205c0000007004009d312c200010803ef15a604e642f2c02e80a12e0980964059f3b364ec8b8721004620807a8e7d8b12080fec731e87ec9f886d877d046a4662c86a70aef63b0423e75644cbed1d10a0ccb7cfd718fa4ddf0f6c4cd8588c6001013584d46766c00608c57454356565a342050a600585a04049dc7aa30602c + +2026-08-24 17:11:01,727 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=-1.5 rssi=-70 dump=6ce31e343399d3673d4cafc09f24547f23de67b678c82562e2fa2f87047af7f94a92ff0a3caf54b5a95bfef054ec62b0cd876ebb07ec517bead5076ec1fc7cd43181c238c6b0abcad96be74db54b35c30384073bdde3d78d3fa638e740f07cb3daebf0b4ac5150c8d453d8faf5d0615cd58cc016c48a1bdf62e5875800fea49487aef4dead6ece1d149c6afa9a824a0d73319a24f4f05c337fa31e44144e50f5dc4687402b9991ca618e6ee5613482c507ff3f23dd9571d7dd691953e7cbc4c3e29f4f53ff5334bbba5e8aaf6041be9433cd0dd1f6d84c51733d914b3fdeb4ae02a4dd79b8878f9214a03f484f867ce0f898cff83b04866561a4a2 + +2026-08-24 17:11:02,383 INFO image_rx_daemon: published frame_id=0 seq=230 238 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:04,179 INFO image_rx_daemon: published frame_id=0 seq=238 232 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:05,776 INFO image_rx_daemon: published frame_id=0 seq=239 2975 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:06,191 INFO image_rx_daemon: published frame_id=0 seq=244 220 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:06,192 INFO image_rx_daemon: published frame_id=0 seq=244 222 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:07,135 INFO image_rx_daemon: stats: rx_frames=1375 rx_decode_err=0 frames_published=220 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=41 parity_recon=0 + +2026-08-24 17:11:07,137 INFO image_rx_daemon: air_gap: n=74 dt_med=117145us dt_p95=226723us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 17:11:07,140 INFO image_rx_daemon: air_gap_hist(ms): <120:53 <200:15 <400:6 + +2026-08-24 17:11:07,140 INFO image_rx_daemon: rx_rf: n_rssi=74 n_snr=74 rssi[min/med/max]=-74/-73/-71 snr[min/med/max]=4.0/5.0/6.0 + +2026-08-24 17:11:07,141 INFO image_rx_daemon: phase_telemetry: valid=74 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 17:11:07,142 INFO image_rx_daemon: air_gap_by_class: seq: n=59 med=117.1ms | boundary: n=12 med=177.1ms | post_loss: n=2 med=234.3ms + +2026-08-24 17:11:07,143 INFO image_rx_daemon: lost_frag_idx: n=2 idx0=0 (0.00% of idx0 arrivals) other=2 (3.12%) verdict=not-clustered | top 8:1 2:1 + +2026-08-24 17:11:07,143 INFO image_rx_daemon: frag_reordered: 1 late out-of-order arrivals had a provisional loss retracted (in-order assumption violated — see RS-11.4) + +2026-08-24 17:11:07,768 INFO image_rx_daemon: published frame_id=0 seq=247 2915 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:07,922 INFO image_rx_daemon: published frame_id=0 seq=254 178 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:08,094 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=-10.8 rssi=-58 dump=0102000000000000feff000c000f0c082000ffff070000000000000000006f524946466800000057454250565038205c0000007004009d012a200020003ec15ca74eb42523b328080280180964009d2f81fa04480010a00a9f9b468b5ad80000feed67bf38f54bb2ffccd1cfede6eb73a6ebf26ef66d89ef4e1707e461cf6df8583304bf09987ec754239d4af580006b5249464664000000574542505650382058000000b003009d012a200020003ec15aa74eb42523b328080280180964009d19a0004cebd96f8861b000fed27bf27b3b332fd5df63be7dfd783df00ec91a6f9a907c87d1744a30db2c6d9254cde466003b4b8225010c15b37040 + +2026-08-24 17:11:09,687 INFO image_rx_daemon: published frame_id=0 seq=4 204 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:11,300 INFO image_rx_daemon: published frame_id=0 seq=5 2953 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:11,718 INFO image_rx_daemon: published frame_id=0 seq=10 228 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:11,720 INFO image_rx_daemon: published frame_id=0 seq=10 190 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:13,326 INFO image_rx_daemon: published frame_id=0 seq=13 2991 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:13,731 INFO image_rx_daemon: published frame_id=0 seq=18 243 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:13,732 INFO image_rx_daemon: published frame_id=0 seq=18 196 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:15,202 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=5.5 rssi=-72 dump=0102000000000000fe150b0c64ad82020db49f20334daad64f45979d07ade20ffd215be843dcb5ca20f1e07a49192bffe6b9eaee9592b6081996db42dcabd312b1448d18eb1bc9475d3009b5d6fe14deabfe4ec33a2d0d960417df38fd1600634d44028152696644ba0003200745420556505826ce40000a90050c9f010a313032421ea77aa34ee7a523b328080260180966009d2faf1560065cc0ae940bdb7e00feeb8bf6e9e41395db4736498ff78935ac7ccc0cd8fa59f7e462dcfc99ff51fdb3ff8fa70fd3fe8bbfea005b7ffc127ffc127e64248f9c01d9327e677bbd73fc2ddd94dad9bead9a3d2c887d7c9fbb09a1d8bd2ab0cb67012a15 + +2026-08-24 17:11:15,771 INFO image_rx_daemon: published frame_id=0 seq=26 233 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:15,773 INFO image_rx_daemon: published frame_id=0 seq=26 237 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:16,050 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=1.8 rssi=-69 dump=aec7dbaeb65da641ad67bd19da7892cc46de05748b51a8ddd4e9c6a4ecca5f16c45511d4cf507b2a68bc298b4d07d341f01109374e65a302b3c41465ba6b83135fee125b733e47ab9817be1d860993835a26a7c2bc3cb530532f07d79ad347e8c9391296fe8f8cdf3c653eec3dc8eb7dec803885a6ceddb6a47af453ca66dd87965e7fffc5f897c30094c49286e74f0ed5ff5f3e89e245cee7cb9c9b98fbf952265b0f4630fafa795d1fd61d007b3937ef26a2049b68397ff37e91428657a5610b0f2ba687cdefd02369a38d153171062bf3c6e2ff5af8f8dcd3ea8ceb6211efa9f9e235277fe0dfbf2e154d4b5206bf8bb6f100a94c7b1d857293 + +2026-08-24 17:11:17,149 INFO image_rx_daemon: stats: rx_frames=1448 rx_decode_err=0 frames_published=231 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=43 parity_recon=0 + +2026-08-24 17:11:17,151 INFO image_rx_daemon: air_gap: n=73 dt_med=117179us dt_p95=234303us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 17:11:17,155 INFO image_rx_daemon: air_gap_hist(ms): <120:54 <200:10 <400:9 + +2026-08-24 17:11:17,155 INFO image_rx_daemon: rx_rf: n_rssi=73 n_snr=73 rssi[min/med/max]=-73/-73/-72 snr[min/med/max]=5.0/6.0/7.0 + +2026-08-24 17:11:17,156 INFO image_rx_daemon: phase_telemetry: valid=73 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 17:11:17,157 INFO image_rx_daemon: air_gap_by_class: seq: n=60 med=117.2ms | boundary: n=9 med=178.2ms | post_loss: n=3 med=242.2ms + +2026-08-24 17:11:17,158 INFO image_rx_daemon: lost_frag_idx: n=3 idx0=1 (10.00% of idx0 arrivals) other=2 (3.03%) verdict=CLUSTERED-AT-0 | top 0:1 11:1 1:1 + +2026-08-24 17:11:17,159 INFO image_rx_daemon: frag_reordered: 1 late out-of-order arrivals had a provisional loss retracted (in-order assumption violated — see RS-11.4) + +2026-08-24 17:11:17,527 INFO image_rx_daemon: published frame_id=0 seq=34 233 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:17,695 INFO image_rx_daemon: published frame_id=0 seq=42 241 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:19,277 INFO image_rx_daemon: published frame_id=0 seq=43 2915 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:19,439 INFO image_rx_daemon: published frame_id=0 seq=44 230 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:21,010 INFO image_rx_daemon: published frame_id=0 seq=45 2897 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:21,208 INFO image_rx_daemon: published frame_id=0 seq=50 232 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:22,187 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=5.8 rssi=-73 dump=041200050000000032330b2c370412912a9e2d6b5c8a6df99463fc9fb8c5567993ddd5a03c32b84d63019a77d174a3772fd903c58b5bbb8ed0c3e3155ae075aa4a3edc1bc715e0a7a0a58000006f524946466800000057454250565038205c0000003004009d012a200020003ec15aa74e342523b228080280180964009d328482cfa0719b64000925c6580000fedffebc2742e55bfa9a25dcefcc17f02eb1e663e882c4cde1c34fd45e383f3a7f8d01420323c0e1a0aa0efda43a0000008f524946468800000057454250565038207c0000001005009d012a200020003ec152a34c27b12332b018080250180968009d32847f17aec480029c97cb + +2026-08-24 17:11:24,423 INFO image_rx_daemon: published frame_id=0 seq=57 2953 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:24,860 INFO image_rx_daemon: published frame_id=0 seq=58 224 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:24,861 INFO image_rx_daemon: published frame_id=0 seq=58 238 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:25,627 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=2.8 rssi=-73 dump=01c20000000000303e41050c009d3333882f200042802a7e6d2aed6b6000feed21bf2793b332ffccddfe517fc02de4ae296b8d3f7b3604f7dc0a25c1f830a5f08e7f5d666e9e7fc2223dbdc7c030615649154a6600060ac7454450665078205a0c0330d00b00ce0d2b11c620003ded5a97eef4252353283804880809e802ac2fd8fa698828c3ea00feb1f7e24bfd3366b61b00f034c98a61d7f4e255174fc64f5d98ec1f42e2b195cbb6b585515f6c01de6b81a281273e2ec59ae38f2a97940147256a003560d74521591e60382e90601c0840a0049561a1403c26093ec14ea77c072cb0e3a4049a009c015a8c9c3e40448019190c701aa8067e67 + +2026-08-24 17:11:26,871 INFO image_rx_daemon: published frame_id=0 seq=70 208 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:26,872 INFO image_rx_daemon: published frame_id=0 seq=70 212 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:27,166 INFO image_rx_daemon: stats: rx_frames=1520 rx_decode_err=0 frames_published=242 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=45 parity_recon=0 + +2026-08-24 17:11:27,167 INFO image_rx_daemon: air_gap: n=72 dt_med=117253us dt_p95=225484us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 17:11:27,167 INFO image_rx_daemon: air_gap_hist(ms): <120:50 <200:13 <400:9 + +2026-08-24 17:11:27,168 INFO image_rx_daemon: rx_rf: n_rssi=72 n_snr=72 rssi[min/med/max]=-74/-73/-71 snr[min/med/max]=5.0/6.0/6.0 + +2026-08-24 17:11:27,168 INFO image_rx_daemon: phase_telemetry: valid=72 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 17:11:27,169 INFO image_rx_daemon: air_gap_by_class: seq: n=56 med=117.2ms | boundary: n=12 med=178.6ms | post_loss: n=2 med=234.3ms + +2026-08-24 17:11:27,169 INFO image_rx_daemon: lost_frag_idx: n=2 idx0=0 (0.00% of idx0 arrivals) other=2 (3.23%) verdict=not-clustered | top 7:1 5:1 + +2026-08-24 17:11:27,170 INFO image_rx_daemon: frag_reordered: 2 late out-of-order arrivals had a provisional loss retracted (in-order assumption violated — see RS-11.4) + +2026-08-24 17:11:28,462 INFO image_rx_daemon: published frame_id=0 seq=73 2959 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:28,879 INFO image_rx_daemon: published frame_id=0 seq=78 233 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:28,880 INFO image_rx_daemon: published frame_id=0 seq=78 206 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:29,173 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=-11.2 rssi=-60 dump=0102000000000000fe51010c52494646c80000005745425056503820bc000000b006009d012a200020003ec14ea34b27a42331a80d523018096c009d280026c425806822afc1cc0fe01fa00c9e167234568cda73f642e806e0f3a52c6e0000feb6598d282d5981ccfe9a8cf38cdffcc13ffac7ff6f27368a8a7c6699ad1ea7ef67af67f687911976baa53d4428a893cc94b5ea6660b1ec2bb034bf6437f64d66eabca81afb20ac7332b884ae895d74fd4624f32fedfa99982c7b0aec174d0f32edbb069060e3cf968892d72f7c6c91b3d913f1be9bb99daa8d86800093524946468c0000005745425056503820800000001005009d612c2086a888 + +2026-08-24 17:11:29,521 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=249 snr=-0.8 rssi=-69 dump=d8efb9218a9eb7a6d855d6487bf2e2ce5e31d443e4598a0830be88313fdb611eb910a82bfb615d58a76778024c208c628c548143f70685d4ddd19456a3766e86286dd0691b270fb442c497d621cda737045c6de232abe477d317b0d0d8ac5fe22a76cb719492b4c66f100d469cd3196819f5a1429d1c7ffc42c9b62b4ab7c56c6f834d2564b22f10c26f998786bc9db1c9a8e494f927a821c31ac024d4e732c50056e14fba7de6e587d195efc4763f55ddf4be79b272374634c2b8735064800fc8c3458da25239c60383cad111ce4eb1e2535e65183184e9a90143d098ddc0ad86ccdc99eb58dcfb62d562161db06e76057349de0b190db5ed + +2026-08-24 17:11:30,388 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=146 snr=-12.0 rssi=-115 dump=3d12451ed1f0b65f6bd6af910c6cc470f576087b65b66b979f17b99a26855aca3845977ad62c97e5de700e2dd4b950c30c1dc8d1cbd19cd7c99a4dd3a1fd4a1838b6c7582a20f6c9c57e26443a032f36cd7b0e69e35a6dd97d6dda55c8648a5a178da378a64f1af9f6d447f2bd481f0db0755d65667591025ef5be469f203655a76485848d45e862f706fc6c6ff35d85c86f + +2026-08-24 17:11:30,886 INFO image_rx_daemon: published frame_id=0 seq=86 198 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:30,887 INFO image_rx_daemon: published frame_id=0 seq=86 196 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:31,286 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=-0.5 rssi=-68 dump=df85f05fb9f007191e1e57d531fc3271847a6e884dbc2d2a7a8ff67fd7fa9ee07729eaafc9a4252d0c047858d9f2e2f7e50436f9cfdb565b1048c8ae3fb3f91e267757aeaab34970789b92356f9f63c00ccc227e3e9aa87e8f30ca05cccafe304181c136ea6eb771020967987e24b4af2079d0b38b71cb8c29af5585fc7f16451306c7bc7432f6720566a6f067a5bdd3ea195aa216a2c29d60fc18df358796d0be2c9bf10ef9924b2919283d87c2caeeb96c41e20e4c2e534bb9e623033495abcfeb4f0a41798f9c6a15741d16fa5e30e7dfd66ed8c12a70f2e7a323bf4316b6b7a5856583faada0dfdf8d9af08925173fe111dee8e0b76e4313f1 + +2026-08-24 17:11:32,827 INFO image_rx_daemon: published frame_id=0 seq=94 214 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:32,828 INFO image_rx_daemon: published frame_id=0 seq=94 222 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:34,400 INFO image_rx_daemon: published frame_id=0 seq=97 2910 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:34,786 INFO image_rx_daemon: published frame_id=0 seq=102 190 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:34,787 INFO image_rx_daemon: published frame_id=0 seq=102 243 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:36,154 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=218 snr=-10.8 rssi=-93 dump=bafe06b0f4adc4860a487e0b20006ff6980bb4cbba9a08a77d0f89f53a7f322802f13df5a361420bc2cebd25d4dea214fdd75cd701a3856669d85fa5eeefc7c12790f1363db31ccb574f7e832901193e578cd8d0d6a43f986f75f0fb2b33323b508eda7321825cdcaf0899b96a06b0d2eca43d4e5f95197b80270b351a9c78cf0769cd7758a2fea8ecec3cafed9ace87a72fb8e964d5a2b232f09f68b6ea2edc5a2e3a4ca68c4731decf3d2d5ecf9bec572c1b2dc5ff3fce226e2ad27076e48d112725d321631f81a02d6264d3085dbe23660a91f8858e87ded5 + +2026-08-24 17:11:36,765 INFO image_rx_daemon: published frame_id=0 seq=110 239 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:36,766 INFO image_rx_daemon: published frame_id=0 seq=110 233 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:37,179 INFO image_rx_daemon: stats: rx_frames=1589 rx_decode_err=0 frames_published=254 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=48 parity_recon=0 + +2026-08-24 17:11:37,180 INFO image_rx_daemon: air_gap: n=69 dt_med=117153us dt_p95=234053us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 17:11:37,180 INFO image_rx_daemon: air_gap_hist(ms): <120:45 <200:14 <400:10 + +2026-08-24 17:11:37,181 INFO image_rx_daemon: rx_rf: n_rssi=69 n_snr=69 rssi[min/med/max]=-74/-73/-72 snr[min/med/max]=5.0/6.0/7.0 + +2026-08-24 17:11:37,181 INFO image_rx_daemon: phase_telemetry: valid=69 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 17:11:37,182 INFO image_rx_daemon: air_gap_by_class: seq: n=54 med=117.1ms | boundary: n=10 med=180.0ms | post_loss: n=3 med=234.1ms + +2026-08-24 17:11:37,182 INFO image_rx_daemon: lost_frag_idx: n=3 idx0=0 (0.00% of idx0 arrivals) other=3 (4.84%) verdict=not-clustered | top 4:1 2:1 10:1 + +2026-08-24 17:11:37,183 INFO image_rx_daemon: frag_reordered: 2 late out-of-order arrivals had a provisional loss retracted (in-order assumption violated — see RS-11.4) + +2026-08-24 17:11:38,365 INFO image_rx_daemon: published frame_id=0 seq=113 2986 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:38,783 INFO image_rx_daemon: published frame_id=0 seq=118 192 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:38,784 INFO image_rx_daemon: published frame_id=0 seq=118 235 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:40,362 INFO image_rx_daemon: published frame_id=0 seq=121 2953 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:40,806 INFO image_rx_daemon: published frame_id=0 seq=126 237 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:40,807 INFO image_rx_daemon: published frame_id=0 seq=126 241 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:42,410 INFO image_rx_daemon: published frame_id=0 seq=129 2985 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:42,831 INFO image_rx_daemon: published frame_id=0 seq=134 234 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:42,832 INFO image_rx_daemon: published frame_id=0 seq=134 232 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:43,239 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=6.0 rssi=-73 dump=0102000000000000fe89020ca523b22808024018096c00a73c816401e841fb2a3a000376cc87c3fa730000fed354bdb2667829e5a390d5fe813badc6f51a51fd3e9a89ac676c8c69f5e51e835a97070e751097c0ae7e5083339a9d0dc51b46502b9a6266d3dfadb1f698e311f85bb8f177dfcc8c4535d7c9fb7efa89cdfa16a52f1ef9dd32b039140000695249464662000000574542505650382056000000f003009d012a200020003ec15ca74eb42523b32808028018096400ae35a00042802a7e6d1a2d6b6000fee352dc8e4ecbcbf7bf6a7d8477df6f717aecbefaafeef8e34943c71f93e4caa2c78be00e7b5114f0c6a600006f5249464668 + +2026-08-24 17:11:44,846 INFO image_rx_daemon: published frame_id=0 seq=142 242 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:44,847 INFO image_rx_daemon: published frame_id=0 seq=142 222 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:46,470 INFO image_rx_daemon: published frame_id=0 seq=145 3000 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:46,884 INFO image_rx_daemon: published frame_id=0 seq=150 240 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:46,886 INFO image_rx_daemon: published frame_id=0 seq=150 243 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:47,197 INFO image_rx_daemon: stats: rx_frames=1662 rx_decode_err=0 frames_published=268 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=50 parity_recon=0 + +2026-08-24 17:11:47,199 INFO image_rx_daemon: air_gap: n=73 dt_med=117145us dt_p95=216991us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 17:11:47,202 INFO image_rx_daemon: air_gap_hist(ms): <120:52 <200:14 <400:7 + +2026-08-24 17:11:47,204 INFO image_rx_daemon: rx_rf: n_rssi=73 n_snr=73 rssi[min/med/max]=-74/-72/-72 snr[min/med/max]=5.0/6.0/6.0 + +2026-08-24 17:11:47,204 INFO image_rx_daemon: phase_telemetry: valid=73 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 17:11:47,205 INFO image_rx_daemon: air_gap_by_class: seq: n=61 med=117.1ms | boundary: n=10 med=189.3ms | post_loss: n=1 med=234.4ms + +2026-08-24 17:11:47,206 INFO image_rx_daemon: lost_frag_idx: n=1 idx0=0 (0.00% of idx0 arrivals) other=1 (1.56%) verdict=not-clustered | top 2:1 + +2026-08-24 17:11:47,206 INFO image_rx_daemon: frag_reordered: 1 late out-of-order arrivals had a provisional loss retracted (in-order assumption violated — see RS-11.4) + +2026-08-24 17:11:48,499 INFO image_rx_daemon: published frame_id=0 seq=153 2897 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:50,067 INFO image_rx_daemon: published frame_id=0 seq=159 2903 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:50,262 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=-9.8 rssi=-60 dump=0102000000000000fea7000c00030c082000ffff0700000000000000000073524946466c0000005745425056503820600000003004009d012a200020003ec15ca64eb42523b328080280180964009d331c7ff81ccf5ace60ed3172a10000feef5fdb9129d9997fe849fe02fd81ec4794f19c9bbd9b627bd2b374e95971bd7ec215e1bd103e97b1760917dc49c3ba168f6800006d524946466600000057454250565038205a0000005003009d012a200020003ec15aa74e342523b22808028018096400a90da000428eac3022cee4681d05d52ecbff8870f0afee613debd74f780433c98c1e7be432901dd7fc08943b5b7dab5ec7246b0c9bd18b24 + +2026-08-24 17:11:51,876 INFO image_rx_daemon: published frame_id=0 seq=168 237 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:53,438 INFO image_rx_daemon: published frame_id=0 seq=173 2897 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:53,611 INFO image_rx_daemon: published frame_id=0 seq=180 230 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:55,227 INFO image_rx_daemon: published frame_id=0 seq=181 2985 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:55,421 INFO image_rx_daemon: published frame_id=0 seq=186 241 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:56,997 INFO image_rx_daemon: published frame_id=0 seq=187 2919 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:11:57,218 INFO image_rx_daemon: stats: rx_frames=1738 rx_decode_err=0 frames_published=276 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=51 parity_recon=0 + +2026-08-24 17:11:57,219 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=251 snr=-10.5 rssi=-59 dump=0102000000000000fec2000000cb0c0820000400010000000008000000004752494646400000005745425056503820340000001003009d012a200020003ec15aa64ea7a523a3280800f018096700c4d8198bae4000feee19721c333e63d45c268934a6770000004952494646420000005745425056503820360000001003009d012a200020003ec158a54ea7a4a329a808013018096700bf3818b8a02000feea76a5d3bc3ce595e6d2b576572fd9497440004752494646400000005745425056503820340000001003009d012a200020003ec15aa64e2a2523a62808014018096748bd58198da840069eea54bbac54012839bc924b4fd694ee0000 + +2026-08-24 17:11:57,220 INFO image_rx_daemon: air_gap: n=76 dt_med=117114us dt_p95=213541us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 17:11:57,221 INFO image_rx_daemon: air_gap_hist(ms): <120:62 <200:10 <400:4 + +2026-08-24 17:11:57,222 INFO image_rx_daemon: rx_rf: n_rssi=76 n_snr=76 rssi[min/med/max]=-74/-73/-72 snr[min/med/max]=5.0/6.0/6.0 + +2026-08-24 17:11:57,222 INFO image_rx_daemon: phase_telemetry: valid=76 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 17:11:57,222 INFO image_rx_daemon: air_gap_by_class: seq: n=68 med=117.1ms | boundary: n=7 med=177.6ms | post_loss: n=1 med=303.4ms + +2026-08-24 17:11:57,223 INFO image_rx_daemon: lost_frag_idx: n=1 idx0=1 (12.50% of idx0 arrivals) other=0 (0.00%) verdict=CLUSTERED-AT-0 | top 0:1 + +2026-08-24 17:11:58,780 INFO image_rx_daemon: published frame_id=0 seq=195 2892 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:00,380 INFO image_rx_daemon: published frame_id=0 seq=201 2959 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:00,797 INFO image_rx_daemon: published frame_id=0 seq=202 230 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:00,797 INFO image_rx_daemon: published frame_id=0 seq=202 212 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:02,417 INFO image_rx_daemon: published frame_id=0 seq=209 3000 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:02,848 INFO image_rx_daemon: published frame_id=0 seq=214 243 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:02,849 INFO image_rx_daemon: published frame_id=0 seq=214 234 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:04,410 INFO image_rx_daemon: published frame_id=0 seq=217 2897 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:04,807 INFO image_rx_daemon: published frame_id=0 seq=222 234 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:04,808 INFO image_rx_daemon: published frame_id=0 seq=222 220 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:06,385 INFO image_rx_daemon: published frame_id=0 seq=225 2910 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:06,783 INFO image_rx_daemon: published frame_id=0 seq=230 220 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:06,784 INFO image_rx_daemon: published frame_id=0 seq=230 232 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:07,225 INFO image_rx_daemon: stats: rx_frames=1811 rx_decode_err=0 frames_published=289 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=51 parity_recon=0 + +2026-08-24 17:12:07,227 INFO image_rx_daemon: air_gap: n=73 dt_med=117146us dt_p95=220086us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 17:12:07,231 INFO image_rx_daemon: air_gap_hist(ms): <120:53 <200:12 <400:8 + +2026-08-24 17:12:07,233 INFO image_rx_daemon: rx_rf: n_rssi=73 n_snr=73 rssi[min/med/max]=-74/-73/-72 snr[min/med/max]=5.0/6.0/7.0 + +2026-08-24 17:12:07,233 INFO image_rx_daemon: phase_telemetry: valid=73 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 17:12:07,234 INFO image_rx_daemon: air_gap_by_class: seq: n=60 med=117.1ms | boundary: n=10 med=181.2ms + +2026-08-24 17:12:08,346 INFO image_rx_daemon: published frame_id=0 seq=233 2905 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:08,490 INFO image_rx_daemon: published frame_id=0 seq=238 174 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:08,663 INFO image_rx_daemon: published frame_id=0 seq=246 218 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:10,243 INFO image_rx_daemon: published frame_id=0 seq=247 2915 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:10,419 INFO image_rx_daemon: published frame_id=0 seq=248 220 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:11,302 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=6.0 rssi=-72 dump=0102000000000000fef9060c9c938cf9d90b98700c0000009f524946469800000057454250565038208c0000047005009d012a200020003ec856334d27a4b89126c2aa307e096722de328411089512d47b47434880ca34d0d912211486dbc3036c45f7c8996272dc49d1a2329a9317103984f8ce79879628bb57a3fa7e4282c29a7d8d40e40b10d97df2648021ac46b2e5020b78ffd0a7472e4b26581f3121a6196f102f4171e175c6aebca69a3af29a7df4701efd99228000cf52494646c80000005745425056503820bc0000005006009d012a200020003ec14ea34aa7a42321a80d50f018096c009d3284747da02586b787ff6a88d037407e80 + +2026-08-24 17:12:12,195 INFO image_rx_daemon: published frame_id=0 seq=254 208 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:13,779 INFO image_rx_daemon: published frame_id=0 seq=255 2949 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:15,419 INFO image_rx_daemon: published frame_id=0 seq=5 2953 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:15,830 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=201 snr=3.0 rssi=-72 dump=01c20000000000003e0c016100005004009d012a200020003ec14c9f4aa7a422c1b0180c00f4180a6500bb0610728cc1e95b8cfe347e76486000f611da562fe6f7633029bcfdb7f3cdb6b7f9c36efb1cc4eefa625f54248009dea55fa4955b830c006552491646540000c65745429056503820520000003004009d010a200020003ec110a34b27a4a341a80d60f01809650cad68177c62ed6dd531ac1804b0942000feb8f01c7ae7dacf184c7e7b6f10cc136f962849cfbc1274e7538fbcf498ebde4ce8b78c93e000 + +2026-08-24 17:12:17,242 INFO image_rx_daemon: stats: rx_frames=1885 rx_decode_err=0 frames_published=297 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=53 parity_recon=0 + +2026-08-24 17:12:17,244 INFO image_rx_daemon: air_gap: n=74 dt_med=117121us dt_p95=227855us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 17:12:17,246 INFO image_rx_daemon: air_gap_hist(ms): <120:58 <200:9 <400:7 + +2026-08-24 17:12:17,247 INFO image_rx_daemon: rx_rf: n_rssi=74 n_snr=74 rssi[min/med/max]=-74/-73/-72 snr[min/med/max]=5.0/6.0/6.0 + +2026-08-24 17:12:17,248 INFO image_rx_daemon: phase_telemetry: valid=74 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 17:12:17,249 INFO image_rx_daemon: air_gap_by_class: seq: n=63 med=117.1ms | boundary: n=9 med=176.8ms | post_loss: n=2 med=299.6ms + +2026-08-24 17:12:17,249 INFO image_rx_daemon: lost_frag_idx: n=3 idx0=1 (5.00% of idx0 arrivals) other=2 (1.54%) verdict=CLUSTERED-AT-0 | top 0:1 6:1 1:1 + +2026-08-24 17:12:17,250 INFO image_rx_daemon: frag_reordered: 3 late out-of-order arrivals had a provisional loss retracted (in-order assumption violated — see RS-11.4) + +2026-08-24 17:12:17,445 INFO image_rx_daemon: published frame_id=0 seq=13 2991 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:17,841 INFO image_rx_daemon: published frame_id=0 seq=18 196 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:17,843 INFO image_rx_daemon: published frame_id=0 seq=18 239 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:18,970 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=5.8 rssi=-72 dump=0102000000000000fe15080c200020003eb9489f4aa7242333300c026017096c00aa95c0fe01f8817413c61a3ffa51dec00d3feb303f97b22d1a8e8539e067d13fc66ec5a31ca21ba56edd0000fec3fdb6f5f6ad57f77de7b6be5b4dc9a7659ffcbaffac64abe5afa12e39ff27bf1ca4180679422f9c21e56c81f4cc576e001986d541f920a0737de82e261349c7866b7e48b5905f8873c2be82abf40e043f4297233f8f03242bdfe33f940a7000b8458699f7e49d463a37cd9f23862b5828dddeaedf1044add4ce6ce4892c8f4f5fa0000091524946468a00000057454250565038207e0000007004009d012a200020003ec15aa74ea7a523b328 + +2026-08-24 17:12:19,887 INFO image_rx_daemon: published frame_id=0 seq=26 241 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:19,888 INFO image_rx_daemon: published frame_id=0 seq=26 235 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:21,235 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=3.0 rssi=-72 dump=01c20000000000003e1d0a0b205c0000007064009d018a200020003ec15ca74eb42c23b328080280180964009d328464089000214015ff368d16b5b00000fed092fc9eaecccbf1bdd175ee6be2b6ee2abbd9b627be063754df17c29b43c38794d3a7c1dc700f3752e6b1500000f552494640ee0003c05745425056563820e20000009007009d012a240360003f0162a94eab25237330080260200968009d39417eab6415d0384337737009600de0efdf2fde56d7759feba637178717cc85b3ac332294cf10f2c00000f8f32332b867a613a22b5a1fdd4e9ff6a6afdbb955c0b824784debdb1fa0253042b0117d23c088bd4251b15764ee85a2d730 + +2026-08-24 17:12:21,840 INFO image_rx_daemon: published frame_id=0 seq=34 192 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:21,841 INFO image_rx_daemon: published frame_id=0 seq=34 235 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:23,450 INFO image_rx_daemon: published frame_id=0 seq=37 2980 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:23,847 INFO image_rx_daemon: published frame_id=0 seq=42 235 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:23,848 INFO image_rx_daemon: published frame_id=0 seq=42 176 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:25,410 INFO image_rx_daemon: published frame_id=0 seq=45 2897 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:25,815 INFO image_rx_daemon: published frame_id=0 seq=50 234 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:25,816 INFO image_rx_daemon: published frame_id=0 seq=50 238 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:27,257 INFO image_rx_daemon: stats: rx_frames=1954 rx_decode_err=0 frames_published=310 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=55 parity_recon=0 + +2026-08-24 17:12:27,259 INFO image_rx_daemon: air_gap: n=69 dt_med=117122us dt_p95=233003us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 17:12:27,263 INFO image_rx_daemon: air_gap_hist(ms): <120:47 <200:12 <400:10 + +2026-08-24 17:12:27,264 INFO image_rx_daemon: rx_rf: n_rssi=69 n_snr=69 rssi[min/med/max]=-74/-73/-72 snr[min/med/max]=5.0/6.0/7.0 + +2026-08-24 17:12:27,264 INFO image_rx_daemon: phase_telemetry: valid=69 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 17:12:27,265 INFO image_rx_daemon: air_gap_by_class: seq: n=53 med=117.1ms | boundary: n=9 med=181.2ms | post_loss: n=4 med=292.1ms + +2026-08-24 17:12:27,266 INFO image_rx_daemon: lost_frag_idx: n=4 idx0=1 (10.00% of idx0 arrivals) other=3 (4.76%) verdict=CLUSTERED-AT-0 | top 2:1 8:1 10:1 0:1 + +2026-08-24 17:12:27,266 INFO image_rx_daemon: frag_reordered: 3 late out-of-order arrivals had a provisional loss retracted (in-order assumption violated — see RS-11.4) + +2026-08-24 17:12:27,847 INFO image_rx_daemon: published frame_id=0 seq=58 236 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:27,849 INFO image_rx_daemon: published frame_id=0 seq=58 224 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:29,419 INFO image_rx_daemon: published frame_id=0 seq=61 2901 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:29,593 INFO image_rx_daemon: published frame_id=0 seq=66 238 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:29,992 INFO image_rx_daemon: published frame_id=0 seq=68 243 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:29,993 INFO image_rx_daemon: published frame_id=0 seq=68 220 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:31,623 INFO image_rx_daemon: published frame_id=0 seq=75 2991 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:33,103 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=-10.2 rssi=-59 dump=0102000000000000fe4d0b0c1b896c009d2f81a41faaa6c03f633d1d1cbfd6607f0054523ca5aa8f6e2e618b722f11dc0000feeff9d1325f6e82bffe9a47ff32bfff32beb1df6db35af53790b66dab9e403679b67418c0eaf9a040c06511da8085f0abc8fcf2a133d4ffa8feef95d7c789066d18e71732e7751a5ece20b9418b887787f4d1a6d3d91c41bb5010be15791f9df9f171bff51fddf2baf8f120cda31bcde65b316c07532e8e691e9c3fb0e757ab2e2f3673365af34448f837c1ac835b0abeb59196df7b935b36cb9b977c2e7741c0034bf7e921216f52494646680000005785e8dcf05038205cc000003004009d012a200128000e61e6 + +2026-08-24 17:12:33,656 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=199 snr=2.2 rssi=-72 dump=01020000000000303e4e01015600000057454250565038284e0000007003009d012aa00020003ea942994aa64ba2a1b7e800c019096700cab42b669f4971ea01a0feeea2e60f744ab5c6f4831713a9c6f5531c12deca41fb37331fea9ca068d2280fe5fd29f1a4c000009b524945c6540000005745c2505650382048000000d003009d012a200020003e814ea04aa5f42322300800f818396700c730b28ab62c8aad468a604000fef0093ed49fccf03f83c25253db432a60fffa19e48f0986538ebd61a2d70e00 + +2026-08-24 17:12:35,232 INFO image_rx_daemon: published frame_id=0 seq=85 2923 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:35,695 INFO image_rx_daemon: published frame_id=0 seq=90 241 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:35,695 INFO image_rx_daemon: published frame_id=0 seq=90 200 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:37,259 INFO image_rx_daemon: published frame_id=0 seq=93 2915 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:37,269 INFO image_rx_daemon: stats: rx_frames=2026 rx_decode_err=0 frames_published=321 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=58 parity_recon=0 + +2026-08-24 17:12:37,270 INFO image_rx_daemon: air_gap: n=72 dt_med=117177us dt_p95=224006us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 17:12:37,272 INFO image_rx_daemon: air_gap_hist(ms): <120:53 <200:11 <400:8 + +2026-08-24 17:12:37,272 INFO image_rx_daemon: rx_rf: n_rssi=72 n_snr=72 rssi[min/med/max]=-74/-73/-72 snr[min/med/max]=4.0/6.0/6.0 + +2026-08-24 17:12:37,273 INFO image_rx_daemon: phase_telemetry: valid=72 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 17:12:37,274 INFO image_rx_daemon: air_gap_by_class: seq: n=59 med=117.2ms | boundary: n=10 med=186.5ms | post_loss: n=1 med=278.6ms + +2026-08-24 17:12:37,275 INFO image_rx_daemon: lost_frag_idx: n=2 idx0=0 (0.00% of idx0 arrivals) other=2 (3.12%) verdict=not-clustered | top 11:1 1:1 + +2026-08-24 17:12:37,275 INFO image_rx_daemon: frag_reordered: 2 late out-of-order arrivals had a provisional loss retracted (in-order assumption violated — see RS-11.4) + +2026-08-24 17:12:37,642 INFO image_rx_daemon: published frame_id=0 seq=98 220 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:37,643 INFO image_rx_daemon: published frame_id=0 seq=98 190 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:39,253 INFO image_rx_daemon: published frame_id=0 seq=101 2980 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:39,667 INFO image_rx_daemon: published frame_id=0 seq=106 243 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:39,668 INFO image_rx_daemon: published frame_id=0 seq=106 200 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:40,082 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=-10.5 rssi=-60 dump=0102000000000000fe6d020b421ffc99726dbad2b36d2a5a68c9d672fb58df23fe6bf3ffc28e001759f7e25d283fff295b04eb27cf84e7e269ceb2b3152a9f3cb71e31b2bb8390524878681b3e5d51775ff5949ff13e3631fc437783633b16f0d06932aafd5c252e79ea97b009cf26c1f2115fc196d935cf15881d2ddea163936fb608b56f48bc474a036d341a0a2eca821f6f72f8ccb593fa892a6e33ef4618a1365f8f08ae5b9575c000006b52494646640000005745425056503820580000009003009d012a200020003ec15ca64eb42523b328080280180964009d333218000851d5860000feeb59a6f470b956a9b24afc92e56752544732b1 + +2026-08-24 17:12:41,633 INFO image_rx_daemon: published frame_id=0 seq=114 235 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:41,634 INFO image_rx_daemon: published frame_id=0 seq=114 239 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:42,404 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=3.8 rssi=-72 dump=01c20000000000003e75050cb944bff377fed1f1b3f2534660e9b5e3e7908f80ed134296409e56f57ac3a2d2891003930a9b0000006d514946866e00000057454750565038205a0000007004009d012a200020003e015da74eb42523b32d08628518096400ae4b027a04480010a00a9f9b468b5ad80000feee57cf6090e82bffe712ec9349b8f7e97f3b6b97383cf79b2105bf9b659ba49c7aa863d00431c448cde108006d50c946466604000057454250565038205a0000087003009501ea200020003ec15c267eb42523b328080280180964009d3284e4000851d45800fedeaabd6fc2e55bfaabd8bdf8fe6b912787d59ccc713433e4483075c2 + +2026-08-24 17:12:43,655 INFO image_rx_daemon: published frame_id=0 seq=122 235 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:43,656 INFO image_rx_daemon: published frame_id=0 seq=122 214 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:45,624 INFO image_rx_daemon: published frame_id=0 seq=130 239 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:45,625 INFO image_rx_daemon: published frame_id=0 seq=130 230 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:47,091 WARNING image_rx_daemon: crc_dump: irq=0x70 rx_len=255 snr=-11.0 rssi=-59 dump=0102000000000000fe850b0cc86df69dc0eb506d08ffe623681531f28e7acaaab4467cb2cd76984d2dd6dca06714d0231636fc52be869242228b17c91ffa8fed9c130df0b4b8c97cefffb47f6ce0986f85a5c64bfc5feb86c34436f0d1b8400000c152494646ba0000005745425056503820ae000000d005009d012a200020003ec15aa74e27a523b22808024018096a009d32825803f64bf55482034803f4003af70f3fe76bd0902fccbd530000feed47a80d2921c7e038db918c307e62191c412599411c7857b7c458c36985613c2eef00019d1e36e7d1097ffd1804a641e87ffa8fed82e5c070f52af9ca1cfe63c8f6bce5785a60f2bfd23afb + +2026-08-24 17:12:47,284 INFO image_rx_daemon: stats: rx_frames=2095 rx_decode_err=0 frames_published=332 publish_err=0 reassembler_decode_err=0 reassembler_timeouts=61 parity_recon=0 + +2026-08-24 17:12:47,285 INFO image_rx_daemon: air_gap: n=69 dt_med=117144us dt_p95=234184us len_med=247B cmd_tx_ok=18 cmd_tx_fail=0 + +2026-08-24 17:12:47,287 INFO image_rx_daemon: air_gap_hist(ms): <120:46 <200:13 <400:10 + +2026-08-24 17:12:47,288 INFO image_rx_daemon: rx_rf: n_rssi=69 n_snr=69 rssi[min/med/max]=-74/-73/-72 snr[min/med/max]=5.0/6.0/6.0 + +2026-08-24 17:12:47,289 INFO image_rx_daemon: phase_telemetry: valid=69 invalid=0 pre_f8=0 last_epoch=0 last_hop=0 slot_off=[0..0] + +2026-08-24 17:12:47,291 INFO image_rx_daemon: air_gap_by_class: seq: n=54 med=117.1ms | boundary: n=10 med=181.4ms | post_loss: n=4 med=234.4ms + +2026-08-24 17:12:47,292 INFO image_rx_daemon: lost_frag_idx: n=3 idx0=0 (0.00% of idx0 arrivals) other=3 (4.84%) verdict=not-clustered | top 5:1 9:1 11:1 + +2026-08-24 17:12:47,292 INFO image_rx_daemon: frag_reordered: 1 late out-of-order arrivals had a provisional loss retracted (in-order assumption violated — see RS-11.4) + +2026-08-24 17:12:47,644 INFO image_rx_daemon: published frame_id=0 seq=138 228 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:47,645 INFO image_rx_daemon: published frame_id=0 seq=138 222 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:49,260 INFO image_rx_daemon: published frame_id=0 seq=141 2991 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:49,679 INFO image_rx_daemon: published frame_id=0 seq=146 222 B → lifetrac/v25/video/tile_delta + +2026-08-24 17:12:49,681 INFO image_rx_daemon: published frame_id=0 seq=146 238 B → lifetrac/v25/video/tile_delta + diff --git a/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20260824_121253_be989c0a/synth_pub.log b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20260824_121253_be989c0a/synth_pub.log new file mode 100644 index 00000000..99399f8f --- /dev/null +++ b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20260824_121253_be989c0a/synth_pub.log @@ -0,0 +1,28 @@ +Starting synthetic camera publisher (broker=127.0.0.1, fps=2.0, duration=310.0s, budget=3000B, prebuild=32)... + +PREBUILT: 32 frames, sizes 2892..3000 B + +[000] Publishing synthetic frame of size 2985 bytes... + +[050] Publishing synthetic frame of size 2979 bytes... + +[100] Publishing synthetic frame of size 2915 bytes... + +[150] Publishing synthetic frame of size 2951 bytes... + +[200] Publishing synthetic frame of size 2934 bytes... + +[250] Publishing synthetic frame of size 2993 bytes... + +[300] Publishing synthetic frame of size 2919 bytes... + +[350] Publishing synthetic frame of size 2903 bytes... + +[400] Publishing synthetic frame of size 2892 bytes... + +[450] Publishing synthetic frame of size 2983 bytes... + +[500] Publishing synthetic frame of size 2991 bytes... + +[550] Publishing synthetic frame of size 2975 bytes... + diff --git a/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20260824_121253_be989c0a/tx_daemon.log b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20260824_121253_be989c0a/tx_daemon.log new file mode 100644 index 00000000..2e6dfdf3 --- /dev/null +++ b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20260824_121253_be989c0a/tx_daemon.log @@ -0,0 +1,806 @@ +2026-08-11 09:18:19,498 INFO image_tx_daemon: opening L072 HostLink on /dev/ttymxc3 @ 921600 + +2026-08-11 09:18:19,500 INFO image_tx_daemon: image_tx_daemon started; mqtt=127.0.0.1:1883 uart=/dev/ttymxc3 + +2026-08-11 09:18:19,507 INFO image_tx_daemon: no_park_last=1 gap_ms=80 pipeline_depth=2 + +2026-08-11 09:18:19,512 INFO image_tx_daemon: MQTT connected; subscribing to lifetrac/v25/cmd/image_frame + +2026-08-11 09:18:19,516 INFO image_tx_daemon: LIFETRAC_SKIP_RESET_REQ=1 — relying on external NRST; draining boot chatter only + +2026-08-11 09:18:19,536 INFO image_tx_daemon: link_budget: published n_frag=1 profile_idx=6 (profile 2) + +INFO: post-VER drain queued type=0xF1 seq=0 + +INFO: post-VER drain queued type=0xC1 seq=0 + +INFO: post-VER drain queued type=0xF1 seq=0 + +INFO: post-VER drain queued type=0xC1 seq=0 + +Initializing regulatory profile 2 on co-processor... + + FHSS mask: single channel 0 (0100000000000000) + +CFG_SET_REQ(FHSS_CHANNEL_MASK) OK: 07000800 + +CFG_SET_REQ(ANTENNA_GAIN_DBI) OK: 15000100 + +CFG_SET_REQ(HW_CEILING_DBM) OK: 16000100 + + FHSS seed: (0,0) legacy shared permutation [set LIFETRAC_FHSS_FARM_ID / LIFETRAC_FHSS_LINK_ID to separate pairs] + +CFG_SET_REQ(FHSS_FARM_ID) OK: 17000800 + +CFG_SET_REQ(FHSS_NODE_ID) OK: 18000800 + +CFG_SET_REQ(REG_PROFILE=2) OK: 14000100 + + forcing FRF -> 927.250 MHz (raw=0xE7D000 -> Msb=0xE7 Mid=0xD0 Lsb=0x00) + + FRF readback: 0xE7D000 = 927.250 MHz (OK) + +PHY contract OK: image_bw500 == {'sf': 7, 'bw_khz': 500, 'cr_den': 5, 'preamble': 8} + +2026-08-11 09:18:20,421 INFO image_tx_daemon: LBT_ENABLE=0 (matches W1-10b TX_BURST rationale) + +2026-08-11 09:18:20,446 INFO image_tx_daemon: RXCONT armed for command downlink (opmode 0x81 -> 0x85) + +2026-08-11 09:18:20,447 INFO image_tx_daemon: TX worker ready (inter_cycle_s=0.050, max 8 frags/dwell) + +2026-08-11 09:18:20,501 INFO image_tx_daemon: stats: goodput=0.0 B/s util=0% pipeline=v3 frames_in=1 ok=0 fail=0 drop_full=0 drop_stale=0 frags_ok=0 frags_fail=0 qdepth=0 parity_tx=0 + +2026-08-11 09:18:20,579 INFO image_tx_daemon: frame seq=1 done (pipelined): 1 fragments ok + +2026-08-11 09:18:20,762 INFO image_tx_daemon: frame seq=2 done (pipelined): 1 fragments ok + +2026-08-11 09:18:21,025 INFO image_tx_daemon: LoRa cmd: ENCODE_MODE 0 + +2026-08-11 09:18:21,166 INFO image_tx_daemon: frame seq=3 done (pipelined): 1 fragments ok + +2026-08-11 09:18:21,460 INFO image_tx_daemon: LoRa cmd: ENCODE_MODE 0 + +2026-08-11 09:18:21,644 INFO image_tx_daemon: frame seq=4 done (pipelined): 1 fragments ok + +2026-08-11 09:18:21,928 INFO image_tx_daemon: LoRa cmd: ENCODE_MODE 0 + +2026-08-11 09:18:22,134 INFO image_tx_daemon: frame seq=5 done (pipelined): 1 fragments ok + +2026-08-11 09:18:22,418 INFO image_tx_daemon: LoRa cmd: ENCODE_MODE 0 + +2026-08-11 09:18:22,628 INFO image_tx_daemon: frame seq=6 done (pipelined): 1 fragments ok + +2026-08-11 09:18:22,912 INFO image_tx_daemon: LoRa cmd: ENCODE_MODE 0 + +2026-08-11 09:18:23,145 INFO image_tx_daemon: frame seq=7 done (pipelined): 1 fragments ok + +2026-08-11 09:18:23,428 INFO image_tx_daemon: LoRa cmd: ENCODE_MODE 0 + +2026-08-11 09:18:23,651 INFO image_tx_daemon: frame seq=8 done (pipelined): 1 fragments ok + +2026-08-11 09:18:23,934 INFO image_tx_daemon: LoRa cmd: ENCODE_MODE 0 + +2026-08-11 09:18:24,126 INFO image_tx_daemon: frame seq=9 done (pipelined): 1 fragments ok + +2026-08-11 09:18:24,410 INFO image_tx_daemon: LoRa cmd: ENCODE_MODE 0 + +2026-08-11 09:18:24,606 INFO image_tx_daemon: frame seq=10 done (pipelined): 1 fragments ok + +2026-08-11 09:18:24,890 INFO image_tx_daemon: LoRa cmd: ENCODE_MODE 0 + +2026-08-11 09:18:25,139 INFO image_tx_daemon: frame seq=11 done (pipelined): 1 fragments ok + +2026-08-11 09:18:25,426 INFO image_tx_daemon: LoRa cmd: ENCODE_MODE 0 + +2026-08-11 09:18:25,650 INFO image_tx_daemon: frame seq=12 done (pipelined): 1 fragments ok + +2026-08-11 09:18:25,924 INFO image_tx_daemon: LoRa cmd: ENCODE_MODE 0 + +2026-08-11 09:18:26,130 INFO image_tx_daemon: frame seq=13 done (pipelined): 1 fragments ok + +2026-08-11 09:18:26,425 INFO image_tx_daemon: LoRa cmd: ENCODE_MODE 0 + +2026-08-11 09:18:26,693 INFO image_tx_daemon: frame seq=14 done (pipelined): 1 fragments ok + +2026-08-11 09:18:26,967 INFO image_tx_daemon: LoRa cmd: ENCODE_MODE 0 + +2026-08-11 09:18:27,159 INFO image_tx_daemon: frame seq=15 done (pipelined): 1 fragments ok + +2026-08-11 09:18:27,443 INFO image_tx_daemon: LoRa cmd: ENCODE_MODE 0 + +2026-08-11 09:18:27,656 INFO image_tx_daemon: frame seq=16 done (pipelined): 1 fragments ok + +2026-08-11 09:18:27,929 INFO image_tx_daemon: LoRa cmd: ENCODE_MODE 0 + +2026-08-11 09:18:28,190 INFO image_tx_daemon: frame seq=17 done (pipelined): 1 fragments ok + +2026-08-11 09:18:28,474 INFO image_tx_daemon: LoRa cmd: ENCODE_MODE 0 + +2026-08-11 09:18:28,690 INFO image_tx_daemon: frame seq=18 done (pipelined): 1 fragments ok + +2026-08-11 09:18:28,974 INFO image_tx_daemon: LoRa cmd: ENCODE_MODE 0 + +2026-08-11 09:18:29,212 INFO image_tx_daemon: frame seq=19 done (pipelined): 1 fragments ok + +2026-08-11 09:18:29,499 INFO image_tx_daemon: LoRa cmd: ENCODE_MODE 0 + +2026-08-11 09:18:29,717 INFO image_tx_daemon: frame seq=20 done (pipelined): 1 fragments ok + +2026-08-11 09:18:30,182 INFO image_tx_daemon: frame seq=21 done (pipelined): 1 fragments ok + +2026-08-11 09:18:30,512 INFO image_tx_daemon: stats: goodput=452.6 B/s util=19% pipeline=v3 frames_in=21 ok=21 fail=0 drop_full=0 drop_stale=0 frags_ok=21 frags_fail=0 qdepth=0 parity_tx=0 + +2026-08-11 09:18:30,693 INFO image_tx_daemon: frame seq=22 done (pipelined): 1 fragments ok + +2026-08-11 09:18:31,194 INFO image_tx_daemon: frame seq=23 done (pipelined): 1 fragments ok + +2026-08-11 09:18:31,721 INFO image_tx_daemon: frame seq=24 done (pipelined): 1 fragments ok + +2026-08-11 09:18:32,184 INFO image_tx_daemon: frame seq=25 done (pipelined): 1 fragments ok + +2026-08-11 09:18:32,704 INFO image_tx_daemon: frame seq=26 done (pipelined): 1 fragments ok + +2026-08-11 09:18:33,186 INFO image_tx_daemon: frame seq=27 done (pipelined): 1 fragments ok + +2026-08-11 09:18:33,638 INFO image_tx_daemon: frame seq=28 done (pipelined): 1 fragments ok + +2026-08-11 09:18:34,194 INFO image_tx_daemon: frame seq=29 done (pipelined): 1 fragments ok + +2026-08-11 09:18:34,678 INFO image_tx_daemon: frame seq=30 done (pipelined): 1 fragments ok + +2026-08-11 09:18:35,193 INFO image_tx_daemon: frame seq=31 done (pipelined): 1 fragments ok + +2026-08-11 09:18:35,698 INFO image_tx_daemon: frame seq=32 done (pipelined): 1 fragments ok + +2026-08-11 09:18:36,205 INFO image_tx_daemon: frame seq=33 done (pipelined): 1 fragments ok + +2026-08-11 09:18:36,702 INFO image_tx_daemon: frame seq=34 done (pipelined): 1 fragments ok + +2026-08-11 09:18:38,281 INFO image_tx_daemon: frame seq=35 done (pipelined): 13 fragments ok + +2026-08-11 09:18:38,459 INFO image_tx_daemon: frame seq=36 done (pipelined): 1 fragments ok + +2026-08-11 09:18:38,642 INFO image_tx_daemon: frame seq=38 done (pipelined): 1 fragments ok + +2026-08-11 09:18:40,263 INFO image_tx_daemon: frame seq=39 done (pipelined): 13 fragments ok + +2026-08-11 09:18:40,435 INFO image_tx_daemon: frame seq=40 done (pipelined): 1 fragments ok + +2026-08-11 09:18:40,524 INFO image_tx_daemon: stats: goodput=956.1 B/s util=39% pipeline=v3 frames_in=49 ok=39 fail=0 drop_full=5 drop_stale=0 frags_ok=63 frags_fail=0 qdepth=3 parity_tx=0 + +2026-08-11 09:18:42,001 INFO image_tx_daemon: frame seq=41 done (pipelined): 12 fragments ok + +2026-08-11 09:18:42,162 INFO image_tx_daemon: frame seq=46 done (pipelined): 1 fragments ok + +2026-08-11 09:18:43,771 INFO image_tx_daemon: frame seq=47 done (pipelined): 13 fragments ok + +2026-08-11 09:18:43,956 INFO image_tx_daemon: batching: 2 frames in 1 trains so far (this train: 2 frames, 410 B) + +2026-08-11 09:18:45,410 INFO image_tx_daemon: frame seq=53 done (pipelined): 13 fragments ok + +2026-08-11 09:18:45,794 INFO image_tx_daemon: frame seq=54 done (pipelined): 2 fragments ok + +2026-08-11 09:18:47,370 INFO image_tx_daemon: frame seq=61 done (pipelined): 12 fragments ok + +2026-08-11 09:18:47,546 INFO image_tx_daemon: frame seq=66 done (pipelined): 1 fragments ok + +2026-08-11 09:18:47,719 INFO image_tx_daemon: frame seq=74 done (pipelined): 1 fragments ok + +2026-08-11 09:18:49,339 INFO image_tx_daemon: frame seq=75 done (pipelined): 13 fragments ok + +2026-08-11 09:18:49,511 INFO image_tx_daemon: frame seq=76 done (pipelined): 1 fragments ok + +2026-08-11 09:18:50,535 INFO image_tx_daemon: stats: goodput=1833.4 B/s util=74% pipeline=v3 frames_in=90 ok=49 fail=0 drop_full=33 drop_stale=0 frags_ok=140 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 09:18:51,131 INFO image_tx_daemon: frame seq=77 done (pipelined): 13 fragments ok + +2026-08-11 09:18:51,310 INFO image_tx_daemon: frame seq=82 done (pipelined): 1 fragments ok + +2026-08-11 09:18:52,918 INFO image_tx_daemon: frame seq=83 done (pipelined): 13 fragments ok + +2026-08-11 09:18:53,105 INFO image_tx_daemon: frame seq=90 done (pipelined): 1 fragments ok + +2026-08-11 09:18:54,731 INFO image_tx_daemon: frame seq=91 done (pipelined): 13 fragments ok + +2026-08-11 09:18:56,306 INFO image_tx_daemon: frame seq=97 done (pipelined): 12 fragments ok + +2026-08-11 09:18:56,694 INFO image_tx_daemon: frame seq=98 done (pipelined): 2 fragments ok + +2026-08-11 09:18:58,265 INFO image_tx_daemon: frame seq=105 done (pipelined): 12 fragments ok + +2026-08-11 09:18:58,648 INFO image_tx_daemon: frame seq=110 done (pipelined): 2 fragments ok + +2026-08-11 09:19:00,272 INFO image_tx_daemon: frame seq=113 done (pipelined): 13 fragments ok + +2026-08-11 09:19:00,546 INFO image_tx_daemon: stats: goodput=1764.9 B/s util=72% pipeline=v3 frames_in=130 ok=59 fail=0 drop_full=60 drop_stale=0 frags_ok=215 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 09:19:00,655 INFO image_tx_daemon: frame seq=118 done (pipelined): 2 fragments ok + +2026-08-11 09:19:02,253 INFO image_tx_daemon: frame seq=121 done (pipelined): 13 fragments ok + +2026-08-11 09:19:02,677 INFO image_tx_daemon: frame seq=126 done (pipelined): 2 fragments ok + +2026-08-11 09:19:04,296 INFO image_tx_daemon: frame seq=129 done (pipelined): 13 fragments ok + +2026-08-11 09:19:04,685 INFO image_tx_daemon: frame seq=134 done (pipelined): 2 fragments ok + +2026-08-11 09:19:06,294 INFO image_tx_daemon: frame seq=137 done (pipelined): 13 fragments ok + +2026-08-11 09:19:06,686 INFO image_tx_daemon: frame seq=142 done (pipelined): 2 fragments ok + +2026-08-11 09:19:08,306 INFO image_tx_daemon: frame seq=145 done (pipelined): 13 fragments ok + +2026-08-11 09:19:08,698 INFO image_tx_daemon: frame seq=150 done (pipelined): 2 fragments ok + +2026-08-11 09:19:10,270 INFO image_tx_daemon: frame seq=153 done (pipelined): 12 fragments ok + +2026-08-11 09:19:10,562 INFO image_tx_daemon: stats: goodput=1724.0 B/s util=70% pipeline=v3 frames_in=170 ok=69 fail=0 drop_full=85 drop_stale=0 frags_ok=289 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 09:19:10,653 INFO image_tx_daemon: frame seq=158 done (pipelined): 2 fragments ok + +2026-08-11 09:19:12,220 INFO image_tx_daemon: frame seq=161 done (pipelined): 12 fragments ok + +2026-08-11 09:19:12,620 INFO image_tx_daemon: frame seq=166 done (pipelined): 2 fragments ok + +2026-08-11 09:19:14,186 INFO image_tx_daemon: frame seq=169 done (pipelined): 12 fragments ok + +2026-08-11 09:19:14,579 INFO image_tx_daemon: frame seq=174 done (pipelined): 2 fragments ok + +2026-08-11 09:19:16,202 INFO image_tx_daemon: frame seq=177 done (pipelined): 13 fragments ok + +2026-08-11 09:19:16,591 INFO image_tx_daemon: frame seq=182 done (pipelined): 2 fragments ok + +2026-08-11 09:19:18,189 INFO image_tx_daemon: frame seq=185 done (pipelined): 13 fragments ok + +2026-08-11 09:19:18,611 INFO image_tx_daemon: frame seq=190 done (pipelined): 2 fragments ok + +2026-08-11 09:19:20,231 INFO image_tx_daemon: frame seq=193 done (pipelined): 13 fragments ok + +2026-08-11 09:19:20,578 INFO image_tx_daemon: stats: goodput=1714.0 B/s util=70% pipeline=v3 frames_in=210 ok=79 fail=0 drop_full=110 drop_stale=0 frags_ok=362 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 09:19:20,623 INFO image_tx_daemon: frame seq=198 done (pipelined): 2 fragments ok + +2026-08-11 09:19:22,237 INFO image_tx_daemon: frame seq=201 done (pipelined): 13 fragments ok + +2026-08-11 09:19:22,640 INFO image_tx_daemon: frame seq=206 done (pipelined): 2 fragments ok + +2026-08-11 09:19:24,266 INFO image_tx_daemon: frame seq=209 done (pipelined): 13 fragments ok + +2026-08-11 09:19:24,668 INFO image_tx_daemon: frame seq=214 done (pipelined): 2 fragments ok + +2026-08-11 09:19:26,239 INFO image_tx_daemon: frame seq=217 done (pipelined): 12 fragments ok + +2026-08-11 09:19:26,633 INFO image_tx_daemon: frame seq=222 done (pipelined): 2 fragments ok + +2026-08-11 09:19:28,204 INFO image_tx_daemon: frame seq=225 done (pipelined): 12 fragments ok + +2026-08-11 09:19:28,587 INFO image_tx_daemon: frame seq=230 done (pipelined): 2 fragments ok + +2026-08-11 09:19:30,155 INFO image_tx_daemon: frame seq=233 done (pipelined): 12 fragments ok + +2026-08-11 09:19:30,535 INFO image_tx_daemon: frame seq=238 done (pipelined): 2 fragments ok + +2026-08-11 09:19:30,589 INFO image_tx_daemon: stats: goodput=1730.2 B/s util=70% pipeline=v3 frames_in=250 ok=90 fail=0 drop_full=135 drop_stale=0 frags_ok=435 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 09:19:32,154 INFO image_tx_daemon: frame seq=241 done (pipelined): 13 fragments ok + +2026-08-11 09:19:32,315 INFO image_tx_daemon: frame seq=246 done (pipelined): 1 fragments ok + +2026-08-11 09:19:33,894 INFO image_tx_daemon: frame seq=247 done (pipelined): 12 fragments ok + +2026-08-11 09:19:34,052 INFO image_tx_daemon: frame seq=254 done (pipelined): 1 fragments ok + +2026-08-11 09:19:35,650 INFO image_tx_daemon: frame seq=255 done (pipelined): 13 fragments ok + +2026-08-11 09:19:36,073 INFO image_tx_daemon: frame seq=4 done (pipelined): 2 fragments ok + +2026-08-11 09:19:37,689 INFO image_tx_daemon: frame seq=7 done (pipelined): 13 fragments ok + +2026-08-11 09:19:37,875 INFO image_tx_daemon: frame seq=12 done (pipelined): 1 fragments ok + +2026-08-11 09:19:38,026 INFO image_tx_daemon: frame seq=14 done (pipelined): 1 fragments ok + +2026-08-11 09:19:38,198 INFO image_tx_daemon: frame seq=20 done (pipelined): 1 fragments ok + +2026-08-11 09:19:39,785 INFO image_tx_daemon: frame seq=21 done (pipelined): 13 fragments ok + +2026-08-11 09:19:39,950 INFO image_tx_daemon: frame seq=22 done (pipelined): 1 fragments ok + +2026-08-11 09:19:40,602 INFO image_tx_daemon: stats: goodput=1795.5 B/s util=73% pipeline=v3 frames_in=290 ok=102 fail=0 drop_full=161 drop_stale=0 frags_ok=512 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 09:19:41,568 INFO image_tx_daemon: frame seq=23 done (pipelined): 13 fragments ok + +2026-08-11 09:19:41,729 INFO image_tx_daemon: frame seq=28 done (pipelined): 1 fragments ok + +2026-08-11 09:19:43,306 INFO image_tx_daemon: frame seq=29 done (pipelined): 12 fragments ok + +2026-08-11 09:19:44,925 INFO image_tx_daemon: frame seq=35 done (pipelined): 13 fragments ok + +2026-08-11 09:19:45,102 INFO image_tx_daemon: frame seq=42 done (pipelined): 1 fragments ok + +2026-08-11 09:19:46,677 INFO image_tx_daemon: frame seq=43 done (pipelined): 12 fragments ok + +2026-08-11 09:19:48,296 INFO image_tx_daemon: frame seq=49 done (pipelined): 13 fragments ok + +2026-08-11 09:19:48,470 INFO image_tx_daemon: frame seq=50 done (pipelined): 1 fragments ok + +2026-08-11 09:19:48,631 INFO image_tx_daemon: frame seq=56 done (pipelined): 1 fragments ok + +2026-08-11 09:19:50,239 INFO image_tx_daemon: frame seq=63 done (pipelined): 13 fragments ok + +2026-08-11 09:19:50,416 INFO image_tx_daemon: frame seq=64 done (pipelined): 1 fragments ok + +2026-08-11 09:19:50,616 INFO image_tx_daemon: stats: goodput=1811.0 B/s util=74% pipeline=v3 frames_in=330 ok=113 fail=0 drop_full=191 drop_stale=0 frags_ok=589 frags_fail=0 qdepth=3 parity_tx=0 + +2026-08-11 09:19:52,040 INFO image_tx_daemon: frame seq=65 done (pipelined): 13 fragments ok + +2026-08-11 09:19:52,201 INFO image_tx_daemon: frame seq=70 done (pipelined): 1 fragments ok + +2026-08-11 09:19:53,809 INFO image_tx_daemon: frame seq=71 done (pipelined): 13 fragments ok + +2026-08-11 09:19:55,448 INFO image_tx_daemon: frame seq=77 done (pipelined): 13 fragments ok + +2026-08-11 09:19:55,851 INFO image_tx_daemon: frame seq=78 done (pipelined): 2 fragments ok + +2026-08-11 09:19:57,439 INFO image_tx_daemon: frame seq=85 done (pipelined): 13 fragments ok + +2026-08-11 09:19:59,102 INFO image_tx_daemon: frame seq=91 done (pipelined): 13 fragments ok + +2026-08-11 09:20:00,628 INFO image_tx_daemon: stats: goodput=1822.5 B/s util=74% pipeline=v3 frames_in=370 ok=120 fail=0 drop_full=223 drop_stale=0 frags_ok=667 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 09:20:00,687 INFO image_tx_daemon: frame seq=93 done (pipelined): 12 fragments ok + +2026-08-11 09:20:02,306 INFO image_tx_daemon: frame seq=99 done (pipelined): 13 fragments ok + +2026-08-11 09:20:02,470 INFO image_tx_daemon: frame seq=112 done (pipelined): 1 fragments ok + +2026-08-11 09:20:04,097 INFO image_tx_daemon: frame seq=113 done (pipelined): 13 fragments ok + +2026-08-11 09:20:04,258 INFO image_tx_daemon: frame seq=118 done (pipelined): 1 fragments ok + +2026-08-11 09:20:05,834 INFO image_tx_daemon: frame seq=119 done (pipelined): 12 fragments ok + +2026-08-11 09:20:05,996 INFO image_tx_daemon: frame seq=126 done (pipelined): 1 fragments ok + +2026-08-11 09:20:07,599 INFO image_tx_daemon: frame seq=127 done (pipelined): 13 fragments ok + +2026-08-11 09:20:07,779 INFO image_tx_daemon: frame seq=132 done (pipelined): 1 fragments ok + +2026-08-11 09:20:09,384 INFO image_tx_daemon: frame seq=133 done (pipelined): 13 fragments ok + +2026-08-11 09:20:09,538 INFO image_tx_daemon: frame seq=140 done (pipelined): 1 fragments ok + +2026-08-11 09:20:10,639 INFO image_tx_daemon: stats: goodput=1826.2 B/s util=74% pipeline=v3 frames_in=410 ok=131 fail=0 drop_full=250 drop_stale=0 frags_ok=745 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 09:20:11,157 INFO image_tx_daemon: frame seq=141 done (pipelined): 13 fragments ok + +2026-08-11 09:20:11,549 INFO image_tx_daemon: frame seq=146 done (pipelined): 2 fragments ok + +2026-08-11 09:20:13,143 INFO image_tx_daemon: frame seq=149 done (pipelined): 13 fragments ok + +2026-08-11 09:20:13,582 INFO image_tx_daemon: frame seq=154 done (pipelined): 2 fragments ok + +2026-08-11 09:20:15,160 INFO image_tx_daemon: frame seq=157 done (pipelined): 12 fragments ok + +2026-08-11 09:20:15,536 INFO image_tx_daemon: frame seq=162 done (pipelined): 2 fragments ok + +2026-08-11 09:20:17,149 INFO image_tx_daemon: frame seq=165 done (pipelined): 13 fragments ok + +2026-08-11 09:20:17,573 INFO image_tx_daemon: frame seq=170 done (pipelined): 2 fragments ok + +2026-08-11 09:20:19,139 INFO image_tx_daemon: frame seq=173 done (pipelined): 12 fragments ok + +2026-08-11 09:20:19,291 INFO image_tx_daemon: frame seq=178 done (pipelined): 1 fragments ok + +2026-08-11 09:20:19,466 INFO image_tx_daemon: frame seq=186 done (pipelined): 1 fragments ok + +2026-08-11 09:20:20,651 INFO image_tx_daemon: stats: goodput=1743.9 B/s util=71% pipeline=v3 frames_in=450 ok=142 fail=0 drop_full=276 drop_stale=0 frags_ok=819 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 09:20:21,053 INFO image_tx_daemon: frame seq=187 done (pipelined): 13 fragments ok + +2026-08-11 09:20:21,259 INFO image_tx_daemon: frame seq=188 done (pipelined): 1 fragments ok + +2026-08-11 09:20:22,825 INFO image_tx_daemon: frame seq=189 done (pipelined): 12 fragments ok + +2026-08-11 09:20:22,990 INFO image_tx_daemon: batching: 52 frames in 26 trains so far (this train: 2 frames, 439 B) + +2026-08-11 09:20:24,443 INFO image_tx_daemon: frame seq=193 done (pipelined): 13 fragments ok + +2026-08-11 09:20:24,845 INFO image_tx_daemon: frame seq=194 done (pipelined): 2 fragments ok + +2026-08-11 09:20:26,462 INFO image_tx_daemon: frame seq=201 done (pipelined): 13 fragments ok + +2026-08-11 09:20:28,091 INFO image_tx_daemon: frame seq=207 done (pipelined): 13 fragments ok + +2026-08-11 09:20:29,740 INFO image_tx_daemon: frame seq=209 done (pipelined): 13 fragments ok + +2026-08-11 09:20:30,667 INFO image_tx_daemon: stats: goodput=1818.4 B/s util=74% pipeline=v3 frames_in=490 ok=150 fail=0 drop_full=306 drop_stale=0 frags_ok=897 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 09:20:31,367 INFO image_tx_daemon: frame seq=215 done (pipelined): 13 fragments ok + +2026-08-11 09:20:31,755 INFO image_tx_daemon: frame seq=222 done (pipelined): 2 fragments ok + +2026-08-11 09:20:33,363 INFO image_tx_daemon: frame seq=229 done (pipelined): 13 fragments ok + +2026-08-11 09:20:33,761 INFO image_tx_daemon: frame seq=234 done (pipelined): 2 fragments ok + +2026-08-11 09:20:35,327 INFO image_tx_daemon: frame seq=237 done (pipelined): 12 fragments ok + +2026-08-11 09:20:35,720 INFO image_tx_daemon: frame seq=242 done (pipelined): 2 fragments ok + +2026-08-11 09:20:37,340 INFO image_tx_daemon: frame seq=245 done (pipelined): 13 fragments ok + +2026-08-11 09:20:37,728 INFO image_tx_daemon: frame seq=250 done (pipelined): 2 fragments ok + +2026-08-11 09:20:39,298 INFO image_tx_daemon: frame seq=253 done (pipelined): 12 fragments ok + +2026-08-11 09:20:39,470 INFO image_tx_daemon: frame seq=2 done (pipelined): 1 fragments ok + +2026-08-11 09:20:39,642 INFO image_tx_daemon: frame seq=4 done (pipelined): 1 fragments ok + +2026-08-11 09:20:40,679 INFO image_tx_daemon: stats: goodput=1746.6 B/s util=71% pipeline=v3 frames_in=530 ok=161 fail=0 drop_full=332 drop_stale=0 frags_ok=971 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 09:20:41,261 INFO image_tx_daemon: frame seq=11 done (pipelined): 13 fragments ok + +2026-08-11 09:20:41,438 INFO image_tx_daemon: frame seq=12 done (pipelined): 1 fragments ok + +2026-08-11 09:20:43,057 INFO image_tx_daemon: frame seq=13 done (pipelined): 13 fragments ok + +2026-08-11 09:20:43,235 INFO image_tx_daemon: frame seq=18 done (pipelined): 1 fragments ok + +2026-08-11 09:20:44,844 INFO image_tx_daemon: frame seq=19 done (pipelined): 13 fragments ok + +2026-08-11 09:20:46,429 INFO image_tx_daemon: frame seq=25 done (pipelined): 12 fragments ok + +2026-08-11 09:20:46,816 INFO image_tx_daemon: frame seq=26 done (pipelined): 2 fragments ok + +2026-08-11 09:20:48,382 INFO image_tx_daemon: frame seq=33 done (pipelined): 12 fragments ok + +2026-08-11 09:20:48,758 INFO image_tx_daemon: frame seq=38 done (pipelined): 2 fragments ok + +2026-08-11 09:20:50,324 INFO image_tx_daemon: frame seq=41 done (pipelined): 12 fragments ok + +2026-08-11 09:20:50,691 INFO image_tx_daemon: stats: goodput=1753.9 B/s util=71% pipeline=v3 frames_in=570 ok=171 fail=0 drop_full=359 drop_stale=0 frags_ok=1045 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 09:20:50,718 INFO image_tx_daemon: frame seq=46 done (pipelined): 2 fragments ok + +2026-08-11 09:20:52,337 INFO image_tx_daemon: frame seq=49 done (pipelined): 13 fragments ok + +2026-08-11 09:20:52,733 INFO image_tx_daemon: frame seq=54 done (pipelined): 2 fragments ok + +2026-08-11 09:20:54,342 INFO image_tx_daemon: frame seq=57 done (pipelined): 13 fragments ok + +2026-08-11 09:20:54,755 INFO image_tx_daemon: frame seq=62 done (pipelined): 2 fragments ok + +2026-08-11 09:20:56,374 INFO image_tx_daemon: frame seq=65 done (pipelined): 13 fragments ok + +2026-08-11 09:20:56,775 INFO image_tx_daemon: frame seq=70 done (pipelined): 2 fragments ok + +2026-08-11 09:20:58,384 INFO image_tx_daemon: frame seq=73 done (pipelined): 13 fragments ok + +2026-08-11 09:20:58,809 INFO image_tx_daemon: frame seq=78 done (pipelined): 2 fragments ok + +2026-08-11 09:21:00,433 INFO image_tx_daemon: frame seq=81 done (pipelined): 13 fragments ok + +2026-08-11 09:21:00,703 INFO image_tx_daemon: stats: goodput=1742.3 B/s util=71% pipeline=v3 frames_in=611 ok=181 fail=0 drop_full=386 drop_stale=0 frags_ok=1120 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 09:21:02,066 INFO image_tx_daemon: frame seq=87 done (pipelined): 13 fragments ok + +2026-08-11 09:21:02,217 INFO image_tx_daemon: frame seq=88 done (pipelined): 1 fragments ok + +2026-08-11 09:21:03,790 INFO image_tx_daemon: frame seq=95 done (pipelined): 12 fragments ok + +2026-08-11 09:21:03,954 INFO image_tx_daemon: frame seq=102 done (pipelined): 1 fragments ok + +2026-08-11 09:21:05,577 INFO image_tx_daemon: frame seq=103 done (pipelined): 13 fragments ok + +2026-08-11 09:21:05,754 INFO image_tx_daemon: frame seq=108 done (pipelined): 1 fragments ok + +2026-08-11 09:21:07,320 INFO image_tx_daemon: frame seq=109 done (pipelined): 12 fragments ok + +2026-08-11 09:21:08,918 INFO image_tx_daemon: frame seq=115 done (pipelined): 13 fragments ok + +2026-08-11 09:21:09,354 INFO image_tx_daemon: frame seq=116 done (pipelined): 2 fragments ok + +2026-08-11 09:21:10,714 INFO image_tx_daemon: stats: goodput=1853.9 B/s util=75% pipeline=v3 frames_in=651 ok=190 fail=0 drop_full=416 drop_stale=0 frags_ok=1198 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 09:21:10,941 INFO image_tx_daemon: frame seq=123 done (pipelined): 13 fragments ok + +2026-08-11 09:21:12,600 INFO image_tx_daemon: frame seq=129 done (pipelined): 13 fragments ok + +2026-08-11 09:21:14,177 INFO image_tx_daemon: frame seq=131 done (pipelined): 12 fragments ok + +2026-08-11 09:21:15,788 INFO image_tx_daemon: frame seq=137 done (pipelined): 13 fragments ok + +2026-08-11 09:21:16,186 INFO image_tx_daemon: frame seq=144 done (pipelined): 2 fragments ok + +2026-08-11 09:21:17,805 INFO image_tx_daemon: frame seq=151 done (pipelined): 13 fragments ok + +2026-08-11 09:21:18,205 INFO image_tx_daemon: frame seq=156 done (pipelined): 2 fragments ok + +2026-08-11 09:21:19,772 INFO image_tx_daemon: frame seq=159 done (pipelined): 12 fragments ok + +2026-08-11 09:21:19,944 INFO image_tx_daemon: frame seq=166 done (pipelined): 1 fragments ok + +2026-08-11 09:21:20,725 INFO image_tx_daemon: stats: goodput=1782.5 B/s util=72% pipeline=v3 frames_in=691 ok=199 fail=0 drop_full=445 drop_stale=0 frags_ok=1274 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 09:21:21,565 INFO image_tx_daemon: frame seq=167 done (pipelined): 13 fragments ok + +2026-08-11 09:21:21,716 INFO image_tx_daemon: frame seq=172 done (pipelined): 1 fragments ok + +2026-08-11 09:21:23,282 INFO image_tx_daemon: frame seq=173 done (pipelined): 12 fragments ok + +2026-08-11 09:21:24,879 INFO image_tx_daemon: frame seq=179 done (pipelined): 13 fragments ok + +2026-08-11 09:21:25,283 INFO image_tx_daemon: frame seq=180 done (pipelined): 2 fragments ok + +2026-08-11 09:21:26,876 INFO image_tx_daemon: frame seq=187 done (pipelined): 13 fragments ok + +2026-08-11 09:21:27,306 INFO image_tx_daemon: frame seq=192 done (pipelined): 2 fragments ok + +2026-08-11 09:21:28,872 INFO image_tx_daemon: frame seq=195 done (pipelined): 12 fragments ok + +2026-08-11 09:21:29,236 INFO image_tx_daemon: frame seq=200 done (pipelined): 2 fragments ok + +2026-08-11 09:21:30,737 INFO image_tx_daemon: stats: goodput=1786.4 B/s util=73% pipeline=v3 frames_in=731 ok=208 fail=0 drop_full=473 drop_stale=0 frags_ok=1350 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 09:21:30,855 INFO image_tx_daemon: frame seq=203 done (pipelined): 13 fragments ok + +2026-08-11 09:21:31,032 INFO image_tx_daemon: frame seq=210 done (pipelined): 1 fragments ok + +2026-08-11 09:21:32,640 INFO image_tx_daemon: frame seq=211 done (pipelined): 13 fragments ok + +2026-08-11 09:21:32,791 INFO image_tx_daemon: frame seq=216 done (pipelined): 1 fragments ok + +2026-08-11 09:21:34,358 INFO image_tx_daemon: frame seq=217 done (pipelined): 12 fragments ok + +2026-08-11 09:21:34,531 INFO image_tx_daemon: frame seq=224 done (pipelined): 1 fragments ok + +2026-08-11 09:21:36,105 INFO image_tx_daemon: frame seq=225 done (pipelined): 12 fragments ok + +2026-08-11 09:21:36,277 INFO image_tx_daemon: frame seq=230 done (pipelined): 1 fragments ok + +2026-08-11 09:21:37,895 INFO image_tx_daemon: frame seq=231 done (pipelined): 13 fragments ok + +2026-08-11 09:21:38,073 INFO image_tx_daemon: frame seq=238 done (pipelined): 1 fragments ok + +2026-08-11 09:21:39,681 INFO image_tx_daemon: frame seq=239 done (pipelined): 13 fragments ok + +2026-08-11 09:21:40,094 INFO image_tx_daemon: frame seq=244 done (pipelined): 2 fragments ok + +2026-08-11 09:21:40,749 INFO image_tx_daemon: stats: goodput=1788.2 B/s util=73% pipeline=v3 frames_in=771 ok=220 fail=0 drop_full=500 drop_stale=0 frags_ok=1426 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 09:21:41,672 INFO image_tx_daemon: frame seq=247 done (pipelined): 12 fragments ok + +2026-08-11 09:21:41,822 INFO image_tx_daemon: frame seq=254 done (pipelined): 1 fragments ok + +2026-08-11 09:21:43,420 INFO image_tx_daemon: frame seq=255 done (pipelined): 13 fragments ok + +2026-08-11 09:21:43,600 INFO image_tx_daemon: frame seq=4 done (pipelined): 1 fragments ok + +2026-08-11 09:21:45,202 INFO image_tx_daemon: frame seq=5 done (pipelined): 13 fragments ok + +2026-08-11 09:21:45,616 INFO image_tx_daemon: frame seq=10 done (pipelined): 2 fragments ok + +2026-08-11 09:21:47,235 INFO image_tx_daemon: frame seq=13 done (pipelined): 13 fragments ok + +2026-08-11 09:21:47,635 INFO image_tx_daemon: frame seq=18 done (pipelined): 2 fragments ok + +2026-08-11 09:21:49,222 INFO image_tx_daemon: frame seq=21 done (pipelined): 13 fragments ok + +2026-08-11 09:21:49,675 INFO image_tx_daemon: frame seq=26 done (pipelined): 2 fragments ok + +2026-08-11 09:21:50,761 INFO image_tx_daemon: stats: goodput=1746.6 B/s util=71% pipeline=v3 frames_in=811 ok=230 fail=0 drop_full=528 drop_stale=0 frags_ok=1501 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 09:21:51,252 INFO image_tx_daemon: frame seq=29 done (pipelined): 12 fragments ok + +2026-08-11 09:21:51,424 INFO image_tx_daemon: frame seq=34 done (pipelined): 1 fragments ok + +2026-08-11 09:21:51,596 INFO image_tx_daemon: frame seq=42 done (pipelined): 1 fragments ok + +2026-08-11 09:21:53,169 INFO image_tx_daemon: frame seq=43 done (pipelined): 12 fragments ok + +2026-08-11 09:21:53,341 INFO image_tx_daemon: frame seq=44 done (pipelined): 1 fragments ok + +2026-08-11 09:21:54,919 INFO image_tx_daemon: frame seq=45 done (pipelined): 12 fragments ok + +2026-08-11 09:21:55,096 INFO image_tx_daemon: frame seq=50 done (pipelined): 1 fragments ok + +2026-08-11 09:21:56,694 INFO image_tx_daemon: frame seq=51 done (pipelined): 13 fragments ok + +2026-08-11 09:21:58,333 INFO image_tx_daemon: frame seq=57 done (pipelined): 13 fragments ok + +2026-08-11 09:21:58,763 INFO image_tx_daemon: frame seq=58 done (pipelined): 2 fragments ok + +2026-08-11 09:22:00,385 INFO image_tx_daemon: frame seq=65 done (pipelined): 13 fragments ok + +2026-08-11 09:22:00,772 INFO image_tx_daemon: frame seq=70 done (pipelined): 2 fragments ok + +2026-08-11 09:22:00,775 INFO image_tx_daemon: stats: goodput=1776.1 B/s util=72% pipeline=v3 frames_in=851 ok=242 fail=0 drop_full=554 drop_stale=0 frags_ok=1576 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 09:22:02,380 INFO image_tx_daemon: frame seq=73 done (pipelined): 13 fragments ok + +2026-08-11 09:22:02,784 INFO image_tx_daemon: frame seq=78 done (pipelined): 2 fragments ok + +2026-08-11 09:22:02,950 INFO image_tx_daemon: batching: 102 frames in 51 trains so far (this train: 2 frames, 394 B) + +2026-08-11 09:22:04,403 INFO image_tx_daemon: frame seq=81 done (pipelined): 13 fragments ok + +2026-08-11 09:22:04,782 INFO image_tx_daemon: frame seq=86 done (pipelined): 2 fragments ok + +2026-08-11 09:22:06,348 INFO image_tx_daemon: frame seq=89 done (pipelined): 12 fragments ok + +2026-08-11 09:22:06,732 INFO image_tx_daemon: frame seq=94 done (pipelined): 2 fragments ok + +2026-08-11 09:22:08,299 INFO image_tx_daemon: frame seq=97 done (pipelined): 12 fragments ok + +2026-08-11 09:22:08,693 INFO image_tx_daemon: frame seq=102 done (pipelined): 2 fragments ok + +2026-08-11 09:22:10,259 INFO image_tx_daemon: frame seq=105 done (pipelined): 12 fragments ok + +2026-08-11 09:22:10,669 INFO image_tx_daemon: frame seq=110 done (pipelined): 2 fragments ok + +2026-08-11 09:22:10,786 INFO image_tx_daemon: stats: goodput=1714.4 B/s util=70% pipeline=v3 frames_in=891 ok=252 fail=0 drop_full=579 drop_stale=0 frags_ok=1648 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 09:22:12,287 INFO image_tx_daemon: frame seq=113 done (pipelined): 13 fragments ok + +2026-08-11 09:22:12,676 INFO image_tx_daemon: frame seq=118 done (pipelined): 2 fragments ok + +2026-08-11 09:22:14,274 INFO image_tx_daemon: frame seq=121 done (pipelined): 13 fragments ok + +2026-08-11 09:22:14,703 INFO image_tx_daemon: frame seq=126 done (pipelined): 2 fragments ok + +2026-08-11 09:22:16,322 INFO image_tx_daemon: frame seq=129 done (pipelined): 13 fragments ok + +2026-08-11 09:22:16,731 INFO image_tx_daemon: frame seq=134 done (pipelined): 2 fragments ok + +2026-08-11 09:22:18,340 INFO image_tx_daemon: frame seq=137 done (pipelined): 13 fragments ok + +2026-08-11 09:22:18,754 INFO image_tx_daemon: frame seq=142 done (pipelined): 2 fragments ok + +2026-08-11 09:22:20,374 INFO image_tx_daemon: frame seq=145 done (pipelined): 13 fragments ok + +2026-08-11 09:22:20,798 INFO image_tx_daemon: stats: goodput=1751.5 B/s util=71% pipeline=v3 frames_in=931 ok=262 fail=0 drop_full=604 drop_stale=0 frags_ok=1724 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 09:22:20,799 INFO image_tx_daemon: frame seq=150 done (pipelined): 3 fragments ok + +2026-08-11 09:22:22,407 INFO image_tx_daemon: frame seq=153 done (pipelined): 12 fragments ok + +2026-08-11 09:22:23,982 INFO image_tx_daemon: frame seq=159 done (pipelined): 12 fragments ok + +2026-08-11 09:22:25,601 INFO image_tx_daemon: frame seq=167 done (pipelined): 13 fragments ok + +2026-08-11 09:22:25,780 INFO image_tx_daemon: frame seq=168 done (pipelined): 1 fragments ok + +2026-08-11 09:22:27,346 INFO image_tx_daemon: frame seq=173 done (pipelined): 12 fragments ok + +2026-08-11 09:22:27,520 INFO image_tx_daemon: frame seq=180 done (pipelined): 1 fragments ok + +2026-08-11 09:22:29,142 INFO image_tx_daemon: frame seq=181 done (pipelined): 13 fragments ok + +2026-08-11 09:22:29,323 INFO image_tx_daemon: frame seq=186 done (pipelined): 1 fragments ok + +2026-08-11 09:22:30,814 INFO image_tx_daemon: stats: goodput=1856.6 B/s util=75% pipeline=v3 frames_in=971 ok=270 fail=0 drop_full=635 drop_stale=0 frags_ok=1801 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 09:22:30,910 INFO image_tx_daemon: frame seq=187 done (pipelined): 13 fragments ok + +2026-08-11 09:22:31,123 INFO image_tx_daemon: frame seq=194 done (pipelined): 1 fragments ok + +2026-08-11 09:22:32,690 INFO image_tx_daemon: frame seq=195 done (pipelined): 12 fragments ok + +2026-08-11 09:22:34,298 INFO image_tx_daemon: frame seq=201 done (pipelined): 13 fragments ok + +2026-08-11 09:22:34,705 INFO image_tx_daemon: frame seq=202 done (pipelined): 2 fragments ok + +2026-08-11 09:22:36,334 INFO image_tx_daemon: frame seq=209 done (pipelined): 13 fragments ok + +2026-08-11 09:22:36,748 INFO image_tx_daemon: frame seq=214 done (pipelined): 2 fragments ok + +2026-08-11 09:22:38,314 INFO image_tx_daemon: frame seq=217 done (pipelined): 12 fragments ok + +2026-08-11 09:22:38,710 INFO image_tx_daemon: frame seq=222 done (pipelined): 2 fragments ok + +2026-08-11 09:22:40,287 INFO image_tx_daemon: frame seq=225 done (pipelined): 12 fragments ok + +2026-08-11 09:22:40,680 INFO image_tx_daemon: frame seq=230 done (pipelined): 2 fragments ok + +2026-08-11 09:22:40,826 INFO image_tx_daemon: stats: goodput=1701.7 B/s util=69% pipeline=v3 frames_in=1011 ok=281 fail=0 drop_full=661 drop_stale=0 frags_ok=1873 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 09:22:42,246 INFO image_tx_daemon: frame seq=233 done (pipelined): 12 fragments ok + +2026-08-11 09:22:42,396 INFO image_tx_daemon: frame seq=238 done (pipelined): 1 fragments ok + +2026-08-11 09:22:42,568 INFO image_tx_daemon: frame seq=246 done (pipelined): 1 fragments ok + +2026-08-11 09:22:44,150 INFO image_tx_daemon: frame seq=247 done (pipelined): 12 fragments ok + +2026-08-11 09:22:44,322 INFO image_tx_daemon: frame seq=248 done (pipelined): 1 fragments ok + +2026-08-11 09:22:45,921 INFO image_tx_daemon: frame seq=249 done (pipelined): 13 fragments ok + +2026-08-11 09:22:46,098 INFO image_tx_daemon: frame seq=254 done (pipelined): 1 fragments ok + +2026-08-11 09:22:47,697 INFO image_tx_daemon: frame seq=255 done (pipelined): 13 fragments ok + +2026-08-11 09:22:49,325 INFO image_tx_daemon: frame seq=5 done (pipelined): 13 fragments ok + +2026-08-11 09:22:49,738 INFO image_tx_daemon: frame seq=6 done (pipelined): 2 fragments ok + +2026-08-11 09:22:50,839 INFO image_tx_daemon: stats: goodput=1815.5 B/s util=74% pipeline=v3 frames_in=1051 ok=291 fail=0 drop_full=688 drop_stale=0 frags_ok=1950 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 09:22:51,357 INFO image_tx_daemon: frame seq=13 done (pipelined): 13 fragments ok + +2026-08-11 09:22:51,758 INFO image_tx_daemon: frame seq=18 done (pipelined): 2 fragments ok + +2026-08-11 09:22:53,345 INFO image_tx_daemon: frame seq=21 done (pipelined): 13 fragments ok + +2026-08-11 09:22:53,791 INFO image_tx_daemon: frame seq=26 done (pipelined): 2 fragments ok + +2026-08-11 09:22:55,369 INFO image_tx_daemon: frame seq=29 done (pipelined): 12 fragments ok + +2026-08-11 09:22:55,744 INFO image_tx_daemon: frame seq=34 done (pipelined): 2 fragments ok + +2026-08-11 09:22:57,353 INFO image_tx_daemon: frame seq=37 done (pipelined): 13 fragments ok + +2026-08-11 09:22:57,751 INFO image_tx_daemon: frame seq=42 done (pipelined): 2 fragments ok + +2026-08-11 09:22:59,317 INFO image_tx_daemon: frame seq=45 done (pipelined): 12 fragments ok + +2026-08-11 09:22:59,721 INFO image_tx_daemon: frame seq=50 done (pipelined): 2 fragments ok + +2026-08-11 09:23:00,859 INFO image_tx_daemon: stats: goodput=1746.1 B/s util=71% pipeline=v3 frames_in=1091 ok=301 fail=0 drop_full=713 drop_stale=0 frags_ok=2024 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 09:23:01,340 INFO image_tx_daemon: frame seq=53 done (pipelined): 13 fragments ok + +2026-08-11 09:23:01,753 INFO image_tx_daemon: frame seq=58 done (pipelined): 2 fragments ok + +2026-08-11 09:23:03,321 INFO image_tx_daemon: frame seq=61 done (pipelined): 12 fragments ok + +2026-08-11 09:23:03,497 INFO image_tx_daemon: frame seq=66 done (pipelined): 1 fragments ok + +2026-08-11 09:23:03,900 INFO image_tx_daemon: frame seq=68 done (pipelined): 2 fragments ok + +2026-08-11 09:23:05,532 INFO image_tx_daemon: frame seq=75 done (pipelined): 13 fragments ok + +2026-08-11 09:23:07,168 INFO image_tx_daemon: frame seq=77 done (pipelined): 13 fragments ok + +2026-08-11 09:23:07,564 INFO image_tx_daemon: frame seq=78 done (pipelined): 2 fragments ok + +2026-08-11 09:23:09,151 INFO image_tx_daemon: frame seq=85 done (pipelined): 13 fragments ok + +2026-08-11 09:23:09,593 INFO image_tx_daemon: frame seq=90 done (pipelined): 2 fragments ok + +2026-08-11 09:23:10,871 INFO image_tx_daemon: stats: goodput=1736.0 B/s util=71% pipeline=v3 frames_in=1131 ok=311 fail=0 drop_full=739 drop_stale=0 frags_ok=2098 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 09:23:11,172 INFO image_tx_daemon: frame seq=93 done (pipelined): 12 fragments ok + +2026-08-11 09:23:11,548 INFO image_tx_daemon: frame seq=98 done (pipelined): 2 fragments ok + +2026-08-11 09:23:13,162 INFO image_tx_daemon: frame seq=101 done (pipelined): 13 fragments ok + +2026-08-11 09:23:13,575 INFO image_tx_daemon: frame seq=106 done (pipelined): 2 fragments ok + +2026-08-11 09:23:13,741 INFO image_tx_daemon: batching: 152 frames in 76 trains so far (this train: 2 frames, 474 B) + +2026-08-11 09:23:15,142 INFO image_tx_daemon: frame seq=109 done (pipelined): 12 fragments ok + +2026-08-11 09:23:15,546 INFO image_tx_daemon: frame seq=114 done (pipelined): 2 fragments ok + +2026-08-11 09:23:17,165 INFO image_tx_daemon: frame seq=117 done (pipelined): 13 fragments ok + +2026-08-11 09:23:17,558 INFO image_tx_daemon: frame seq=122 done (pipelined): 2 fragments ok + +2026-08-11 09:23:19,125 INFO image_tx_daemon: frame seq=125 done (pipelined): 12 fragments ok + +2026-08-11 09:23:19,536 INFO image_tx_daemon: frame seq=130 done (pipelined): 2 fragments ok + +2026-08-11 09:23:20,886 INFO image_tx_daemon: stats: goodput=1746.2 B/s util=71% pipeline=v3 frames_in=1171 ok=321 fail=0 drop_full=764 drop_stale=0 frags_ok=2171 frags_fail=0 qdepth=4 parity_tx=0 + +2026-08-11 09:23:21,134 INFO image_tx_daemon: frame seq=133 done (pipelined): 13 fragments ok + +2026-08-11 09:23:21,549 INFO image_tx_daemon: frame seq=138 done (pipelined): 2 fragments ok + +2026-08-11 09:23:23,169 INFO image_tx_daemon: frame seq=141 done (pipelined): 13 fragments ok + +2026-08-11 09:23:23,587 INFO image_tx_daemon: frame seq=146 done (pipelined): 2 fragments ok + From edebe5437a4cc3487c346805291093e4c47e1363 Mon Sep 17 00:00:00 2001 From: dorkmo <1923070+dorkmo@users.noreply.github.com> Date: Mon, 24 Aug 2026 12:33:57 -0500 Subject: [PATCH 4/4] fix(RS-12): PR #112 review -- mixed-length penultimate ambiguity surfaced, and it is informative Review catch, verified: lost_frag_idx reports an index with no train length, and these legs are mixed (12x56, 13x115 long trains), so idx 11 is the penultimate of the 13s AND the final of the 12s. The published shares are mixture-weighted, not per-population. The tool now prints the ambiguity on every mixed leg, naming what each index means per length and listing each length own penultimate count. The A/B contrast is unaffected: both legs carry near-identical mixtures (50:105 vs 56:115), so 6 percent vs 35 percent is like-for-like. The split also yields a substantive observation. Control leg per-length: len 13 -> idx 11 = 27, len 12 -> idx 10 = 3. Proportional locking would put ~13 at idx 10; it holds 3. Final-fragment losses are rare (idx 12 = 1), so 12-frag finals cannot explain the idx-11 spike either. Most economical reading: the lock is SPECIFIC to 13-fragment trains, exactly as the RS-12 mechanism predicts (it needs a SHORT final fragment to ride fire-on-TX_DONE; a 12-frag train final is nearly full-length, so no ride). Recorded as inference, not measurement. Follow-up noted in-document: give lost_frag_idx the train length so per-population shares become measurable. Host-side change, no flash. Co-Authored-By: Claude Fable 5 --- .../RESULTS.md | 31 +++++++++++++++++++ .../tools/rs12_leg_report.py | 22 +++++++++++++ 2 files changed, 53 insertions(+) diff --git a/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_12_instrumentation_verify_2026-08-24/RESULTS.md b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_12_instrumentation_verify_2026-08-24/RESULTS.md index c24212e7..d97eecf7 100644 --- a/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_12_instrumentation_verify_2026-08-24/RESULTS.md +++ b/LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_12_instrumentation_verify_2026-08-24/RESULTS.md @@ -34,6 +34,37 @@ Both loss figures land on the RS-12 arm values measured a week earlier (ctrl 3.3 ±0.1, fix 1.5–1.8) — an independent reproduction on a different day, different channel-day, and post-merge code. +### Mixed-length caveat on the "penultimate" figures (review catch, #112) + +The rx daemon's `lost_frag_idx` instrument reports an index with **no +train length**, and these legs are mixed (leg B: 12×56, 13×115 long +trains). At those two lengths, **idx 11 is the penultimate of the 13s +but the FINAL of the 12s**, so the shares above are mixture-weighted, +not clean per-population figures. The tool now prints this ambiguity on +every mixed leg. + +The A/B contrast is unaffected — both legs carry near-identical +mixtures (A 50:105, B 56:115 twelve-to-thirteen), so the 6 % vs 35 % +comparison is like-for-like. + +**And the split is informative rather than merely noisy.** Per-length +penultimate indices in the control leg: len 13 → idx 11 = **27**, len 12 +→ idx 10 = **3**. If both populations locked proportionally, idx 10 +should hold ≈13 (56/115 of 27); it holds 3. Meanwhile final-fragment +losses are rare (13-frag final, idx 12 = 1), so 12-frag finals landing +on idx 11 cannot account for the spike either. The most economical +reading: **the lock is specific to 13-fragment trains**, which is what +the RS-12 mechanism predicts — it needs a SHORT final fragment to ride +fire-on-TX_DONE, and a 12-fragment train's final is nearly full-length, +so there is no fast ride and no overwritten penultimate. This is +inference from an instrument that cannot separate the populations, not +a measurement of them. + +**Follow-up (not done):** have `lost_frag_idx` carry the train length so +per-population shares can be measured directly. That would convert the +paragraph above from inference into evidence, and it is a host-side +change — no flash required. + **What this closes:** an archive from the instrumented build now proves its own hold state two ways — the declared setting, and the physics that setting produces. Future legs (starting with the motion leg) no longer diff --git a/LifeTrac-v25/DESIGN-CONTROLLER/tools/rs12_leg_report.py b/LifeTrac-v25/DESIGN-CONTROLLER/tools/rs12_leg_report.py index 6f1a6cda..e6ee12b4 100644 --- a/LifeTrac-v25/DESIGN-CONTROLLER/tools/rs12_leg_report.py +++ b/LifeTrac-v25/DESIGN-CONTROLLER/tools/rs12_leg_report.py @@ -101,6 +101,28 @@ def main() -> int: print(f"attributed {tot}; penultimate idx {pen} = {idx.get(pen, 0)} " f"({100 * idx.get(pen, 0) / tot:.0f}%, uniform " f"{100 / tlen:.0f}%)") + + # MIXED-LENGTH AMBIGUITY (review catch, PR #112). The rx daemon's + # lost_frag_idx instrument reports an index with no train length, + # so this histogram aggregates every length present. When more + # than one long length occurs, a single index means different + # things per population: at lengths 12 and 13, idx 11 is the + # FINAL fragment of the 12s and the PENULTIMATE of the 13s. The + # share printed above is therefore mixture-weighted, not a clean + # per-population figure. Say so rather than letting the label + # imply a purity the instrument cannot deliver. + other_long = sorted(k for k in long_lens if k != tlen) + if other_long: + print(f" !! MIXED LENGTHS {sorted(long_lens)} — idx {pen} is " + f"penultimate for len {tlen}, but also " + + ", ".join( + f"{'final' if pen == k - 1 else f'idx {pen}'} of " + f"len {k}" for k in other_long) + + f"; each length's own penultimate: " + + ", ".join(f"len {k}->idx {k - 2}={idx.get(k - 2, 0)}" + for k in sorted(long_lens)) + + ". Shares are mixture-weighted; separating them needs " + "lost_frag_idx to carry the train length.") print(" " + " ".join(f"{i}:{idx.get(i, 0)}" for i in range(tlen))) # corrupt-capture indices