Multi-sensor RF awareness across 87 MHz – 6 GHz. SDR spectrum scanning, passive WiFi monitoring, BLE device tracking, Zigbee inventory, and FAA Remote ID drone detection.
The system learns what "normal" looks like for each frequency band, then flags deviations — applied to radio spectrum. Welford's online algorithm builds rolling per-bin baselines (mean, variance, time-of-day patterns). Anomalies flagged at 3σ. Drone alerts via FAA Remote ID BLE beacons + WiFi SSID pattern matching. No cloud dependency — all processing local on Raspberry Pi 5.
| Band | Range (MHz) | Use Case |
|---|---|---|
| FM Broadcast | 87.5 – 108.0 | Reference signals, calibration baseline |
| VHF Air | 118.0 – 137.0 | Aviation comms, ADS-B cross-reference |
| VHF Marine | 156.0 – 163.0 | Marine radio, AIS cross-reference |
| ISM 433 | 430.0 – 440.0 | IoT devices, weather stations, key fobs |
| FRS/GMRS | 462.0 – 467.0 | Walkie-talkies, neighborhood radio |
| ISM 915 | 902.0 – 928.0 | LoRa / Meshtastic mesh correlation |
| ADS-B | 1085.0 – 1095.0 | Aircraft transponder monitoring |
| Cell 700 | 698.0 – 756.0 | LTE Band 12/17 — stingray detection |
| Cell 850 | 824.0 – 894.0 | LTE/3G Band 5 — stingray detection |
| Cell 1900 | 1850.0 – 1990.0 | PCS Band 2 — stingray detection |
Pi 5 built-in Bluetooth via bleak library
Async BLE scanning using the bleak Python library. 10-second scan windows every 30 seconds capture advertisement packets from all nearby BLE devices. MAC addresses are hashed with a local salt for privacy.
Home Assistant REST API → device census
Polls Home Assistant every 10 minutes to enumerate all Zigbee devices via ZHA/Z2M. Captures IEEE address, model, manufacturer, area assignment, LQI, and RSSI for each device.
Apple, Google, Samsung, Tile, HID, sensors
Classifies devices using BLE service UUIDs (heart rate monitors, environmental sensors, HID devices, COVID exposure) and manufacturer IDs (Apple=76, Google=224, Samsung=117, Tile=272).
Drone BLE beacons — mandatory since 2024
Detects the ASTM F3411 Remote ID service UUID (0xFFFA) broadcast by all compliant drones. FAA mandated since March 2024. Also detects Open Drone ID (0x0D00) for Bluetooth 5 long-range broadcasts.
Manufacturer ID 9250 + WiFi SSID patterns
Identifies DJI drones via BLE manufacturer ID 9250 and WiFi SSID pattern matching (DJI-, MAVIC, PHANTOM, SPARK-, MINI-SE). Also matches Skydio, Autel, Parrot, and other consumer drone brands.
Real-time alerts with RSSI + sighting history
Drone sightings are logged with WARNING level, synced to the D1 API, and displayed on the RF dashboard with an orange alert banner showing device name, signal strength, detection source (BLE/WiFi), and timestamp.
Baseline cellular bands to flag rogue base stations / IMSI catchers
Monitors Cell 700 (Band 12/17), Cell 850 (Band 5), and Cell 1900 (PCS Band 2). Welford's algorithm builds per-bin baselines by hour-of-day. A new high-power signal in a cellular band that deviates >3σ from baseline triggers an anomaly — characteristic of IMSI catcher deployment.
FAA Remote ID + DJI BLE/WiFi detection with real-time alerts
Dual-mode detection: BLE scanner catches FAA Remote ID beacons (ASTM F3411) and DJI manufacturer advertisements. WiFi scanner catches drone hotspot SSIDs (DJI-*, Skydio-*, etc). Sightings are deduplicated by MAC hash and tracked with first/last seen timestamps.
Monitor ISM 433/915 for new or disappeared device signatures
The ISM 433 band (430-440 MHz) covers weather stations, key fobs, and home automation. ISM 915 (902-928 MHz) covers LoRa, Meshtastic, and smart meters. New persistent signals or disappearances of known devices are flagged as anomalies.
Cross-reference ADS-B spectrum with decoded transponder data
RTL-SDR sweeps the 1090 MHz ADS-B band during spectrum scans and cross-references power levels with decoded transponder data from the dedicated ADS-B receiver (ultrafeeder container). Unusual power levels without matching transponder data could indicate spoofing.
Correlate LoRa 915 MHz activity with Meshtastic node telemetry
The RF Observatory scans the ISM 915 band where Meshtastic operates (918.5 MHz for MeshOregon). Spectrum activity is correlated with known mesh node transmissions to distinguish expected mesh traffic from unknown signals in the band.
Passive 802.11 monitor — device counts, SSIDs, radar HUD
ALFA MT7612U adapter in monitor mode captures probe requests, beacons, and data frames across 2.4/5 GHz. Tracks unique device counts (5/15/60 min windows), SSID inventory, AP-client associations, and estimated distances via RSSI. Real-time radar HUD on port 8075.
Detect new transmitters, unusual power, time-of-day anomalies
Every 30-minute sweep cycle scans ~3000 frequency bins across 10 bands. Welford's online algorithm maintains running mean and variance per bin per hour-of-day. Anomaly types: power spikes, new signals, signal disappearances, and time-unusual activity (e.g., FM broadcast power changes at 3 AM).
Neighborhood Bluetooth device inventory with type classification
Maintains a rolling inventory of all BLE devices within range. Each device is classified by type, tracked with best/last RSSI, first/last seen timestamps, and sighting count. Hourly device counts are aggregated and synced to the cloud API for dashboard visualization.
Full spectrum analysis of WiFi, BLE, and drone control bands
Requires HackRF One (~$350) to cover 2.4–6 GHz at the raw spectrum level. Would enable detection of non-standard drone control protocols, WiFi deauth attacks, and Zigbee interference that can't be seen at the protocol level.
Decode Remote ID location data and plot flight paths
FAA Remote ID beacons contain latitude, longitude, altitude, speed, and operator location. Parsing the ASTM F3411 payload would enable real-time flight path visualization on the dashboard map and historical track logging.