Making everyday Wi‑Fi into a contactless heart rate sensor might sound like science fiction but the physics and the engineering are indeed very real. With a Raspberry Pi and some off-the-shelf radio frequency equipment, researchers can detect a person’s pulse and breathing rate from the way that person’s body ever so slightly disturbs the radio waves reflecting off it — all without wires, sensors or wearables touching the body.
A new project at the University of California, known in conference materials as Pulse‑Fi, provides a case in point.

Working with ordinary Wi‑Fi signals, Channel State Information (CSI) data from standard Wi‑Fi transmissions, the researchers achieved performance that closely approximated that of reference devices, all with off‑the‑shelf hardware and a few seconds of data.
How Wi‑Fi “listens” for a heartbeat
Wi‑Fi radios utilize orthogonal frequency‑division multiplexing to multiplex data over a large number of subcarriers. CSI measures the amplitude and phase of each of those subcarriers as waves sojourn through the environment from transmitter to receiver. When a chest heaves up and down — even a heart that causes millimeter-scale micromotions — those motions imprint tiny, periodic changes on the CSI.
The resting heart rate is in a predictable range, typically 0.8 to a little over 2 Hz (about 48–130 beats per minute) for the majority of adults. Through the detection of slight rhythmic dynamics of the heartbeat across multiple subcarriers and over time, background clutter, like stationary furniture, HVAC disturbance, or a sitter fidgeting, can be cancelled out.
Why the Raspberry Pi is the right platform
The Raspberry Pi 4B’s dual‑band 802.11ac radio combines a dense set of subcarriers and stable packet timing to aid precision. On this published test, the Pi beats these cheapskate ESP32 implementations, largely because it exposes more subcarrier detail, which can be leveraged into better CSI for the algorithms. The hardware bill is shallow: usually cheaper than a mid-range fitness watch, and without the need for exotic sensors.
On the software side, researchers generally run the Pi in monitor mode to capture CSI with modified drivers and open‑source and academic‑related tools. Packets are constantly injected at a fixed rate (hundreds per second) to keep the signal stable and timestamped packets capture so that later processing can work with clean, synchronized streams.
Inside the signal‑processing pipeline
The standard pipeline is as follows: background multipath is estimated and subtracted to eliminate static reflections from the image. Then the data is detrended and denoised (commonly with a Hampel or median filter) and a band pass filter removes all except the 0.8–2.0 Hz band in which heart beats fall. A principal component analysis or independent component analysis then consolidates dozens or hundreds of subcarriers into a few components that convey the rhythmic signature.”

In that band, two signals compete: respiration and pulse. The models discriminate among them via their distinct morphology and stability. A number of teams apply small recurrent neural networks (RNNs) (e.g. a small LSTM) to capture periodicity and smooth away noise. Detecting peaks on a 5‑s window of the beat period produces BpM estimates that converge quickly with minimal drift. When benchmarked against ECG‑derived heart rate, the UC group observed errors as low as ~0.2 BPM on a Raspberry Pi, and of ~0.5 BPM with ESP32 modules — calibration that can compete with clinical monitors in controlled environments.
Range, reliability, and what can go wrong.
Experiments show reliable operation at typical room distances without line-of-sight, thanks to multipath reflections. Stillness helps: vigorous arm movements or someone walking between the radios can swamp the heartbeat signature. Dual-band setups offer trade-offs – 2.4 GHz penetrates better but is louder; 5 GHz provides more subcarriers and often cleaner CSI but is more attenuated by walls. Environmental control matters. Fans, swinging doors, and pets add low-frequency motion that can hide the signal. Multi-person scenarios are harder. Academic prototypes localize subjects with multiple antennas or nodes, but consumer-grade Pi builds typically only deal with one target. As with any RF sensing, calibration in the actual room pays off.
How this compares to wearables .
Wearables read optical or electrical signals directly; this is robust during movement but needs skin contact and battery charging. Wi-Fi sensing flips the trade-off: entirely passive for the user, scales to whole rooms, can run continuously from wall power. In sleep research and elder-care, contactless monitoring is a positive selling point for comfort and compliance – a point demanded by the clinicians in published review papers from the National Institutes of Health. A Raspberry Pi prototype is not a medical device. Clinical deployment would need validation under standards for cardiac monitors and legal use clearance. Even for home projects, results should be considered informational without confirmation against approved equipment.
Privacy and ethics first.
Wi‑Fi sensing, because it can deduce health signals with no one wearing a device, raises issues of consent and data governance. Privacy researchers and consumer protection agencies have warned that delicate health data telemetries constitute information that should receive special protections. Local, on‑device processing and clear opt‑in policies minimize risk; pushing raw RF traces to the cloud does not.
A practical way for experimentation
The low end is an Raspberry Pi 4B, with its onboard Wi‑Fi in monitor mode, together with an access point that saturates the link.
Capture CSI, filter and reduce dimension, and run a lightweight model for peak tracking. Try keeping subjects within a couple meters, minimize other movements, and try do sanity checks against a chest strap or ECG signal. With the proper setup, you can actually see a heartbeat pop out of the air — a beautiful interplay of radio physics and modern signal processing.