diff --git a/ArduCopter/mode.h b/ArduCopter/mode.h index fec37a7662..a996cdeca7 100644 --- a/ArduCopter/mode.h +++ b/ArduCopter/mode.h @@ -499,6 +499,7 @@ public: void save_tuning_gains(); void stop(); + void reset(); protected: diff --git a/ArduCopter/mode_autotune.cpp b/ArduCopter/mode_autotune.cpp index 1a0382d317..ea914bb7e7 100644 --- a/ArduCopter/mode_autotune.cpp +++ b/ArduCopter/mode_autotune.cpp @@ -173,4 +173,9 @@ void Copter::ModeAutoTune::stop() copter.autotune.stop(); } +void Copter::ModeAutoTune::reset() +{ + copter.autotune.reset(); +} + #endif // AUTOTUNE_ENABLED == ENABLED diff --git a/ArduCopter/motors.cpp b/ArduCopter/motors.cpp index 9bb0185b3c..c8114d70f3 100644 --- a/ArduCopter/motors.cpp +++ b/ArduCopter/motors.cpp @@ -266,7 +266,11 @@ void Copter::init_disarm_motors() #if AUTOTUNE_ENABLED == ENABLED // save auto tuned parameters - mode_autotune.save_tuning_gains(); + if (control_mode == AUTOTUNE) {; + mode_autotune.save_tuning_gains(); + } else { + mode_autotune.reset(); + } #endif // we are not in the air