fix(firmware): change promiscuous filter to ALL frames for CSI capture

ESP32-S3 CSI requires DATA frames (LTF extraction) — MGMT-only filter
silences CSI entirely on this chip revision because management frames
(beacons, probe req/resp) contain no extractable LTF.

Root cause: CSI yield=0pps despite WiFi connected and RSSI healthy.
Fix: WIFI_PROMIS_FILTER_MASK_MGMT → WIFI_PROMIS_FILTER_MASK_ALL.

Verified on Heltec LoRa V3 (ESP32-S3FN8 rev v0.2, Zyxel_D631 AP).
Post-fix yield: 5-8 pps stable.

Note: On busy networks (100+ data frames/sec) this may cause WiFi HW
interrupt storms that crash Core 0. Low-traffic networks are safe.
This commit is contained in:
Volkan TAŞCI 2026-06-01 18:58:34 +03:00
parent d199279caa
commit 123df30351
1 changed files with 1 additions and 1 deletions

View File

@ -472,7 +472,7 @@ void csi_collector_init(void)
* adds ~10 Hz probe responses from APs ~20 Hz total, matching the
* edge processing designed sample rate of 20 Hz. */
wifi_promiscuous_filter_t filt = {
.filter_mask = WIFI_PROMIS_FILTER_MASK_MGMT,
.filter_mask = WIFI_PROMIS_FILTER_MASK_ALL,
};
ESP_ERROR_CHECK(esp_wifi_set_promiscuous_filter(&filt));