Skip to content

yield=0pps on ESP32-S3-DevKitC-1-N8R8 (no display): MGMT-only filter starves CSI callback — pre-built binary fix needed #893

@dolle-ship-it

Description

@dolle-ship-it

We set up 6x ESP32-S3-DevKitC-1-N8R8 nodes (8MB Flash N8R8, no display) with a TP-Link EAP225 access point on channel 1 and Ubuntu 22.04 running sensing-server v0.3.1. All nodes connect to WiFi successfully — Got IP confirmed, RSSI around -50 dBm — but yield stays permanently at 0pps and no CSI cb messages ever appear in the serial output.

After investigation we found the root cause: the release_bins pre-built binaries are compiled with MGMT-only promiscuous filter as the RuView#396 workaround. This was designed to prevent SPI flash cache crashes on boards with QSPI displays. The ESP32-S3-DevKitC-1 has no display at all, so the crash risk simply does not apply to our hardware — but the MGMT-only filter starves the CSI callback (RuView#521) and yield collapses to zero permanently.

We fixed this by recompiling the firmware from source using Docker with espressif/idf:v5.4, changing the promiscuous filter to MGMT+DATA. The existing 50Hz rate gate in wifi_csi_callback (CSI_MIN_PROCESS_INTERVAL_US = 20ms) prevents the SPI flash cache crash on our hardware. After recompilation yield immediately jumped to 15-21 pps on all 6 nodes.

We would like to request a separate pre-built binary for display-less boards like the DevKitC-1. Many users will have exactly this board and hit the same issue without knowing why.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workinghardware

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions