diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index cc6b5546b..122d4cec4 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -759,6 +759,8 @@ // @section homing +//#define NO_MOTION_BEFORE_HOMING // Inhibit movement until all axes have been homed + //#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ... // Be sure you have this distance over your Z_MAX_POS in case. diff --git a/Marlin/Marlin.h b/Marlin/Marlin.h index f1195dcbc..c341d98f3 100644 --- a/Marlin/Marlin.h +++ b/Marlin/Marlin.h @@ -422,7 +422,15 @@ void do_blocking_move_to_x(const float &x, const float &fr_mm_s=0.0); void do_blocking_move_to_z(const float &z, const float &fr_mm_s=0.0); void do_blocking_move_to_xy(const float &x, const float &y, const float &fr_mm_s=0.0); -#define HAS_AXIS_UNHOMED_ERR (ENABLED(Z_PROBE_ALLEN_KEY) || ENABLED(Z_PROBE_SLED) || HAS_PROBING_PROCEDURE || HOTENDS > 1 || ENABLED(NOZZLE_CLEAN_FEATURE) || ENABLED(NOZZLE_PARK_FEATURE) || (ENABLED(ADVANCED_PAUSE_FEATURE) && ENABLED(HOME_BEFORE_FILAMENT_CHANGE))) +#define HAS_AXIS_UNHOMED_ERR ( \ + ENABLED(Z_PROBE_ALLEN_KEY) \ + || ENABLED(Z_PROBE_SLED) \ + || HAS_PROBING_PROCEDURE \ + || HOTENDS > 1 \ + || ENABLED(NOZZLE_CLEAN_FEATURE) \ + || ENABLED(NOZZLE_PARK_FEATURE) \ + || (ENABLED(ADVANCED_PAUSE_FEATURE) && ENABLED(HOME_BEFORE_FILAMENT_CHANGE)) \ + ) || ENABLED(NO_MOTION_BEFORE_HOMING) #if HAS_AXIS_UNHOMED_ERR bool axis_unhomed_error(const bool x=true, const bool y=true, const bool z=true); diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 9f285f537..62fffddb4 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -1850,7 +1850,7 @@ static void clean_up_after_endstop_or_probe_move() { return false; } -#endif +#endif // HAS_AXIS_UNHOMED_ERR #if ENABLED(Z_PROBE_SLED) @@ -2053,7 +2053,7 @@ static void clean_up_after_endstop_or_probe_move() { #endif } -#endif +#endif // Z_PROBE_ALLEN_KEY #if ENABLED(PROBING_FANS_OFF) @@ -3383,6 +3383,10 @@ inline void gcode_G0_G1( bool fast_move=false #endif ) { + #if ENABLED(NO_MOTION_BEFORE_HOMING) + if (axis_unhomed_error()) return; + #endif + if (IsRunning()) { gcode_get_destination(); // For X Y Z E F @@ -3438,6 +3442,10 @@ inline void gcode_G0_G1( #if ENABLED(ARC_SUPPORT) inline void gcode_G2_G3(bool clockwise) { + #if ENABLED(NO_MOTION_BEFORE_HOMING) + if (axis_unhomed_error()) return; + #endif + if (IsRunning()) { #if ENABLED(SF_ARC_FIX) @@ -3535,6 +3543,10 @@ inline void gcode_G4() { * G5: Cubic B-spline */ inline void gcode_G5() { + #if ENABLED(NO_MOTION_BEFORE_HOMING) + if (axis_unhomed_error()) return; + #endif + if (IsRunning()) { #if ENABLED(CNC_WORKSPACE_PLANES) @@ -5862,6 +5874,10 @@ void home_all_axes() { gcode_G28(true); } * G42: Move X & Y axes to mesh coordinates (I & J) */ inline void gcode_G42() { + #if ENABLED(NO_MOTION_BEFORE_HOMING) + if (axis_unhomed_error()) return; + #endif + if (IsRunning()) { const bool hasI = parser.seenval('I'); const int8_t ix = hasI ? parser.value_int() : 0; diff --git a/Marlin/example_configurations/AlephObjects/TAZ4/Configuration.h b/Marlin/example_configurations/AlephObjects/TAZ4/Configuration.h index a5b72c54e..895d095b0 100644 --- a/Marlin/example_configurations/AlephObjects/TAZ4/Configuration.h +++ b/Marlin/example_configurations/AlephObjects/TAZ4/Configuration.h @@ -779,6 +779,8 @@ // @section homing +//#define NO_MOTION_BEFORE_HOMING // Inhibit movement until all axes have been homed + //#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ... // Be sure you have this distance over your Z_MAX_POS in case. diff --git a/Marlin/example_configurations/AliExpress/CL-260/Configuration.h b/Marlin/example_configurations/AliExpress/CL-260/Configuration.h index 4d01ec4d5..d70c59a4e 100644 --- a/Marlin/example_configurations/AliExpress/CL-260/Configuration.h +++ b/Marlin/example_configurations/AliExpress/CL-260/Configuration.h @@ -759,6 +759,8 @@ // @section homing +//#define NO_MOTION_BEFORE_HOMING // Inhibit movement until all axes have been homed + //#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ... // Be sure you have this distance over your Z_MAX_POS in case. diff --git a/Marlin/example_configurations/Anet/A6/Configuration.h b/Marlin/example_configurations/Anet/A6/Configuration.h index 7c64e0792..3b8ab3a37 100644 --- a/Marlin/example_configurations/Anet/A6/Configuration.h +++ b/Marlin/example_configurations/Anet/A6/Configuration.h @@ -843,6 +843,8 @@ // @section homing +//#define NO_MOTION_BEFORE_HOMING // Inhibit movement until all axes have been homed + //#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ... // Be sure you have this distance over your Z_MAX_POS in case. diff --git a/Marlin/example_configurations/Anet/A8/Configuration.h b/Marlin/example_configurations/Anet/A8/Configuration.h index 0f85f51ac..1912dd458 100644 --- a/Marlin/example_configurations/Anet/A8/Configuration.h +++ b/Marlin/example_configurations/Anet/A8/Configuration.h @@ -765,6 +765,8 @@ // @section homing +//#define NO_MOTION_BEFORE_HOMING // Inhibit movement until all axes have been homed + //#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ... // Be sure you have this distance over your Z_MAX_POS in case. diff --git a/Marlin/example_configurations/BQ/Hephestos/Configuration.h b/Marlin/example_configurations/BQ/Hephestos/Configuration.h index a0b2f5a38..ac24821f7 100644 --- a/Marlin/example_configurations/BQ/Hephestos/Configuration.h +++ b/Marlin/example_configurations/BQ/Hephestos/Configuration.h @@ -750,6 +750,8 @@ // @section homing +//#define NO_MOTION_BEFORE_HOMING // Inhibit movement until all axes have been homed + //#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ... // Be sure you have this distance over your Z_MAX_POS in case. diff --git a/Marlin/example_configurations/BQ/Hephestos_2/Configuration.h b/Marlin/example_configurations/BQ/Hephestos_2/Configuration.h index 8915eb549..4d27fbfeb 100644 --- a/Marlin/example_configurations/BQ/Hephestos_2/Configuration.h +++ b/Marlin/example_configurations/BQ/Hephestos_2/Configuration.h @@ -760,6 +760,8 @@ // @section homing +//#define NO_MOTION_BEFORE_HOMING // Inhibit movement until all axes have been homed + #define Z_HOMING_HEIGHT 5 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ... // Be sure you have this distance over your Z_MAX_POS in case. diff --git a/Marlin/example_configurations/BQ/WITBOX/Configuration.h b/Marlin/example_configurations/BQ/WITBOX/Configuration.h index 4c68d7f37..3a9b473f9 100644 --- a/Marlin/example_configurations/BQ/WITBOX/Configuration.h +++ b/Marlin/example_configurations/BQ/WITBOX/Configuration.h @@ -750,6 +750,8 @@ // @section homing +//#define NO_MOTION_BEFORE_HOMING // Inhibit movement until all axes have been homed + //#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ... // Be sure you have this distance over your Z_MAX_POS in case. diff --git a/Marlin/example_configurations/Cartesio/Configuration.h b/Marlin/example_configurations/Cartesio/Configuration.h index 4e6c2bb3c..d711cd126 100644 --- a/Marlin/example_configurations/Cartesio/Configuration.h +++ b/Marlin/example_configurations/Cartesio/Configuration.h @@ -758,6 +758,8 @@ // @section homing +//#define NO_MOTION_BEFORE_HOMING // Inhibit movement until all axes have been homed + //#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ... // Be sure you have this distance over your Z_MAX_POS in case. diff --git a/Marlin/example_configurations/Creality/CR-10/Configuration.h b/Marlin/example_configurations/Creality/CR-10/Configuration.h index 0bf2a2c21..b0de88336 100755 --- a/Marlin/example_configurations/Creality/CR-10/Configuration.h +++ b/Marlin/example_configurations/Creality/CR-10/Configuration.h @@ -769,6 +769,8 @@ // @section homing +//#define NO_MOTION_BEFORE_HOMING // Inhibit movement until all axes have been homed + //#define Z_HOMING_HEIGHT 5 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ... // Be sure you have this distance over your Z_MAX_POS in case. diff --git a/Marlin/example_configurations/Felix/Configuration.h b/Marlin/example_configurations/Felix/Configuration.h index e10ba0f0e..22bb602d3 100644 --- a/Marlin/example_configurations/Felix/Configuration.h +++ b/Marlin/example_configurations/Felix/Configuration.h @@ -741,6 +741,8 @@ // @section homing +//#define NO_MOTION_BEFORE_HOMING // Inhibit movement until all axes have been homed + //#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ... // Be sure you have this distance over your Z_MAX_POS in case. diff --git a/Marlin/example_configurations/Felix/DUAL/Configuration.h b/Marlin/example_configurations/Felix/DUAL/Configuration.h index 931941365..e64a0eae7 100644 --- a/Marlin/example_configurations/Felix/DUAL/Configuration.h +++ b/Marlin/example_configurations/Felix/DUAL/Configuration.h @@ -741,6 +741,8 @@ // @section homing +//#define NO_MOTION_BEFORE_HOMING // Inhibit movement until all axes have been homed + //#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ... // Be sure you have this distance over your Z_MAX_POS in case. diff --git a/Marlin/example_configurations/Folger Tech/i3-2020/Configuration.h b/Marlin/example_configurations/Folger Tech/i3-2020/Configuration.h index 63dfc9506..a7bc508e7 100644 --- a/Marlin/example_configurations/Folger Tech/i3-2020/Configuration.h +++ b/Marlin/example_configurations/Folger Tech/i3-2020/Configuration.h @@ -762,6 +762,8 @@ // @section homing +//#define NO_MOTION_BEFORE_HOMING // Inhibit movement until all axes have been homed + #define Z_HOMING_HEIGHT 2 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ... // Be sure you have this distance over your Z_MAX_POS in case. diff --git a/Marlin/example_configurations/Geeetech/GT2560/Configuration.h b/Marlin/example_configurations/Geeetech/GT2560/Configuration.h index ab2545bc0..c1862a78d 100644 --- a/Marlin/example_configurations/Geeetech/GT2560/Configuration.h +++ b/Marlin/example_configurations/Geeetech/GT2560/Configuration.h @@ -774,6 +774,8 @@ // @section homing +//#define NO_MOTION_BEFORE_HOMING // Inhibit movement until all axes have been homed + //#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ... // Be sure you have this distance over your Z_MAX_POS in case. diff --git a/Marlin/example_configurations/Geeetech/I3_Pro_X-GT2560/Configuration.h b/Marlin/example_configurations/Geeetech/I3_Pro_X-GT2560/Configuration.h index af305d092..d77728304 100644 --- a/Marlin/example_configurations/Geeetech/I3_Pro_X-GT2560/Configuration.h +++ b/Marlin/example_configurations/Geeetech/I3_Pro_X-GT2560/Configuration.h @@ -759,6 +759,8 @@ // @section homing +//#define NO_MOTION_BEFORE_HOMING // Inhibit movement until all axes have been homed + #define Z_HOMING_HEIGHT 8 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ... // Be sure you have this distance over your Z_MAX_POS in case. diff --git a/Marlin/example_configurations/Infitary/i3-M508/Configuration.h b/Marlin/example_configurations/Infitary/i3-M508/Configuration.h index 0c869514d..12e501409 100644 --- a/Marlin/example_configurations/Infitary/i3-M508/Configuration.h +++ b/Marlin/example_configurations/Infitary/i3-M508/Configuration.h @@ -763,6 +763,8 @@ // @section homing +//#define NO_MOTION_BEFORE_HOMING // Inhibit movement until all axes have been homed + //#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ... // Be sure you have this distance over your Z_MAX_POS in case. diff --git a/Marlin/example_configurations/Malyan/M150/Configuration.h b/Marlin/example_configurations/Malyan/M150/Configuration.h index f1704e2bb..d260492fb 100644 --- a/Marlin/example_configurations/Malyan/M150/Configuration.h +++ b/Marlin/example_configurations/Malyan/M150/Configuration.h @@ -783,6 +783,8 @@ // @section homing +//#define NO_MOTION_BEFORE_HOMING // Inhibit movement until all axes have been homed + //#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ... // Be sure you have this distance over your Z_MAX_POS in case. diff --git a/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h b/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h index 54a8a61c6..4abd8ef67 100644 --- a/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h +++ b/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h @@ -759,6 +759,8 @@ // @section homing +//#define NO_MOTION_BEFORE_HOMING // Inhibit movement until all axes have been homed + //#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ... // Be sure you have this distance over your Z_MAX_POS in case. diff --git a/Marlin/example_configurations/RigidBot/Configuration.h b/Marlin/example_configurations/RigidBot/Configuration.h index fbfe6f2e7..38bc93037 100644 --- a/Marlin/example_configurations/RigidBot/Configuration.h +++ b/Marlin/example_configurations/RigidBot/Configuration.h @@ -757,6 +757,8 @@ // @section homing +//#define NO_MOTION_BEFORE_HOMING // Inhibit movement until all axes have been homed + //#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ... // Be sure you have this distance over your Z_MAX_POS in case. diff --git a/Marlin/example_configurations/SCARA/Configuration.h b/Marlin/example_configurations/SCARA/Configuration.h index b41f1d033..f18d75dc6 100644 --- a/Marlin/example_configurations/SCARA/Configuration.h +++ b/Marlin/example_configurations/SCARA/Configuration.h @@ -771,6 +771,8 @@ // @section homing +//#define NO_MOTION_BEFORE_HOMING // Inhibit movement until all axes have been homed + //#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ... // Be sure you have this distance over your Z_MAX_POS in case. diff --git a/Marlin/example_configurations/Sanguinololu/Configuration.h b/Marlin/example_configurations/Sanguinololu/Configuration.h index a2427c32a..81e57133f 100644 --- a/Marlin/example_configurations/Sanguinololu/Configuration.h +++ b/Marlin/example_configurations/Sanguinololu/Configuration.h @@ -790,6 +790,8 @@ // @section homing +//#define NO_MOTION_BEFORE_HOMING // Inhibit movement until all axes have been homed + #define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ... // Be sure you have this distance over your Z_MAX_POS in case. diff --git a/Marlin/example_configurations/TinyBoy2/Configuration.h b/Marlin/example_configurations/TinyBoy2/Configuration.h index deb8fe1cc..212fd0e72 100644 --- a/Marlin/example_configurations/TinyBoy2/Configuration.h +++ b/Marlin/example_configurations/TinyBoy2/Configuration.h @@ -810,6 +810,8 @@ // @section homing +//#define NO_MOTION_BEFORE_HOMING // Inhibit movement until all axes have been homed + //#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ... // Be sure you have this distance over your Z_MAX_POS in case. diff --git a/Marlin/example_configurations/Velleman/K8200/Configuration.h b/Marlin/example_configurations/Velleman/K8200/Configuration.h index 1df670121..2a6d66434 100644 --- a/Marlin/example_configurations/Velleman/K8200/Configuration.h +++ b/Marlin/example_configurations/Velleman/K8200/Configuration.h @@ -787,6 +787,9 @@ #define INVERT_E4_DIR true // @section homing + +//#define NO_MOTION_BEFORE_HOMING // Inhibit movement until all axes have been homed + // K8200: it is usual to have clamps for the glass plate on the heatbed #define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ... // Be sure you have this distance over your Z_MAX_POS in case. diff --git a/Marlin/example_configurations/Velleman/K8400/Configuration.h b/Marlin/example_configurations/Velleman/K8400/Configuration.h index fbe4436b1..bc32236b1 100644 --- a/Marlin/example_configurations/Velleman/K8400/Configuration.h +++ b/Marlin/example_configurations/Velleman/K8400/Configuration.h @@ -759,6 +759,8 @@ // @section homing +//#define NO_MOTION_BEFORE_HOMING // Inhibit movement until all axes have been homed + //#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ... // Be sure you have this distance over your Z_MAX_POS in case. diff --git a/Marlin/example_configurations/Velleman/K8400/Dual-head/Configuration.h b/Marlin/example_configurations/Velleman/K8400/Dual-head/Configuration.h index 3de4af7f1..7ff206580 100644 --- a/Marlin/example_configurations/Velleman/K8400/Dual-head/Configuration.h +++ b/Marlin/example_configurations/Velleman/K8400/Dual-head/Configuration.h @@ -759,6 +759,8 @@ // @section homing +//#define NO_MOTION_BEFORE_HOMING // Inhibit movement until all axes have been homed + //#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ... // Be sure you have this distance over your Z_MAX_POS in case. diff --git a/Marlin/example_configurations/adafruit/ST7565/Configuration.h b/Marlin/example_configurations/adafruit/ST7565/Configuration.h index 0d43029b0..5d4e3ffb1 100644 --- a/Marlin/example_configurations/adafruit/ST7565/Configuration.h +++ b/Marlin/example_configurations/adafruit/ST7565/Configuration.h @@ -759,6 +759,8 @@ // @section homing +//#define NO_MOTION_BEFORE_HOMING // Inhibit movement until all axes have been homed + //#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ... // Be sure you have this distance over your Z_MAX_POS in case. diff --git a/Marlin/example_configurations/delta/FLSUN/auto_calibrate/Configuration.h b/Marlin/example_configurations/delta/FLSUN/auto_calibrate/Configuration.h index 32d758a63..76345829b 100644 --- a/Marlin/example_configurations/delta/FLSUN/auto_calibrate/Configuration.h +++ b/Marlin/example_configurations/delta/FLSUN/auto_calibrate/Configuration.h @@ -883,6 +883,8 @@ // @section homing +//#define NO_MOTION_BEFORE_HOMING // Inhibit movement until all axes have been homed + #define Z_HOMING_HEIGHT 15 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ... // Be sure you have this distance over your Z_MAX_POS in case. diff --git a/Marlin/example_configurations/delta/FLSUN/kossel_mini/Configuration.h b/Marlin/example_configurations/delta/FLSUN/kossel_mini/Configuration.h index ca45e22aa..7bd1d1e85 100644 --- a/Marlin/example_configurations/delta/FLSUN/kossel_mini/Configuration.h +++ b/Marlin/example_configurations/delta/FLSUN/kossel_mini/Configuration.h @@ -883,6 +883,8 @@ // @section homing +//#define NO_MOTION_BEFORE_HOMING // Inhibit movement until all axes have been homed + #define Z_HOMING_HEIGHT 15 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ... // Be sure you have this distance over your Z_MAX_POS in case. diff --git a/Marlin/example_configurations/delta/generic/Configuration.h b/Marlin/example_configurations/delta/generic/Configuration.h index 9864fb975..fe946138c 100644 --- a/Marlin/example_configurations/delta/generic/Configuration.h +++ b/Marlin/example_configurations/delta/generic/Configuration.h @@ -870,6 +870,8 @@ // @section homing +//#define NO_MOTION_BEFORE_HOMING // Inhibit movement until all axes have been homed + //#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ... // Be sure you have this distance over your Z_MAX_POS in case. diff --git a/Marlin/example_configurations/delta/kossel_mini/Configuration.h b/Marlin/example_configurations/delta/kossel_mini/Configuration.h index 63aa503b0..9d1b2aca4 100644 --- a/Marlin/example_configurations/delta/kossel_mini/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_mini/Configuration.h @@ -873,6 +873,8 @@ // @section homing +//#define NO_MOTION_BEFORE_HOMING // Inhibit movement until all axes have been homed + //#define Z_HOMING_HEIGHT 15 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ... // Be sure you have this distance over your Z_MAX_POS in case. diff --git a/Marlin/example_configurations/delta/kossel_pro/Configuration.h b/Marlin/example_configurations/delta/kossel_pro/Configuration.h index 12e862264..714764917 100644 --- a/Marlin/example_configurations/delta/kossel_pro/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_pro/Configuration.h @@ -873,6 +873,8 @@ // @section homing +//#define NO_MOTION_BEFORE_HOMING // Inhibit movement until all axes have been homed + //#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ... // Be sure you have this distance over your Z_MAX_POS in case. diff --git a/Marlin/example_configurations/delta/kossel_xl/Configuration.h b/Marlin/example_configurations/delta/kossel_xl/Configuration.h index b4686fbff..818e95698 100644 --- a/Marlin/example_configurations/delta/kossel_xl/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_xl/Configuration.h @@ -882,6 +882,8 @@ // @section homing +//#define NO_MOTION_BEFORE_HOMING // Inhibit movement until all axes have been homed + //#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ... // Be sure you have this distance over your Z_MAX_POS in case. diff --git a/Marlin/example_configurations/gCreate/gMax1.5+/Configuration.h b/Marlin/example_configurations/gCreate/gMax1.5+/Configuration.h index d38cdf44d..d2c91a2f9 100644 --- a/Marlin/example_configurations/gCreate/gMax1.5+/Configuration.h +++ b/Marlin/example_configurations/gCreate/gMax1.5+/Configuration.h @@ -772,6 +772,8 @@ // @section homing +//#define NO_MOTION_BEFORE_HOMING // Inhibit movement until all axes have been homed + #define Z_HOMING_HEIGHT 10 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ... // Be sure you have this distance over your Z_MAX_POS in case. diff --git a/Marlin/example_configurations/makibox/Configuration.h b/Marlin/example_configurations/makibox/Configuration.h index c0d40f324..6605e8721 100644 --- a/Marlin/example_configurations/makibox/Configuration.h +++ b/Marlin/example_configurations/makibox/Configuration.h @@ -762,6 +762,8 @@ // @section homing +//#define NO_MOTION_BEFORE_HOMING // Inhibit movement until all axes have been homed + //#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ... // Be sure you have this distance over your Z_MAX_POS in case. diff --git a/Marlin/example_configurations/tvrrug/Round2/Configuration.h b/Marlin/example_configurations/tvrrug/Round2/Configuration.h index 23323b7a7..ce1544f8c 100644 --- a/Marlin/example_configurations/tvrrug/Round2/Configuration.h +++ b/Marlin/example_configurations/tvrrug/Round2/Configuration.h @@ -754,6 +754,8 @@ // @section homing +//#define NO_MOTION_BEFORE_HOMING // Inhibit movement until all axes have been homed + //#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ... // Be sure you have this distance over your Z_MAX_POS in case. diff --git a/Marlin/example_configurations/wt150/Configuration.h b/Marlin/example_configurations/wt150/Configuration.h index a2d99deb4..4a532b3e8 100644 --- a/Marlin/example_configurations/wt150/Configuration.h +++ b/Marlin/example_configurations/wt150/Configuration.h @@ -764,6 +764,8 @@ // @section homing +//#define NO_MOTION_BEFORE_HOMING // Inhibit movement until all axes have been homed + //#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ... // Be sure you have this distance over your Z_MAX_POS in case. diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index e870fc8af..73ab997d0 100644 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -20,8 +20,11 @@ * */ -#include "ultralcd.h" +#include "MarlinConfig.h" + #if ENABLED(ULTRA_LCD) + +#include "ultralcd.h" #include "Marlin.h" #include "language.h" #include "cardreader.h" @@ -2926,19 +2929,19 @@ void kill_screen(const char* lcd_msg) { * */ - #if IS_KINEMATIC + #if IS_KINEMATIC || ENABLED(NO_MOTION_BEFORE_HOMING) #define _MOVE_XYZ_ALLOWED (axis_homed[X_AXIS] && axis_homed[Y_AXIS] && axis_homed[Z_AXIS]) - #if ENABLED(DELTA) - #define _MOVE_XY_ALLOWED (current_position[Z_AXIS] <= delta_clip_start_height) - void lcd_lower_z_to_clip_height() { - line_to_z(delta_clip_start_height); - lcd_synchronize(); - } - #else - #define _MOVE_XY_ALLOWED true - #endif #else #define _MOVE_XYZ_ALLOWED true + #endif + + #if ENABLED(DELTA) + #define _MOVE_XY_ALLOWED (current_position[Z_AXIS] <= delta_clip_start_height) + void lcd_lower_z_to_clip_height() { + line_to_z(delta_clip_start_height); + lcd_synchronize(); + } + #else #define _MOVE_XY_ALLOWED true #endif