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).
| Field | C++ Type | Description |
|---|---|---|
mode |
ERtkMode |
Base or Rover |
base |
optional<BaseConfig> |
Base station configuration. Required when mode = Base |
| Value | C++ | Python | Description |
|---|---|---|---|
| Base | ERtkMode::Base |
gnsshat.RtkMode.BASE |
Generate RTCM3 corrections |
| Rover | ERtkMode::Rover |
gnsshat.RtkMode.ROVER |
Consume RTCM3 corrections for cm-level fix |
The base station needs to know its precise position. Two modes:
The module auto-determines its position by observing satellites over a configurable period and accuracy threshold.
| Field | Type | Description |
|---|---|---|
minimumObservationTime_s |
uint32_t |
Minimum observation time in seconds |
requiredPositionAccuracy_m |
double |
Required 3D position accuracy in meters |
Provide known coordinates directly, skipping the survey phase. Supports ECEF or LLA.
ECEF (Earth-Centered, Earth-Fixed):
| Field | Type | Description |
|---|---|---|
x_m |
double |
X coordinate in meters |
y_m |
double |
Y coordinate in meters |
z_m |
double |
Z coordinate in meters |
positionAccuracy_m |
double |
Position accuracy in meters |
LLA (Latitude, Longitude, Altitude):
| Field | Type | Description |
|---|---|---|
latitude_deg |
double |
Latitude in degrees |
longitude_deg |
double |
Longitude in degrees |
height_m |
double |
Height above ellipsoid in meters |
positionAccuracy_m |
double |
Position accuracy in meters |
config.rtk = RtkConfig {
.mode = ERtkMode::Base,
.base = BaseConfig {
.mode = BaseConfig::SurveyIn {
.minimumObservationTime_s = 60,
.requiredPositionAccuracy_m = 2.0
}
}
};
config.rtk = RtkConfig {
.mode = ERtkMode::Base,
.base = BaseConfig {
.mode = BaseConfig::FixedPosition {
.position = BaseConfig::FixedPosition::Lla {
.latitude_deg = 52.2297,
.longitude_deg = 21.0122,
.height_m = 120.0
},
.positionAccuracy_m = 0.01
}
}
};
config['rtk'] = {
'mode': gnsshat.RtkMode.BASE,
'base': {
'base_mode': gnsshat.BaseMode.SURVEY_IN,
'survey_in': {
'minimum_observation_time_s': 60,
'required_position_accuracy_m': 2.0
}
}
}
config['rtk'] = {
'mode': gnsshat.RtkMode.ROVER
}
See RTK Feature for runtime correction flow and NTRIP usage.