mirror of
https://github.com/ruvnet/RuView
synced 2026-07-22 17:23:19 +00:00
56a6562e12
Two bugs in the v0.6.3-esp32 release, both reported in #505:
1. **4 MB binary boot-loops with Tmr Svc stack overflow.** The
adaptive_controller fast loop runs emit_feature_state() (lwIP
sendto via stream_sender) AND apply_decision() (which can call
rv_mesh_send_anomaly — another sendto) inside the FreeRTOS Timer
Svc callback. The previous fix (a426ae386) bumped from the 2 KiB
IDF default to 8 KiB; that absorbs the steady-state fast tick but
not the worst case where a state transition fires the anomaly
emit on top of an already-stacked feature_state emit. Bump to
16 KiB across both sdkconfig.defaults.template (8 MB build) and
sdkconfig.defaults.4mb so the two release variants stay in sync.
2. **All v0.6.3 binaries reported `App version: 0.6.2`.** version.txt
was never bumped at the v0.6.3-esp32 tag. CMake reads version.txt
into project(VERSION ...) which feeds esp_app_get_description()->
version. Bump to 0.6.4 to match the new release tag.
Verified on ESP32-S3 (COM8, MAC d0:cf:13:44:01:84):
- 4 MB build flashed clean, 853 KiB binary, 54 % flash free
- Boot banner now reports `App version: 0.6.4`
- 70 s soak, 71 medium ticks, 0 stack overflow, 0 reboots
- 5 Hz feature_state emit confirmed (seq=299 at ~60 s)
- CSI capture active throughout (motion=1.00, presence=4-20)
Closes #505.
Co-Authored-By: claude-flow <ruv@ruv.net>
40 lines
1.4 KiB
Plaintext
40 lines
1.4 KiB
Plaintext
# ESP32-S3 CSI Node — Default SDK Configuration
|
|
# This file is applied automatically by idf.py when no sdkconfig exists.
|
|
|
|
# Target: ESP32-S3
|
|
CONFIG_IDF_TARGET="esp32s3"
|
|
|
|
# Use custom partition table (8MB flash with OTA — ADR-045)
|
|
CONFIG_PARTITION_TABLE_CUSTOM=y
|
|
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions_display.csv"
|
|
|
|
# Flash configuration: 8MB (Quad SPI)
|
|
CONFIG_ESPTOOLPY_FLASHSIZE_8MB=y
|
|
CONFIG_ESPTOOLPY_FLASHSIZE="8MB"
|
|
|
|
# Compiler optimization: optimize for size to reduce binary
|
|
CONFIG_COMPILER_OPTIMIZATION_SIZE=y
|
|
|
|
# Enable CSI (Channel State Information) in WiFi driver
|
|
CONFIG_ESP_WIFI_CSI_ENABLED=y
|
|
|
|
# NVS encryption disabled by default (requires eFuse provisioning).
|
|
# Enable only after burning HMAC key to eFuse block.
|
|
# CONFIG_NVS_ENCRYPTION is not set
|
|
|
|
# Disable unused features to reduce binary size
|
|
CONFIG_BOOTLOADER_LOG_LEVEL_WARN=y
|
|
CONFIG_LOG_DEFAULT_LEVEL_INFO=y
|
|
|
|
# LWIP: enable extended socket options for UDP multicast
|
|
CONFIG_LWIP_SO_RCVBUF=y
|
|
|
|
# FreeRTOS: increase task stack for CSI processing
|
|
CONFIG_ESP_MAIN_TASK_STACK_SIZE=8192
|
|
|
|
# ADR-081: adaptive_controller runs emit_feature_state + stream_sender
|
|
# network I/O inside Timer Svc callbacks. 8 KiB was insufficient under
|
|
# lwIP sendto + state-transition rv_mesh anomaly emit (issue #505 4MB
|
|
# reset loop on Tmr Svc); 16 KiB absorbs the worst-case path.
|
|
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=16384
|