diff --git a/Marlin/Conditionals_LulzBot.h b/Marlin/Conditionals_LulzBot.h index b80d4d45d..54daa4bd7 100644 --- a/Marlin/Conditionals_LulzBot.h +++ b/Marlin/Conditionals_LulzBot.h @@ -37,7 +37,7 @@ #error Must specify model and toolhead. Please see "Configuration_LulzBot.h" for directions. #endif -#define LULZBOT_FW_VERSION ".22" +#define LULZBOT_FW_VERSION ".23" // Select options based on printer model @@ -141,6 +141,12 @@ #define LULZBOT_Z_MIN_PROBE_ENDSTOP #define LULZBOT_Z_MIN_PROBE_PIN SERVO0_PIN // Digital pin 22 #define LULZBOT_BAUDRATE 250000 + + // On the TAZ, the bed washers are on Z_MIN_PROBE while the + // Z-Home button is on Z_MIN, yet we need both to be disabled + // when z_probe_enabled is false. We added this special case + // to "endstops.cpp" + #define LULZBOT_Z_MIN_USES_Z_PROBE_ENABLED #endif #define LULZBOT_USE_CONTROLLER_FAN @@ -298,35 +304,39 @@ * * On TAZ: * Z_MIN_PIN corresponds to the Z-Home push button. - * LULZBOT_Z_MIN_PROBE_PIN are the bed washers. + * Z_MIN_PROBE_PIN are the bed washers. */ #if defined(LULZBOT_MINI_BED) #define LULZBOT_ENABLE_PROBE_PINS(enable) { \ if(enable) { \ - /* Set as inputs with pull-up resistor */ \ - SET_INPUT(Z_MIN_PIN); \ - WRITE(Z_MIN_PIN, HIGH); \ + /* Set as inputs with pull-up resistor */ \ + SET_INPUT(Z_MIN_PIN); \ + WRITE(Z_MIN_PIN, HIGH); \ } else { \ - /* Ground to prevent EMI */ \ - SET_OUTPUT(Z_MIN_PIN); \ - WRITE(Z_MIN_PIN, LOW); \ + /* Ground to prevent EMI */ \ + SET_OUTPUT(Z_MIN_PIN); \ + WRITE(Z_MIN_PIN, LOW); \ } \ } #elif defined(LULZBOT_TAZ_BED) #define LULZBOT_ENABLE_PROBE_PINS(enable) { \ if(enable) { \ - /* Set both as inputs with pull-up resistor */ \ - SET_INPUT(LULZBOT_Z_MIN_PROBE_PIN); \ - WRITE(LULZBOT_Z_MIN_PROBE_PIN, HIGH); \ - SET_INPUT(Z_MIN_PIN); \ - WRITE(Z_MIN_PIN, HIGH); \ + /* Set both as inputs with pull-up resistor */ \ + SET_INPUT(LULZBOT_Z_MIN_PROBE_PIN); \ + WRITE(LULZBOT_Z_MIN_PROBE_PIN, HIGH); \ + SET_INPUT(Z_MIN_PIN); \ + WRITE(Z_MIN_PIN, HIGH); \ + /* The following is required since Marlin would \ + * not normally deploy the probe for Z-Min */ \ + endstops.enable_z_probe(true); \ } else { \ - /* Ground both pins to prevent EMI */ \ - SET_OUTPUT(LULZBOT_Z_MIN_PROBE_PIN); \ - WRITE(LULZBOT_Z_MIN_PROBE_PIN, LOW); \ - SET_OUTPUT(Z_MIN_PIN); \ - WRITE(Z_MIN_PIN, LOW); \ + /* Ground both pins to prevent EMI */ \ + SET_OUTPUT(LULZBOT_Z_MIN_PROBE_PIN); \ + WRITE(LULZBOT_Z_MIN_PROBE_PIN, LOW); \ + SET_OUTPUT(Z_MIN_PIN); \ + WRITE(Z_MIN_PIN, LOW); \ + endstops.enable_z_probe(false); \ } \ } #endif diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 730a3bfc4..6cd4dd8e6 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -3917,6 +3917,8 @@ inline void gcode_G28(const bool always_home_all) { #endif // !DELTA (gcode_G28) + LULZBOT_AFTER_Z_HOME_ACTION // This must happen before endstops.not_homing() + endstops.not_homing(); #if ENABLED(DELTA) && ENABLED(DELTA_HOME_TO_SAFE_ZONE) @@ -3935,8 +3937,6 @@ inline void gcode_G28(const bool always_home_all) { tool_change(old_tool_index, 0, true); #endif - LULZBOT_AFTER_Z_HOME_ACTION - lcd_refresh(); report_current_position(); diff --git a/Marlin/endstops.cpp b/Marlin/endstops.cpp index 1d98ec9d4..4cd9c39f9 100644 --- a/Marlin/endstops.cpp +++ b/Marlin/endstops.cpp @@ -409,7 +409,7 @@ void Endstops::update() { #else // !Z_DUAL_ENDSTOPS - #if ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN) + #if ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN) || defined(LULZBOT_Z_MIN_USES_Z_PROBE_ENABLED) if (z_probe_enabled) UPDATE_ENDSTOP(Z, MIN); #else UPDATE_ENDSTOP(Z, MIN);