Download Latest Version v0.6.5-esp32 -- Tmr Svc bootloop fix + OTA fail-closed visibility source code.tar.gz (54.1 MB)
Email in envelope

Get an email when there's a new version of RuView

Home / v0.6.4-esp32
Name Modified Size InfoDownloads / Week
Parent folder
ota_data_initial.bin 2026-05-07 8.2 kB
bootloader.bin 2026-05-07 18.9 kB
esp32-csi-node-4mb.bin 2026-05-07 872.4 kB
esp32-csi-node.bin 2026-05-07 1.1 MB
partition-table-4mb.bin 2026-05-07 3.1 kB
partition-table.bin 2026-05-07 3.1 kB
README.md 2026-05-07 3.2 kB
v0.6.4-esp32 -- Tmr Svc 16 KiB stack + version drift fix source code.tar.gz 2026-05-07 44.8 MB
v0.6.4-esp32 -- Tmr Svc 16 KiB stack + version drift fix source code.zip 2026-05-07 45.9 MB
Totals: 9 Items   92.7 MB 64

Highlights

4 MB binary reset-loop fixed. The esp32-csi-node-4mb.bin shipped in v0.6.3 boot-looped with *** ERROR *** A stack overflow in task Tmr Svc has been detected. ~5 s after every boot, on the first adaptive_ctrl medium tick. The adaptive controller's fast loop calls emit_feature_state() (lwIP sendto) and on state transitions also calls rv_mesh_send_anomaly (another sendto) — the previous 8 KiB Timer Svc stack absorbed the steady state but not the worst-case stacked emit path. Bumped to 16 KiB in both 4 MB and 8 MB sdkconfigs so the two release variants stay in sync.

Version-string drift fixed. Every v0.6.3 binary reported App version: 0.6.2 because version.txt was never bumped at the tag. CMake reads version.txt into project(VERSION ...) which feeds esp_app_get_description()->version. version.txt is now 0.6.4.

Fixes

  • CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=16384 (was 8192) — applied to sdkconfig.defaults.template (8 MB build) and sdkconfig.defaults.4mb (4 MB build)
  • version.txt = 0.6.4 — propagates through CMake into the application descriptor; boot banner now reports App version: 0.6.4

Validation (ESP32-S3, COM8, MAC d0:cf:13:44:01:84)

  • 4 MB build: 853 KiB binary, 54 % flash free, flashed clean over USB-Serial/JTAG
  • Boot banner reports App version: 0.6.4 and ESP32-S3 CSI Node (ADR-018) — v0.6.4 — Node ID: 1
  • 70 s soak: 71 medium ticks, 0 Tmr Svc stack overflow, 0 reboots (original v0.6.3-4mb crashed within 5 s on the first medium tick)
  • 5 Hz feature_state emit confirmed (feature_state_seq=299 at ~60 s)
  • CSI capture active throughout (motion=1.00, presence=4–20, rssi -36 to -48 dBm)
  • ELF SHA256 prefix c04a39338… (distinct from both bad v0.6.3 binaries 8e62329d… and 090ef62b…)

Binaries

File Variant Size SHA-256 (prefix)
esp32-csi-node.bin 8 MB flash 1063 KiB 0066d74d35b0dbca…
esp32-csi-node-4mb.bin 4 MB flash (SuperMini, N16R2) 852 KiB 2463f91c6293bd5a…
bootloader.bin bootloader 18 KiB 966d143eea0130cc…
partition-table.bin 8 MB layout 3 KiB 67222c257c047750…
partition-table-4mb.bin 4 MB layout 3 KiB 4c2cc4ffd5264123…
ota_data_initial.bin OTA boot data 8 KiB 7d2c7ac4888bfd75…

Flash via esptool

8 MB board:

python -m esptool --chip esp32s3 -b 460800 \
  --before default_reset --after hard_reset \
  write_flash --flash_mode dio --flash_size 8MB --flash_freq 80m \
  0x0      bootloader.bin \
  0x8000   partition-table.bin \
  0xf000   ota_data_initial.bin \
  0x20000  esp32-csi-node.bin

4 MB board (SuperMini / N16R2):

python -m esptool --chip esp32s3 -b 460800 \
  --before default_reset --after hard_reset \
  write_flash --flash_mode dio --flash_size 4MB --flash_freq 80m \
  0x0      bootloader.bin \
  0x8000   partition-table-4mb.bin \
  0xf000   ota_data_initial.bin \
  0x20000  esp32-csi-node-4mb.bin

After flashing, provision WiFi credentials with firmware/esp32-csi-node/provision.py.

Closes [#505].

Source: README.md, updated 2026-05-07