RTK
The RTK HAT (NEO-F9P) supports centimeter-level positioning using RTCM3 corrections.
NoteHAT Compatibility — RTK is available only on the L1/L5 RTK HAT (NEO-F9P).
Base Station (known position) → RTCM3 corrections → Rover → cm-level fix
- Base station determines its precise position (Survey-In or Fixed Position)
- Base generates RTCM3 correction messages based on satellite observations
- Corrections are sent to the rover (via NTRIP, serial, network, etc.)
- Rover applies corrections to achieve centimeter-level accuracy
| 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 |
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
| 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 |
hat->rtk()->rover()->applyCorrections(corrections);
hat.rtk_apply_corrections(corrections) # list[bytes]
See RTK Config for base mode options (Survey-In, Fixed Position ECEF/LLA) and rover setup.