From 3bb332b4405a86a28621b77b10739af111b57dee Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Tue, 19 Jun 2018 22:54:30 -0500 Subject: [PATCH] Use Tool 0 for Dual X Axis G29 See https://github.com/MarlinFirmware/Marlin/issues/5597#issuecomment-397683325 --- Marlin/Marlin_main.cpp | 4 ++++ Marlin/ubl_G29.cpp | 14 +++++++++----- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 757da825f9..fa9d1742a6 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -4701,6 +4701,10 @@ void home_all_axes() { gcode_G28(true); } */ if (!g29_in_progress) { + #if ENABLED(DUAL_X_CARRIAGE) + if (active_extruder != 0) tool_change(0); + #endif + #if ENABLED(PROBE_MANUALLY) || ENABLED(AUTO_BED_LEVELING_LINEAR) abl_probe_index = -1; #endif diff --git a/Marlin/ubl_G29.cpp b/Marlin/ubl_G29.cpp index a4c7b33287..f9ee5ae085 100644 --- a/Marlin/ubl_G29.cpp +++ b/Marlin/ubl_G29.cpp @@ -289,13 +289,17 @@ void unified_bed_leveling::G29() { - if (g29_parameter_parsing()) return; // abort if parsing the simple parameters causes a problem, + if (g29_parameter_parsing()) return; // Abort on parameter error + + const int8_t p_val = parser.intval('P', -1); + const bool may_move = p_val == 1 || p_val == 2 || p_val == 4 || parser.seen('J'); // Check for commands that require the printer to be homed - if (axis_unhomed_error()) { - const int8_t p_val = parser.intval('P', -1); - if (p_val == 1 || p_val == 2 || p_val == 4 || parser.seen('J')) - home_all_axes(); + if (may_move) { + if (axis_unhomed_error()) home_all_axes(); + #if ENABLED(DUAL_X_CARRIAGE) + if (active_extruder != 0) tool_change(0); + #endif } // Invalidate Mesh Points. This command is a little bit asymmetrical because