menu "CSI Node Configuration" config CSI_NODE_ID int "Node ID (0-255)" default 1 range 0 255 help Unique identifier for this ESP32 CSI node. config CSI_TARGET_IP string "Aggregator IP address" default "192.168.1.100" help IP address of the UDP aggregator host. config CSI_TARGET_PORT int "Aggregator UDP port" default 5005 range 1024 65535 help UDP port the aggregator listens on. config CSI_WIFI_SSID string "WiFi SSID" default "wifi-densepose" help SSID of the WiFi network to connect to. config CSI_WIFI_PASSWORD string "WiFi Password" default "" help Password for the WiFi network. Leave empty for open networks. config CSI_WIFI_CHANNEL int "WiFi Channel (1-13)" default 6 range 1 13 help WiFi channel to listen on for CSI data. endmenu menu "Edge Intelligence (ADR-039)" config EDGE_TIER int "Edge processing tier (0=raw, 1=basic, 2=full)" default 2 range 0 2 help 0 = Raw passthrough (no on-device DSP). 1 = Basic presence/motion detection. 2 = Full pipeline (vitals, compression, multi-person). config EDGE_VITAL_INTERVAL_MS int "Vitals packet send interval (ms)" default 1000 range 100 10000 help How often to send vitals packets over UDP. config EDGE_TOP_K int "Top-K subcarriers to track" default 8 range 1 32 help Number of highest-variance subcarriers to use for DSP. config EDGE_FALL_THRESH int "Fall detection threshold (x1000)" default 15000 range 100 50000 help Phase acceleration threshold for fall detection. Value is divided by 1000 to get rad/s². Default 15000 = 15.0 rad/s². Raise to reduce false positives in high-traffic environments. Normal walking produces accelerations of 2-5 rad/s². Stored as integer; divided by 1000 at runtime. Default 2000 = 2.0 rad/s^2. config EDGE_POWER_DUTY int "Power duty cycle percentage" default 100 range 10 100 help Active duty cycle for battery-powered nodes. 100 = always on. 50 = active half the time. endmenu menu "AMOLED Display (ADR-045)" config DISPLAY_ENABLE bool "Enable AMOLED display support" default y help Enable RM67162 QSPI AMOLED display and LVGL UI. Auto-detects at boot; gracefully skips if no display hardware. Requires SPIRAM for frame buffers. config DISPLAY_FPS_LIMIT int "Display refresh rate limit (FPS)" default 30 range 10 60 depends on DISPLAY_ENABLE help Maximum display refresh rate. Lower values save CPU. config DISPLAY_BRIGHTNESS int "Default backlight brightness (%)" default 80 range 0 100 depends on DISPLAY_ENABLE config DISPLAY_QSPI_CS int "QSPI CS GPIO" default 6 depends on DISPLAY_ENABLE config DISPLAY_QSPI_CLK int "QSPI CLK GPIO" default 47 depends on DISPLAY_ENABLE config DISPLAY_QSPI_D0 int "QSPI D0 GPIO" default 18 depends on DISPLAY_ENABLE config DISPLAY_QSPI_D1 int "QSPI D1 GPIO" default 7 depends on DISPLAY_ENABLE config DISPLAY_QSPI_D2 int "QSPI D2 GPIO" default 48 depends on DISPLAY_ENABLE config DISPLAY_QSPI_D3 int "QSPI D3 GPIO" default 5 depends on DISPLAY_ENABLE config DISPLAY_TOUCH_SDA int "Touch I2C SDA GPIO" default 3 depends on DISPLAY_ENABLE config DISPLAY_TOUCH_SCL int "Touch I2C SCL GPIO" default 2 depends on DISPLAY_ENABLE config DISPLAY_TOUCH_INT int "Touch INT GPIO" default 21 depends on DISPLAY_ENABLE config DISPLAY_TOUCH_RST int "Touch RST GPIO" default 17 depends on DISPLAY_ENABLE config DISPLAY_BL_PIN int "Backlight PWM GPIO" default 38 depends on DISPLAY_ENABLE endmenu menu "WASM Programmable Sensing (ADR-040)" config WASM_ENABLE bool "Enable WASM Tier 3 runtime" default y help Enable the WASM3 interpreter for hot-loadable sensing modules. Requires WASM3 source in components/wasm3/wasm3-src/. Adds ~120 KB flash and ~20 KB SRAM. config WASM_MAX_MODULES int "Maximum concurrent WASM modules" default 4 range 1 8 help Number of WASM module slots. Each slot can hold one loaded .wasm binary (stored in PSRAM, max 128 KB each). config WASM_VERIFY_SIGNATURE bool "Require Ed25519 signature verification for WASM uploads" default y help When enabled, uploaded .wasm binaries must include a valid Ed25519 signature. Uses the same signing key as OTA firmware. Disable with provision.py --no-wasm-verify for lab/dev use. config WASM_TIMER_INTERVAL_MS int "WASM on_timer() interval (ms)" default 1000 range 100 60000 help How often to call on_timer() on running WASM modules. Default 1000 ms = 1 Hz. endmenu menu "Mock CSI (QEMU Testing)" config CSI_MOCK_ENABLED bool "Enable mock CSI generator (for QEMU testing)" default n help Replace real WiFi CSI with synthetic frame generator. Use with QEMU emulation for automated testing. config CSI_MOCK_SKIP_WIFI_CONNECT bool "Skip WiFi STA connection" depends on CSI_MOCK_ENABLED default y help Skip WiFi initialization when using mock CSI. config CSI_MOCK_SCENARIO int "Mock scenario (0-9, 255=all)" depends on CSI_MOCK_ENABLED default 255 range 0 255 help 0=empty, 1=static, 2=walking, 3=fall, 4=multi-person, 5=channel-sweep, 6=mac-filter, 7=ring-overflow, 8=boundary-rssi, 9=zero-length, 255=run all. config CSI_MOCK_SCENARIO_DURATION_MS int "Scenario duration (ms)" depends on CSI_MOCK_ENABLED default 5000 range 1000 60000 config CSI_MOCK_LOG_FRAMES bool "Log every mock frame (verbose)" depends on CSI_MOCK_ENABLED default n endmenu