Conversation
Adds Michael / DeFlockJoplin's high-precision detection method on top of the NitekryDPaul baseline: a Flock camera is flagged when it transmits a Probe Request (type=0 subtype=4) with a wildcard SSID IE (tag 0 len 0) AND its addr2 matches the OUI list. Drive-test in Joplin: 11/12 cameras caught with only 2 false positives. - New AlertType ALERT_WILDCARD_PROBE, emitted as detection_method 'wifi_wildcard_probe' (high-precision class) - Wildcard-probe hits suppress the addr2 broad alert for the same frame to prevent double counting; non-probe OUI matches still emit as 'wifi_oui_addr2' - IE parser returns tri-state (1=wildcard / 0=directed / -1=no SSID IE), with FCS-trailer retry only on the -1 no-IE case - addr1 receiver-side sleeper-catch and the optional addr3 + SSID paths are unchanged — wildcard is purely additive - 31st OUI 82:6b:f2 added to target_ouis[] and to the dataset doc; it's the OUI of the 12th camera in Michael's drive-test that the original 30 didn't catch - README explains the wildcard-probe method, credits Michael with a link to github.com/DeflockJoplin/flock-you, and bumps Acknowledgments Source: https://github.com/DeflockJoplin/flock-you
…cious-dev Promiscious dev
…methods - Added configuration for LilyGO T-Dongle S3, including display and APA102 LED support. - Adjusted channel hopping sequence to descending order and reduced dwell time to 250 ms. - Updated detection methods to focus on IE fingerprinting, disabling other methods to reduce false positives. - Enhanced README to reflect changes in detection strategy and camera behavior observations. -Fixed Mario boot sounds. This commit improves the firmware's ability to detect Flock cameras by refining the detection logic and adapting to new hardware configurations. Corrected Mario sounds result in improved UX and satisfaction.
…n-element-fingerprint Information Element Fingerprint from DeFlock Joplin
lowered the chirp tone to a more audible level
The title said `Flock-You: Promiscuous WiFi Edition (`promiscious-dev` branch)` and the "Dev note" callout also called this the dev branch. That's stale text from before the promiscious-dev -> main merge — main is the stable line, not a dev branch. Renames it accordingly and rewords the pointer to promiscious-dev so it reads as "this is stable, dev is over there".
The GPS control was serial-only. Adds a source picker (Serial NMEA /
gpsd) to the dashboard header:
- Backend: new gpsd_reader() thread speaks gpsd's line-delimited JSON
protocol directly (no gps client dep). Parses TPV/SKY into the same
gps_data + gps_history structure as the NMEA reader, so temporal
matching, exports, and everything downstream stay source-agnostic.
- /api/gps/connect now dispatches on source=serial|gpsd. Legacy body
{"port": "..."} still works and is treated as serial.
- /api/status reports gps_source and, for gpsd, gpsd_endpoint.
- Reconnect helper remembers which source was live and retries the
same endpoint.
- Frontend: source dropdown toggles between the serial port list and
a gpsd host:port input pair. Settings persist gps_source /
gpsd_host / gpsd_port alongside gps_port.
Useful when a system-wide GPS is already shared via gpsd (laptop puck
with gpsd -N, Android Bluetooth GPS bridged through gpsd, Pi feeding
several tools). Browser Geolocation source is unchanged.
- LICENSE: MIT (closes colonelpanichacks#24). Chosen so forks can iterate freely; upstream research credits in README should be preserved. - README: adds a short "Region" callout noting Flock is US-first, so users outside North America know why the OUI list may not match anything locally (closes colonelpanichacks#6). - Dashboard: fix state restoration on page refresh (closes colonelpanichacks#46). loadStatus() now injects the connected port back into the dropdown, locks the port controls, hides the refresh button, and for gpsd repopulates the host:port inputs from the reported endpoint. updateFlockStatus/updateGpsStatus centralize the connected/idle toggles (dot + buttons + control lock + extra controls) so all entry points converge.
The README lists 31 OUIs including 82:6b:f2 (contributed by Michael / DeFlockJoplin — the 12th camera in his Joplin drive-test), but the target_ouis[] array only had the original 30. This closes that docs-vs-code gap so the firmware actually matches every OUI documented.
Try to keep with the theme and play the 1-up tone on a new detection. This also make the tone a bit more obvious than the subtle beep previously.
colonelpanichacks
force-pushed
the
main
branch
from
August 20, 2026 09:56
4dd8a20 to
1f75f52
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
lowered the chirp tone to a more audible level. 2800 wasn't audible through the buzzer.