diff --git a/libraries/AP_Compass/AP_Compass_MMC3416.cpp b/libraries/AP_Compass/AP_Compass_MMC3416.cpp index d7ba223e16e..5177a74be6c 100644 --- a/libraries/AP_Compass/AP_Compass_MMC3416.cpp +++ b/libraries/AP_Compass/AP_Compass_MMC3416.cpp @@ -247,6 +247,10 @@ void AP_Compass_MMC3416::timer() #endif last_sample_ms = AP_HAL::millis(); + + // sensor is not FRD + field.y = -field.y; + accumulate_sample(field, compass_instance); if (!dev->write_register(REG_CONTROL0, REG_CONTROL0_TM)) { @@ -273,6 +277,9 @@ void AP_Compass_MMC3416::timer() field *= -counts_to_milliGauss; field += offset; + // sensor is not FRD + field.y = -field.y; + last_sample_ms = AP_HAL::millis(); accumulate_sample(field, compass_instance);