diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 0318ee2b3..c5fc3029e 100644 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -2793,10 +2793,15 @@ bool gcode_M45(bool onlyZ, int8_t verbosity_level) lcd_puts_P(_T(MSG_FIND_BED_OFFSET_AND_SKEW_LINE2)); } + bool endstops_enabled = enable_endstops(false); + current_position[Z_AXIS] -= 1; //move 1mm down with disabled endstop + plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], homing_feedrate[Z_AXIS] / 40, active_extruder); + st_synchronize(); + // Move the print head close to the bed. current_position[Z_AXIS] = MESH_HOME_Z_SEARCH; - bool endstops_enabled = enable_endstops(true); + enable_endstops(true); #ifdef TMC2130 tmc2130_home_enter(Z_AXIS_MASK); #endif //TMC2130 diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 2827216a8..b675a1fdf 100644 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -6058,6 +6058,7 @@ static void lcd_sd_updir() void lcd_print_stop() { + saved_printing = false; cancel_heatup = true; #ifdef MESH_BED_LEVELING mbl.active = false; @@ -6091,7 +6092,7 @@ void lcd_print_stop() void lcd_sdcard_stop() { - + lcd_set_cursor(0, 0); lcd_puts_P(_T(MSG_STOP_PRINT)); lcd_set_cursor(2, 2);