Skip to main content
GNSS HAT Library Documentation
Shop 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 QualityAccuracyDescription
No Fix—No satellite signal
GPS 2D/3D~2–5 mStandard GNSS fix
Float RTK~0.2–1 mCorrections applied, ambiguities not resolved
Fixed RTK~0.01–0.02 mFull 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

MethodTypeMessagesSizeUse Case
getTinyCorrections()M4MCompact subsetSmallerLow-bandwidth links
getFullCorrections()M7MFull setLargerBest accuracy
getRtcm3Frame(id)SingleOne messageVariesCustom 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.