A combination of firmware for an ESP32-C3 that captures Wi-Fi probe requests and a web application for real-time visualization.
Wi-Fi Probe Request Listener
I built this for an open day at RevSpace to show visitors what their phones shout into the air. An ESP32-C3 sniffs Wi-Fi probe requests and a browser dashboard renders the stream live. The demo has a punchline: Android devices constantly announce the networks they are looking for, while iPhones stay quiet.
Two halves
- Firmware: an ESP32-C3 promiscuous-mode sniffer
- Server: Node.js with SSE broadcasting to multiple clients
- Views: tag cloud, mood cloud, raw data, SSID analysis
- A protocol spec so you can write your own client
How a probe travels
Every probe request starts as radio noise on the ESP32-C3. Promiscuous mode captures the management frames; the firmware keeps only probe requests, adds channel, RSSI, MAC and SSID, and appends a checksum. The Node.js server validates the stream and pushes it live over SSE. The raw view shows events as parsed; the tag cloud just weighs the SSIDs.