How Does Location Sensing via WiFi CSI Work?
Using Physical Layer Data of WiFi Signals Like Radar
Typical WiFi signal strength (RSSI) measures only a single overall signal power, but CSI (Channel State Information) measures amplitude and phase data for each of the 56 subcarriers. When WiFi signals travel through space, they reflect, absorb, and diffract off the human body, and CSI can detect these changes at millimeter level. Placing 4-6 nodes with CSI-capable chips like ESP32-S3 in a room forms Nร(N-1) links that scan the space from multiple angles. Collecting simultaneously on channels 1, 6, and 11 creates 3ร56=168 virtual subcarriers to maximize spatial resolution. The RuView project is an open-source implementation of this technology.
Architecture Diagram
How It Works
Place 4-6 ESP32-S3 nodes in a room, sending/receiving WiFi signals to form Nร(N-1) links
Collect CSI data (56 subcarriers ร amplitude+phase) on channels 1, 6, 11 from each link in real-time
Remove outliers with Hampel filter, estimate Angle of Arrival (AoA) with SpotFi algorithm
Calculate physical interaction between human body and signals via Fresnel zone modeling
Separate breathing (0.1-0.5Hz) and heartbeat (0.8-2.0Hz) frequency bands via FFT analysis
AI (Attention + Graph algorithms) separates human signals from noise, estimates position and behavior
Pros
- ✓ Privacy protection without cameras
- ✓ Detection possible even behind walls/obstacles
- ✓ No wearable devices needed
- ✓ Can measure vital signs like breathing and heartbeat
- ✓ Can leverage existing WiFi infrastructure
Cons
- ✗ Not possible with regular routers (special firmware capable of CSI extraction needed)
- ✗ Multiple ESP32 nodes required (4-6)
- ✗ Recalibration needed for environment changes (furniture moves, etc.)
- ✗ Initial data collection time needed for AI model training
- ✗ Higher implementation complexity compared to RSSI