diff --git a/src/main/cli/settings.c b/src/main/cli/settings.c index 71e20d8c62..544a102cf4 100644 --- a/src/main/cli/settings.c +++ b/src/main/cli/settings.c @@ -1717,9 +1717,9 @@ const clivalue_t valueTable[] = { #endif // PG_POSITION - { "position_alt_source", VAR_INT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_POSITION_ALT_SOURCE }, PG_POSITION, offsetof(positionConfig_t, altSource) }, - { "position_alt_num_gps_sats", VAR_INT8 | MASTER_VALUE, .config.minmaxUnsigned = { 4, 50 }, PG_POSITION, offsetof(positionConfig_t, altNumSatsGpsUse) }, - { "position_alt_num_baro_fallback", VAR_INT8 | MASTER_VALUE, .config.minmaxUnsigned = { 4, 50 }, PG_POSITION, offsetof(positionConfig_t, altNumSatsBaroFallback) }, + { "position_alt_source", VAR_INT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_POSITION_ALT_SOURCE }, PG_POSITION, offsetof(positionConfig_t, altSource) }, + { "position_alt_num_gps_sats", VAR_INT8 | MASTER_VALUE, .config.minmaxUnsigned = { 4, 50 }, PG_POSITION, offsetof(positionConfig_t, altNumSatsGpsUse) }, + { "position_alt_num_baro_fallback_sats", VAR_INT8 | MASTER_VALUE, .config.minmaxUnsigned = { 4, 50 }, PG_POSITION, offsetof(positionConfig_t, altNumSatsBaroFallback) }, // PG_MODE_ACTIVATION_CONFIG #if defined(USE_CUSTOM_BOX_NAMES) { "box_user_1_name", VAR_UINT8 | HARDWARE_VALUE | MODE_STRING, .config.string = { 1, MAX_BOX_USER_NAME_LENGTH, STRING_FLAGS_NONE }, PG_MODE_ACTIVATION_CONFIG, offsetof(modeActivationConfig_t, box_user_1_name) }, diff --git a/src/main/flight/position.c b/src/main/flight/position.c index 7c14244f65..afedd52cb8 100644 --- a/src/main/flight/position.c +++ b/src/main/flight/position.c @@ -157,6 +157,10 @@ void calculateEstimatedAltitude(timeUs_t currentTimeUs) if (haveBaroAlt) { goodGpsSats = positionConfig()->altNumSatsGpsUse; badGpsSats = positionConfig()->altNumSatsBaroFallback; + if (badGpsSats >= goodGpsSats) { + badGpsSats = goodGpsSats - 1; + positionConfigMutable()->altNumSatsBaroFallback = badGpsSats; + } } if (ARMING_FLAG(ARMED)) {