Expose u-blox min elevation, min SNR and DGNSS timeout parameters RTK Fix Improvements (#25720)

* Exposing u-Blox min CNO, min elevation, and DGNSS timeout for RTK Fix Improvement

* update gps submodule

---------

Co-authored-by: Julian Oes <julian@oes.ch>
Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com>
Co-authored-by: Jacob Dahl <dahl.jakejacob@gmail.com>
This commit is contained in:
William Reynaldi Solichin
2026-01-21 23:50:36 +00:00
committed by GitHub
parent 4ac7853479
commit 55e0810d8d
5 changed files with 72 additions and 3 deletions

View File

@@ -761,6 +761,27 @@ GPS::run()
param_get(handle, &gps_ubx_dynmodel);
}
int32_t gps_ubx_dgnss_to = 0;
handle = param_find("GPS_UBX_DGNSS_TO");
if (handle != PARAM_INVALID) {
param_get(handle, &gps_ubx_dgnss_to);
}
int32_t gps_ubx_min_cno = 0;
handle = param_find("GPS_UBX_MIN_CNO");
if (handle != PARAM_INVALID) {
param_get(handle, &gps_ubx_min_cno);
}
int32_t gps_ubx_min_elev = 0;
handle = param_find("GPS_UBX_MIN_ELEV");
if (handle != PARAM_INVALID) {
param_get(handle, &gps_ubx_min_elev);
}
handle = param_find("GPS_UBX_MODE");
GPSDriverUBX::UBXMode ubx_mode{GPSDriverUBX::UBXMode::Normal};
@@ -910,6 +931,9 @@ GPS::run()
case gps_driver_mode_t::UBX: {
GPSDriverUBX::Settings settings = {
.dynamic_model = (uint8_t)gps_ubx_dynmodel,
.dgnss_timeout = (uint8_t)gps_ubx_dgnss_to,
.min_cno = (uint8_t)gps_ubx_min_cno,
.min_elev = (int8_t)gps_ubx_min_elev,
.heading_offset = heading_offset,
.uart2_baudrate = f9p_uart2_baudrate,
.ppk_output = ppk_output > 0,

View File

@@ -69,6 +69,51 @@ PARAM_DEFINE_INT32(GPS_DUMP_COMM, 0);
*/
PARAM_DEFINE_INT32(GPS_UBX_DYNMODEL, 7);
/**
* u-blox GPS DGNSS timeout
*
* When set to 0 (default), default DGNSS timeout set by u-blox will be used.
*
* @min 0
* @max 255
* @unit s
*
* @reboot_required true
*
* @group GPS
*/
PARAM_DEFINE_INT32(GPS_UBX_DGNSS_TO, 0);
/**
* u-blox GPS minimum satellite signal level for navigation
*
* When set to 0 (default), default minimum satellite signal level set by u-blox wll be used.
*
* @min 0
* @max 255
* @unit dBHz
*
* @reboot_required true
*
* @group GPS
*/
PARAM_DEFINE_INT32(GPS_UBX_MIN_CNO, 0);
/**
* u-blox GPS minimum elevation for a GNSS satellite to be used in navigation
*
* When set to 0 (default), default minimum elevation set by u-blox will be used.
*
* @min 0
* @max 127
* @unit deg
*
* @reboot_required true
*
* @group GPS
*/
PARAM_DEFINE_INT32(GPS_UBX_MIN_ELEV, 0);
/**
* Enable sat info (if available)
*

View File

@@ -363,7 +363,7 @@ class SourceParser(object):
'm/s^3/sqrt(Hz)', 'm/s/sqrt(Hz)', 's/(1000*PWM)', '%m/s', 'min', 'us/C',
'N/(m/s)', 'Nm/rad', 'Nm/(rad/s)', 'Nm', 'N',
'rpm',
'normalized_thrust/s', 'normalized_thrust', 'norm', 'SD',''])
'normalized_thrust/s', 'normalized_thrust', 'norm', 'SD', 'dBHz', ''])
for group in self.GetParamGroups():
for param in group.GetParams():
name = param.GetName()

View File

@@ -155,7 +155,7 @@ parameters:
'm/s^3/sqrt(Hz)', 'm/s/sqrt(Hz)', 's/(1000*PWM)', '%m/s', 'min', 'us/C',
'N/(m/s)', 'Nm/(rad/s)', 'Nm', 'N',
'rpm',
'normalized_thrust/s', 'normalized_thrust', 'norm', 'SD']
'normalized_thrust/s', 'normalized_thrust', 'norm', 'SD', 'dBHz']
bit:
# description of all bits for type bitmask.
# The first bit is 0.