diff --git a/src/main/fc/config.c b/src/main/fc/config.c index c6463cdc32..fcb6e60617 100644 --- a/src/main/fc/config.c +++ b/src/main/fc/config.c @@ -457,6 +457,14 @@ static void validateAndFixConfig(void) } #endif + // Temporary workaround until RPM Filter supports dual-gyro using both sensors + // Once support is added remove this block +#if defined(USE_MULTI_GYRO) && defined(USE_RPM_FILTER) + if (gyroConfig()->gyro_to_use == GYRO_CONFIG_USE_GYRO_BOTH && isRpmFilterEnabled()) { + gyroConfigMutable()->gyro_to_use = GYRO_CONFIG_USE_GYRO_1; + } +#endif + #if defined(TARGET_VALIDATECONFIG) targetValidateConfiguration(); #endif diff --git a/src/main/fc/core.c b/src/main/fc/core.c index ef46fff714..c7b7bafd1c 100644 --- a/src/main/fc/core.c +++ b/src/main/fc/core.c @@ -296,13 +296,10 @@ void updateArmingStatus(void) #ifdef USE_RPM_FILTER // USE_RPM_FILTER will only be defined if USE_DSHOT and USE_DSHOT_TELEMETRY are defined // If the RPM filter is anabled and any motor isn't providing telemetry, then disable arming - if (motorConfig()->dev.useDshotTelemetry - && (rpmFilterConfig()->gyro_rpm_notch_harmonics || rpmFilterConfig()->dterm_rpm_notch_harmonics)) { - if (!isDshotTelemetryActive()) { - setArmingDisabled(ARMING_DISABLED_RPMFILTER); - } else { - unsetArmingDisabled(ARMING_DISABLED_RPMFILTER); - } + if (isRpmFilterEnabled() && !isDshotTelemetryActive()) { + setArmingDisabled(ARMING_DISABLED_RPMFILTER); + } else { + unsetArmingDisabled(ARMING_DISABLED_RPMFILTER); } #endif diff --git a/src/main/sensors/rpm_filter.c b/src/main/sensors/rpm_filter.c index dd20be73be..bc322c04a3 100644 --- a/src/main/sensors/rpm_filter.c +++ b/src/main/sensors/rpm_filter.c @@ -209,4 +209,9 @@ FAST_CODE_NOINLINE void rpmFilterUpdate() } } +bool isRpmFilterEnabled(void) +{ + return (motorConfig()->dev.useDshotTelemetry && (rpmFilterConfig()->gyro_rpm_notch_harmonics || rpmFilterConfig()->dterm_rpm_notch_harmonics)); +} + #endif diff --git a/src/main/sensors/rpm_filter.h b/src/main/sensors/rpm_filter.h index 19b0455a36..fab963ba9d 100644 --- a/src/main/sensors/rpm_filter.h +++ b/src/main/sensors/rpm_filter.h @@ -42,3 +42,4 @@ void rpmFilterInit(const rpmFilterConfig_t *config); float rpmFilterGyro(int axis, float values); float rpmFilterDterm(int axis, float values); void rpmFilterUpdate(); +bool isRpmFilterEnabled(void);