From 7284488da371bcc68e15ad366190cf0c1aa28c6e Mon Sep 17 00:00:00 2001 From: Giuliano <3684609+GMagician@users.noreply.github.com> Date: Sat, 28 Jul 2018 01:29:26 +0200 Subject: [PATCH] [1.1.x] fix bltouch homing (#11380) Partially revert. Seems to solve the issue, but one report says G29 still fails. --- Marlin/Marlin_main.cpp | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index e5d3fbe54..2237aee20 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -3056,7 +3056,12 @@ static void homeaxis(const AxisEnum axis) { // Homing Z towards the bed? Deploy the Z probe or endstop. #if HOMING_Z_WITH_PROBE - if (axis == Z_AXIS && DEPLOY_PROBE()) return; + if (axis == Z_AXIS) { + if (DEPLOY_PROBE()) return; + #if ENABLED(BLTOUCH) + if (set_bltouch_deployed(true)) return; + #endif + } #endif // Set flags for X, Y, Z motor locking @@ -3081,8 +3086,9 @@ static void homeaxis(const AxisEnum axis) { if (DEBUGGING(LEVELING)) SERIAL_ECHOLNPGM("Home 1 Fast:"); #endif do_homing_move(axis, 1.5f * max_length(axis) * axis_home_dir); + #if HOMING_Z_WITH_PROBE && ENABLED(BLTOUCH) - // BLTOUCH needs to be stowed after trigger to let rearm itself + // BLTOUCH needs to be stowed after trigger to rearm itself if (axis == Z_AXIS) set_bltouch_deployed(false); #endif @@ -3112,17 +3118,13 @@ static void homeaxis(const AxisEnum axis) { #endif #if HOMING_Z_WITH_PROBE && ENABLED(BLTOUCH) - // BLTOUCH needs to deploy everytime + // BLTOUCH needs to be deployed every time if (axis == Z_AXIS && set_bltouch_deployed(true)) return; #endif + do_homing_move(axis, 2 * bump, get_homing_bump_feedrate(axis)); } - // Put away the Z probe - #if HOMING_Z_WITH_PROBE - if (axis == Z_AXIS && STOW_PROBE()) return; - #endif - /** * Home axes that have dual endstops... differently */ @@ -3198,6 +3200,16 @@ static void homeaxis(const AxisEnum axis) { #endif + // Put away the Z probe + #if HOMING_Z_WITH_PROBE + if (axis == Z_AXIS) { + #if ENABLED(BLTOUCH) + if (set_bltouch_deployed(false)) return; + #endif + if (STOW_PROBE()) return; + } + #endif + // Clear retracted status if homing the Z axis #if ENABLED(FWRETRACT) if (axis == Z_AXIS) fwretract.hop_amount = 0.0;