Standard smartphone positioning APIs return filtered latitude/longitude estimates with 3-to-10 meter errors caused by atmospheric delays and multipath reflection. Modern Android devices expose raw GnssMeasurement carrier phase and code pseudoranges, unlocking sub-decimeter RTK (Real-Time Kinematic) precision on consumer hardware.

The Physics of Raw GNSS Pseudorange Processing

How raw hardware clock telemetry is converted into physical geometric ranges:

🛰️ The Hardware Clock Time-of-Week (TOW) Invariant

The raw pseudorange $\rho$ is computed by subtracting the satellite signal transmission timestamp $t_{tx}$ from the receiver hardware clock reception timestamp $t_{rx}$ multiplied by the speed of light $c$. Applying double-differencing across base station observation streams eliminates satellite clock bias and ionospheric group delay.

Mobile Positioning Techniques Compared

Positioning Technique Measurement Source Horizontal Accuracy Convergence Time
Standard GNSS Fix (Fused Location)Baseband chipset PVT filter3.00 – 10.0 m< 1.0 s
Doppler-Smoothed Code PseudorangeHatch filter over raw pseudoranges1.20 – 2.50 m10 – 30 s
Dual-Frequency RTK Carrier PhaseL1/L5 carrier cycles & base corrections0.05 – 0.20 m45 – 90 s (Integer fix)

Raw Pseudorange Extraction in TypeScript

Computing geometric pseudorange from Android raw clock timestamps:

export const SPEED_OF_LIGHT = 299792458; // m/s

export interface GnssClockRecord {
  timeNanos: number;
  fullBiasNanos: number;
  biasNanos?: number;
}

export interface GnssMeasurementRecord {
  svid: number;
  constellation: string;
  timeOffsetNanos: number;
  receivedSvTimeNanos: number;
  pseudorangeRateMps: number;
}

export function computeRawPseudorange(clock: GnssClockRecord, measurement: GnssMeasurementRecord): number {
  const receiverTimeNanos = clock.timeNanos + (clock.biasNanos || 0) - (clock.fullBiasNanos || 0);
  const signalTransitTimeNanos = receiverTimeNanos - measurement.receivedSvTimeNanos;
  
  const transitTimeSeconds = signalTransitTimeNanos * 1e-9;
  return transitTimeSeconds * SPEED_OF_LIGHT;
}

Explore Advanced Mobile Positioning Systems

Engineer high-precision telematics. Read our guide on Satellite Assisted GNSS Ephemeris Ingestion, explore microvascular endothelial restoration on ValleyVitaClinic Vascular Protocols, review GPU font outline tessellation on A&K Graphics WebGPU Pipelines, or deploy our mobile telemetry SDK.