Selaa lähdekoodia

Add HOME_Z_FIRST option (#20113)

Scott Lahteine 4 vuotta sitten
vanhempi
commit
2282801172
No account linked to committer's email address

+ 1
- 0
Marlin/Configuration_adv.h Näytä tiedosto

660
 
660
 
661
 //#define QUICK_HOME                          // If G28 contains XY do a diagonal move first
661
 //#define QUICK_HOME                          // If G28 contains XY do a diagonal move first
662
 //#define HOME_Y_BEFORE_X                     // If G28 contains XY home Y before X
662
 //#define HOME_Y_BEFORE_X                     // If G28 contains XY home Y before X
663
+//#define HOME_Z_FIRST                        // Home Z first. Requires a Z-MIN endstop (not a probe).
663
 //#define CODEPENDENT_XY_HOMING               // If X/Y can't home without homing Y/X first
664
 //#define CODEPENDENT_XY_HOMING               // If X/Y can't home without homing Y/X first
664
 
665
 
665
 // @section bltouch
666
 // @section bltouch

+ 4
- 9
Marlin/src/gcode/calibrate/G28.cpp Näytä tiedosto

313
                home_all = homeX == homeY && homeX == homeZ, // All or None
313
                home_all = homeX == homeY && homeX == homeZ, // All or None
314
                doX = home_all || homeX, doY = home_all || homeY, doZ = home_all || homeZ;
314
                doX = home_all || homeX, doY = home_all || homeY, doZ = home_all || homeZ;
315
 
315
 
316
-    #if Z_HOME_DIR > 0  // If homing away from BED do Z first
316
+    #if ENABLED(HOME_Z_FIRST)
317
 
317
 
318
       if (doZ) homeaxis(Z_AXIS);
318
       if (doZ) homeaxis(Z_AXIS);
319
 
319
 
373
     TERN_(IMPROVE_HOMING_RELIABILITY, end_slow_homing(slow_homing));
373
     TERN_(IMPROVE_HOMING_RELIABILITY, end_slow_homing(slow_homing));
374
 
374
 
375
     // Home Z last if homing towards the bed
375
     // Home Z last if homing towards the bed
376
-    #if Z_HOME_DIR < 0
377
-
376
+    #if DISABLED(HOME_Z_FIRST)
378
       if (doZ) {
377
       if (doZ) {
379
         TERN_(BLTOUCH, bltouch.init());
378
         TERN_(BLTOUCH, bltouch.init());
380
-
381
         TERN(Z_SAFE_HOMING, home_z_safely(), homeaxis(Z_AXIS));
379
         TERN(Z_SAFE_HOMING, home_z_safely(), homeaxis(Z_AXIS));
382
-
383
         probe.move_z_after_homing();
380
         probe.move_z_after_homing();
384
-
385
-      } // doZ
386
-
387
-    #endif // Z_HOME_DIR < 0
381
+      }
382
+    #endif
388
 
383
 
389
     sync_plan_position();
384
     sync_plan_position();
390
 
385
 

+ 4
- 0
Marlin/src/inc/Conditionals_LCD.h Näytä tiedosto

778
   #undef Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
778
   #undef Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
779
 #endif
779
 #endif
780
 
780
 
781
+#if Z_HOME_DIR > 0
782
+  #define HOME_Z_FIRST // If homing away from BED do Z first
783
+#endif
784
+
781
 /**
785
 /**
782
  * Set granular options based on the specific type of leveling
786
  * Set granular options based on the specific type of leveling
783
  */
787
  */

+ 5
- 1
Marlin/src/inc/SanityCheck.h Näytä tiedosto

1548
  * Deploying the Allen Key probe uses big moves in z direction. Too dangerous for an unhomed z-axis.
1548
  * Deploying the Allen Key probe uses big moves in z direction. Too dangerous for an unhomed z-axis.
1549
  */
1549
  */
1550
 #if ENABLED(Z_PROBE_ALLEN_KEY) && (Z_HOME_DIR < 0) && ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN)
1550
 #if ENABLED(Z_PROBE_ALLEN_KEY) && (Z_HOME_DIR < 0) && ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN)
1551
-  #error "You can't home to a z min endstop with a Z_PROBE_ALLEN_KEY."
1551
+  #error "You can't home to a Z min endstop with a Z_PROBE_ALLEN_KEY."
1552
 #endif
1552
 #endif
1553
 
1553
 
1554
 /**
1554
 /**
1965
   #error "Enable USE_ZMAX_PLUG when homing Z to MAX."
1965
   #error "Enable USE_ZMAX_PLUG when homing Z to MAX."
1966
 #endif
1966
 #endif
1967
 
1967
 
1968
+#if BOTH(HOME_Z_FIRST, USE_PROBE_FOR_Z_HOMING)
1969
+  #error "HOME_Z_FIRST can't be used when homing Z with a probe."
1970
+#endif
1971
+
1968
 // Dual/multiple endstops requirements
1972
 // Dual/multiple endstops requirements
1969
 #if ENABLED(X_DUAL_ENDSTOPS)
1973
 #if ENABLED(X_DUAL_ENDSTOPS)
1970
   #if !X2_USE_ENDSTOP
1974
   #if !X2_USE_ENDSTOP

Loading…
Peruuta
Tallenna