diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index e4e1e0b2b..aef3813b2 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -2072,9 +2072,10 @@ inline void gcode_M900() { SERIAL_ECHOLNPGM("K out of allowed range!"); #else if (newK == 0) + { extruder_advance_K = 0; - else if (newK == -1) la10c_reset(); + } else { newK = la10c_value(newK); @@ -4864,11 +4865,6 @@ if(eSoundMode!=e_SOUND_MODE_SILENT) case_G80: { mesh_bed_leveling_flag = true; -#ifndef LA_NOCOMPAT - // When printing via USB there's no clear boundary between prints. Abuse MBL to indicate - // the beginning of a new print, allowing a new autodetected setting just after G80. - la10c_reset(); -#endif #ifndef PINDA_THERMISTOR static bool run = false; // thermistor-less PINDA temperature compensation is running #endif // ndef PINDA_THERMISTOR diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 469a9ce1a..fb6ede87e 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -39,6 +39,10 @@ #include "tmc2130.h" #endif //TMC2130 +#ifndef LA_NOCOMPAT +#include "la10compat.h" +#endif + #include "sound.h" #include "mmu.h" @@ -7352,6 +7356,10 @@ void lcd_print_stop() current_position[Z_AXIS] += 10; //lift Z. plan_buffer_line_curposXYZE(manual_feedrate[Z_AXIS] / 60, active_extruder); +#ifndef LA_NOCOMPAT + la10c_reset(); //reset LA1.0 conversion lock +#endif + if (axis_known_position[X_AXIS] && axis_known_position[Y_AXIS]) //if axis are homed, move to parked position. { current_position[X_AXIS] = X_CANCEL_POS;