diff --git a/Marlin/src/gcode/temperature/M303.cpp b/Marlin/src/gcode/temperature/M303.cpp index f70127785..874264bcb 100644 --- a/Marlin/src/gcode/temperature/M303.cpp +++ b/Marlin/src/gcode/temperature/M303.cpp @@ -32,7 +32,7 @@ * * S sets the target temperature. (default 150C / 70C) * E (-1 for the bed) (default 0) - * C + * C Minimum 3. Default 5. * U with a non-zero value will apply the result to current settings */ void GcodeSuite::M303() { diff --git a/Marlin/src/module/temperature.cpp b/Marlin/src/module/temperature.cpp index cf6e16c24..b909caf15 100644 --- a/Marlin/src/module/temperature.cpp +++ b/Marlin/src/module/temperature.cpp @@ -330,6 +330,8 @@ uint8_t Temperature::soft_pwm_amount[HOTENDS]; * * Alternately heat and cool the nozzle, observing its behavior to * determine the best PID values to achieve a stable temperature. + * Needs sufficient heater power to make some overshoot at target + * temperature to succeed. */ void Temperature::PID_autotune(const float &target, const int8_t heater, const int8_t ncycles, const bool set_result/*=false*/) { float current = 0.0; @@ -540,7 +542,7 @@ uint8_t Temperature::soft_pwm_amount[HOTENDS]; break; } - if (cycles > ncycles) { + if (cycles > ncycles && cycles > 2) { SERIAL_ECHOLNPGM(MSG_PID_AUTOTUNE_FINISHED); #if HAS_PID_FOR_BOTH