Repository navigation
Loop Firmware v1.0.1.18
Persistent cam-OTA buffers (plain-P4 NO_MEM fix) + C6 flash MD5 verify
What
Fixes the two reliability holes found while pipeline-testing v1.0.1.17 on a plain-P4 v1.3 device:
- Cam OTA NO_MEM on plain P4 —
spi_camera_ota_sendallocated its 2×4 KB aligned DMA-internal chunk buffers per call; on the v1.3 build the pool is too fragmented by OTA time and every cam OTA failedchunk buffer alloc failed. The buffers are now claimed eagerly atspi_camera_init(the establisheds_chunk_rxpattern), per-call alloc kept as a degraded fallback, all frees gated. 8 KB permanent DMA-internal. - C6 flash verify —
app_c6_flashhad no write verification; a UART glitch shipped a silently-corruptnetwork_adapter(C6 dead on SDIO, and since a non-handshaking C6 never firesTRANSPORT_UP, the auto-update's retry never triggered). Each image now getsesp_loader_flash_verify()(stub-side MD5) + one in-place retry.
Validation (v1.3 rig)
- Boot cam reconcile: "4 updated, 0 already current, 0 absent", ~10 s per cam — previously failed 4/4 with NO_MEM.
- Full
c6_flashcycle: all four images flash + MD5-verify (~15 s added for the 1.2 MB image), slave boots,c6_version match=yes attempts=0. heap_caps/ SD / viewfinder healthy after; both variants build clean.
https://claude.ai/code/session_01QYRWm2rbLEWHAqCW3RgM3B
Merged PR #17 by @NickEngmann — commit 1eefdf6aa302a5338a6296f3f86957161b582890