From 9345bf108dff840c72272960d45dd187068e4d84 Mon Sep 17 00:00:00 2001 From: FanDjango <51046875+FanDjango@users.noreply.github.com> Date: Fri, 11 Dec 2020 09:06:57 +0100 Subject: [PATCH] Probe offset wizard fixes (#20414, #20439) * STOW probe, reverting incorrect earlier change from #20344 * Adjust soft endstop disables, to ensure travel below bed functions properly Co-authored-by: FanDjango --- Marlin/src/lcd/menu/menu_probe_offset.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/Marlin/src/lcd/menu/menu_probe_offset.cpp b/Marlin/src/lcd/menu/menu_probe_offset.cpp index 8f87e82ae0caa..b73945ea09cd8 100644 --- a/Marlin/src/lcd/menu/menu_probe_offset.cpp +++ b/Marlin/src/lcd/menu/menu_probe_offset.cpp @@ -120,11 +120,11 @@ void probe_offset_wizard_menu() { } void prepare_for_probe_offset_wizard() { - if (ui.wait_for_move) return; - #if defined(PROBE_OFFSET_WIZARD_XY_POS) || !HOMING_Z_WITH_PROBE if (ui.should_draw()) MenuItem_static::draw(1, GET_TEXT(MSG_PROBE_WIZARD_PROBING)); + if (ui.wait_for_move) return; + #ifndef PROBE_OFFSET_WIZARD_XY_POS #define PROBE_OFFSET_WIZARD_XY_POS XY_CENTER #endif @@ -136,6 +136,11 @@ void prepare_for_probe_offset_wizard() { z_offset_ref = probe.probe_at_point(wizard_pos, PROBE_PT_RAISE, 0, true); ui.wait_for_move = false; + // Stow the probe, as the last call to probe.probe_at_point(...) left + // the probe deployed if it was successful. + probe.stow(); + #else + if (ui.wait_for_move) return; #endif // Move Nozzle to Probing/Homing Position @@ -145,6 +150,8 @@ void prepare_for_probe_offset_wizard() { ui.synchronize(GET_TEXT(MSG_PROBE_WIZARD_MOVING)); ui.wait_for_move = false; + SET_SOFT_ENDSTOP_LOOSE(true); // Disable soft endstops for free Z movement + // Go to Calibration Menu ui.goto_screen(probe_offset_wizard_menu); ui.defer_status_screen(); @@ -173,7 +180,6 @@ void goto_probe_offset_wizard() { ui.goto_screen([]{ _lcd_draw_homing(); if (all_axes_homed()) { - SET_SOFT_ENDSTOP_LOOSE(true); // Disable soft endstops for free Z movement z_offset_ref = 0; // Set Z Value for Wizard Position to 0 ui.goto_screen(prepare_for_probe_offset_wizard); ui.defer_status_screen();