diff --git a/ArduPlane/quadplane.cpp b/ArduPlane/quadplane.cpp index 00c8475840..819fe2b6ba 100644 --- a/ArduPlane/quadplane.cpp +++ b/ArduPlane/quadplane.cpp @@ -3643,7 +3643,17 @@ void QuadPlane::update_throttle_mix(void) // check for requested descent bool descent_not_demanded = pos_control->get_vel_desired_cms().z >= 0.0f; - if (large_angle_request || large_angle_error || accel_moving || descent_not_demanded) { + bool use_mix_max = large_angle_request || large_angle_error || accel_moving || descent_not_demanded; + + /* + special case for auto landing, we want a high degree of + attitude control until LAND_FINAL + */ + if (in_vtol_land_sequence()) { + use_mix_max = !in_vtol_land_final(); + } + + if (use_mix_max) { attitude_control->set_throttle_mix_max(1.0); } else { attitude_control->set_throttle_mix_min();