ESP32-S3 能做 CSI 吗?能——以及什么时候你需要 5GHz 的芯片
2026-10-11 · ESP32-S3, Wi-Fi CSI, esp-csi, 2.4GHz, ESP32-C5 · 约 3 分钟
当原来的 ESP32 不够用时,大多数人会看向 ESP32-S3:内存更大、算力更强、带 USB,而且比树莓派便宜。 问题永远是同一个——它能不能做 CSI,够不够用?
直接给结论
- ESP32-S3 支持 Wi-Fi CSI。 Espressif 明确表示全部 ESP32 系列都支持 CSI,S3 在列; ESP-IDF 编程指南还详细写了 S3 的 CSI 载荷格式 [1] [2]。
- 它是 2.4GHz 器件。 S3 的 CSI 表只覆盖 20MHz 和 40MHz 信道,没有 5GHz 可测。
- 每个包能拿到的是几十到几百个复子载波值,不是 80MHz 路由器给你的 256 个子载波。
- 如果你就是想在 Espressif 芯片上做 5GHz CSI,那 ESP32-C5 是那个双频(2.4GHz + 5GHz)的 CSI 型号 [3]。
1. 官方文档实际怎么写的
ESP-IDF 的 ESP32-S3 指南把 CSI 描述为 "the channel frequency responses of sub-carriers … estimated when packets are received from the transmitter"。每个子载波存成两个有符号字节——先虚部,再实部—— 最多可能有三段训练字段:LLTF、HT-LTF、STBC-HT-LTF [2]。
最后这点比看起来重要:每包的载荷大小并不固定,取决于包类型、信道宽度与是否用 STBC。 S3 的表格从 128 字节(20MHz non-HT,64 个复数值) 一直到更大的 HT-LTF 情况。 请记录实际上报的长度,而不是硬编码子载波数——这条规则和路由器 CSI 完全一样。
ESP32-S3 还有一个官方记录的硬件特性:当 first_word_invalid 为真时,CSI 缓冲区的前四个字节无效,
必须丢掉 [2]。忘了这一步,你会在每次测量开头看到一个固定的凹口。
2. 让 S3 吐出 CSI(四步调用)
ESP-IDF 的流程很短 [2]:
- 在
menuconfig里打开Wi-Fi CSI(Components config → Wi-Fi → Wi-Fi CSI); - 用
esp_wifi_set_csi_rx_cb()注册接收回调; - 用
esp_wifi_set_csi_config()配置; - 用
esp_wifi_set_csi()打开。
同一页里还有两条实践提醒:
- 回调跑在 Wi-Fi task 里——把数据拷到队列,换个任务处理;
- 已连接的 station 只会收到自己 AP 的包,所以官方建议打开混杂模式以拿到更多 CSI 帧。
应用侧,espressif/esp-csi 自带收发示例和 csi_data_read_parse.py 解析器;
ESP32-CSI-Tool 是面向数据集的 CSV 路线;ESPectre 把整套东西封装成 ESPHome 存在传感器
[1] [4] [5]。
3. 5GHz 的问题
这是包装盒上不会写的取舍:
| 芯片 | 频段 | CSI | 说明 |
|---|---|---|---|
| ESP32(经典)/ ESP32-S3 | 2.4GHz | 有 | 最便宜的入口,20/40MHz |
| ESP32-C6 | 2.4GHz | 有 | Wi-Fi 6(仅 2.4GHz) |
| ESP32-C5 | 2.4 + 5GHz | 有 | 双频 Wi-Fi 6,WIFI_BAND_MODE_AUTO [3] |
| 路由器(MT7986 + mt76 CSI) | 5GHz | 有 | 80MHz / 256 子载波 / 8 条链 |
Espressif 的双频支持是真实的——C5 的 API 暴露了同时工作在 2.4GHz 与 5GHz 的 band mode [3]——但要记住:目前没有任何 Espressif 芯片给你 80MHz 的 CSI 视野。 需要那一档分辨率(呼吸、精细动作)时,路由器路线才是现实选择,也正是本站实测并公开的那条路线。
所以诚实的决策规则是:
- 学习、IoT、智能家居存在检测:ESP32-S3 足够,而且便宜 [5];
- 想在 MCU 上做 5GHz 实验:ESP32-C5;
- 全屋、高分辨率、7×24 感知:用支持 CSI 的路由器,而不是 ESP32。
4. 这对你意味着什么
ESP32-S3 是一个有第一方文档背书的正经 CSI 平台——「S3 做不了 CSI」是错的, 「S3 能做到 80MHz」同样是错的。先把频段和信道宽度定死,再选硬件。
相关:ESP32 CSI 入门 · ESP32 人体检测 · 路由器 CSI 复现 · 2.4GHz vs 5GHz
参考与数据来源
本文的每条外部结论都标注来源与证据等级(分级标准);标注 E 级的是本项目可复现的实测数据。
- C 级 · 官方资料
espressif/esp-csi — Applications based on Wi-Fi CSI
Espressif Systems
github.com/espressif/esp-csi · 核实: GitHub API 2026-10-11 (stars 1,679) · 官方 README 原文:“All ESP32 series support CSI, including ESP32 / ESP32-S2 / ESP32-C3 / ESP32-S3 / ESP32-C5 / ESP32-C6 / ESP32-C61.” - C 级 · 官方资料
ESP-IDF — Wi-Fi Channel State Information (ESP32-S3)
Espressif Systems
docs.espressif.com/projects/esp-idf/en/stable/esp32s3/api-guides/wifi-driver/wifi-vendor-features.html#wi-fi-channel-state-information · 核实: official docs fetched 2026-10-11 (ESP32-S3 CSI section: subcarrier/byte-count table and the first_word_invalid note) - C 级 · 官方资料
ESP-IDF — esp_wifi API (ESP32-C5): band mode 2.4G + 5G
Espressif Systems
docs.espressif.com/projects/esp-idf/en/stable/esp32c5/api-reference/network/esp_wifi.html · 核实: official docs fetched 2026-10-11 (text includes "band mode 2.4G + 5G (WIFI_BAND_MODE_AUTO)" and 802.11anacax) - C 级 · 官方资料
StevenMHernandez/ESP32-CSI-Tool — active/passive CSI extraction for ESP32
S. M. Hernandez
github.com/StevenMHernandez/ESP32-CSI-Tool · 核实: GitHub API 2026-10-11 (stars 571, MIT, last push 2024-07-16) - C 级 · 官方资料
francescopace/espectre — Wi-Fi CSI motion sensing for ESP32 (ESPHome)
F. Pace
github.com/francescopace/espectre · 核实: GitHub API 2026-10-11 (stars 9,505)
本页含联盟链接(rel="sponsored"),你通过链接购买不会增加成本,本站可获得少量佣金。