|
@@ -1803,7 +1803,19 @@ inline void gcode_G28() {
|
1803
|
1803
|
home_all_axis = !homeX && !homeY && !homeZ; // No parameters means home all axes
|
1804
|
1804
|
|
1805
|
1805
|
#if Z_HOME_DIR > 0 // If homing away from BED do Z first
|
|
1806
|
+
|
1806
|
1807
|
if (home_all_axis || homeZ) HOMEAXIS(Z);
|
|
1808
|
+
|
|
1809
|
+ #elif !defined(Z_SAFE_HOMING) && defined(Z_RAISE_BEFORE_HOMING) && Z_RAISE_BEFORE_HOMING > 0
|
|
1810
|
+
|
|
1811
|
+ // Raise Z before homing any other axes
|
|
1812
|
+ if (home_all_axis || homeZ) {
|
|
1813
|
+ destination[Z_AXIS] = -Z_RAISE_BEFORE_HOMING * home_dir(Z_AXIS); // Set destination away from bed
|
|
1814
|
+ feedrate = max_feedrate[Z_AXIS];
|
|
1815
|
+ line_to_destination();
|
|
1816
|
+ st_synchronize();
|
|
1817
|
+ }
|
|
1818
|
+
|
1807
|
1819
|
#endif
|
1808
|
1820
|
|
1809
|
1821
|
#ifdef QUICK_HOME
|
|
@@ -1897,16 +1909,7 @@ inline void gcode_G28() {
|
1897
|
1909
|
|
1898
|
1910
|
#ifndef Z_SAFE_HOMING
|
1899
|
1911
|
|
1900
|
|
- if (home_all_axis || homeZ) {
|
1901
|
|
- // Raise Z before homing Z? Shouldn't this happen before homing X or Y?
|
1902
|
|
- #if defined(Z_RAISE_BEFORE_HOMING) && Z_RAISE_BEFORE_HOMING > 0
|
1903
|
|
- destination[Z_AXIS] = -Z_RAISE_BEFORE_HOMING * home_dir(Z_AXIS); // Set destination away from bed
|
1904
|
|
- feedrate = max_feedrate[Z_AXIS];
|
1905
|
|
- line_to_destination();
|
1906
|
|
- st_synchronize();
|
1907
|
|
- #endif
|
1908
|
|
- HOMEAXIS(Z);
|
1909
|
|
- }
|
|
1912
|
+ if (home_all_axis || homeZ) HOMEAXIS(Z);
|
1910
|
1913
|
|
1911
|
1914
|
#else // Z_SAFE_HOMING
|
1912
|
1915
|
|