v1611
ruvnet/RuViewv1611Jun 9, 2026by github-actions[bot]
AI Summary
This release resolves CSI starvation issues on the ESP32 where the device would enter a degraded state due to a lack of received OFDM frames. The fix adds a self-ping mechanism to generate a baseline of traffic, ensuring consistent CSI capture.
Key Highlights
- Resolves CSI starvation and degraded status caused by sparse beacon traffic in quiet networks.
- Added a self-ping mechanism to the DHCP gateway to generate ~50 Hz OFDM unicast traffic.
- Ensures stable CSI yield (~15 pps) regardless of promiscuous filter settings.
- Verified on ESP32-S3 hardware with adaptive control states.
Full Release Notes
Automated release from CI pipeline **Changes:** fix(esp32): add connected-STA self-ping CSI traffic source (#954) (#985) The ESP32 CSI engine only produces CSI for received OFDM frames (L-LTF/ HT-LTF). On a quiet network — or on a display-enabled build where the #893 MGMT->MGMT+DATA promiscuous upgrade is skipped (has_display=true) — the only CSI-eligible frames are sparse beacons (often non-OFDM DSSS), so wifi_csi_callback can starve to yield=0pps -> DEGRADED -> motion=0 (#521, #954). Fix (additive): pin a ~50 Hz OFDM unicast floor by pinging the STA's own DHCP gateway. The router's ICMP echo replies are OFDM frames destined to this station and drive the CSI engine regardless of promiscuous filter state or ambient traffic. Mirrors Espressif's esp-csi csi_recv_router reference. Promiscuous capture (#396/#893) is left fully intact so multistatic/multi-node sensing still hears other stations' frames. Reconciles PR #955 (which removed promiscuous entirely and conflicted with the already-shipped #893 DATA-capture path) into an additive change on current main. Verified on ESP32-S3 (N16R8, COM8), ESP-IDF v5.4: Promiscuous mode enabled (MGMT-only, RuView#396) self-ping started -> 192.168.1.1 @50Hz (CSI OFDM source, fix #521/#954) CSI cb #1: len=128 rssi=-40 ch=5 adaptive_ctrl: state=6 yield=13-19pps motion=1.00 presence>0 (SENSE_ACTIVE) DEGRADED cleared; CSI yield stable ~15 pps over 60 s. Co-authored-by: Meraj <merajmehrabi@gmail.com> **Docker Image:** `ghcr.io/ruvnet/RuView:5789351b78f1f4c9dcd4bc15117588911b12dc2d`