Engineering Blog
Foxhunt Platform Development Log
19 entries documenting the build from concept to field-validated RF geolocation — terrain modeling, signal processing, Bayesian estimation, and real-world testing.
Mar 31–Apr 1
Building the RID Algorithmic Moat: From Radio IDs to Agency Classification
A harvester-analyzer pipeline extracts radio unit ID patterns from live P25 control channel traffic, building a data asset that maps RID prefixes to law enforcement agencies.
RID resolutiondata flywheelP25 protocol
Mar 29–30
From Pin Drops to Road Stripes: Rebuilding the Map Visualization
The map visualization was completely overhauled — discrete pin-drop markers replaced by colored polyline stripes painted along road segments near each detection.
visualizationroad networkAndroid
Mar 27–28
The Diversity Gate Breakthrough: Finding the Engine-Rebuild Bug
The most consequential bug fix in the project’s history: every GPS location update was destroying the engine’s observation windows, making geolocation permanently impossible.
debuggingdiversity gateengine architecture
Mar 14
The Live Web Dashboard: Real-Time RF Monitoring in the Browser
A full live dashboard replaced the static mockup — Leaflet dark tiles, auto-reconnecting WebSocket, real-time alert table, and PIN_DROP markers with auto-expiry.
web dashboardWebSocketreal-time monitoring
Mar 10–14
The Cavity Filter Arrives: RF Chain Calibration Against a Known Tower
A Celwave CF800-6P cavity bandpass filter joined the RF chain, and a calibration drive against the Brunswick P25 tower site validated the end-to-end signal pipeline.
RF engineeringcalibrationcavity filter
Mar 9
RF Hardware Deep Dive: Understanding the Uplink Detection Envelope
Today's work involved a detailed RF hardware analysis to understand the detection range limits of the current scanner setup and diagnose an intermodulation interference problem.
RF engineeringdetection rangehardware
Mar 8
Closing the Development Sprint
With the core geolocation engine stable and field-tested, I shifted focus to planning the final week before investor outreach. The remaining schedule covers final validation testing, demo video production, and investor outreach preparation...
retrospectivesprint summarylessons learned
Mar 7
Anonymous Transmissions and the RID Problem
Analysis of the field test data revealed that 99% of captured RF observations had a radio unit ID of zero — meaning the decoder couldn't extract the individual transmitter's identi...
data qualityP25 protocolconfiguration
Mar 6–7
The Big Field Test: Latency Bug and Parallel Processing
The longest field test to date produced the most data — and exposed the most serious performance bug I've encountered. The geolocation engine was emitting results for nearly five ...
performanceparallelizationfield testing
Mar 6
Narrowband Filtering and the DC Spike Discovery
Today's work focused on signal processing refinements to improve the scanner's ability to distinguish real P25 transmissions from background noise. The core improvement is a narrow...
signal processingFFTnarrowband
Mar 5
Android Auto Goes Live in the Jeep
The Android Auto integration moved from the desktop emulator to actual vehicle hardware today. The implementation displays color-coded detection pins on the head unit's map and pro...
Android Autovehicle integrationdemo preparation
Mar 5
Road Networks, Doppler Shifts, and Geolocation Accuracy Upgrades
Three significant accuracy improvements deployed today, each attacking a different source of geolocation error.
accuracyroad networkDoppler
Mar 4
The Investor Demo Takes Shape
I stepped back from the code today to think strategically about what the platform needs to demonstrate, and to whom. The Foxhunt Platform is ultimately a consumer-facing situation...
investor strategydemo planninggo-to-market
Mar 3
Fixing the Pin Drop: Device Coordinates vs. Transmitter Coordinates
A subtle but critical bug surfaced during post-drive analysis. The map pins were appearing at the device's location — where I was when I received the signal — rather than at the...
debuggingAndroid Automap accuracy
Mar 3
Terrain Awareness and the First Accurate Pin Drop
Radio waves don't travel in straight lines over terrain. A transmitter on one side of a ridgeline is effectively invisible to a receiver on the other side, regardless of how close ...
terrain modelingSRTMpropagation
Mar 2–3
First Field Test: Debugging the Signal Pipeline
I took the platform out for its first real-world field test — and immediately discovered why bench testing and field testing are different disciplines. The system connected, the s...
field testingdebuggingsignal processing
Mar 1
The Geolocation Engine Goes Live
A milestone day. I completed and deployed the central server component that ties the entire platform together — the real-time geolocation engine that processes RF observations fro...
geolocationarchitectureGPS
Feb 28
Building a Nationwide P25 Database and Redesigning the App from Scratch
Two major workstreams today, both foundational. First, I began building out the platform's database of P25 trunked radio systems to achieve statewide coverage across Maryland. The...
databaseUI/UXP25
Feb 27
Designing the Overwatch Scanner: From Consumer App to Enterprise Data Platform
Today I stepped back from code to think about hardware. The Foxhunt Platform currently demonstrates RF geolocation viability using off-the-shelf SDR dongles connected to a laptop ...
hardwarebusiness modelenterprise
Feb 26
The Uplink Insight: Why We Listen to the Officer, Not the Tower
A foundational design decision crystallized today: the scanner should measure uplink frequencies, not downlink. This single choice defines the entire geolocation approach and what ...
RF engineeringuplink capturearchitecture
Feb 25
First Light: Connecting the Scanner to the Phone
Today the Foxhunt Platform's three components talked to each other for the first time. The scanner running on a MacBook Air, the Android app on a Pixel phone, and the VPS backend &...
integrationWebSocketmilestone