diff --git a/ground/openpilotgcs/src/plugins/config/configrevowidget.cpp b/ground/openpilotgcs/src/plugins/config/configrevowidget.cpp index 84be939d0..0f28dba51 100644 --- a/ground/openpilotgcs/src/plugins/config/configrevowidget.cpp +++ b/ground/openpilotgcs/src/plugins/config/configrevowidget.cpp @@ -535,6 +535,10 @@ void ConfigRevoWidget::doStartSixPointCalibration() revoCalibrationData.mag_bias[RevoCalibration::MAG_BIAS_Y] = 0; revoCalibrationData.mag_bias[RevoCalibration::MAG_BIAS_Z] = 0; + // Disable adaptive mag nulling + initialMagCorrectionRate = revoCalibrationData.MagBiasNullingRate; + revoCalibrationData.MagBiasNullingRate = 0; + revoCalibration->setData(revoCalibrationData); Thread::usleep(100000); @@ -740,6 +744,8 @@ void ConfigRevoWidget::computeScaleBias() revoCalibrationData.mag_bias[RevoCalibration::MAG_BIAS_Y] = -sign(S[1]) * b[1]; revoCalibrationData.mag_bias[RevoCalibration::MAG_BIAS_Z] = -sign(S[2]) * b[2]; + // Restore the previous setting + revoCalibrationData.MagBiasNullingRate = initialMagCorrectionRate; #ifdef SIX_POINT_CAL_ACCEL bool good_calibration = true; diff --git a/ground/openpilotgcs/src/plugins/config/configrevowidget.h b/ground/openpilotgcs/src/plugins/config/configrevowidget.h index ae5bcf830..7621c6fb7 100644 --- a/ground/openpilotgcs/src/plugins/config/configrevowidget.h +++ b/ground/openpilotgcs/src/plugins/config/configrevowidget.h @@ -95,6 +95,7 @@ private: UAVObject::Metadata initialGyrosMdata; UAVObject::Metadata initialMagMdata; UAVObject::Metadata initialBaroMdata; + float initialMagCorrectionRate; int position;