From 53aa977b9ab1558cd6f4581d494a00a92c362c9c Mon Sep 17 00:00:00 2001 From: Jan Zgadzaj Date: Mon, 12 Feb 2024 19:11:14 +0100 Subject: [PATCH 1/2] fix Detect broken endstop for dualx carriages --- Marlin/src/module/motion.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Marlin/src/module/motion.cpp b/Marlin/src/module/motion.cpp index c6b093644755..0cfaf55ec61e 100644 --- a/Marlin/src/module/motion.cpp +++ b/Marlin/src/module/motion.cpp @@ -2187,6 +2187,18 @@ void prepare_line_to_destination() { MAIN_AXIS_MAP(_ESCASE) default: break; } + #if ENABLED(DUAL_X_CARRIAGE) + if (axis == X_AXIS){ + if(axis_home_dir == -1){ + if (DEBUGGING(LEVELING)) DEBUG_ECHOLNPGM("DUAL_X_CARRIAGE: Homing to X_MIN"); + es = X_MIN; + } + else if(axis_home_dir == 1){ + es = X_MAX; + if (DEBUGGING(LEVELING)) DEBUG_ECHOLNPGM("DUAL_X_CARRIAGE: Homing to X_MAX"); + } + } + #endif if (TEST(endstops.state(), es)) { SERIAL_ECHO_MSG("Bad ", C(AXIS_CHAR(axis)), " Endstop?"); kill(GET_TEXT_F(MSG_KILL_HOMING_FAILED)); From cc4182326eb356d6cf6bcd4ab21856b8479ce4b7 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sat, 16 Mar 2024 14:50:45 -0500 Subject: [PATCH 2/2] cleanup --- Marlin/src/module/motion.cpp | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/Marlin/src/module/motion.cpp b/Marlin/src/module/motion.cpp index 88ceb988646f..c86c382ddcbc 100644 --- a/Marlin/src/module/motion.cpp +++ b/Marlin/src/module/motion.cpp @@ -2183,6 +2183,7 @@ void prepare_line_to_destination() { do_homing_move(axis, -bump, TERN(HOMING_Z_WITH_PROBE, (axis == Z_AXIS ? z_probe_fast_mm_s : 0), 0), false); #if ENABLED(DETECT_BROKEN_ENDSTOP) + // Check for a broken endstop EndstopEnum es; switch (axis) { @@ -2190,23 +2191,20 @@ void prepare_line_to_destination() { MAIN_AXIS_MAP(_ESCASE) default: break; } + #if ENABLED(DUAL_X_CARRIAGE) - if (axis == X_AXIS){ - if(axis_home_dir == -1){ - if (DEBUGGING(LEVELING)) DEBUG_ECHOLNPGM("DUAL_X_CARRIAGE: Homing to X_MIN"); - es = X_MIN; - } - else if(axis_home_dir == 1){ + if (axis == X_AXIS && axis_home_dir > 0) { es = X_MAX; if (DEBUGGING(LEVELING)) DEBUG_ECHOLNPGM("DUAL_X_CARRIAGE: Homing to X_MAX"); } - } #endif + if (TEST(endstops.state(), es)) { SERIAL_ECHO_MSG("Bad ", C(AXIS_CHAR(axis)), " Endstop?"); kill(GET_TEXT_F(MSG_KILL_HOMING_FAILED)); } - #endif + + #endif // DETECT_BROKEN_ENDSTOP #if ALL(HOMING_Z_WITH_PROBE, BLTOUCH) if (axis == Z_AXIS && !bltouch.high_speed_mode && bltouch.deploy())