diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 6cd9f863ed..ca11329548 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -6491,7 +6491,7 @@ inline void gcode_M503() { */ inline void gcode_M905() { stepper.synchronize(); - stepper.advance_M905(); + stepper.advance_M905(code_seen('K') ? code_value_float() : -1.0); } #endif diff --git a/Marlin/stepper.cpp b/Marlin/stepper.cpp index 32d0cddade..8d1fe031e1 100644 --- a/Marlin/stepper.cpp +++ b/Marlin/stepper.cpp @@ -1123,8 +1123,8 @@ void Stepper::microstep_readings() { #if ENABLED(LIN_ADVANCE) - void Stepper::advance_M905() { - if (code_seen('K')) extruder_advance_k = code_value_float(); + void Stepper::advance_M905(const float &k) { + if (k >= 0) extruder_advance_k = k; SERIAL_ECHO_START; SERIAL_ECHOPAIR("Advance factor: ", extruder_advance_k); SERIAL_EOL; diff --git a/Marlin/stepper.h b/Marlin/stepper.h index 279db1807f..7612e60587 100644 --- a/Marlin/stepper.h +++ b/Marlin/stepper.h @@ -256,7 +256,7 @@ class Stepper { } #if ENABLED(LIN_ADVANCE) - void advance_M905(); + void advance_M905(const float &k); FORCE_INLINE int get_advance_k() { return extruder_advance_k; } #endif