- Morse alerts: axon -> A (threat tone), vr_headset -> E (single dit; benign,
not treated as a surveillance threat)
- README: 10 categories (add axon, vr_headset), correct the now-stale
false-positive caveat (Silicon Labs + Raspberry Pi OUIs were removed from the
Flock list; real Flock-on-RPi relies on name/mfr-id, not bare OUI)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Phone screen-sleep suspends the dashboard page and stops geolocation — the main
cause of detections logged without coords while walking. Add Screen Wake Lock API:
acquire on GPS start, re-acquire on visibilitychange when the page returns to
foreground. Keeps watchPosition alive with the screen on.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Track strongest signal per detection to capture GPS at closest approach
to surveillance devices, rather than only first-seen position. All exports
(JSON, KML, CSV, SPIFFS, dashboard, radar) updated to use best GPS.
Also adds battery ADC monitoring framework (disabled by default until
voltage divider hardware is wired) and uptime display in stats bar.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Proximity radar with canvas-based RSSI rings, sweep animation,
and detection blips positioned by haversine bearing (GPS) or
MAC hash (fallback)
- Three switchable themes (Purple/Tactical/Ithildin) with
localStorage persistence
- Subtle grid overlay, card gradients, glow effects, pulsing
status indicator, detection-type left-border colors
- RSSI bar chart for at-a-glance signal strength comparison
- Randomized taglines on load
- Added device_lat/device_lon to /api/stats for bearing calc
- All CSS colors via custom properties for theme support
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Added Adafruit_NeoPixel.h and ESPAsyncWebServer.h includes that were
implicitly resolved in OUI Spy but needed explicitly in standalone build.
Added forward declarations for fyGPSIsFresh() and fyAddDetection() so the
WiFi promiscuous callback can reference them before their definitions.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
ESP32 promiscuous callback parses 802.11 management frames (probe requests
+ beacons), extracts source MAC OUI, and checks against wifi_mac_prefixes[]
table. Deferred alert pattern avoids calling delay()/tone() from WiFi task.
AP dashboard continues serving at 192.168.4.1 while scanning.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
OUI Spy Unified Blue is by colonelpanichacks, not lukeswitz.
Full lineage: wgreenberg (flock-you BLE research) ->
colonelpanichacks (OUI Spy unified multi-mode firmware) -> Dantir.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>