Skip to main content
GNSS Documentation
GitHub Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

RTK

The RTK HAT (NEO-F9P) supports centimeter-level positioning using RTCM3 corrections.

Note
HAT Compatibility — RTK is available only on the L1/L5 RTK HAT (NEO-F9P).

How RTK Works

Base Station (known position) → RTCM3 corrections → Rover → cm-level fix
  1. Base station determines its precise position (Survey-In or Fixed Position)
  2. Base generates RTCM3 correction messages based on satellite observations
  3. Corrections are sent to the rover (via NTRIP, serial, network, etc.)
  4. Rover applies corrections to achieve centimeter-level accuracy

Fix Quality Progression

Fix Quality Accuracy Description
No Fix No satellite signal
GPS 2D/3D ~2–5 m Standard GNSS fix
Float RTK ~0.2–1 m Corrections applied, ambiguities not resolved
Fixed RTK ~0.01–0.02 m Full centimeter-level accuracy

Base Station

auto corrections = hat->rtk()->base()->getTinyCorrections();  // compact (M4M)
auto corrections = hat->rtk()->base()->getFullCorrections();  // full (M7M)
auto frame = hat->rtk()->base()->getRtcm3Frame(1077);         // specific message
corrections = hat.rtk_get_tiny_corrections()   # list[bytes]
corrections = hat.rtk_get_full_corrections()    # list[bytes]
frame = hat.rtk_get_rtcm3_frame(1077)           # bytes

Correction Sets

Method Type Messages Size Use Case
getTinyCorrections() M4M Compact subset Smaller Low-bandwidth links
getFullCorrections() M7M Full set Larger Best accuracy
getRtcm3Frame(id) Single One message Varies Custom selection

Rover

hat->rtk()->rover()->applyCorrections(corrections);
hat.rtk_apply_corrections(corrections)  # list[bytes]

Configuration

See RTK Config for base mode options (Survey-In, Fixed Position ECEF/LLA) and rover setup.