AI summary
Passive surveillance detector that listens for WiFi and Bluetooth signals from cameras, drones, body cams, and trackers, then alerts you via phone or Meshtastic mesh. Requires a companion beacon hardware device; latest update removed storage permission and improved privacy explanations for log exports.
Generated by AI. May contain inaccuracies.
About this app
All Cameras Are Beacons. A little gadget that quietly notices when surveillance gear is around you and gives you a heads-up, either on your phone or out over a Meshtastic mesh.
It runs on the beacon (the two-radio board) and on the Colonel Panic OUI-Spy and Mesh-Detect boards (tiny Seeed XIAO ESP32-S3 dev boards). Plug it in and it listens for the radio signals that cameras, sensors, and drones are already shouting into the air. When it detects one, it tells you.
The Beacon
The beacon is a pocket detector, about the size of an AirPods case, that quietly maps the surveillance broadcasting around you. Flip it on, drop it in a bag, and everything it hears shows up live on your phone.
It is a passive detector on two bands, WiFi and Bluetooth. Surveillance gear announces itself over the air to do its job; the beacon recognizes those broadcasts and puts them on your map. It never probes, jams, or spoofs nearby devices; its encrypted Bluetooth link exchanges results and settings only with your phone. It is a detector, not a weapon.
What it catches
- Flock / ALPR license-plate cameras, plus Flock's Raven audio sensors. - Drones overhead: the FAA Remote ID broadcast is the main tell. DJI, Parrot, Skydio, Autel, and Yuneec craft are also flagged by their own radio hardware when they are not broadcasting it. - Body-worn cameras in range (Axon, matched on its own registered hardware address and on its device tag). A broader Motorola Solutions vendor match sits on its own switch under body cam, opt-in and off by default. In our own capture, every one of those hits was fixed equipment, not anything worn, so it reads as a weak match to verify rather than a confirmed camera. - BLE item trackers riding along with you (AirTag / Find My, Tile, SmartTag; off by default). Your phone sees a tracker from the first sighting, and the buzzer holds quiet for that tracker's first minute, so one you merely walk past never sounds. - Smart / recording glasses on the people around you (Ray-Ban / Oakley Meta, Snap Spectacles, Vuzix). This is an honest "possible glasses" call, since the Meta signature can also be a VR headset. - Network cameras on the WiFi you are on (opt-in, off by default). It matches branded IP-camera OUIs like Hikvision, Dahua, Amcrest, Axis, Reolink on the host network. It matches known camera brands, not every camera, and is never a hidden-camera claim.
The Device
- Dual radio: a dedicated Bluetooth scanner runs flat-out while a second radio handles WiFi and the app link, so neither starves the other. Single-radio boards time-slice one antenna between scanning and the phone link, which costs them about half their Bluetooth listening time. The beacon's Bluetooth scan is continuous (100% duty vs ~51%). A street drive found 2.5x more unique Bluetooth devices over the same route with the dual-radio setup. - Location is tagged via your phone's GPS. - An on-board buzzer alerts you, so it works with your phone put away. - Optional offline logging: opt in once and it keeps what it heard while you were gone, encrypted, waiting when you reconnect. - Ships pre-flashed and ready to pair, with nothing to set up out of the box. - USB-C powered (the battery model recharges over the same port). When new firmware lands, the app flags it and installs it over-the-air via Bluetooth with no cable and no toolchain. You can also flash it from your browser.
Honest limits
Silent gear stays invisible: wired cameras and purely optical systems emit no radio and will not show up. This is not an SDR or a bug sweeper. It listens to two bands for known signatures, nothing more. A quiet screen means nothing announced itself, not that you are unwatched.
There is no 5 GHz radio. The ESP32-S3 does not have one, so the entire 5 GHz band is invisible. This is a hardware limit, not a setting, and it is the single largest gap in coverage.
WiFi listens to one channel at a time. The scan walks a 24-slot sequence that returns to channel 6 between every other step because channel 6 is where most consumer gear sits. Channel 6 gets 50% of the listening time; each of the other channels gets about 4.2%. This is a deliberate trade to maximize hits on the busiest channel.
Confidence ratings
The app shows a confidence percentage for every detection. It grades how uniquely the matched signal identifies that device class, and it has nothing to do with signal strength. 80% and up is a strong signature match. Under 50% is a weak one worth verifying rather than an alarm. Tap the row to see exactly which signal fired.
Licensing and disclaimer
The applications and firmware in this repository are licensed under Apache-2.0. The beacon hardware design, PCB layout, enclosure, manufacturing files, product name, and trademarks are NOT included in that license unless explicitly stated otherwise. Apache-2.0 here covers the code, not the physical product or the name it ships under.
This project is independent and is not affiliated with, endorsed by, or sponsored by Colonel Panic. "OUI-Spy" and "Mesh-Detect" are Colonel Panic's product names, used here only to identify compatible hardware.
What's new
Removed storage permission — the app no longer requests access to your photos or files. - Added tour card explaining that log exports and reports are written in app-private space and shared only via the system share sheet. - Improved privacy clarity in FAQ.
About this version
- Version
- 2.0.5 (23)
- Size
- 2.61 MB
- Requires Android
- 8.0
- Target SDK
- 26
- Architecture
- armeabi-v7a, x86, x86_64, arm64-v8a
- Downloads
- 10
- Updated
- Aug 14, 2026
- Package
- tech.soyboi.beacons
Similar apps
Ratings & reviews
- 50
- 40
- 30
- 20
- 10