Skip to content

fix(firmware): CSI not enabled in sdkconfig — build guard + sdkconfig.defaults (ADR-057) #241

@ruvnet

Description

@ruvnet

Summary

The committed sdkconfig had CONFIG_ESP_WIFI_CSI_ENABLED disabled (line 1135: # CONFIG_ESP_WIFI_CSI_ENABLED is not set), causing a runtime error on all builds:

E (6700) wifi:CSI not enabled in menuconfig!

Root cause: sdkconfig.defaults.template had the correct setting, but ESP-IDF only reads sdkconfig.defaults (no .template suffix). No sdkconfig.defaults file was committed.

Fixes Applied (ADR-057)

  1. sdkconfig line 1135: Changed to CONFIG_ESP_WIFI_CSI_ENABLED=y
  2. sdkconfig.defaults: Created from template so fresh builds inherit correct defaults
  3. csi_collector.c: Added #error compile-time guard — turns confusing runtime crash into clear build error with fix instructions

Related Issues

Hardware Support Matrix

Variant Supported Notes
ESP32-S3 Yes All variants (N4R2, N8R8, N16R8, Super Mini, DevKitC)
ESP32 (original) No Partial CSI, different architecture
ESP32-C3 No Has CSI but needs separate RISC-V build target
ESP32-C6 No Has CSI but needs separate RISC-V build target

Test Plan

  • Rebuild firmware with Docker: verify CONFIG_ESP_WIFI_CSI_ENABLED=y in build output
  • Flash ESP32-S3 and confirm CSI callbacks fire (no runtime error)
  • Delete sdkconfig, run idf.py build — verify sdkconfig.defaults applies CSI setting
  • Comment out CONFIG_ESP_WIFI_CSI_ENABLED=y in sdkconfig — verify compile fails with #error

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingfirmwareESP32 firmware

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions