SGP Official store ↗
Blog / Projects / Wi-Fi CSI

What is Wi-Fi CSI? A complete guide

Channel State Information is the detail hidden inside every Wi-Fi link. Read it continuously and an ordinary radio becomes a motion, presence and breathing sensor, with no camera. This is the plain-English guide, with a real demo and working code.

Published 20 Oct 2026Read 12 minLevel BeginnerTopic Wi-Fi CSI
SGP Wi-Fi CSI demo video Watch · SGP on YouTube
VIDEO — Our own Wi-Fi CSI demo. The signal between two devices changes as a person moves, and that change is what we read.

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.

amp frequency each bar = one subcarrier · its height is amplitude · phase is measured too
FIG 1 — CSI reports amplitude and phase for every subcarrier. A person moving reshapes this whole pattern, which is far more information than a single signal-strength number.

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.

MeasureWhat you getSensitivity
RSSIOne number: total powerLow — only big movements
CSIAmplitude + phase per subcarrierHigh — 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

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.

Experiment detecting a person with Wi-Fi only Watch · real experiment
VIDEO — A longer experiment showing how Wi-Fi alone reacts to a person in the room, without any camera.

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.

SGP Card Mini, an ESP32-S3 board that captures Wi-Fi CSI
The SGP Card Mini is an ESP32-S3 board with Wi-Fi, Bluetooth LE and LoRa. CSI capture works out of the box.

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

Read this before you believe a demoWith one board and one antenna you get a real, useful motion and presence signal. You do not get a clean image of where a person is standing. That needs multiple antennas and heavy processing.

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.

SGP Lab — written by the team that designs and builds SGP hardware in Europe. We test every example on our own boards before publishing.

SGP devices are sold only at our official store.

sgpstore.net ↗