What ESP-CSI exposes
Espressif’s ESP-CSI library reports per-packet CSI from the WiFi PHY:- Subcarriers: 52–56 usable data subcarriers per 20 MHz channel (varies by chip and config).
- Antennas: typically 1 RX chain on most ESP32 modules (ESP32-S3 with external antenna can do better).
- Format: complex IQ per subcarrier — amplitude and phase as reported by the baseband.
- Rate: one CSI vector per received WiFi frame. Effective sampling rate = packet arrival rate, typically 20–200 Hz depending on traffic and configuration.
The phase noise floor
On a USRP with external clock sync, phase is stable enough to track sub-millimeter displacement. On COTS WiFi without sync, CARM showed CFO can reach 100 kHz, rotating phase by tens of radians per packet. On an ESP32:- CFO (carrier frequency offset) between TX and RX rotates phase by degrees per packet.
- SFO (sampling frequency offset) adds a linear phase slope across subcarriers.
- Packet boundary jitter introduces random phase steps between consecutive samples.
- Quantization in the reported IQ values adds discretization noise.
Sampling rate constraints
At 50 packets/second, Nyquist says you can resolve signals up to 25 Hz. Walking (1–5 Hz) is well within range. Breathing (0.1–0.5 Hz) is fine. Heartbeat (0.8–2 Hz) is borderline: you need consistent packet rate and clean phase. CARM recommended ~800 CSI samples per second for fine activity segmentation; ESP32 deployments typically run at 20–200 pkt/s depending on traffic. That gap limits fine-grained HAR and impulse detection (falls, sit-downs) compared to research rigs.Single antenna vs research rigs
Research systems with 3×3 MIMO (9 antenna pairs) extract spatial diversity: beamforming, angle of arrival, multi-person separation. Person-in-WiFi needed 9 TX-RX pairs to make pose estimation tractable. GoPose reconstructs 2D angle-of-arrival spectra from multi-receiver CSI. A single-antenna ESP32 sees one superposition of all scatterers. You get:- Binary occupancy — yes, reliably.
- Motion intensity — yes.
- Coarse activity — yes, with labeled data.
- Person count — rough at best.
- Pose / localization — no, not without multiple nodes at different geometry.
When cheap hardware is enough
The ESP32 is not a limitation for the tasks Wavey targets. It is a limitation for research-frontier tasks that need dense spatial sampling, and that is an honest scope boundary, not a product failure.
Further reading
Getting Started
Deployment architecture and first steps with Wavey.
WiFi CSI Intro
What the CSI matrix contains and how multipath superposition works.
Detection Ladder
Task feasibility on commodity hardware, from occupancy to pose estimation.
