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 tosdkconfig.defaults.template(8 MB build) andsdkconfig.defaults.4mb(4 MB build)version.txt = 0.6.4— propagates through CMake into the application descriptor; boot banner now reportsApp 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.4andESP32-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=299at ~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 binaries8e62329d…and090ef62b…)
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.