Architecture
Overview
Azimuth operates as a four-layer system that transforms ambient radio signals into positioning data through a decentralized network of passive receivers.
Node Layer
Azimuth nodes passively capture radio environment data without transmitting anything. The network supports four tiers of participation:
Tier 0 — Mobile Observer. The zero-cost entry point. Users run the Azimuth Android app on their existing phone, which passively collects cell tower survey data (CellInfo: cell ID, RSRP/RSRQ/SINR, timing advance, PCI, carrier frequency), GNSS raw measurements (pseudoranges, carrier phase, Doppler, CN0), WiFi signal surveys, and WiFi RTT where supported. All observations are GPS-tagged. This data builds the radio environment map — the contextual layer that Tier 1+ SDR timing observations are resolved against.
Tier 1 — BYOD. SDR receivers deployed by node operators capture timing information from signals of opportunity — LTE/5G cell tower reference signals, digital television pilots, and FM radio subcarriers. Simple USB SDR dongles (RTL-SDR V4, ~$30) connected to consumer hardware extract precise timestamps from these signals.
Tier 2 — Dedicated Node. Purpose-built units with GPS-disciplined oscillators and outdoor antennas provide nanosecond-class timing accuracy and 24/7 unattended operation.
Tier 3 — Coherent Array. Multi-channel coherent SDR receivers with antenna arrays capable of both time-difference and angle-of-arrival measurements, enabling interferometric positioning techniques.
Transport Layer
Observations — timestamped signal measurements tagged with receiver location and signal metadata — are reported via standard internet connections to the Azimuth aggregation backend. Observations are lightweight (typically under 1 KB each) and are batched for efficiency.
Each observation includes: signal type, frequency, transmitter ID (cell ID, channel number, etc.), time-of-arrival measurement, signal strength, and receiver metadata.
Processing Layer
The aggregation backend performs several key functions:
- TDOA Computation: Time-Difference-of-Arrival calculations using observations from multiple nodes produce position estimates for both transmitters and receivers.
- Radio Environment Mapping: Continuous observations build and maintain a living map of the radio environment — transmitter locations, signal propagation characteristics, and coverage patterns.
- Signal Fingerprint Database: Unique signal characteristics at specific locations create a fingerprint database that enables positioning even with a single receiver.
- Cross-Validation: Overlapping observations from multiple nodes enable validation of individual node accuracy, forming the basis of the anti-Sybil mechanism.
Query Layer
The positioning API serves location queries from applications and devices. Clients submit their own signal observations and receive position estimates computed against the crowdsourced observation database.
Query types include real-time positioning (submit observations, get position), assisted positioning (combine with GPS for improved accuracy), and historical analysis (query the radio environment at a past time and location).