BugFinder: a pocket bug sweeper
An ESP32 that only listens, flagging hidden networks, streaming cameras and stray AirTags. Now on version 3, with my iPhone as the console.
BugFinder started with a question: how much could a cheap ESP32 tell me about the wireless devices in a room?
It turned out to be a lot. BugFinder listens passively and never jams or attacks anything. It looks for:
- Wi-Fi networks, including hidden ones, with channel, signal strength and security type.
- Wi-Fi devices, including ones that aren’t on my network, and flags a steady upload stream, which is the signature of a camera sending video.
- Bluetooth devices, with a check for Apple Find My / possible AirTags and a “separated tag” alert.
You set a baseline from outside the room, then walk through slowly. Anything that’s new and very close, streaming, or tracker-like raises an alert.
Versions so far
- v1: serial output only. Proved the idea.
- v1.5: controlled from my phone through a small web page the ESP32 hosts.
- v2: ported to a Cheap Yellow Display with a touchscreen and a Bluetooth security audit. The touchscreen turned out to be the weak link.
- v3 (running now): a bare ESP32 with no screen at all. It joins my phone’s hotspot, and my iPhone becomes the console: live scans, a hunt mode for tracking down a signal, saved baselines for up to five rooms, and the Bluetooth security audit on demand. A single LED blinking fast means something needs a look.
What it can’t do
It can’t see 5 GHz Wi-Fi, analog RF bugs, camera lenses or devices that are switched off. Those need different hardware, which may become future add-ons.
