Open source · Python · Windows · Wi-Fi sensing
WiFi Body Sensor
WiFi Body Sensor uses a standard desktop Wi-Fi adapter and a Telus Wi-Fi modem to detect human presence, walking and breathing through interior walls. It needs no radar hardware or custom firmware: it looks for small disturbances in the 5 GHz signal between the PC and the modem.
How it works
- Polls the Telus modem's signal strength (RSSI) at 20–25 Hz through Windows Native Wifi
- Times ICMP pings to the gateway to catch the latency jitter caused by Wi-Fi retransmissions
- Watches 802.11ax link rate (MCS) changes
- Learns the room's baseline noise, then filters for breathing (0.15–0.45 Hz) and movement (0.5–3.0 Hz)
Dashboard
- Through-wall polar radar view and a 0–100% disturbance gauge (quiet, breathing, motion, high)
- Dual-trace oscilloscope and a live FFT waterfall spectrogram
- Recalibrate, sensitivity, wall attenuation, audio alerts and a simulate mode
Requirements
- Windows 10/11 connected to a Telus Wi-Fi modem on 5 GHz
- Python 3.10+ with FastAPI, Uvicorn, websockets, NumPy and SciPy
- Runs locally and opens a dashboard at 127.0.0.1:8000
FAQ
What does WiFi Body Sensor do?
It detects human presence, walking and breathing through interior walls using a standard desktop Wi-Fi adapter and a Telus Wi-Fi modem.
Does it need special hardware?
No radar hardware or custom firmware. It runs on Windows 10/11 connected to a Telus Wi-Fi modem on 5 GHz.
How does it sense movement?
It polls the modem's signal strength (RSSI) at 20–25 Hz, times ICMP pings to catch latency jitter, watches 802.11ax link rate changes, and filters for breathing (0.15–0.45 Hz) and movement (0.5–3.0 Hz).
What does it need to run?
Python 3.10+ with FastAPI, Uvicorn, websockets, NumPy and SciPy. It opens a local dashboard at 127.0.0.1:8000.
Source code
The code, README and licence are on GitHub: github.com/YardPhantom/wifi-body-sensor.