Repository navigation
v1.0.1.91 — PR #96 merge (field-bug fixes) + v1.3 mp4-memory hardening
Built manually from main @ 95f0d20 (merge of PR #96, fix/idle-sleep-and-cycle-speed).
Field-bug fixes (PR #96)
- .lps playback speed no longer varies between album entries — palindrome cycle normalized to a uniform 680 ms regardless of 2/3/4-camera capture width (
loop_normalized_delays, applied to both the .mp4 sidecar timings and the .lps writer). - Encoder-hold force-sleep now always wakes on the rotary encoder — encode-time viewfinder pause/resume chain hardened (REQBUFS-before-realloc resume order, 1 Hz resume retry with cache yield). Soak-validated: 11/11 sleep/wake cycles, wakes 1–5.6 s.
- Camera modules reliably sleep on idle — sleep verify re-sends up to 8 rounds with a per-cam mask + explicit GAVE UP verdict; the S3
do_sleepnever refuses (EXT0-arm failure falls back to EXT1/10-min timer wake, newEXT0_FAILsleep-diag); trigger auto-recovery gated so it can't wake a sleeping fleet.
v1.3 mp4-memory hardening (post-.90, found on the plain-P4 bench)
- mp4 create ladder parks the bitstream buffer and retries at NATIVE before ever falling to half-res — rotate re-encodes on the v1.3 were silently downscaling then failing 0x106.
- Rotate worker defers while the foreground encode queue is busy — two concurrent mp4 encodes don't fit the v1.3's PSRAM.
Validation
Full 81-test on-device e2e union across a P4X and a plain-P4 v1.3 (parallel forward/reverse runs + targeted re-runs); all residual failures triaged to rig/unit state — details on loop-firmware PR #96.
| Variant | Image | Notes |
|---|---|---|
| P4X (chip rev v3.x) | loop-p4x.bin (= loop.bin) |
default fleet image |
| plain P4 (chip rev v1.3) | loop-p4.bin |
+ loop-p4-bootloader.bin |