espressif/esp-csi logo

espressif/esp-csi

Free

Applications based on Wi-Fi CSI (Channel state information), such as indoor positioning, human detection

FreeFree tier
Type
Open Source
Company
Espressif Systems

About espressif/esp-csi

ESP-CSI is an open-source project by Espressif Systems that provides applications based on Wi-Fi Channel State Information (CSI). CSI captures signal amplitude, phase, and delay, making it highly sensitive to environmental changes. It enables non-contact intelligent sensing such as indoor positioning, human detection, activity monitoring, and even subtle motion like breathing and chewing. The project supports the entire ESP32 series (including ESP32, ESP32-S2, ESP32-C3, ESP32-S3, ESP32-C5, ESP32-C6, ESP32-C61) and offers advantages like BLE assistance, dual-core 240MHz CPU with AI instruction sets, OTA upgrade capability, and rich channel information. It includes example projects (get-started, esp-radar) and tools for CSI data analysis.

Key Features

Supports all ESP32 series (ESP32, ESP32-S2, ESP32-C3, ESP32-S3, ESP32-C5, ESP32-C6, ESP32-C61)
Rich channel information including RSSI, RF noise floor, reception time, and rx_ctrl field
BLE assistance for additional device detection
Dual-core 240MHz CPU with AI instruction sets for machine learning
OTA upgrade support for existing projects
Example projects: get-started (csi_recv, csi_send, csi_recv_router) and esp-radar (connect_rainmaker, console_test, wifi_sensing_demo)
Tools for CSI data analysis (e.g., csi_data_read_parse.py)
Integration with Espressif's RainMaker cloud platform

Pros & Cons

Pros
  • Full support across all ESP32 series chips
  • Sensitive to both large and subtle environmental changes
  • Rich channel information for advanced analysis
  • BLE integration for enhanced detection capabilities
  • Powerful processing with dual-core CPU and AI instruction sets
  • OTA upgradeable without additional hardware costs
  • Strong ecosystem integration with Espressif's IoT solutions
Cons
  • Requires specific ESP32 hardware to operate
  • May require technical expertise in wireless signal processing to use effectively
  • Limited to Wi-Fi based sensing; not a standalone product
  • Performance depends on environmental conditions and Wi-Fi network setup

Best For

Indoor positioningHuman detectionHuman activity monitoring (walking, running)Subtle motion detection (breathing, chewing)Smart environment monitoringWireless positioningNon-contact intelligent sensing

FAQ

What is Channel State Information (CSI)?
CSI is a parameter that describes wireless channel characteristics including signal amplitude, phase, and signal delay. It is used to measure the state of the Wi-Fi network channel and detect environmental changes.
What can ESP-CSI detect?
ESP-CSI can detect large movements such as walking and running, as well as subtle actions like breathing and chewing, making it suitable for human activity monitoring and smart environment sensing.
Which ESP32 chips are supported?
All ESP32 series chips are supported, including ESP32, ESP32-S2, ESP32-C3, ESP32-S3, ESP32-C5, ESP32-C6, and ESP32-C61.
What example projects are included?
The repository includes 'get-started' with examples for receiving and sending CSI (csi_recv, csi_send, csi_recv_router) and 'esp-radar' with applications for RainMaker cloud reporting, console testing, and human activity detection.
Can I upgrade existing projects to use CSI?
Yes, existing projects can be upgraded to new CSI features through software OTA updates without additional hardware costs.