github ruvnet/RuView v0.6.4-esp32
v0.6.4-esp32 — Tmr Svc 16 KiB stack + version drift fix

7 hours ago

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.

Don't miss a new RuView release

NewReleases is sending notifications on new releases.