Now, as the result of the work of researchers, anyone with everyday Wi‑Fi in their house can also use it as a contactless heart rate sensor — no chest stra… With a Raspberry Pi 4B and some clever signal processing, the team was able to achieve clinical‑grade accuracy by reading a pulse out of the faint ripples a beating heart leaves on wireless signals.
How Wi‑Fi turns a stethoscope
When Wi‑Fi waves travel through a room, they bounce off its inhabitants and pick up little snippets of their movements as they go. A human chest that rises, falls, and subtly pulses with each heartbeat alters the patterns of the multipath reflections that are received. Those changes manifest in what’s called Channel State Information (CSI)—a fine‑grained snapshot, embedded within the modern 802.11 packet, of how each individual subcarrier traveled from transmitter to receiver.

By focusing on those connected with movements on the scale of micromotions, between 0.8 and 2.17 Hz (or 48 to 130 beats per minute), the researchers have turned the background Wi‑Fi into a non‑intrusive biosensor. Unlike camera‑based solutions Wi‑Fi operates in the dark and through some obstructions, and unlike wearables, Wi‑Fi installation doesn’t require patient apps use.
The hardware: Raspberry Pi versus ESP32
They’ve verified that the idea works using two off‑the‑shelf platforms: a pair of ESP32 modules and a Raspberry Pi 4B, both of which make CSI available, but the Pi’s Wi‑Fi chipset samples a lot more subcarriers — 234 as opposed to about 64 on the ESP32 when running with wider channel widths — giving more data to reconstruct the signal of the heart.
The results were striking. In a practical implementation we reached an accuracy of 99.38% (error rate of 0.51 BPM*), using ESP32 units, with respect to reference measurements. Using just five seconds of data, the Raspberry Pi achieved an accuracy of 99.81 percent and errors of around 0.2 BPM—the benchmark standard for clinical instruments.
Those numbers correspond to other literature on RF sensing. Previous academic contributions from labs at the University of California and from groups publishing via IEEE have demonstrated that higher subcarrier density and stable radio chain can dramatically enhance the extraction of vital signs, particularly in the presence of clutter.
From CSI to BPM: the signal pipeline
Converting raw Wi‑Fi traffic into a pulse reading is a multistep process. First, the receiver spends all the time logging CSI frames continuously while packets are transmitted from a transmitter (a different Wi‑Fi device or the same Pi itself). Then, syst em si gates subject’s micro‑motion by filtering out static paths and slow changes in body posture and app lies a band‑pass filter with heart rate frequencie s.
By smoothing and denoising some residual noise peaks become aligned with the cardiac cycle instead of with respiration or random jitter. Finally, a light-weight Long Short‑Term Memory (LSTM) neural network is trained to map the cleaned waveform to an estimate of heart rate. The size of the model is small enough to execute on the Raspberry Pi without a GPU, and the inference latency is low, so that near‑real‑time readouts are obtained.

Ground truth comparisons are essential. For the study, Wi‑Fi‑derived rates were compared against those of contemporaneous conventional sensors, an accepted method of validating biomedical signals as advised by organisations such as the Association for the Advancement of Medical Instrumentation.
Replicating the setup responsibly
A real‑world PoC requires nothing more than a Raspberry Pi 4B with onboard Wi‑Fi, a second Wi‑Fi device (to generate traffic, if its needed), and software for capturing CSI. Open research toolkits such as Nexmon (which has collaborators from SEEMOO Lab) allows CSI to be extracted in some Broadcom based chipsets, and Espressif provides CSI examples in ESP32 ecosystem.
Position the transmitter and receiver a few meters apart and the subject in or near the line of sight between them. Grab 5 to 10 seconds of CSI without any major movements. Apply Python or Matlab pre‑processing and filtering, try an LSTM or dare to even try a classical peak‑detection baseline for comparing results. Measure error always against a “gold standard” – ECG or finger pulse oximeter.
Two caveats: Motion and multipath are important. Walking, arm swinging or several people at proximity can easily confuse the heart signal – multi‑person spacing usually needs beamforming or fancy models. And privacy is paramount. RF sensing can expose sensitive physiological details about a person, so consent and clear notification are non‑negotiable, especially in environments such as workplaces or public venues.
Why this matters
Contactless monitoring might augment wearables in hospitals, senior care and sleep labs, where stray cables and direct skin contact are pain points. It also suggests low‑cost telehealth: a $35–$50 microcomputer running a background service that could detect episodes of tachycardia or alert care providers without needing the user to remember to charge a device.
There are limits. Wi‑Fi cannot quite supplant the ECG for diagnosing arrhythmia, and performance ranges according to the room’s geometry, interference, and the subjects’ positions. But with a commodity radio, modern 802.11 chipsets and small neural networks, the signal is already strong enough to be useful. The broader trend — deploying common infrastructure as a health sensor — harkens back to earlier academic projects that monitored respiration and gait via RF, and it is slogging out of the lab and into the living room.
The takeaway: if your router is on, you already own part of a heart monitor. The rest could be done by a Raspberry Pi and the correct algorithms.
