Wi-Fi was built to move data. But the same signal also carries a precise record of the room it passed through. That record is called Channel State Information, and learning to read it is the whole field of Wi-Fi sensing.
01What CSI actually is
When a Wi-Fi packet travels from a transmitter to a receiver, it does not arrive clean. It bounces off walls, furniture, the floor and any person in the room, and all those copies add up at the receiver. Channel State Information is the receiver's measurement of exactly how the channel changed the signal, broken down across the many frequency slices that make up a Wi-Fi channel.
Think of it as the fingerprint of the room at that instant. Move something in the room and the fingerprint changes. Measure the fingerprint many times per second and you can see movement, presence and even the slow rhythm of breathing.
02How CSI is measured
Modern Wi-Fi uses OFDM, which splits one channel into dozens of narrow subcarriers, each a slightly different frequency. Every received packet includes a known training pattern. The receiver compares what it expected against what it got, for every subcarrier, and the difference is the CSI: an amplitude and a phase value per subcarrier.
On an ESP32 you ask the chip to hand you this data with a callback, and you get the raw values for each packet. We walk through that code in how to capture CSI on an ESP32.
03Why CSI beats RSSI
Every Wi-Fi device already reports RSSI, the received signal strength. You can do crude motion detection with it, but it is one number for the whole channel, so it is noisy and misses small movements.
| Measure | What you get | Sensitivity |
|---|---|---|
| RSSI | One number: total power | Low — only big movements |
| CSI | Amplitude + phase per subcarrier | High — small movements, breathing |
We compare the two in detail in CSI vs RSSI, but the short version is: RSSI tells you how loud the room is, CSI lets you hear it across many pitches at once.
04What Wi-Fi CSI can detect
- Presence — is a person in the link area.
- Motion — how much movement is happening.
- Activity — walking, sitting, gestures.
- Breathing — the slow chest motion of someone sitting still, in the 0.1–0.5 Hz band.
- A rough distance estimate — closer movement disturbs the channel more.
Each of these is its own project. See through-wall sensing and building a CSI motion alarm for two worked examples.
05See it in action
Here is one of our experiments, where Wi-Fi alone picks up a person moving in a room with no camera involved.
06The hardware you need
You need two Wi-Fi devices that share a link: one sends packets, the other captures CSI. The simplest setup is a single ESP32 board talking to your own access point. Espressif's ESP32, ESP32-S3 and ESP32-C series all expose CSI.
No special antenna is required to start. One board gives you presence, motion and breathing on a single link. Precise position needs several boards as anchors, which we cover under indoor localization.
07The honest limits
We go deeper in the limits of single-antenna CSI, but keep three things in mind: readings are noisy and need filtering, the system has to learn the empty room first, and exact position or full body pose is beyond a single dev board. Being clear about this is the difference between a project that works and a demo that disappoints.
08FAQ
What does CSI stand for in Wi-Fi?
CSI stands for Channel State Information. It describes how a Wi-Fi signal was changed on its way from the transmitter to the receiver, for each of the many subcarriers that make up the channel.
Is Wi-Fi CSI the same as RSSI?
No. RSSI is a single number for total received power. CSI gives amplitude and phase for every subcarrier, so it is far more sensitive to small changes in the room, such as a person breathing.
Can a cheap ESP32 do Wi-Fi CSI?
Yes. Espressif exposes CSI on the ESP32 family through a callback, so a low-cost board can capture CSI and detect motion, presence and breathing on a single link.
Does Wi-Fi CSI need a camera?
No. CSI uses only the radio signal between two Wi-Fi devices. There is no image sensor, which makes it useful for privacy-respecting presence detection in a space you own.