From 35160dfb7acbeec901762b52cb19564a6b6b122f Mon Sep 17 00:00:00 2001 From: Robby Candra Date: Tue, 16 Apr 2019 12:17:27 +0700 Subject: [PATCH] Simplify PLR homing when Z homes to max (#13718) --- Marlin/src/feature/power_loss_recovery.cpp | 24 +++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/Marlin/src/feature/power_loss_recovery.cpp b/Marlin/src/feature/power_loss_recovery.cpp index 5e3ef6fb5b..0b9dba43fd 100644 --- a/Marlin/src/feature/power_loss_recovery.cpp +++ b/Marlin/src/feature/power_loss_recovery.cpp @@ -245,13 +245,23 @@ void PrintJobRecovery::resume() { gcode.process_subcommands_now_P(PSTR("M420 S0 Z0")); #endif - // Set Z to 0, raise Z by RECOVERY_ZRAISE, and Home (XY only for Cartesian) - // with no raise. (Only do simulated homing in Marlin Dev Mode.) - gcode.process_subcommands_now_P(PSTR("G92.9 E0 Z0\nG1 Z" STRINGIFY(RECOVERY_ZRAISE) "\nG28 R0" - #if ENABLED(MARLIN_DEV_MODE) - " S" - #elif !IS_KINEMATIC - " X Y" + // Reset E, raise Z, home XY... + gcode.process_subcommands_now_P(PSTR("G92.9 E0" + #if Z_HOME_DIR > 0 + // If Z homing goes to max, reset E and home all + "\nG28R0" + #if ENABLED(MARLIN_DEV_MODE) + "S" + #endif + #else + // Set Z to 0, raise Z by RECOVERY_ZRAISE, and Home (XY only for Cartesian) + // with no raise. (Only do simulated homing in Marlin Dev Mode.) + "Z0\nG1Z" STRINGIFY(RECOVERY_ZRAISE) "\nG28R0" + #if ENABLED(MARLIN_DEV_MODE) + "S" + #elif !IS_KINEMATIC + "XY" + #endif #endif ));