Browse Source

Merge pull request #3082 from thinkyhead/updated_2820

This is quite comprehensive. If probes are disabled in any case when they shouldn't be, I'm sure we will hear about it soon.
Scott Lahteine 8 years ago
parent
commit
1cc316f1fd

+ 5
- 0
Marlin/Conditionals.h View File

@@ -596,5 +596,10 @@
596 596
     #endif
597 597
   #endif
598 598
 
599
+  #if ( (HAS_Z_MIN && ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN)) || HAS_Z_PROBE ) && \
600
+    ( ENABLED(FIX_MOUNTED_PROBE) || defined(Z_ENDSTOP_SERVO_NR) || ENABLED(Z_PROBE_ALLEN_KEY) || ENABLED(Z_PROBE_SLED) )
601
+    #define HAS_Z_MIN_PROBE
602
+  #endif
603
+
599 604
 #endif //CONFIGURATION_LCD
600 605
 #endif //CONDITIONALS_H

+ 63
- 40
Marlin/Configuration.h View File

@@ -336,10 +336,52 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
336 336
 //#define DISABLE_MAX_ENDSTOPS
337 337
 //#define DISABLE_MIN_ENDSTOPS
338 338
 
339
-// If you want to enable the Z probe pin, but disable its use, uncomment the line below.
340
-// This only affects a Z probe endstop if you have separate Z min endstop as well and have
341
-// activated Z_MIN_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z probe,
342
-// this has no effect.
339
+//===========================================================================
340
+//============================= Z Probe Options =============================
341
+//===========================================================================
342
+
343
+// Enable Z_MIN_PROBE_ENDSTOP to use _both_ a Z-probe and a Z-min-endstop on the same machine.
344
+// With this option the Z_MIN_PROBE_PIN will only be used for probing, never for homing.
345
+//
346
+// *** PLEASE READ ALL INSTRUCTIONS BELOW FOR SAFETY! ***
347
+//
348
+// To continue using the Z-min-endstop for homing, be sure to disable Z_SAFE_HOMING.
349
+// Example: To park the head outside the bed area when homing with G28.
350
+//
351
+// To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
352
+//
353
+// For a servo-based Z probe, you must set up servo support below, including
354
+// NUM_SERVOS, Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES.
355
+//
356
+// - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
357
+// - Use 5V for powered (usu. inductive) sensors.
358
+// - Otherwise connect:
359
+//   - normally-closed switches to GND and D32.
360
+//   - normally-open switches to 5V and D32.
361
+//
362
+// Normally-closed switches are advised and are the default.
363
+//
364
+// The Z_MIN_PROBE_PIN sets the Arduino pin to use. (See your board's pins file.)
365
+// Since the RAMPS Aux4->D32 pin maps directly to the Arduino D32 pin, D32 is the
366
+// default pin for all RAMPS-based boards. Some other boards map differently.
367
+// To set or change the pin for your board, edit the appropriate pins_XXXXX.h file.
368
+//
369
+// WARNING:
370
+// Setting the wrong pin may have unexpected and potentially disastrous consequences.
371
+// Use with caution and do your homework.
372
+//
373
+//#define Z_MIN_PROBE_ENDSTOP
374
+
375
+// Enable Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN to use the Z_MIN_PIN for your Z_MIN_PROBE.
376
+// The Z_MIN_PIN will then be used for both Z-homing and probing.
377
+#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
378
+
379
+// To use a probe you must enable one of the two options above!
380
+
381
+// This option disables the use of the Z_MIN_PROBE_PIN
382
+// To enable the Z probe pin but disable its use, uncomment the line below. This only affects a
383
+// Z probe switch if you have a separate Z min endstop also and have activated Z_MIN_PROBE_ENDSTOP above.
384
+// If you're using the Z MIN endstop connector for your Z probe, this has no effect.
343 385
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
344 386
 
345 387
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
@@ -520,14 +562,26 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
520 562
   //#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
521 563
                                                                              // Useful to retract a deployable Z probe.
522 564
 
523
-  //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
524
-  //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.
565
+  // Probes are sensors/switches that need to be activated before they can be used
566
+  // and deactivated after the use.
567
+  // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, ... . You have to activate one of these for the AUTO_BED_LEVELING_FEATURE
568
+
569
+  // A fix mounted probe, like the normal inductive probe, must be deactivated to go below Z_PROBE_OFFSET_FROM_EXTRUDER
570
+  // when the hardware endstops are active.
571
+  //#define FIX_MOUNTED_PROBE
572
+
573
+  // A Servo Probe can be defined in the servo section below.
574
+
575
+  // An Allen Key Probe is currently predefined only in the delta example configurations.
525 576
 
577
+  //#define Z_PROBE_SLED // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell.
578
+  //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.
526 579
 
527
-  //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
528
-  //it is highly recommended you let this Z_SAFE_HOMING enabled!!!
580
+  // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing,
581
+  // it is highly recommended you leave Z_SAFE_HOMING enabled!
529 582
 
530
-  #define Z_SAFE_HOMING   // This feature is meant to avoid Z homing with Z probe outside the bed area.
583
+  #define Z_SAFE_HOMING   // Use the z-min-probe for homing to z-min - not the z-min-endstop.
584
+                          // This feature is meant to avoid Z homing with Z probe outside the bed area.
531 585
                           // When defined, it will:
532 586
                           // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
533 587
                           // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
@@ -541,37 +595,6 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
541 595
 
542 596
   #endif
543 597
 
544
-  // Support for a dedicated Z probe endstop separate from the Z min endstop.
545
-  // If you would like to use both a Z probe and a Z min endstop together,
546
-  // uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below.
547
-  // If you still want to use the Z min endstop for homing, disable Z_SAFE_HOMING above.
548
-  // Example: To park the head outside the bed area when homing with G28.
549
-  //
550
-  // WARNING:
551
-  // The Z min endstop will need to set properly as it would without a Z probe
552
-  // to prevent head crashes and premature stopping during a print.
553
-  //
554
-  // To use a separate Z probe endstop, you must have a Z_MIN_PROBE_PIN
555
-  // defined in the pins_XXXXX.h file for your control board.
556
-  // If you are using a servo based Z probe, you will need to enable NUM_SERVOS,
557
-  // Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C SERVO support below.
558
-  // RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin
559
-  // in the Aux 4 section of the RAMPS board. Use 5V for powered sensors,
560
-  // otherwise connect to ground and D32 for normally closed configuration
561
-  // and 5V and D32 for normally open configurations.
562
-  // Normally closed configuration is advised and assumed.
563
-  // The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin.
564
-  // Z_MIN_PROBE_PIN is setting the pin to use on the Arduino.
565
-  // Since the D32 pin on the RAMPS maps to D32 on Arduino, this works.
566
-  // D32 is currently selected in the RAMPS 1.3/1.4 pin file.
567
-  // All other boards will need changes to the respective pins_XXXXX.h file.
568
-  //
569
-  // WARNING:
570
-  // Setting the wrong pin may have unexpected and potentially disastrous outcomes.
571
-  // Use with caution and do your homework.
572
-  //
573
-  //#define Z_MIN_PROBE_ENDSTOP
574
-
575 598
 #endif // AUTO_BED_LEVELING_FEATURE
576 599
 
577 600
 

+ 73
- 30
Marlin/Marlin_main.cpp View File

@@ -465,6 +465,10 @@ void serial_echopair_P(const char* s_P, unsigned long v) { serialprintPGM(s_P);
465 465
   float extrude_min_temp = EXTRUDE_MINTEMP;
466 466
 #endif
467 467
 
468
+#if ENABLED(HAS_Z_MIN_PROBE)
469
+  extern volatile bool z_probe_is_active;
470
+#endif
471
+
468 472
 #if ENABLED(SDSUPPORT)
469 473
   #include "SdFatUtil.h"
470 474
   int freeMemory() { return SdFatUtil::FreeRam(); }
@@ -619,12 +623,26 @@ void servo_init() {
619 623
     servo[3].detach();
620 624
   #endif
621 625
 
622
-  // Set position of Servo Endstops that are defined
623
-  #if HAS_SERVO_ENDSTOPS
626
+   #if HAS_SERVO_ENDSTOPS
627
+
628
+    z_probe_is_active = false;
629
+
630
+    /**
631
+     * Set position of all defined Servo Endstops
632
+     *
633
+     * ** UNSAFE! - NEEDS UPDATE! **
634
+     *
635
+     * The servo might be deployed and positioned too low to stow
636
+     * when starting up the machine or rebooting the board.
637
+     * There's no way to know where the nozzle is positioned until
638
+     * homing has been done - no homing with z-probe without init!
639
+     *
640
+     */
624 641
     for (int i = 0; i < 3; i++)
625 642
       if (servo_endstop_id[i] >= 0)
626 643
         servo[servo_endstop_id[i]].move(servo_endstop_angle[i][1]);
627
-  #endif
644
+
645
+  #endif // HAS_SERVO_ENDSTOPS
628 646
 
629 647
 }
630 648
 
@@ -1458,6 +1476,8 @@ static void setup_for_endstop_move() {
1458 1476
     refresh_cmd_timeout();
1459 1477
   }
1460 1478
 
1479
+  #if ENABLED(HAS_Z_MIN_PROBE)
1480
+
1461 1481
   static void deploy_z_probe() {
1462 1482
 
1463 1483
     #if ENABLED(DEBUG_LEVELING_FEATURE)
@@ -1466,6 +1486,8 @@ static void setup_for_endstop_move() {
1466 1486
       }
1467 1487
     #endif
1468 1488
 
1489
+    if (z_probe_is_active) return;
1490
+
1469 1491
     #if HAS_SERVO_ENDSTOPS
1470 1492
 
1471 1493
       // Engage Z Servo endstop if enabled
@@ -1505,20 +1527,19 @@ static void setup_for_endstop_move() {
1505 1527
             if (Z_PROBE_ALLEN_KEY_DEPLOY_3_FEEDRATE != Z_PROBE_ALLEN_KEY_DEPLOY_2_FEEDRATE)
1506 1528
               feedrate = Z_PROBE_ALLEN_KEY_DEPLOY_3_FEEDRATE;
1507 1529
 
1508
-          // Move to trigger deployment
1509
-          if (Z_PROBE_ALLEN_KEY_DEPLOY_3_FEEDRATE != Z_PROBE_ALLEN_KEY_DEPLOY_2_FEEDRATE)
1510
-            feedrate = Z_PROBE_ALLEN_KEY_DEPLOY_3_FEEDRATE;
1511
-          if (Z_PROBE_ALLEN_KEY_DEPLOY_3_X != Z_PROBE_ALLEN_KEY_DEPLOY_2_X)
1512
-            destination[X_AXIS] = Z_PROBE_ALLEN_KEY_DEPLOY_3_X;
1513
-          if (Z_PROBE_ALLEN_KEY_DEPLOY_3_Y != Z_PROBE_ALLEN_KEY_DEPLOY_2_Y)
1514
-            destination[Y_AXIS] = Z_PROBE_ALLEN_KEY_DEPLOY_3_Y;
1515
-          if (Z_PROBE_ALLEN_KEY_DEPLOY_3_Z != Z_PROBE_ALLEN_KEY_DEPLOY_2_Z)
1516
-            destination[Z_AXIS] = Z_PROBE_ALLEN_KEY_DEPLOY_3_Z;
1517
-
1518
-          prepare_move_raw();
1519
-
1520
-        #endif
1521
-      }
1530
+            // Move to trigger deployment
1531
+            if (Z_PROBE_ALLEN_KEY_DEPLOY_3_FEEDRATE != Z_PROBE_ALLEN_KEY_DEPLOY_2_FEEDRATE)
1532
+              feedrate = Z_PROBE_ALLEN_KEY_DEPLOY_3_FEEDRATE;
1533
+            if (Z_PROBE_ALLEN_KEY_DEPLOY_3_X != Z_PROBE_ALLEN_KEY_DEPLOY_2_X)
1534
+              destination[X_AXIS] = Z_PROBE_ALLEN_KEY_DEPLOY_3_X;
1535
+            if (Z_PROBE_ALLEN_KEY_DEPLOY_3_Y != Z_PROBE_ALLEN_KEY_DEPLOY_2_Y)
1536
+              destination[Y_AXIS] = Z_PROBE_ALLEN_KEY_DEPLOY_3_Y;
1537
+            if (Z_PROBE_ALLEN_KEY_DEPLOY_3_Z != Z_PROBE_ALLEN_KEY_DEPLOY_2_Z)
1538
+              destination[Z_AXIS] = Z_PROBE_ALLEN_KEY_DEPLOY_3_Z;
1539
+
1540
+            prepare_move_raw();
1541
+          #endif
1542
+        }
1522 1543
 
1523 1544
       // Partially Home X,Y for safety
1524 1545
       destination[X_AXIS] = destination[X_AXIS] * 0.75;
@@ -1545,6 +1566,12 @@ static void setup_for_endstop_move() {
1545 1566
 
1546 1567
     #endif // Z_PROBE_ALLEN_KEY
1547 1568
 
1569
+    #if ENABLED(FIX_MOUNTED_PROBE)
1570
+      // Noting to be done. Just set z_probe_is_active
1571
+    #endif
1572
+
1573
+    z_probe_is_active = true;
1574
+
1548 1575
   }
1549 1576
 
1550 1577
   static void stow_z_probe(bool doRaise = true) {
@@ -1554,6 +1581,8 @@ static void setup_for_endstop_move() {
1554 1581
       }
1555 1582
     #endif
1556 1583
 
1584
+    if (!z_probe_is_active) return;
1585
+
1557 1586
     #if HAS_SERVO_ENDSTOPS
1558 1587
 
1559 1588
       // Retract Z Servo endstop if enabled
@@ -1638,7 +1667,14 @@ static void setup_for_endstop_move() {
1638 1667
           Stop();
1639 1668
         }
1640 1669
     #endif // Z_PROBE_ALLEN_KEY
1670
+
1671
+    #if ENABLED(FIX_MOUNTED_PROBE)
1672
+      // Noting to be done. Just set z_probe_is_active
1673
+    #endif
1674
+
1675
+    z_probe_is_active = false;
1641 1676
   }
1677
+  #endif // HAS_Z_MIN_PROBE
1642 1678
 
1643 1679
   enum ProbeAction {
1644 1680
     ProbeStay          = 0,
@@ -1830,6 +1866,9 @@ static void unknown_position_error() {
1830 1866
         SERIAL_EOL;
1831 1867
       }
1832 1868
     #endif
1869
+
1870
+    if (z_probe_is_active == dock) return;
1871
+
1833 1872
     if (!axis_known_position[X_AXIS] || !axis_known_position[Y_AXIS]) {
1834 1873
       unknown_position_error();
1835 1874
       return;
@@ -1850,6 +1889,8 @@ static void unknown_position_error() {
1850 1889
       digitalWrite(SLED_PIN, HIGH); // turn on magnet
1851 1890
     }
1852 1891
     do_blocking_move_to_x(oldXpos); // return to position before docking
1892
+
1893
+    z_probe_is_active = dock;
1853 1894
   }
1854 1895
 
1855 1896
 #endif // Z_PROBE_SLED
@@ -1890,9 +1931,7 @@ static void homeaxis(AxisEnum axis) {
1890 1931
       if (axis == Z_AXIS) {
1891 1932
         if (axis_home_dir < 0) dock_sled(false);
1892 1933
       }
1893
-    #endif
1894
-
1895
-    #if SERVO_LEVELING && DISABLED(Z_PROBE_SLED)
1934
+    #elif SERVO_LEVELING || ENABLED(FIX_MOUNTED_PROBE)
1896 1935
 
1897 1936
       // Deploy a Z probe if there is one, and homing towards the bed
1898 1937
       if (axis == Z_AXIS) {
@@ -1903,8 +1942,10 @@ static void homeaxis(AxisEnum axis) {
1903 1942
 
1904 1943
     #if HAS_SERVO_ENDSTOPS
1905 1944
       // Engage Servo endstop if enabled
1906
-      if (axis != Z_AXIS && servo_endstop_id[axis] >= 0)
1945
+      if (axis != Z_AXIS && servo_endstop_id[axis] >= 0) {
1907 1946
         servo[servo_endstop_id[axis]].move(servo_endstop_angle[axis][0]);
1947
+        z_probe_is_active = true;
1948
+      }
1908 1949
     #endif
1909 1950
 
1910 1951
     // Set a flag for Z motor locking
@@ -2037,9 +2078,7 @@ static void homeaxis(AxisEnum axis) {
2037 2078
       if (axis == Z_AXIS) {
2038 2079
         if (axis_home_dir < 0) dock_sled(true);
2039 2080
       }
2040
-    #endif
2041
-
2042
-    #if SERVO_LEVELING && DISABLED(Z_PROBE_SLED)
2081
+    #elif SERVO_LEVELING || ENABLED(FIX_MOUNTED_PROBE)
2043 2082
 
2044 2083
       // Deploy a Z probe if there is one, and homing towards the bed
2045 2084
       if (axis == Z_AXIS) {
@@ -2066,6 +2105,7 @@ static void homeaxis(AxisEnum axis) {
2066 2105
             }
2067 2106
           #endif
2068 2107
           servo[servo_endstop_id[axis]].move(servo_endstop_angle[axis][1]);
2108
+          z_probe_is_active = false;
2069 2109
         }
2070 2110
       #endif
2071 2111
     }
@@ -3194,7 +3234,7 @@ inline void gcode_G28() {
3194 3234
       #if ENABLED(Z_PROBE_ALLEN_KEY)
3195 3235
         stow_z_probe();
3196 3236
       #elif Z_RAISE_AFTER_PROBING > 0
3197
-        raise_z_after_probing();
3237
+        raise_z_after_probing(); // ???
3198 3238
       #endif
3199 3239
     #else // !DELTA
3200 3240
       if (verbose_level > 0)
@@ -3278,6 +3318,9 @@ inline void gcode_G28() {
3278 3318
         }
3279 3319
       #endif
3280 3320
       enqueue_and_echo_commands_P(PSTR(Z_PROBE_END_SCRIPT));
3321
+      #if ENABLED(HAS_Z_MIN_PROBE)
3322
+        z_probe_is_active = false;
3323
+      #endif
3281 3324
       st_synchronize();
3282 3325
     #endif
3283 3326
 
@@ -3291,7 +3334,7 @@ inline void gcode_G28() {
3291 3334
 
3292 3335
   }
3293 3336
 
3294
-  #if DISABLED(Z_PROBE_SLED)
3337
+  #if DISABLED(Z_PROBE_SLED) // could be avoided
3295 3338
 
3296 3339
     /**
3297 3340
      * G30: Do a single Z probe at the current XY
@@ -3300,11 +3343,11 @@ inline void gcode_G28() {
3300 3343
       #if HAS_SERVO_ENDSTOPS
3301 3344
         raise_z_for_servo();
3302 3345
       #endif
3303
-      deploy_z_probe(); // Engage Z Servo endstop if available
3346
+      deploy_z_probe(); // Engage Z Servo endstop if available. Z_PROBE_SLED is missed her.
3304 3347
 
3305 3348
       st_synchronize();
3306 3349
       // TODO: clear the leveling matrix or the planner will be set incorrectly
3307
-      setup_for_endstop_move();
3350
+      setup_for_endstop_move(); // to late. Must be done before deploying.
3308 3351
 
3309 3352
       feedrate = homing_feedrate[Z_AXIS];
3310 3353
 
@@ -3317,12 +3360,12 @@ inline void gcode_G28() {
3317 3360
       SERIAL_PROTOCOL(current_position[Z_AXIS] + 0.0001);
3318 3361
       SERIAL_EOL;
3319 3362
 
3320
-      clean_up_after_endstop_move();
3363
+      clean_up_after_endstop_move(); // to early. must be done after the stowing.
3321 3364
 
3322 3365
       #if HAS_SERVO_ENDSTOPS
3323 3366
         raise_z_for_servo();
3324 3367
       #endif
3325
-      stow_z_probe(false); // Retract Z Servo endstop if available
3368
+      stow_z_probe(false); // Retract Z Servo endstop if available. Z_PROBE_SLED is missed her.
3326 3369
     }
3327 3370
 
3328 3371
   #endif //!Z_PROBE_SLED

+ 28
- 0
Marlin/SanityCheck.h View File

@@ -128,6 +128,34 @@
128 128
 #endif
129 129
 
130 130
 /**
131
+ * Probes
132
+ */
133
+
134
+  /**
135
+   * A probe needs a pin
136
+   */
137
+#if (!((HAS_Z_MIN && ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN)) || HAS_Z_PROBE )) && ( ENABLED(FIX_MOUNTED_PROBE) || defined(Z_ENDSTOP_SERVO_NR) || ENABLED(Z_PROBE_ALLEN_KEY) || ENABLED(Z_PROBE_SLED))
138
+  #error A probe needs a pin! [Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN || HAS_Z_PROBE]
139
+#endif
140
+
141
+#if ((HAS_Z_MIN && ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN)) && HAS_Z_PROBE) && ( ENABLED(FIX_MOUNTED_PROBE) || defined(Z_ENDSTOP_SERVO_NR) || ENABLED(Z_PROBE_ALLEN_KEY) || ENABLED(Z_PROBE_SLED))
142
+  #error A probe should not be connected to more then one pin! [Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN || HAS_Z_PROBE]
143
+#endif
144
+
145
+  /**
146
+    * Require one kind of probe
147
+    */
148
+#if ENABLED(AUTO_BED_LEVELING_FEATURE) && !( ENABLED(FIX_MOUNTED_PROBE) || defined(Z_ENDSTOP_SERVO_NR) || ENABLED(Z_PROBE_ALLEN_KEY) || ENABLED(Z_PROBE_SLED))
149
+  #error For AUTO_BED_LEVELING_FEATURE define one kind of probe! {Servo | Z_PROBE_ALLEN_KEY | Z_PROBE_SLED | FIX_MOUNTED_PROBE]
150
+#endif
151
+
152
+#if ENABLED(Z_SAFE_HOMING)&& !( ENABLED(FIX_MOUNTED_PROBE) || defined(Z_ENDSTOP_SERVO_NR) || ENABLED(Z_PROBE_ALLEN_KEY) || ENABLED(Z_PROBE_SLED))
153
+  #error For Z_SAFE_HOMING define one kind of probe! {Servo | Z_PROBE_ALLEN_KEY | Z_PROBE_SLED | FIX_MOUNTED_PROBE]
154
+#endif
155
+
156
+// To do: Fail with more then one probe defined
157
+
158
+/**
131 159
  * Auto Bed Leveling
132 160
  */
133 161
 #if ENABLED(AUTO_BED_LEVELING_FEATURE)

+ 57
- 33
Marlin/example_configurations/Felix/Configuration.h View File

@@ -318,10 +318,52 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
318 318
 #define DISABLE_MAX_ENDSTOPS
319 319
 //#define DISABLE_MIN_ENDSTOPS
320 320
 
321
+//===========================================================================
322
+//============================= Z Probe Options =============================
323
+//===========================================================================
324
+
325
+// Enable Z_MIN_PROBE_ENDSTOP to use _both_ a Z-probe and a Z-min-endstop on the same machine.
326
+// With this option the Z_MIN_PROBE_PIN will only be used for probing, never for homing.
327
+//
328
+// *** PLEASE READ ALL INSTRUCTIONS BELOW FOR SAFETY! ***
329
+//
330
+// To continue using the Z-min-endstop for homing, be sure to disable Z_SAFE_HOMING.
331
+// Example: To park the head outside the bed area when homing with G28.
332
+//
333
+// To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
334
+//
335
+// For a servo-based Z probe, you must set up servo support below, including
336
+// NUM_SERVOS, Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES.
337
+//
338
+// - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
339
+// - Use 5V for powered (usu. inductive) sensors.
340
+// - Otherwise connect:
341
+//   - normally-closed switches to GND and D32.
342
+//   - normally-open switches to 5V and D32.
343
+//
344
+// Normally-closed switches are advised and are the default.
345
+//
346
+// The Z_MIN_PROBE_PIN sets the Arduino pin to use. (See your board's pins file.)
347
+// Since the RAMPS Aux4->D32 pin maps directly to the Arduino D32 pin, D32 is the
348
+// default pin for all RAMPS-based boards. Some other boards map differently.
349
+// To set or change the pin for your board, edit the appropriate pins_XXXXX.h file.
350
+//
351
+// WARNING:
352
+// Setting the wrong pin may have unexpected and potentially disastrous consequences.
353
+// Use with caution and do your homework.
354
+//
355
+//#define Z_MIN_PROBE_ENDSTOP
356
+
357
+// If you want to use the Z_MIN_PIN to connect your Z_MIN_PROBE comment out the next define.
358
+// In other words. The z-min-probe is connected to the Z_MIN_PIN and is used for homing and for probing.
359
+#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
360
+// If you want to use a probe you do have to define one of the two defines above!
361
+
321 362
 // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
322 363
 // This only affects a Z probe endstop if you have separate Z min endstop as well and have
323
-// activated Z_MIN_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z probe,
364
+// activated Z_MIN_PROBE_ENDSTOP above. If you are using the Z Min endstop on your Z probe,
324 365
 // this has no effect.
366
+// In other words. If a Z_MIN_PROBE_PIN is defined in your pin file - don't use it.
325 367
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
326 368
 
327 369
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
@@ -502,6 +544,18 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
502 544
   //#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
503 545
                                                                              // Useful to retract a deployable Z probe.
504 546
 
547
+  // Probes are sensors/switches that need to be activated before they can be used
548
+  // and deactivated after the use.
549
+  // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, ... . You have to activate one of these for the AUTO_BED_LEVELING_FEATURE
550
+
551
+  // A fix mounted probe, like the normal inductive probe, must be deactivated to go below Z_PROBE_OFFSET_FROM_EXTRUDER
552
+  // when the hardware endstops are active.
553
+  //#define FIX_MOUNTED_PROBE
554
+
555
+  // A Servo Probe can be defined in the servo section below.
556
+
557
+  // A Allen Key Probe is currently predefined only in the delta example configurations.
558
+
505 559
   //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
506 560
   //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.
507 561
 
@@ -509,7 +563,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
509 563
   //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
510 564
   //it is highly recommended you let this Z_SAFE_HOMING enabled!!!
511 565
 
512
-  #define Z_SAFE_HOMING   // This feature is meant to avoid Z homing with Z probe outside the bed area.
566
+  #define Z_SAFE_HOMING   // Use the z-min-probe for homing to z-min - not the z-min-endstop.
567
+                          // This feature is meant to avoid Z homing with Z probe outside the bed area.
513 568
                           // When defined, it will:
514 569
                           // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
515 570
                           // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
@@ -523,37 +578,6 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
523 578
 
524 579
   #endif
525 580
 
526
-  // Support for a dedicated Z probe endstop separate from the Z min endstop.
527
-  // If you would like to use both a Z probe and a Z min endstop together,
528
-  // uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below.
529
-  // If you still want to use the Z min endstop for homing, disable Z_SAFE_HOMING above.
530
-  // Example: To park the head outside the bed area when homing with G28.
531
-  //
532
-  // WARNING:
533
-  // The Z min endstop will need to set properly as it would without a Z probe
534
-  // to prevent head crashes and premature stopping during a print.
535
-  //
536
-  // To use a separate Z probe endstop, you must have a Z_MIN_PROBE_PIN
537
-  // defined in the pins_XXXXX.h file for your control board.
538
-  // If you are using a servo based Z probe, you will need to enable NUM_SERVOS,
539
-  // Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C SERVO support below.
540
-  // RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin
541
-  // in the Aux 4 section of the RAMPS board. Use 5V for powered sensors,
542
-  // otherwise connect to ground and D32 for normally closed configuration
543
-  // and 5V and D32 for normally open configurations.
544
-  // Normally closed configuration is advised and assumed.
545
-  // The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin.
546
-  // Z_MIN_PROBE_PIN is setting the pin to use on the Arduino.
547
-  // Since the D32 pin on the RAMPS maps to D32 on Arduino, this works.
548
-  // D32 is currently selected in the RAMPS 1.3/1.4 pin file.
549
-  // All other boards will need changes to the respective pins_XXXXX.h file.
550
-  //
551
-  // WARNING:
552
-  // Setting the wrong pin may have unexpected and potentially disastrous outcomes.
553
-  // Use with caution and do your homework.
554
-  //
555
-  //#define Z_MIN_PROBE_ENDSTOP
556
-
557 581
 #endif // AUTO_BED_LEVELING_FEATURE
558 582
 
559 583
 

+ 57
- 33
Marlin/example_configurations/Felix/Configuration_DUAL.h View File

@@ -315,10 +315,52 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
315 315
 #define DISABLE_MAX_ENDSTOPS
316 316
 //#define DISABLE_MIN_ENDSTOPS
317 317
 
318
+//===========================================================================
319
+//============================= Z Probe Options =============================
320
+//===========================================================================
321
+
322
+// Enable Z_MIN_PROBE_ENDSTOP to use _both_ a Z-probe and a Z-min-endstop on the same machine.
323
+// With this option the Z_MIN_PROBE_PIN will only be used for probing, never for homing.
324
+//
325
+// *** PLEASE READ ALL INSTRUCTIONS BELOW FOR SAFETY! ***
326
+//
327
+// To continue using the Z-min-endstop for homing, be sure to disable Z_SAFE_HOMING.
328
+// Example: To park the head outside the bed area when homing with G28.
329
+//
330
+// To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
331
+//
332
+// For a servo-based Z probe, you must set up servo support below, including
333
+// NUM_SERVOS, Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES.
334
+//
335
+// - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
336
+// - Use 5V for powered (usu. inductive) sensors.
337
+// - Otherwise connect:
338
+//   - normally-closed switches to GND and D32.
339
+//   - normally-open switches to 5V and D32.
340
+//
341
+// Normally-closed switches are advised and are the default.
342
+//
343
+// The Z_MIN_PROBE_PIN sets the Arduino pin to use. (See your board's pins file.)
344
+// Since the RAMPS Aux4->D32 pin maps directly to the Arduino D32 pin, D32 is the
345
+// default pin for all RAMPS-based boards. Some other boards map differently.
346
+// To set or change the pin for your board, edit the appropriate pins_XXXXX.h file.
347
+//
348
+// WARNING:
349
+// Setting the wrong pin may have unexpected and potentially disastrous consequences.
350
+// Use with caution and do your homework.
351
+//
352
+//#define Z_MIN_PROBE_ENDSTOP
353
+
354
+// If you want to use the Z_MIN_PIN to connect your Z_MIN_PROBE comment out the next define.
355
+// In other words. The z-min-probe is connected to the Z_MIN_PIN and is used for homing and for probing.
356
+#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
357
+// If you want to use a probe you do have to define one of the two defines above!
358
+
318 359
 // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
319 360
 // This only affects a Z probe endstop if you have separate Z min endstop as well and have
320
-// activated Z_MIN_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z probe,
361
+// activated Z_MIN_PROBE_ENDSTOP above. If you are using the Z Min endstop on your Z probe,
321 362
 // this has no effect.
363
+// In other words. If a Z_MIN_PROBE_PIN is defined in your pin file - don't use it.
322 364
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
323 365
 
324 366
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
@@ -499,6 +541,18 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
499 541
   //#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
500 542
                                                                              // Useful to retract a deployable Z probe.
501 543
 
544
+  // Probes are sensors/switches that need to be activated before they can be used
545
+  // and deactivated after the use.
546
+  // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, ... . You have to activate one of these for the AUTO_BED_LEVELING_FEATURE
547
+
548
+  // A fix mounted probe, like the normal inductive probe, must be deactivated to go below Z_PROBE_OFFSET_FROM_EXTRUDER
549
+  // when the hardware endstops are active.
550
+  //#define FIX_MOUNTED_PROBE
551
+
552
+  // A Servo Probe can be defined in the servo section below.
553
+
554
+  // A Allen Key Probe is currently predefined only in the delta example configurations.
555
+
502 556
   //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
503 557
   //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.
504 558
 
@@ -506,7 +560,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
506 560
   //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
507 561
   //it is highly recommended you let this Z_SAFE_HOMING enabled!!!
508 562
 
509
-  #define Z_SAFE_HOMING   // This feature is meant to avoid Z homing with Z probe outside the bed area.
563
+  #define Z_SAFE_HOMING   // Use the z-min-probe for homing to z-min - not the z-min-endstop.
564
+                          // This feature is meant to avoid Z homing with Z probe outside the bed area.
510 565
                           // When defined, it will:
511 566
                           // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
512 567
                           // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
@@ -520,37 +575,6 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
520 575
 
521 576
   #endif
522 577
 
523
-  // Support for a dedicated Z probe endstop separate from the Z min endstop.
524
-  // If you would like to use both a Z probe and a Z min endstop together,
525
-  // uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below.
526
-  // If you still want to use the Z min endstop for homing, disable Z_SAFE_HOMING above.
527
-  // Example: To park the head outside the bed area when homing with G28.
528
-  //
529
-  // WARNING:
530
-  // The Z min endstop will need to set properly as it would without a Z probe
531
-  // to prevent head crashes and premature stopping during a print.
532
-  //
533
-  // To use a separate Z probe endstop, you must have a Z_MIN_PROBE_PIN
534
-  // defined in the pins_XXXXX.h file for your control board.
535
-  // If you are using a servo based Z probe, you will need to enable NUM_SERVOS,
536
-  // Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C SERVO support below.
537
-  // RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin
538
-  // in the Aux 4 section of the RAMPS board. Use 5V for powered sensors,
539
-  // otherwise connect to ground and D32 for normally closed configuration
540
-  // and 5V and D32 for normally open configurations.
541
-  // Normally closed configuration is advised and assumed.
542
-  // The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin.
543
-  // Z_MIN_PROBE_PIN is setting the pin to use on the Arduino.
544
-  // Since the D32 pin on the RAMPS maps to D32 on Arduino, this works.
545
-  // D32 is currently selected in the RAMPS 1.3/1.4 pin file.
546
-  // All other boards will need changes to the respective pins_XXXXX.h file.
547
-  //
548
-  // WARNING:
549
-  // Setting the wrong pin may have unexpected and potentially disastrous outcomes.
550
-  // Use with caution and do your homework.
551
-  //
552
-  //#define Z_MIN_PROBE_ENDSTOP
553
-
554 578
 #endif // AUTO_BED_LEVELING_FEATURE
555 579
 
556 580
 

+ 57
- 33
Marlin/example_configurations/Hephestos/Configuration.h View File

@@ -328,10 +328,52 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
328 328
 //#define DISABLE_MAX_ENDSTOPS
329 329
 //#define DISABLE_MIN_ENDSTOPS
330 330
 
331
+//===========================================================================
332
+//============================= Z Probe Options =============================
333
+//===========================================================================
334
+
335
+// Enable Z_MIN_PROBE_ENDSTOP to use _both_ a Z-probe and a Z-min-endstop on the same machine.
336
+// With this option the Z_MIN_PROBE_PIN will only be used for probing, never for homing.
337
+//
338
+// *** PLEASE READ ALL INSTRUCTIONS BELOW FOR SAFETY! ***
339
+//
340
+// To continue using the Z-min-endstop for homing, be sure to disable Z_SAFE_HOMING.
341
+// Example: To park the head outside the bed area when homing with G28.
342
+//
343
+// To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
344
+//
345
+// For a servo-based Z probe, you must set up servo support below, including
346
+// NUM_SERVOS, Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES.
347
+//
348
+// - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
349
+// - Use 5V for powered (usu. inductive) sensors.
350
+// - Otherwise connect:
351
+//   - normally-closed switches to GND and D32.
352
+//   - normally-open switches to 5V and D32.
353
+//
354
+// Normally-closed switches are advised and are the default.
355
+//
356
+// The Z_MIN_PROBE_PIN sets the Arduino pin to use. (See your board's pins file.)
357
+// Since the RAMPS Aux4->D32 pin maps directly to the Arduino D32 pin, D32 is the
358
+// default pin for all RAMPS-based boards. Some other boards map differently.
359
+// To set or change the pin for your board, edit the appropriate pins_XXXXX.h file.
360
+//
361
+// WARNING:
362
+// Setting the wrong pin may have unexpected and potentially disastrous consequences.
363
+// Use with caution and do your homework.
364
+//
365
+//#define Z_MIN_PROBE_ENDSTOP
366
+
367
+// If you want to use the Z_MIN_PIN to connect your Z_MIN_PROBE comment out the next define.
368
+// In other words. The z-min-probe is connected to the Z_MIN_PIN and is used for homing and for probing.
369
+#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
370
+// If you want to use a probe you do have to define one of the two defines above!
371
+
331 372
 // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
332 373
 // This only affects a Z probe endstop if you have separate Z min endstop as well and have
333
-// activated Z_MIN_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z probe,
374
+// activated Z_MIN_PROBE_ENDSTOP above. If you are using the Z Min endstop on your Z probe,
334 375
 // this has no effect.
376
+// In other words. If a Z_MIN_PROBE_PIN is defined in your pin file - don't use it.
335 377
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
336 378
 
337 379
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
@@ -512,6 +554,18 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
512 554
   //#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
513 555
                                                                              // Useful to retract a deployable Z probe.
514 556
 
557
+  // Probes are sensors/switches that need to be activated before they can be used
558
+  // and deactivated after the use.
559
+  // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, ... . You have to activate one of these for the AUTO_BED_LEVELING_FEATURE
560
+
561
+  // A fix mounted probe, like the normal inductive probe, must be deactivated to go below Z_PROBE_OFFSET_FROM_EXTRUDER
562
+  // when the hardware endstops are active.
563
+  //#define FIX_MOUNTED_PROBE
564
+
565
+  // A Servo Probe can be defined in the servo section below.
566
+
567
+  // A Allen Key Probe is currently predefined only in the delta example configurations.
568
+
515 569
   //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
516 570
   //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.
517 571
 
@@ -519,7 +573,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
519 573
   //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
520 574
   //it is highly recommended you let this Z_SAFE_HOMING enabled!!!
521 575
 
522
-  #define Z_SAFE_HOMING   // This feature is meant to avoid Z homing with Z probe outside the bed area.
576
+  #define Z_SAFE_HOMING   // Use the z-min-probe for homing to z-min - not the z-min-endstop.
577
+                          // This feature is meant to avoid Z homing with Z probe outside the bed area.
523 578
                           // When defined, it will:
524 579
                           // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
525 580
                           // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
@@ -533,37 +588,6 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
533 588
 
534 589
   #endif
535 590
 
536
-  // Support for a dedicated Z probe endstop separate from the Z min endstop.
537
-  // If you would like to use both a Z probe and a Z min endstop together,
538
-  // uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below.
539
-  // If you still want to use the Z min endstop for homing, disable Z_SAFE_HOMING above.
540
-  // Example: To park the head outside the bed area when homing with G28.
541
-  //
542
-  // WARNING:
543
-  // The Z min endstop will need to set properly as it would without a Z probe
544
-  // to prevent head crashes and premature stopping during a print.
545
-  //
546
-  // To use a separate Z probe endstop, you must have a Z_MIN_PROBE_PIN
547
-  // defined in the pins_XXXXX.h file for your control board.
548
-  // If you are using a servo based Z probe, you will need to enable NUM_SERVOS,
549
-  // Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C SERVO support below.
550
-  // RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin
551
-  // in the Aux 4 section of the RAMPS board. Use 5V for powered sensors,
552
-  // otherwise connect to ground and D32 for normally closed configuration
553
-  // and 5V and D32 for normally open configurations.
554
-  // Normally closed configuration is advised and assumed.
555
-  // The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin.
556
-  // Z_MIN_PROBE_PIN is setting the pin to use on the Arduino.
557
-  // Since the D32 pin on the RAMPS maps to D32 on Arduino, this works.
558
-  // D32 is currently selected in the RAMPS 1.3/1.4 pin file.
559
-  // All other boards will need changes to the respective pins_XXXXX.h file.
560
-  //
561
-  // WARNING:
562
-  // Setting the wrong pin may have unexpected and potentially disastrous outcomes.
563
-  // Use with caution and do your homework.
564
-  //
565
-  //#define Z_MIN_PROBE_ENDSTOP
566
-
567 591
 #endif // AUTO_BED_LEVELING_FEATURE
568 592
 
569 593
 

+ 43
- 32
Marlin/example_configurations/Hephestos_2/Configuration.h View File

@@ -331,10 +331,52 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
331 331
 #define DISABLE_MAX_ENDSTOPS
332 332
 //#define DISABLE_MIN_ENDSTOPS
333 333
 
334
+//===========================================================================
335
+//============================= Z Probe Options =============================
336
+//===========================================================================
337
+
338
+// Enable Z_MIN_PROBE_ENDSTOP to use _both_ a Z-probe and a Z-min-endstop on the same machine.
339
+// With this option the Z_MIN_PROBE_PIN will only be used for probing, never for homing.
340
+//
341
+// *** PLEASE READ ALL INSTRUCTIONS BELOW FOR SAFETY! ***
342
+//
343
+// To continue using the Z-min-endstop for homing, be sure to disable Z_SAFE_HOMING.
344
+// Example: To park the head outside the bed area when homing with G28.
345
+//
346
+// To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
347
+//
348
+// For a servo-based Z probe, you must set up servo support below, including
349
+// NUM_SERVOS, Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES.
350
+//
351
+// - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
352
+// - Use 5V for powered (usu. inductive) sensors.
353
+// - Otherwise connect:
354
+//   - normally-closed switches to GND and D32.
355
+//   - normally-open switches to 5V and D32.
356
+//
357
+// Normally-closed switches are advised and are the default.
358
+//
359
+// The Z_MIN_PROBE_PIN sets the Arduino pin to use. (See your board's pins file.)
360
+// Since the RAMPS Aux4->D32 pin maps directly to the Arduino D32 pin, D32 is the
361
+// default pin for all RAMPS-based boards. Some other boards map differently.
362
+// To set or change the pin for your board, edit the appropriate pins_XXXXX.h file.
363
+//
364
+// WARNING:
365
+// Setting the wrong pin may have unexpected and potentially disastrous consequences.
366
+// Use with caution and do your homework.
367
+//
368
+//#define Z_MIN_PROBE_ENDSTOP
369
+
370
+// If you want to use the Z_MIN_PIN to connect your Z_MIN_PROBE comment out the next define.
371
+// In other words. The z-min-probe is connected to the Z_MIN_PIN and is used for homing and for probing.
372
+#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
373
+// If you want to use a probe you do have to define one of the two defines above!
374
+
334 375
 // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
335 376
 // This only affects a Z probe endstop if you have separate Z min endstop as well and have
336
-// activated Z_MIN_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z probe,
377
+// activated Z_MIN_PROBE_ENDSTOP above. If you are using the Z Min endstop on your Z probe,
337 378
 // this has no effect.
379
+// In other words. If a Z_MIN_PROBE_PIN is defined in your pin file - don't use it.
338 380
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
339 381
 
340 382
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
@@ -536,37 +578,6 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
536 578
 
537 579
   #endif
538 580
 
539
-  // Support for a dedicated Z probe endstop separate from the Z min endstop.
540
-  // If you would like to use both a Z probe and a Z min endstop together,
541
-  // uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below.
542
-  // If you still want to use the Z min endstop for homing, disable Z_SAFE_HOMING above.
543
-  // Example: To park the head outside the bed area when homing with G28.
544
-  //
545
-  // WARNING:
546
-  // The Z min endstop will need to set properly as it would without a Z probe
547
-  // to prevent head crashes and premature stopping during a print.
548
-  //
549
-  // To use a separate Z probe endstop, you must have a Z_MIN_PROBE_PIN
550
-  // defined in the pins_XXXXX.h file for your control board.
551
-  // If you are using a servo based Z probe, you will need to enable NUM_SERVOS,
552
-  // Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C SERVO support below.
553
-  // RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin
554
-  // in the Aux 4 section of the RAMPS board. Use 5V for powered sensors,
555
-  // otherwise connect to ground and D32 for normally closed configuration
556
-  // and 5V and D32 for normally open configurations.
557
-  // Normally closed configuration is advised and assumed.
558
-  // The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin.
559
-  // Z_MIN_PROBE_PIN is setting the pin to use on the Arduino.
560
-  // Since the D32 pin on the RAMPS maps to D32 on Arduino, this works.
561
-  // D32 is currently selected in the RAMPS 1.3/1.4 pin file.
562
-  // All other boards will need changes to the respective pins_XXXXX.h file.
563
-  //
564
-  // WARNING:
565
-  // Setting the wrong pin may have unexpected and potentially disastrous outcomes.
566
-  // Use with caution and do your homework.
567
-  //
568
-  //#define Z_MIN_PROBE_ENDSTOP
569
-
570 581
 #endif // AUTO_BED_LEVELING_FEATURE
571 582
 
572 583
 

+ 57
- 33
Marlin/example_configurations/K8200/Configuration.h View File

@@ -351,10 +351,52 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
351 351
 #define DISABLE_MAX_ENDSTOPS
352 352
 //#define DISABLE_MIN_ENDSTOPS
353 353
 
354
+//===========================================================================
355
+//============================= Z Probe Options =============================
356
+//===========================================================================
357
+
358
+// Enable Z_MIN_PROBE_ENDSTOP to use _both_ a Z-probe and a Z-min-endstop on the same machine.
359
+// With this option the Z_MIN_PROBE_PIN will only be used for probing, never for homing.
360
+//
361
+// *** PLEASE READ ALL INSTRUCTIONS BELOW FOR SAFETY! ***
362
+//
363
+// To continue using the Z-min-endstop for homing, be sure to disable Z_SAFE_HOMING.
364
+// Example: To park the head outside the bed area when homing with G28.
365
+//
366
+// To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
367
+//
368
+// For a servo-based Z probe, you must set up servo support below, including
369
+// NUM_SERVOS, Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES.
370
+//
371
+// - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
372
+// - Use 5V for powered (usu. inductive) sensors.
373
+// - Otherwise connect:
374
+//   - normally-closed switches to GND and D32.
375
+//   - normally-open switches to 5V and D32.
376
+//
377
+// Normally-closed switches are advised and are the default.
378
+//
379
+// The Z_MIN_PROBE_PIN sets the Arduino pin to use. (See your board's pins file.)
380
+// Since the RAMPS Aux4->D32 pin maps directly to the Arduino D32 pin, D32 is the
381
+// default pin for all RAMPS-based boards. Some other boards map differently.
382
+// To set or change the pin for your board, edit the appropriate pins_XXXXX.h file.
383
+//
384
+// WARNING:
385
+// Setting the wrong pin may have unexpected and potentially disastrous consequences.
386
+// Use with caution and do your homework.
387
+//
388
+//#define Z_MIN_PROBE_ENDSTOP
389
+
390
+// If you want to use the Z_MIN_PIN to connect your Z_MIN_PROBE comment out the next define.
391
+// In other words. The z-min-probe is connected to the Z_MIN_PIN and is used for homing and for probing.
392
+#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
393
+// If you want to use a probe you do have to define one of the two defines above!
394
+
354 395
 // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
355 396
 // This only affects a Z probe endstop if you have separate Z min endstop as well and have
356
-// activated Z_MIN_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z probe,
397
+// activated Z_MIN_PROBE_ENDSTOP above. If you are using the Z Min endstop on your Z probe,
357 398
 // this has no effect.
399
+// In other words. If a Z_MIN_PROBE_PIN is defined in your pin file - don't use it.
358 400
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
359 401
 
360 402
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
@@ -535,6 +577,18 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
535 577
   //#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
536 578
                                                                              // Useful to retract a deployable Z probe.
537 579
 
580
+  // Probes are sensors/switches that need to be activated before they can be used
581
+  // and deactivated after the use.
582
+  // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, ... . You have to activate one of these for the AUTO_BED_LEVELING_FEATURE
583
+
584
+  // A fix mounted probe, like the normal inductive probe, must be deactivated to go below Z_PROBE_OFFSET_FROM_EXTRUDER
585
+  // when the hardware endstops are active.
586
+  //#define FIX_MOUNTED_PROBE
587
+
588
+  // A Servo Probe can be defined in the servo section below.
589
+
590
+  // A Allen Key Probe is currently predefined only in the delta example configurations.
591
+
538 592
   //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
539 593
   //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.
540 594
 
@@ -542,7 +596,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
542 596
   //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
543 597
   //it is highly recommended you let this Z_SAFE_HOMING enabled!!!
544 598
 
545
-  #define Z_SAFE_HOMING   // This feature is meant to avoid Z homing with Z probe outside the bed area.
599
+  #define Z_SAFE_HOMING   // Use the z-min-probe for homing to z-min - not the z-min-endstop.
600
+                          // This feature is meant to avoid Z homing with Z probe outside the bed area.
546 601
                           // When defined, it will:
547 602
                           // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
548 603
                           // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
@@ -556,37 +611,6 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
556 611
 
557 612
   #endif
558 613
 
559
-  // Support for a dedicated Z probe endstop separate from the Z min endstop.
560
-  // If you would like to use both a Z probe and a Z min endstop together,
561
-  // uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below.
562
-  // If you still want to use the Z min endstop for homing, disable Z_SAFE_HOMING above.
563
-  // Example: To park the head outside the bed area when homing with G28.
564
-  //
565
-  // WARNING:
566
-  // The Z min endstop will need to set properly as it would without a Z probe
567
-  // to prevent head crashes and premature stopping during a print.
568
-  //
569
-  // To use a separate Z probe endstop, you must have a Z_MIN_PROBE_PIN
570
-  // defined in the pins_XXXXX.h file for your control board.
571
-  // If you are using a servo based Z probe, you will need to enable NUM_SERVOS,
572
-  // Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C SERVO support below.
573
-  // RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin
574
-  // in the Aux 4 section of the RAMPS board. Use 5V for powered sensors,
575
-  // otherwise connect to ground and D32 for normally closed configuration
576
-  // and 5V and D32 for normally open configurations.
577
-  // Normally closed configuration is advised and assumed.
578
-  // The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin.
579
-  // Z_MIN_PROBE_PIN is setting the pin to use on the Arduino.
580
-  // Since the D32 pin on the RAMPS maps to D32 on Arduino, this works.
581
-  // D32 is currently selected in the RAMPS 1.3/1.4 pin file.
582
-  // All other boards will need changes to the respective pins_XXXXX.h file.
583
-  //
584
-  // WARNING:
585
-  // Setting the wrong pin may have unexpected and potentially disastrous outcomes.
586
-  // Use with caution and do your homework.
587
-  //
588
-  //#define Z_MIN_PROBE_ENDSTOP
589
-
590 614
 #endif // AUTO_BED_LEVELING_FEATURE
591 615
 
592 616
 

+ 57
- 33
Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h View File

@@ -336,10 +336,52 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
336 336
 //#define DISABLE_MAX_ENDSTOPS
337 337
 //#define DISABLE_MIN_ENDSTOPS
338 338
 
339
+//===========================================================================
340
+//============================= Z Probe Options =============================
341
+//===========================================================================
342
+
343
+// Enable Z_MIN_PROBE_ENDSTOP to use _both_ a Z-probe and a Z-min-endstop on the same machine.
344
+// With this option the Z_MIN_PROBE_PIN will only be used for probing, never for homing.
345
+//
346
+// *** PLEASE READ ALL INSTRUCTIONS BELOW FOR SAFETY! ***
347
+//
348
+// To continue using the Z-min-endstop for homing, be sure to disable Z_SAFE_HOMING.
349
+// Example: To park the head outside the bed area when homing with G28.
350
+//
351
+// To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
352
+//
353
+// For a servo-based Z probe, you must set up servo support below, including
354
+// NUM_SERVOS, Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES.
355
+//
356
+// - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
357
+// - Use 5V for powered (usu. inductive) sensors.
358
+// - Otherwise connect:
359
+//   - normally-closed switches to GND and D32.
360
+//   - normally-open switches to 5V and D32.
361
+//
362
+// Normally-closed switches are advised and are the default.
363
+//
364
+// The Z_MIN_PROBE_PIN sets the Arduino pin to use. (See your board's pins file.)
365
+// Since the RAMPS Aux4->D32 pin maps directly to the Arduino D32 pin, D32 is the
366
+// default pin for all RAMPS-based boards. Some other boards map differently.
367
+// To set or change the pin for your board, edit the appropriate pins_XXXXX.h file.
368
+//
369
+// WARNING:
370
+// Setting the wrong pin may have unexpected and potentially disastrous consequences.
371
+// Use with caution and do your homework.
372
+//
373
+//#define Z_MIN_PROBE_ENDSTOP
374
+
375
+// If you want to use the Z_MIN_PIN to connect your Z_MIN_PROBE comment out the next define.
376
+// In other words. The z-min-probe is connected to the Z_MIN_PIN and is used for homing and for probing.
377
+#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
378
+// If you want to use a probe you do have to define one of the two defines above!
379
+
339 380
 // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
340 381
 // This only affects a Z probe endstop if you have separate Z min endstop as well and have
341
-// activated Z_MIN_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z probe,
382
+// activated Z_MIN_PROBE_ENDSTOP above. If you are using the Z Min endstop on your Z probe,
342 383
 // this has no effect.
384
+// In other words. If a Z_MIN_PROBE_PIN is defined in your pin file - don't use it.
343 385
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
344 386
 
345 387
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
@@ -520,6 +562,18 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
520 562
   //#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
521 563
                                                                              // Useful to retract a deployable Z probe.
522 564
 
565
+  // Probes are sensors/switches that need to be activated before they can be used
566
+  // and deactivated after the use.
567
+  // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, ... . You have to activate one of these for the AUTO_BED_LEVELING_FEATURE
568
+
569
+  // A fix mounted probe, like the normal inductive probe, must be deactivated to go below Z_PROBE_OFFSET_FROM_EXTRUDER
570
+  // when the hardware endstops are active.
571
+  //#define FIX_MOUNTED_PROBE
572
+
573
+  // A Servo Probe can be defined in the servo section below.
574
+
575
+  // A Allen Key Probe is currently predefined only in the delta example configurations.
576
+
523 577
   //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
524 578
   //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.
525 579
 
@@ -527,7 +581,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
527 581
   //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
528 582
   //it is highly recommended you let this Z_SAFE_HOMING enabled!!!
529 583
 
530
-  #define Z_SAFE_HOMING   // This feature is meant to avoid Z homing with Z probe outside the bed area.
584
+  #define Z_SAFE_HOMING   // Use the z-min-probe for homing to z-min - not the z-min-endstop.
585
+                          // This feature is meant to avoid Z homing with Z probe outside the bed area.
531 586
                           // When defined, it will:
532 587
                           // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
533 588
                           // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
@@ -541,37 +596,6 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
541 596
 
542 597
   #endif
543 598
 
544
-  // Support for a dedicated Z probe endstop separate from the Z min endstop.
545
-  // If you would like to use both a Z probe and a Z min endstop together,
546
-  // uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below.
547
-  // If you still want to use the Z min endstop for homing, disable Z_SAFE_HOMING above.
548
-  // Example: To park the head outside the bed area when homing with G28.
549
-  //
550
-  // WARNING:
551
-  // The Z min endstop will need to set properly as it would without a Z probe
552
-  // to prevent head crashes and premature stopping during a print.
553
-  //
554
-  // To use a separate Z probe endstop, you must have a Z_MIN_PROBE_PIN
555
-  // defined in the pins_XXXXX.h file for your control board.
556
-  // If you are using a servo based Z probe, you will need to enable NUM_SERVOS,
557
-  // Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C SERVO support below.
558
-  // RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin
559
-  // in the Aux 4 section of the RAMPS board. Use 5V for powered sensors,
560
-  // otherwise connect to ground and D32 for normally closed configuration
561
-  // and 5V and D32 for normally open configurations.
562
-  // Normally closed configuration is advised and assumed.
563
-  // The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin.
564
-  // Z_MIN_PROBE_PIN is setting the pin to use on the Arduino.
565
-  // Since the D32 pin on the RAMPS maps to D32 on Arduino, this works.
566
-  // D32 is currently selected in the RAMPS 1.3/1.4 pin file.
567
-  // All other boards will need changes to the respective pins_XXXXX.h file.
568
-  //
569
-  // WARNING:
570
-  // Setting the wrong pin may have unexpected and potentially disastrous outcomes.
571
-  // Use with caution and do your homework.
572
-  //
573
-  //#define Z_MIN_PROBE_ENDSTOP
574
-
575 599
 #endif // AUTO_BED_LEVELING_FEATURE
576 600
 
577 601
 

+ 57
- 33
Marlin/example_configurations/RigidBot/Configuration.h View File

@@ -330,10 +330,52 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
330 330
 //#define DISABLE_MAX_ENDSTOPS
331 331
 //#define DISABLE_MIN_ENDSTOPS
332 332
 
333
+//===========================================================================
334
+//============================= Z Probe Options =============================
335
+//===========================================================================
336
+
337
+// Enable Z_MIN_PROBE_ENDSTOP to use _both_ a Z-probe and a Z-min-endstop on the same machine.
338
+// With this option the Z_MIN_PROBE_PIN will only be used for probing, never for homing.
339
+//
340
+// *** PLEASE READ ALL INSTRUCTIONS BELOW FOR SAFETY! ***
341
+//
342
+// To continue using the Z-min-endstop for homing, be sure to disable Z_SAFE_HOMING.
343
+// Example: To park the head outside the bed area when homing with G28.
344
+//
345
+// To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
346
+//
347
+// For a servo-based Z probe, you must set up servo support below, including
348
+// NUM_SERVOS, Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES.
349
+//
350
+// - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
351
+// - Use 5V for powered (usu. inductive) sensors.
352
+// - Otherwise connect:
353
+//   - normally-closed switches to GND and D32.
354
+//   - normally-open switches to 5V and D32.
355
+//
356
+// Normally-closed switches are advised and are the default.
357
+//
358
+// The Z_MIN_PROBE_PIN sets the Arduino pin to use. (See your board's pins file.)
359
+// Since the RAMPS Aux4->D32 pin maps directly to the Arduino D32 pin, D32 is the
360
+// default pin for all RAMPS-based boards. Some other boards map differently.
361
+// To set or change the pin for your board, edit the appropriate pins_XXXXX.h file.
362
+//
363
+// WARNING:
364
+// Setting the wrong pin may have unexpected and potentially disastrous consequences.
365
+// Use with caution and do your homework.
366
+//
367
+//#define Z_MIN_PROBE_ENDSTOP
368
+
369
+// If you want to use the Z_MIN_PIN to connect your Z_MIN_PROBE comment out the next define.
370
+// In other words. The z-min-probe is connected to the Z_MIN_PIN and is used for homing and for probing.
371
+#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
372
+// If you want to use a probe you do have to define one of the two defines above!
373
+
333 374
 // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
334 375
 // This only affects a Z probe endstop if you have separate Z min endstop as well and have
335
-// activated Z_MIN_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z probe,
376
+// activated Z_MIN_PROBE_ENDSTOP above. If you are using the Z Min endstop on your Z probe,
336 377
 // this has no effect.
378
+// In other words. If a Z_MIN_PROBE_PIN is defined in your pin file - don't use it.
337 379
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
338 380
 
339 381
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
@@ -514,6 +556,18 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
514 556
   //#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
515 557
                                                                              // Useful to retract a deployable Z probe.
516 558
 
559
+  // Probes are sensors/switches that need to be activated before they can be used
560
+  // and deactivated after the use.
561
+  // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, ... . You have to activate one of these for the AUTO_BED_LEVELING_FEATURE
562
+
563
+  // A fix mounted probe, like the normal inductive probe, must be deactivated to go below Z_PROBE_OFFSET_FROM_EXTRUDER
564
+  // when the hardware endstops are active.
565
+  //#define FIX_MOUNTED_PROBE
566
+
567
+  // A Servo Probe can be defined in the servo section below.
568
+
569
+  // A Allen Key Probe is currently predefined only in the delta example configurations.
570
+
517 571
   //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
518 572
   //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.
519 573
 
@@ -521,7 +575,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
521 575
   //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
522 576
   //it is highly recommended you let this Z_SAFE_HOMING enabled!!!
523 577
 
524
-  #define Z_SAFE_HOMING   // This feature is meant to avoid Z homing with Z probe outside the bed area.
578
+  #define Z_SAFE_HOMING   // Use the z-min-probe for homing to z-min - not the z-min-endstop.
579
+                          // This feature is meant to avoid Z homing with Z probe outside the bed area.
525 580
                           // When defined, it will:
526 581
                           // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
527 582
                           // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
@@ -535,37 +590,6 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
535 590
 
536 591
   #endif
537 592
 
538
-  // Support for a dedicated Z probe endstop separate from the Z min endstop.
539
-  // If you would like to use both a Z probe and a Z min endstop together,
540
-  // uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below.
541
-  // If you still want to use the Z min endstop for homing, disable Z_SAFE_HOMING above.
542
-  // Example: To park the head outside the bed area when homing with G28.
543
-  //
544
-  // WARNING:
545
-  // The Z min endstop will need to set properly as it would without a Z probe
546
-  // to prevent head crashes and premature stopping during a print.
547
-  //
548
-  // To use a separate Z probe endstop, you must have a Z_MIN_PROBE_PIN
549
-  // defined in the pins_XXXXX.h file for your control board.
550
-  // If you are using a servo based Z probe, you will need to enable NUM_SERVOS,
551
-  // Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C SERVO support below.
552
-  // RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin
553
-  // in the Aux 4 section of the RAMPS board. Use 5V for powered sensors,
554
-  // otherwise connect to ground and D32 for normally closed configuration
555
-  // and 5V and D32 for normally open configurations.
556
-  // Normally closed configuration is advised and assumed.
557
-  // The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin.
558
-  // Z_MIN_PROBE_PIN is setting the pin to use on the Arduino.
559
-  // Since the D32 pin on the RAMPS maps to D32 on Arduino, this works.
560
-  // D32 is currently selected in the RAMPS 1.3/1.4 pin file.
561
-  // All other boards will need changes to the respective pins_XXXXX.h file.
562
-  //
563
-  // WARNING:
564
-  // Setting the wrong pin may have unexpected and potentially disastrous outcomes.
565
-  // Use with caution and do your homework.
566
-  //
567
-  //#define Z_MIN_PROBE_ENDSTOP
568
-
569 593
 #endif // AUTO_BED_LEVELING_FEATURE
570 594
 
571 595
 

+ 57
- 33
Marlin/example_configurations/SCARA/Configuration.h View File

@@ -344,10 +344,52 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
344 344
 //#define DISABLE_MAX_ENDSTOPS
345 345
 //#define DISABLE_MIN_ENDSTOPS
346 346
 
347
+//===========================================================================
348
+//============================= Z Probe Options =============================
349
+//===========================================================================
350
+
351
+// Enable Z_MIN_PROBE_ENDSTOP to use _both_ a Z-probe and a Z-min-endstop on the same machine.
352
+// With this option the Z_MIN_PROBE_PIN will only be used for probing, never for homing.
353
+//
354
+// *** PLEASE READ ALL INSTRUCTIONS BELOW FOR SAFETY! ***
355
+//
356
+// To continue using the Z-min-endstop for homing, be sure to disable Z_SAFE_HOMING.
357
+// Example: To park the head outside the bed area when homing with G28.
358
+//
359
+// To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
360
+//
361
+// For a servo-based Z probe, you must set up servo support below, including
362
+// NUM_SERVOS, Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES.
363
+//
364
+// - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
365
+// - Use 5V for powered (usu. inductive) sensors.
366
+// - Otherwise connect:
367
+//   - normally-closed switches to GND and D32.
368
+//   - normally-open switches to 5V and D32.
369
+//
370
+// Normally-closed switches are advised and are the default.
371
+//
372
+// The Z_MIN_PROBE_PIN sets the Arduino pin to use. (See your board's pins file.)
373
+// Since the RAMPS Aux4->D32 pin maps directly to the Arduino D32 pin, D32 is the
374
+// default pin for all RAMPS-based boards. Some other boards map differently.
375
+// To set or change the pin for your board, edit the appropriate pins_XXXXX.h file.
376
+//
377
+// WARNING:
378
+// Setting the wrong pin may have unexpected and potentially disastrous consequences.
379
+// Use with caution and do your homework.
380
+//
381
+//#define Z_MIN_PROBE_ENDSTOP
382
+
383
+// If you want to use the Z_MIN_PIN to connect your Z_MIN_PROBE comment out the next define.
384
+// In other words. The z-min-probe is connected to the Z_MIN_PIN and is used for homing and for probing.
385
+#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
386
+// If you want to use a probe you do have to define one of the two defines above!
387
+
347 388
 // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
348 389
 // This only affects a Z probe endstop if you have separate Z min endstop as well and have
349
-// activated Z_MIN_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z probe,
390
+// activated Z_MIN_PROBE_ENDSTOP above. If you are using the Z Min endstop on your Z probe,
350 391
 // this has no effect.
392
+// In other words. If a Z_MIN_PROBE_PIN is defined in your pin file - don't use it.
351 393
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
352 394
 
353 395
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
@@ -528,6 +570,18 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
528 570
   //#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
529 571
                                                                              // Useful to retract a deployable Z probe.
530 572
 
573
+  // Probes are sensors/switches that need to be activated before they can be used
574
+  // and deactivated after the use.
575
+  // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, ... . You have to activate one of these for the AUTO_BED_LEVELING_FEATURE
576
+
577
+  // A fix mounted probe, like the normal inductive probe, must be deactivated to go below Z_PROBE_OFFSET_FROM_EXTRUDER
578
+  // when the hardware endstops are active.
579
+  //#define FIX_MOUNTED_PROBE
580
+
581
+  // A Servo Probe can be defined in the servo section below.
582
+
583
+  // A Allen Key Probe is currently predefined only in the delta example configurations.
584
+
531 585
   //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
532 586
   //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.
533 587
 
@@ -535,7 +589,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
535 589
   //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
536 590
   //it is highly recommended you let this Z_SAFE_HOMING enabled!!!
537 591
 
538
-  //#define Z_SAFE_HOMING   // This feature is meant to avoid Z homing with Z probe outside the bed area.
592
+  //#define Z_SAFE_HOMING   // Use the z-min-probe for homing to z-min - not the z-min-endstop.
593
+                            // This feature is meant to avoid Z homing with Z probe outside the bed area.
539 594
                             // When defined, it will:
540 595
                             // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
541 596
                             // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
@@ -549,37 +604,6 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
549 604
 
550 605
   #endif
551 606
 
552
-  // Support for a dedicated Z probe endstop separate from the Z min endstop.
553
-  // If you would like to use both a Z probe and a Z min endstop together,
554
-  // uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below.
555
-  // If you still want to use the Z min endstop for homing, disable Z_SAFE_HOMING above.
556
-  // Example: To park the head outside the bed area when homing with G28.
557
-  //
558
-  // WARNING:
559
-  // The Z min endstop will need to set properly as it would without a Z probe
560
-  // to prevent head crashes and premature stopping during a print.
561
-  //
562
-  // To use a separate Z probe endstop, you must have a Z_MIN_PROBE_PIN
563
-  // defined in the pins_XXXXX.h file for your control board.
564
-  // If you are using a servo based Z probe, you will need to enable NUM_SERVOS,
565
-  // Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C SERVO support below.
566
-  // RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin
567
-  // in the Aux 4 section of the RAMPS board. Use 5V for powered sensors,
568
-  // otherwise connect to ground and D32 for normally closed configuration
569
-  // and 5V and D32 for normally open configurations.
570
-  // Normally closed configuration is advised and assumed.
571
-  // The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin.
572
-  // Z_MIN_PROBE_PIN is setting the pin to use on the Arduino.
573
-  // Since the D32 pin on the RAMPS maps to D32 on Arduino, this works.
574
-  // D32 is currently selected in the RAMPS 1.3/1.4 pin file.
575
-  // All other boards will need changes to the respective pins_XXXXX.h file.
576
-  //
577
-  // WARNING:
578
-  // Setting the wrong pin may have unexpected and potentially disastrous outcomes.
579
-  // Use with caution and do your homework.
580
-  //
581
-  //#define Z_MIN_PROBE_ENDSTOP
582
-
583 607
 #endif // AUTO_BED_LEVELING_FEATURE
584 608
 
585 609
 

+ 57
- 2
Marlin/example_configurations/TAZ4/Configuration.h View File

@@ -356,10 +356,52 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
356 356
 #define DISABLE_MAX_ENDSTOPS
357 357
 //#define DISABLE_MIN_ENDSTOPS
358 358
 
359
+//===========================================================================
360
+//============================= Z Probe Options =============================
361
+//===========================================================================
362
+
363
+// Enable Z_MIN_PROBE_ENDSTOP to use _both_ a Z-probe and a Z-min-endstop on the same machine.
364
+// With this option the Z_MIN_PROBE_PIN will only be used for probing, never for homing.
365
+//
366
+// *** PLEASE READ ALL INSTRUCTIONS BELOW FOR SAFETY! ***
367
+//
368
+// To continue using the Z-min-endstop for homing, be sure to disable Z_SAFE_HOMING.
369
+// Example: To park the head outside the bed area when homing with G28.
370
+//
371
+// To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
372
+//
373
+// For a servo-based Z probe, you must set up servo support below, including
374
+// NUM_SERVOS, Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES.
375
+//
376
+// - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
377
+// - Use 5V for powered (usu. inductive) sensors.
378
+// - Otherwise connect:
379
+//   - normally-closed switches to GND and D32.
380
+//   - normally-open switches to 5V and D32.
381
+//
382
+// Normally-closed switches are advised and are the default.
383
+//
384
+// The Z_MIN_PROBE_PIN sets the Arduino pin to use. (See your board's pins file.)
385
+// Since the RAMPS Aux4->D32 pin maps directly to the Arduino D32 pin, D32 is the
386
+// default pin for all RAMPS-based boards. Some other boards map differently.
387
+// To set or change the pin for your board, edit the appropriate pins_XXXXX.h file.
388
+//
389
+// WARNING:
390
+// Setting the wrong pin may have unexpected and potentially disastrous consequences.
391
+// Use with caution and do your homework.
392
+//
393
+//#define Z_MIN_PROBE_ENDSTOP
394
+
395
+// If you want to use the Z_MIN_PIN to connect your Z_MIN_PROBE comment out the next define.
396
+// In other words. The z-min-probe is connected to the Z_MIN_PIN and is used for homing and for probing.
397
+#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
398
+// If you want to use a probe you do have to define one of the two defines above!
399
+
359 400
 // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
360 401
 // This only affects a Z probe endstop if you have separate Z min endstop as well and have
361
-// activated Z_MIN_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z probe,
402
+// activated Z_MIN_PROBE_ENDSTOP above. If you are using the Z Min endstop on your Z probe,
362 403
 // this has no effect.
404
+// In other words. If a Z_MIN_PROBE_PIN is defined in your pin file - don't use it.
363 405
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
364 406
 
365 407
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
@@ -540,6 +582,18 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
540 582
   //#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
541 583
                                                                              // Useful to retract a deployable Z probe.
542 584
 
585
+  // Probes are sensors/switches that need to be activated before they can be used
586
+  // and deactivated after the use.
587
+  // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, ... . You have to activate one of these for the AUTO_BED_LEVELING_FEATURE
588
+
589
+  // A fix mounted probe, like the normal inductive probe, must be deactivated to go below Z_PROBE_OFFSET_FROM_EXTRUDER
590
+  // when the hardware endstops are active.
591
+  //#define FIX_MOUNTED_PROBE
592
+
593
+  // A Servo Probe can be defined in the servo section below.
594
+
595
+  // A Allen Key Probe is currently predefined only in the delta example configurations.
596
+
543 597
   //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
544 598
   //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.
545 599
 
@@ -547,7 +601,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
547 601
   //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
548 602
   //it is highly recommended you let this Z_SAFE_HOMING enabled!!!
549 603
 
550
-  #define Z_SAFE_HOMING   // This feature is meant to avoid Z homing with Z probe outside the bed area.
604
+  #define Z_SAFE_HOMING   // Use the z-min-probe for homing to z-min - not the z-min-endstop.
605
+                          // This feature is meant to avoid Z homing with Z probe outside the bed area.
551 606
                           // When defined, it will:
552 607
                           // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
553 608
                           // - If stepper drivers timeout, it will need X and Y homing again before Z homing.

+ 57
- 33
Marlin/example_configurations/WITBOX/Configuration.h View File

@@ -328,10 +328,52 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
328 328
 //#define DISABLE_MAX_ENDSTOPS
329 329
 //#define DISABLE_MIN_ENDSTOPS
330 330
 
331
+//===========================================================================
332
+//============================= Z Probe Options =============================
333
+//===========================================================================
334
+
335
+// Enable Z_MIN_PROBE_ENDSTOP to use _both_ a Z-probe and a Z-min-endstop on the same machine.
336
+// With this option the Z_MIN_PROBE_PIN will only be used for probing, never for homing.
337
+//
338
+// *** PLEASE READ ALL INSTRUCTIONS BELOW FOR SAFETY! ***
339
+//
340
+// To continue using the Z-min-endstop for homing, be sure to disable Z_SAFE_HOMING.
341
+// Example: To park the head outside the bed area when homing with G28.
342
+//
343
+// To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
344
+//
345
+// For a servo-based Z probe, you must set up servo support below, including
346
+// NUM_SERVOS, Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES.
347
+//
348
+// - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
349
+// - Use 5V for powered (usu. inductive) sensors.
350
+// - Otherwise connect:
351
+//   - normally-closed switches to GND and D32.
352
+//   - normally-open switches to 5V and D32.
353
+//
354
+// Normally-closed switches are advised and are the default.
355
+//
356
+// The Z_MIN_PROBE_PIN sets the Arduino pin to use. (See your board's pins file.)
357
+// Since the RAMPS Aux4->D32 pin maps directly to the Arduino D32 pin, D32 is the
358
+// default pin for all RAMPS-based boards. Some other boards map differently.
359
+// To set or change the pin for your board, edit the appropriate pins_XXXXX.h file.
360
+//
361
+// WARNING:
362
+// Setting the wrong pin may have unexpected and potentially disastrous consequences.
363
+// Use with caution and do your homework.
364
+//
365
+//#define Z_MIN_PROBE_ENDSTOP
366
+
367
+// If you want to use the Z_MIN_PIN to connect your Z_MIN_PROBE comment out the next define.
368
+// In other words. The z-min-probe is connected to the Z_MIN_PIN and is used for homing and for probing.
369
+#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
370
+// If you want to use a probe you do have to define one of the two defines above!
371
+
331 372
 // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
332 373
 // This only affects a Z probe endstop if you have separate Z min endstop as well and have
333
-// activated Z_MIN_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z probe,
374
+// activated Z_MIN_PROBE_ENDSTOP above. If you are using the Z Min endstop on your Z probe,
334 375
 // this has no effect.
376
+// In other words. If a Z_MIN_PROBE_PIN is defined in your pin file - don't use it.
335 377
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
336 378
 
337 379
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
@@ -512,6 +554,18 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
512 554
   //#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
513 555
                                                                              // Useful to retract a deployable Z probe.
514 556
 
557
+  // Probes are sensors/switches that need to be activated before they can be used
558
+  // and deactivated after the use.
559
+  // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, ... . You have to activate one of these for the AUTO_BED_LEVELING_FEATURE
560
+
561
+  // A fix mounted probe, like the normal inductive probe, must be deactivated to go below Z_PROBE_OFFSET_FROM_EXTRUDER
562
+  // when the hardware endstops are active.
563
+  //#define FIX_MOUNTED_PROBE
564
+
565
+  // A Servo Probe can be defined in the servo section below.
566
+
567
+  // A Allen Key Probe is currently predefined only in the delta example configurations.
568
+
515 569
   //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
516 570
   //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.
517 571
 
@@ -519,7 +573,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
519 573
   //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
520 574
   //it is highly recommended you let this Z_SAFE_HOMING enabled!!!
521 575
 
522
-  #define Z_SAFE_HOMING   // This feature is meant to avoid Z homing with Z probe outside the bed area.
576
+  #define Z_SAFE_HOMING   // Use the z-min-probe for homing to z-min - not the z-min-endstop.
577
+                          // This feature is meant to avoid Z homing with Z probe outside the bed area.
523 578
                           // When defined, it will:
524 579
                           // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
525 580
                           // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
@@ -533,37 +588,6 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
533 588
 
534 589
   #endif
535 590
 
536
-  // Support for a dedicated Z probe endstop separate from the Z min endstop.
537
-  // If you would like to use both a Z probe and a Z min endstop together,
538
-  // uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below.
539
-  // If you still want to use the Z min endstop for homing, disable Z_SAFE_HOMING above.
540
-  // Example: To park the head outside the bed area when homing with G28.
541
-  //
542
-  // WARNING:
543
-  // The Z min endstop will need to set properly as it would without a Z probe
544
-  // to prevent head crashes and premature stopping during a print.
545
-  //
546
-  // To use a separate Z probe endstop, you must have a Z_MIN_PROBE_PIN
547
-  // defined in the pins_XXXXX.h file for your control board.
548
-  // If you are using a servo based Z probe, you will need to enable NUM_SERVOS,
549
-  // Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C SERVO support below.
550
-  // RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin
551
-  // in the Aux 4 section of the RAMPS board. Use 5V for powered sensors,
552
-  // otherwise connect to ground and D32 for normally closed configuration
553
-  // and 5V and D32 for normally open configurations.
554
-  // Normally closed configuration is advised and assumed.
555
-  // The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin.
556
-  // Z_MIN_PROBE_PIN is setting the pin to use on the Arduino.
557
-  // Since the D32 pin on the RAMPS maps to D32 on Arduino, this works.
558
-  // D32 is currently selected in the RAMPS 1.3/1.4 pin file.
559
-  // All other boards will need changes to the respective pins_XXXXX.h file.
560
-  //
561
-  // WARNING:
562
-  // Setting the wrong pin may have unexpected and potentially disastrous outcomes.
563
-  // Use with caution and do your homework.
564
-  //
565
-  //#define Z_MIN_PROBE_ENDSTOP
566
-
567 591
 #endif // AUTO_BED_LEVELING_FEATURE
568 592
 
569 593
 

+ 57
- 33
Marlin/example_configurations/adafruit/ST7565/Configuration.h View File

@@ -336,10 +336,52 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
336 336
 //#define DISABLE_MAX_ENDSTOPS
337 337
 //#define DISABLE_MIN_ENDSTOPS
338 338
 
339
+//===========================================================================
340
+//============================= Z Probe Options =============================
341
+//===========================================================================
342
+
343
+// Enable Z_MIN_PROBE_ENDSTOP to use _both_ a Z-probe and a Z-min-endstop on the same machine.
344
+// With this option the Z_MIN_PROBE_PIN will only be used for probing, never for homing.
345
+//
346
+// *** PLEASE READ ALL INSTRUCTIONS BELOW FOR SAFETY! ***
347
+//
348
+// To continue using the Z-min-endstop for homing, be sure to disable Z_SAFE_HOMING.
349
+// Example: To park the head outside the bed area when homing with G28.
350
+//
351
+// To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
352
+//
353
+// For a servo-based Z probe, you must set up servo support below, including
354
+// NUM_SERVOS, Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES.
355
+//
356
+// - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
357
+// - Use 5V for powered (usu. inductive) sensors.
358
+// - Otherwise connect:
359
+//   - normally-closed switches to GND and D32.
360
+//   - normally-open switches to 5V and D32.
361
+//
362
+// Normally-closed switches are advised and are the default.
363
+//
364
+// The Z_MIN_PROBE_PIN sets the Arduino pin to use. (See your board's pins file.)
365
+// Since the RAMPS Aux4->D32 pin maps directly to the Arduino D32 pin, D32 is the
366
+// default pin for all RAMPS-based boards. Some other boards map differently.
367
+// To set or change the pin for your board, edit the appropriate pins_XXXXX.h file.
368
+//
369
+// WARNING:
370
+// Setting the wrong pin may have unexpected and potentially disastrous consequences.
371
+// Use with caution and do your homework.
372
+//
373
+//#define Z_MIN_PROBE_ENDSTOP
374
+
375
+// If you want to use the Z_MIN_PIN to connect your Z_MIN_PROBE comment out the next define.
376
+// In other words. The z-min-probe is connected to the Z_MIN_PIN and is used for homing and for probing.
377
+#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
378
+// If you want to use a probe you do have to define one of the two defines above!
379
+
339 380
 // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
340 381
 // This only affects a Z probe endstop if you have separate Z min endstop as well and have
341
-// activated Z_MIN_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z probe,
382
+// activated Z_MIN_PROBE_ENDSTOP above. If you are using the Z Min endstop on your Z probe,
342 383
 // this has no effect.
384
+// In other words. If a Z_MIN_PROBE_PIN is defined in your pin file - don't use it.
343 385
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
344 386
 
345 387
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
@@ -520,6 +562,18 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
520 562
   //#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
521 563
                                                                              // Useful to retract a deployable Z probe.
522 564
 
565
+  // Probes are sensors/switches that need to be activated before they can be used
566
+  // and deactivated after the use.
567
+  // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, ... . You have to activate one of these for the AUTO_BED_LEVELING_FEATURE
568
+
569
+  // A fix mounted probe, like the normal inductive probe, must be deactivated to go below Z_PROBE_OFFSET_FROM_EXTRUDER
570
+  // when the hardware endstops are active.
571
+  //#define FIX_MOUNTED_PROBE
572
+
573
+  // A Servo Probe can be defined in the servo section below.
574
+
575
+  // A Allen Key Probe is currently predefined only in the delta example configurations.
576
+
523 577
   //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
524 578
   //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.
525 579
 
@@ -527,7 +581,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
527 581
   //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
528 582
   //it is highly recommended you let this Z_SAFE_HOMING enabled!!!
529 583
 
530
-  #define Z_SAFE_HOMING   // This feature is meant to avoid Z homing with Z probe outside the bed area.
584
+  #define Z_SAFE_HOMING   // Use the z-min-probe for homing to z-min - not the z-min-endstop.
585
+                          // This feature is meant to avoid Z homing with Z probe outside the bed area.
531 586
                           // When defined, it will:
532 587
                           // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
533 588
                           // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
@@ -541,37 +596,6 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
541 596
 
542 597
   #endif
543 598
 
544
-  // Support for a dedicated Z probe endstop separate from the Z min endstop.
545
-  // If you would like to use both a Z probe and a Z min endstop together,
546
-  // uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below.
547
-  // If you still want to use the Z min endstop for homing, disable Z_SAFE_HOMING above.
548
-  // Example: To park the head outside the bed area when homing with G28.
549
-  //
550
-  // WARNING:
551
-  // The Z min endstop will need to set properly as it would without a Z probe
552
-  // to prevent head crashes and premature stopping during a print.
553
-  //
554
-  // To use a separate Z probe endstop, you must have a Z_MIN_PROBE_PIN
555
-  // defined in the pins_XXXXX.h file for your control board.
556
-  // If you are using a servo based Z probe, you will need to enable NUM_SERVOS,
557
-  // Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C SERVO support below.
558
-  // RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin
559
-  // in the Aux 4 section of the RAMPS board. Use 5V for powered sensors,
560
-  // otherwise connect to ground and D32 for normally closed configuration
561
-  // and 5V and D32 for normally open configurations.
562
-  // Normally closed configuration is advised and assumed.
563
-  // The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin.
564
-  // Z_MIN_PROBE_PIN is setting the pin to use on the Arduino.
565
-  // Since the D32 pin on the RAMPS maps to D32 on Arduino, this works.
566
-  // D32 is currently selected in the RAMPS 1.3/1.4 pin file.
567
-  // All other boards will need changes to the respective pins_XXXXX.h file.
568
-  //
569
-  // WARNING:
570
-  // Setting the wrong pin may have unexpected and potentially disastrous outcomes.
571
-  // Use with caution and do your homework.
572
-  //
573
-  //#define Z_MIN_PROBE_ENDSTOP
574
-
575 599
 #endif // AUTO_BED_LEVELING_FEATURE
576 600
 
577 601
 

+ 57
- 33
Marlin/example_configurations/delta/biv2.5/Configuration.h View File

@@ -371,10 +371,52 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
371 371
 //#define DISABLE_MAX_ENDSTOPS
372 372
 #define DISABLE_MIN_ENDSTOPS // Deltas only use min endstops for probing.
373 373
 
374
+//===========================================================================
375
+//============================= Z Probe Options =============================
376
+//===========================================================================
377
+
378
+// Enable Z_MIN_PROBE_ENDSTOP to use _both_ a Z-probe and a Z-min-endstop on the same machine.
379
+// With this option the Z_MIN_PROBE_PIN will only be used for probing, never for homing.
380
+//
381
+// *** PLEASE READ ALL INSTRUCTIONS BELOW FOR SAFETY! ***
382
+//
383
+// To continue using the Z-min-endstop for homing, be sure to disable Z_SAFE_HOMING.
384
+// Example: To park the head outside the bed area when homing with G28.
385
+//
386
+// To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
387
+//
388
+// For a servo-based Z probe, you must set up servo support below, including
389
+// NUM_SERVOS, Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES.
390
+//
391
+// - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
392
+// - Use 5V for powered (usu. inductive) sensors.
393
+// - Otherwise connect:
394
+//   - normally-closed switches to GND and D32.
395
+//   - normally-open switches to 5V and D32.
396
+//
397
+// Normally-closed switches are advised and are the default.
398
+//
399
+// The Z_MIN_PROBE_PIN sets the Arduino pin to use. (See your board's pins file.)
400
+// Since the RAMPS Aux4->D32 pin maps directly to the Arduino D32 pin, D32 is the
401
+// default pin for all RAMPS-based boards. Some other boards map differently.
402
+// To set or change the pin for your board, edit the appropriate pins_XXXXX.h file.
403
+//
404
+// WARNING:
405
+// Setting the wrong pin may have unexpected and potentially disastrous consequences.
406
+// Use with caution and do your homework.
407
+//
408
+//#define Z_MIN_PROBE_ENDSTOP
409
+
410
+// If you want to use the Z_MIN_PIN to connect your Z_MIN_PROBE comment out the next define.
411
+// In other words. The z-min-probe is connected to the Z_MIN_PIN and is used for homing and for probing.
412
+#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
413
+// If you want to use a probe you do have to define one of the two defines above!
414
+
374 415
 // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
375 416
 // This only affects a Z probe endstop if you have separate Z min endstop as well and have
376
-// activated Z_MIN_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z probe,
417
+// activated Z_MIN_PROBE_ENDSTOP above. If you are using the Z Min endstop on your Z probe,
377 418
 // this has no effect.
419
+// In other words. If a Z_MIN_PROBE_PIN is defined in your pin file - don't use it.
378 420
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
379 421
 
380 422
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
@@ -559,6 +601,18 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
559 601
   //#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
560 602
                                                                              // Useful to retract a deployable Z probe.
561 603
 
604
+  // Probes are sensors/switches that need to be activated before they can be used
605
+  // and deactivated after the use.
606
+  // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, ... . You have to activate one of these for the AUTO_BED_LEVELING_FEATURE
607
+
608
+  // A fix mounted probe, like the normal inductive probe, must be deactivated to go below Z_PROBE_OFFSET_FROM_EXTRUDER
609
+  // when the hardware endstops are active.
610
+  //#define FIX_MOUNTED_PROBE
611
+
612
+  // A Servo Probe can be defined in the servo section below.
613
+
614
+  // A Allen Key Probe is currently predefined only in the delta example configurations.
615
+
562 616
   //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
563 617
   //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.
564 618
 
@@ -647,7 +701,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
647 701
   //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
648 702
   //it is highly recommended you let this Z_SAFE_HOMING enabled!!!
649 703
 
650
-  #define Z_SAFE_HOMING   // This feature is meant to avoid Z homing with Z probe outside the bed area.
704
+  #define Z_SAFE_HOMING   // Use the z-min-probe for homing to z-min - not the z-min-endstop.
705
+                          // This feature is meant to avoid Z homing with Z probe outside the bed area.
651 706
                           // When defined, it will:
652 707
                           // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
653 708
                           // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
@@ -661,37 +716,6 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
661 716
 
662 717
   #endif
663 718
 
664
-  // Support for a dedicated Z probe endstop separate from the Z min endstop.
665
-  // If you would like to use both a Z probe and a Z min endstop together,
666
-  // uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below.
667
-  // If you still want to use the Z min endstop for homing, disable Z_SAFE_HOMING above.
668
-  // Example: To park the head outside the bed area when homing with G28.
669
-  //
670
-  // WARNING:
671
-  // The Z min endstop will need to set properly as it would without a Z probe
672
-  // to prevent head crashes and premature stopping during a print.
673
-  //
674
-  // To use a separate Z probe endstop, you must have a Z_MIN_PROBE_PIN
675
-  // defined in the pins_XXXXX.h file for your control board.
676
-  // If you are using a servo based Z probe, you will need to enable NUM_SERVOS,
677
-  // Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C SERVO support below.
678
-  // RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin
679
-  // in the Aux 4 section of the RAMPS board. Use 5V for powered sensors,
680
-  // otherwise connect to ground and D32 for normally closed configuration
681
-  // and 5V and D32 for normally open configurations.
682
-  // Normally closed configuration is advised and assumed.
683
-  // The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin.
684
-  // Z_MIN_PROBE_PIN is setting the pin to use on the Arduino.
685
-  // Since the D32 pin on the RAMPS maps to D32 on Arduino, this works.
686
-  // D32 is currently selected in the RAMPS 1.3/1.4 pin file.
687
-  // All other boards will need changes to the respective pins_XXXXX.h file.
688
-  //
689
-  // WARNING:
690
-  // Setting the wrong pin may have unexpected and potentially disastrous outcomes.
691
-  // Use with caution and do your homework.
692
-  //
693
-  //#define Z_MIN_PROBE_ENDSTOP
694
-
695 719
 #endif // AUTO_BED_LEVELING_FEATURE
696 720
 
697 721
 

+ 57
- 33
Marlin/example_configurations/delta/generic/Configuration.h View File

@@ -371,10 +371,52 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
371 371
 //#define DISABLE_MAX_ENDSTOPS
372 372
 #define DISABLE_MIN_ENDSTOPS // Deltas only use min endstops for probing.
373 373
 
374
+//===========================================================================
375
+//============================= Z Probe Options =============================
376
+//===========================================================================
377
+
378
+// Enable Z_MIN_PROBE_ENDSTOP to use _both_ a Z-probe and a Z-min-endstop on the same machine.
379
+// With this option the Z_MIN_PROBE_PIN will only be used for probing, never for homing.
380
+//
381
+// *** PLEASE READ ALL INSTRUCTIONS BELOW FOR SAFETY! ***
382
+//
383
+// To continue using the Z-min-endstop for homing, be sure to disable Z_SAFE_HOMING.
384
+// Example: To park the head outside the bed area when homing with G28.
385
+//
386
+// To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
387
+//
388
+// For a servo-based Z probe, you must set up servo support below, including
389
+// NUM_SERVOS, Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES.
390
+//
391
+// - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
392
+// - Use 5V for powered (usu. inductive) sensors.
393
+// - Otherwise connect:
394
+//   - normally-closed switches to GND and D32.
395
+//   - normally-open switches to 5V and D32.
396
+//
397
+// Normally-closed switches are advised and are the default.
398
+//
399
+// The Z_MIN_PROBE_PIN sets the Arduino pin to use. (See your board's pins file.)
400
+// Since the RAMPS Aux4->D32 pin maps directly to the Arduino D32 pin, D32 is the
401
+// default pin for all RAMPS-based boards. Some other boards map differently.
402
+// To set or change the pin for your board, edit the appropriate pins_XXXXX.h file.
403
+//
404
+// WARNING:
405
+// Setting the wrong pin may have unexpected and potentially disastrous consequences.
406
+// Use with caution and do your homework.
407
+//
408
+#define Z_MIN_PROBE_ENDSTOP
409
+
410
+// If you want to use the Z_MIN_PIN to connect your Z_MIN_PROBE comment out the next define.
411
+// In other words. The z-min-probe is connected to the Z_MIN_PIN and is used for homing and for probing.
412
+//#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
413
+// If you want to use a probe you do have to define one of the two defines above!
414
+
374 415
 // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
375 416
 // This only affects a Z probe endstop if you have separate Z min endstop as well and have
376
-// activated Z_MIN_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z probe,
417
+// activated Z_MIN_PROBE_ENDSTOP above. If you are using the Z Min endstop on your Z probe,
377 418
 // this has no effect.
419
+// In other words. If a Z_MIN_PROBE_PIN is defined in your pin file - don't use it.
378 420
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
379 421
 
380 422
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
@@ -559,6 +601,18 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
559 601
   //#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
560 602
                                                                              // Useful to retract a deployable Z probe.
561 603
 
604
+  // Probes are sensors/switches that need to be activated before they can be used
605
+  // and deactivated after the use.
606
+  // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, ... . You have to activate one of these for the AUTO_BED_LEVELING_FEATURE
607
+
608
+  // A fix mounted probe, like the normal inductive probe, must be deactivated to go below Z_PROBE_OFFSET_FROM_EXTRUDER
609
+  // when the hardware endstops are active.
610
+  //#define FIX_MOUNTED_PROBE
611
+
612
+  // A Servo Probe can be defined in the servo section below.
613
+
614
+  // A Allen Key Probe is currently predefined only in the delta example configurations.
615
+
562 616
   //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
563 617
   //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.
564 618
 
@@ -647,7 +701,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
647 701
   //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
648 702
   //it is highly recommended you let this Z_SAFE_HOMING enabled!!!
649 703
 
650
-  #define Z_SAFE_HOMING   // This feature is meant to avoid Z homing with Z probe outside the bed area.
704
+  #define Z_SAFE_HOMING   // Use the z-min-probe for homing to z-min - not the z-min-endstop.
705
+                          // This feature is meant to avoid Z homing with Z probe outside the bed area.
651 706
                           // When defined, it will:
652 707
                           // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
653 708
                           // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
@@ -661,37 +716,6 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
661 716
 
662 717
   #endif
663 718
 
664
-  // Support for a dedicated Z probe endstop separate from the Z min endstop.
665
-  // If you would like to use both a Z probe and a Z min endstop together,
666
-  // uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below.
667
-  // If you still want to use the Z min endstop for homing, disable Z_SAFE_HOMING above.
668
-  // Example: To park the head outside the bed area when homing with G28.
669
-  //
670
-  // WARNING:
671
-  // The Z min endstop will need to set properly as it would without a Z probe
672
-  // to prevent head crashes and premature stopping during a print.
673
-  //
674
-  // To use a separate Z probe endstop, you must have a Z_MIN_PROBE_PIN
675
-  // defined in the pins_XXXXX.h file for your control board.
676
-  // If you are using a servo based Z probe, you will need to enable NUM_SERVOS,
677
-  // Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C SERVO support below.
678
-  // RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin
679
-  // in the Aux 4 section of the RAMPS board. Use 5V for powered sensors,
680
-  // otherwise connect to ground and D32 for normally closed configuration
681
-  // and 5V and D32 for normally open configurations.
682
-  // Normally closed configuration is advised and assumed.
683
-  // The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin.
684
-  // Z_MIN_PROBE_PIN is setting the pin to use on the Arduino.
685
-  // Since the D32 pin on the RAMPS maps to D32 on Arduino, this works.
686
-  // D32 is currently selected in the RAMPS 1.3/1.4 pin file.
687
-  // All other boards will need changes to the respective pins_XXXXX.h file.
688
-  //
689
-  // WARNING:
690
-  // Setting the wrong pin may have unexpected and potentially disastrous outcomes.
691
-  // Use with caution and do your homework.
692
-  //
693
-  //#define Z_MIN_PROBE_ENDSTOP
694
-
695 719
 #endif // AUTO_BED_LEVELING_FEATURE
696 720
 
697 721
 

+ 57
- 33
Marlin/example_configurations/delta/kossel_mini/Configuration.h View File

@@ -371,10 +371,52 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
371 371
 //#define DISABLE_MAX_ENDSTOPS
372 372
 //#define DISABLE_MIN_ENDSTOPS // Deltas only use min endstops for probing.
373 373
 
374
+//===========================================================================
375
+//============================= Z Probe Options =============================
376
+//===========================================================================
377
+
378
+// Enable Z_MIN_PROBE_ENDSTOP to use _both_ a Z-probe and a Z-min-endstop on the same machine.
379
+// With this option the Z_MIN_PROBE_PIN will only be used for probing, never for homing.
380
+//
381
+// *** PLEASE READ ALL INSTRUCTIONS BELOW FOR SAFETY! ***
382
+//
383
+// To continue using the Z-min-endstop for homing, be sure to disable Z_SAFE_HOMING.
384
+// Example: To park the head outside the bed area when homing with G28.
385
+//
386
+// To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
387
+//
388
+// For a servo-based Z probe, you must set up servo support below, including
389
+// NUM_SERVOS, Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES.
390
+//
391
+// - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
392
+// - Use 5V for powered (usu. inductive) sensors.
393
+// - Otherwise connect:
394
+//   - normally-closed switches to GND and D32.
395
+//   - normally-open switches to 5V and D32.
396
+//
397
+// Normally-closed switches are advised and are the default.
398
+//
399
+// The Z_MIN_PROBE_PIN sets the Arduino pin to use. (See your board's pins file.)
400
+// Since the RAMPS Aux4->D32 pin maps directly to the Arduino D32 pin, D32 is the
401
+// default pin for all RAMPS-based boards. Some other boards map differently.
402
+// To set or change the pin for your board, edit the appropriate pins_XXXXX.h file.
403
+//
404
+// WARNING:
405
+// Setting the wrong pin may have unexpected and potentially disastrous consequences.
406
+// Use with caution and do your homework.
407
+//
408
+//#define Z_MIN_PROBE_ENDSTOP
409
+
410
+// If you want to use the Z_MIN_PIN to connect your Z_MIN_PROBE comment out the next define.
411
+// In other words. The z-min-probe is connected to the Z_MIN_PIN and is used for homing and for probing.
412
+#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
413
+// If you want to use a probe you do have to define one of the two defines above!
414
+
374 415
 // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
375 416
 // This only affects a Z probe endstop if you have separate Z min endstop as well and have
376
-// activated Z_MIN_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z probe,
417
+// activated Z_MIN_PROBE_ENDSTOP above. If you are using the Z Min endstop on your Z probe,
377 418
 // this has no effect.
419
+// In other words. If a Z_MIN_PROBE_PIN is defined in your pin file - don't use it.
378 420
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
379 421
 
380 422
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
@@ -559,6 +601,18 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
559 601
   //#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
560 602
                                                                              // Useful to retract a deployable Z probe.
561 603
 
604
+  // Probes are sensors/switches that need to be activated before they can be used
605
+  // and deactivated after the use.
606
+  // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, ... . You have to activate one of these for the AUTO_BED_LEVELING_FEATURE
607
+
608
+  // A fix mounted probe, like the normal inductive probe, must be deactivated to go below Z_PROBE_OFFSET_FROM_EXTRUDER
609
+  // when the hardware endstops are active.
610
+  //#define FIX_MOUNTED_PROBE
611
+
612
+  // A Servo Probe can be defined in the servo section below.
613
+
614
+  // A Allen Key Probe is currently predefined only in the delta example configurations.
615
+
562 616
   //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
563 617
   //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.
564 618
 
@@ -651,7 +705,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
651 705
   //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
652 706
   //it is highly recommended you let this Z_SAFE_HOMING enabled!!!
653 707
 
654
-  #define Z_SAFE_HOMING   // This feature is meant to avoid Z homing with Z probe outside the bed area.
708
+  #define Z_SAFE_HOMING   // Use the z-min-probe for homing to z-min - not the z-min-endstop.
709
+                          // This feature is meant to avoid Z homing with Z probe outside the bed area.
655 710
                           // When defined, it will:
656 711
                           // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
657 712
                           // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
@@ -665,37 +720,6 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
665 720
 
666 721
   #endif
667 722
 
668
-  // Support for a dedicated Z probe endstop separate from the Z min endstop.
669
-  // If you would like to use both a Z probe and a Z min endstop together,
670
-  // uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below.
671
-  // If you still want to use the Z min endstop for homing, disable Z_SAFE_HOMING above.
672
-  // Example: To park the head outside the bed area when homing with G28.
673
-  //
674
-  // WARNING:
675
-  // The Z min endstop will need to set properly as it would without a Z probe
676
-  // to prevent head crashes and premature stopping during a print.
677
-  //
678
-  // To use a separate Z probe endstop, you must have a Z_MIN_PROBE_PIN
679
-  // defined in the pins_XXXXX.h file for your control board.
680
-  // If you are using a servo based Z probe, you will need to enable NUM_SERVOS,
681
-  // Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C SERVO support below.
682
-  // RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin
683
-  // in the Aux 4 section of the RAMPS board. Use 5V for powered sensors,
684
-  // otherwise connect to ground and D32 for normally closed configuration
685
-  // and 5V and D32 for normally open configurations.
686
-  // Normally closed configuration is advised and assumed.
687
-  // The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin.
688
-  // Z_MIN_PROBE_PIN is setting the pin to use on the Arduino.
689
-  // Since the D32 pin on the RAMPS maps to D32 on Arduino, this works.
690
-  // D32 is currently selected in the RAMPS 1.3/1.4 pin file.
691
-  // All other boards will need changes to the respective pins_XXXXX.h file.
692
-  //
693
-  // WARNING:
694
-  // Setting the wrong pin may have unexpected and potentially disastrous outcomes.
695
-  // Use with caution and do your homework.
696
-  //
697
-  //#define Z_MIN_PROBE_ENDSTOP
698
-
699 723
 #endif // AUTO_BED_LEVELING_FEATURE
700 724
 
701 725
 

+ 57
- 33
Marlin/example_configurations/delta/kossel_pro/Configuration.h View File

@@ -358,10 +358,52 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
358 358
 //#define DISABLE_MAX_ENDSTOPS
359 359
 //#define DISABLE_MIN_ENDSTOPS // Deltas only use min endstops for probing.
360 360
 
361
+//===========================================================================
362
+//============================= Z Probe Options =============================
363
+//===========================================================================
364
+
365
+// Enable Z_MIN_PROBE_ENDSTOP to use _both_ a Z-probe and a Z-min-endstop on the same machine.
366
+// With this option the Z_MIN_PROBE_PIN will only be used for probing, never for homing.
367
+//
368
+// *** PLEASE READ ALL INSTRUCTIONS BELOW FOR SAFETY! ***
369
+//
370
+// To continue using the Z-min-endstop for homing, be sure to disable Z_SAFE_HOMING.
371
+// Example: To park the head outside the bed area when homing with G28.
372
+//
373
+// To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
374
+//
375
+// For a servo-based Z probe, you must set up servo support below, including
376
+// NUM_SERVOS, Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES.
377
+//
378
+// - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
379
+// - Use 5V for powered (usu. inductive) sensors.
380
+// - Otherwise connect:
381
+//   - normally-closed switches to GND and D32.
382
+//   - normally-open switches to 5V and D32.
383
+//
384
+// Normally-closed switches are advised and are the default.
385
+//
386
+// The Z_MIN_PROBE_PIN sets the Arduino pin to use. (See your board's pins file.)
387
+// Since the RAMPS Aux4->D32 pin maps directly to the Arduino D32 pin, D32 is the
388
+// default pin for all RAMPS-based boards. Some other boards map differently.
389
+// To set or change the pin for your board, edit the appropriate pins_XXXXX.h file.
390
+//
391
+// WARNING:
392
+// Setting the wrong pin may have unexpected and potentially disastrous consequences.
393
+// Use with caution and do your homework.
394
+//
395
+//#define Z_MIN_PROBE_ENDSTOP
396
+
397
+// If you want to use the Z_MIN_PIN to connect your Z_MIN_PROBE comment out the next define.
398
+// In other words. The z-min-probe is connected to the Z_MIN_PIN and is used for homing and for probing.
399
+#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
400
+// If you want to use a probe you do have to define one of the two defines above!
401
+
361 402
 // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
362 403
 // This only affects a Z probe endstop if you have separate Z min endstop as well and have
363
-// activated Z_MIN_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z probe,
404
+// activated Z_MIN_PROBE_ENDSTOP above. If you are using the Z Min endstop on your Z probe,
364 405
 // this has no effect.
406
+// In other words. If a Z_MIN_PROBE_PIN is defined in your pin file - don't use it.
365 407
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
366 408
 
367 409
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
@@ -548,6 +590,18 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
548 590
   //#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
549 591
                                                                              // Useful to retract a deployable Z probe.
550 592
 
593
+  // Probes are sensors/switches that need to be activated before they can be used
594
+  // and deactivated after the use.
595
+  // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, ... . You have to activate one of these for the AUTO_BED_LEVELING_FEATURE
596
+
597
+  // A fix mounted probe, like the normal inductive probe, must be deactivated to go below Z_PROBE_OFFSET_FROM_EXTRUDER
598
+  // when the hardware endstops are active.
599
+  //#define FIX_MOUNTED_PROBE
600
+
601
+  // A Servo Probe can be defined in the servo section below.
602
+
603
+  // A Allen Key Probe is currently predefined only in the delta example configurations.
604
+
551 605
   //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
552 606
   //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.
553 607
 
@@ -636,7 +690,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
636 690
   //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
637 691
   //it is highly recommended you let this Z_SAFE_HOMING enabled!!!
638 692
 
639
-  #define Z_SAFE_HOMING   // This feature is meant to avoid Z homing with Z probe outside the bed area.
693
+  #define Z_SAFE_HOMING   // Use the z-min-probe for homing to z-min - not the z-min-endstop.
694
+                          // This feature is meant to avoid Z homing with Z probe outside the bed area.
640 695
                           // When defined, it will:
641 696
                           // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
642 697
                           // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
@@ -650,37 +705,6 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
650 705
 
651 706
   #endif
652 707
 
653
-  // Support for a dedicated Z probe endstop separate from the Z min endstop.
654
-  // If you would like to use both a Z probe and a Z min endstop together,
655
-  // uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below.
656
-  // If you still want to use the Z min endstop for homing, disable Z_SAFE_HOMING above.
657
-  // Example: To park the head outside the bed area when homing with G28.
658
-  //
659
-  // WARNING:
660
-  // The Z min endstop will need to set properly as it would without a Z probe
661
-  // to prevent head crashes and premature stopping during a print.
662
-  //
663
-  // To use a separate Z probe endstop, you must have a Z_MIN_PROBE_PIN
664
-  // defined in the pins_XXXXX.h file for your control board.
665
-  // If you are using a servo based Z probe, you will need to enable NUM_SERVOS,
666
-  // Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C SERVO support below.
667
-  // RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin
668
-  // in the Aux 4 section of the RAMPS board. Use 5V for powered sensors,
669
-  // otherwise connect to ground and D32 for normally closed configuration
670
-  // and 5V and D32 for normally open configurations.
671
-  // Normally closed configuration is advised and assumed.
672
-  // The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin.
673
-  // Z_MIN_PROBE_PIN is setting the pin to use on the Arduino.
674
-  // Since the D32 pin on the RAMPS maps to D32 on Arduino, this works.
675
-  // D32 is currently selected in the RAMPS 1.3/1.4 pin file.
676
-  // All other boards will need changes to the respective pins_XXXXX.h file.
677
-  //
678
-  // WARNING:
679
-  // Setting the wrong pin may have unexpected and potentially disastrous outcomes.
680
-  // Use with caution and do your homework.
681
-  //
682
-  //#define Z_MIN_PROBE_ENDSTOP
683
-
684 708
 #endif // AUTO_BED_LEVELING_FEATURE
685 709
 
686 710
 

+ 57
- 33
Marlin/example_configurations/delta/kossel_xl/Configuration.h View File

@@ -364,10 +364,52 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
364 364
 //#define DISABLE_MAX_ENDSTOPS
365 365
 //#define DISABLE_MIN_ENDSTOPS
366 366
 
367
+//===========================================================================
368
+//============================= Z Probe Options =============================
369
+//===========================================================================
370
+
371
+// Enable Z_MIN_PROBE_ENDSTOP to use _both_ a Z-probe and a Z-min-endstop on the same machine.
372
+// With this option the Z_MIN_PROBE_PIN will only be used for probing, never for homing.
373
+//
374
+// *** PLEASE READ ALL INSTRUCTIONS BELOW FOR SAFETY! ***
375
+//
376
+// To continue using the Z-min-endstop for homing, be sure to disable Z_SAFE_HOMING.
377
+// Example: To park the head outside the bed area when homing with G28.
378
+//
379
+// To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
380
+//
381
+// For a servo-based Z probe, you must set up servo support below, including
382
+// NUM_SERVOS, Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES.
383
+//
384
+// - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
385
+// - Use 5V for powered (usu. inductive) sensors.
386
+// - Otherwise connect:
387
+//   - normally-closed switches to GND and D32.
388
+//   - normally-open switches to 5V and D32.
389
+//
390
+// Normally-closed switches are advised and are the default.
391
+//
392
+// The Z_MIN_PROBE_PIN sets the Arduino pin to use. (See your board's pins file.)
393
+// Since the RAMPS Aux4->D32 pin maps directly to the Arduino D32 pin, D32 is the
394
+// default pin for all RAMPS-based boards. Some other boards map differently.
395
+// To set or change the pin for your board, edit the appropriate pins_XXXXX.h file.
396
+//
397
+// WARNING:
398
+// Setting the wrong pin may have unexpected and potentially disastrous consequences.
399
+// Use with caution and do your homework.
400
+//
401
+//#define Z_MIN_PROBE_ENDSTOP
402
+
403
+// If you want to use the Z_MIN_PIN to connect your Z_MIN_PROBE comment out the next define.
404
+// In other words. The z-min-probe is connected to the Z_MIN_PIN and is used for homing and for probing.
405
+#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
406
+// If you want to use a probe you do have to define one of the two defines above!
407
+
367 408
 // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
368 409
 // This only affects a Z probe endstop if you have separate Z min endstop as well and have
369
-// activated Z_MIN_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z probe,
410
+// activated Z_MIN_PROBE_ENDSTOP above. If you are using the Z Min endstop on your Z probe,
370 411
 // this has no effect.
412
+// In other words. If a Z_MIN_PROBE_PIN is defined in your pin file - don't use it.
371 413
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
372 414
 
373 415
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
@@ -552,6 +594,18 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
552 594
 //#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
553 595
                                                                             // Useful to retract a deployable Z probe.
554 596
 
597
+  // Probes are sensors/switches that need to be activated before they can be used
598
+  // and deactivated after the use.
599
+  // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, ... . You have to activate one of these for the AUTO_BED_LEVELING_FEATURE
600
+
601
+  // A fix mounted probe, like the normal inductive probe, must be deactivated to go below Z_PROBE_OFFSET_FROM_EXTRUDER
602
+  // when the hardware endstops are active.
603
+  //#define FIX_MOUNTED_PROBE
604
+
605
+  // A Servo Probe can be defined in the servo section below.
606
+
607
+  // A Allen Key Probe is currently predefined only in the delta example configurations.
608
+
555 609
   //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
556 610
   //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.
557 611
 
@@ -559,7 +613,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
559 613
   //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
560 614
   //it is highly recommended you let this Z_SAFE_HOMING enabled!!!
561 615
 
562
-  #define Z_SAFE_HOMING   // This feature is meant to avoid Z homing with Z probe outside the bed area.
616
+  #define Z_SAFE_HOMING   // Use the z-min-probe for homing to z-min - not the z-min-endstop.
617
+                          // This feature is meant to avoid Z homing with Z probe outside the bed area.
563 618
                           // When defined, it will:
564 619
                           // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
565 620
                           // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
@@ -573,37 +628,6 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
573 628
 
574 629
   #endif
575 630
 
576
-  // Support for a dedicated Z probe endstop separate from the Z min endstop.
577
-  // If you would like to use both a Z probe and a Z min endstop together,
578
-  // uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below.
579
-  // If you still want to use the Z min endstop for homing, disable Z_SAFE_HOMING above.
580
-  // Example: To park the head outside the bed area when homing with G28.
581
-  //
582
-  // WARNING:
583
-  // The Z min endstop will need to set properly as it would without a Z probe
584
-  // to prevent head crashes and premature stopping during a print.
585
-  //
586
-  // To use a separate Z probe endstop, you must have a Z_MIN_PROBE_PIN
587
-  // defined in the pins_XXXXX.h file for your control board.
588
-  // If you are using a servo based Z probe, you will need to enable NUM_SERVOS,
589
-  // Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C SERVO support below.
590
-  // RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin
591
-  // in the Aux 4 section of the RAMPS board. Use 5V for powered sensors,
592
-  // otherwise connect to ground and D32 for normally closed configuration
593
-  // and 5V and D32 for normally open configurations.
594
-  // Normally closed configuration is advised and assumed.
595
-  // The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin.
596
-  // Z_MIN_PROBE_PIN is setting the pin to use on the Arduino.
597
-  // Since the D32 pin on the RAMPS maps to D32 on Arduino, this works.
598
-  // D32 is currently selected in the RAMPS 1.3/1.4 pin file.
599
-  // All other boards will need changes to the respective pins_XXXXX.h file.
600
-  //
601
-  // WARNING:
602
-  // Setting the wrong pin may have unexpected and potentially disastrous outcomes.
603
-  // Use with caution and do your homework.
604
-  //
605
-  //#define Z_MIN_PROBE_ENDSTOP
606
-
607 631
 #endif // AUTO_BED_LEVELING_FEATURE
608 632
 
609 633
 

+ 57
- 33
Marlin/example_configurations/makibox/Configuration.h View File

@@ -339,10 +339,52 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
339 339
 //#define DISABLE_MAX_ENDSTOPS
340 340
 //#define DISABLE_MIN_ENDSTOPS
341 341
 
342
+//===========================================================================
343
+//============================= Z Probe Options =============================
344
+//===========================================================================
345
+
346
+// Enable Z_MIN_PROBE_ENDSTOP to use _both_ a Z-probe and a Z-min-endstop on the same machine.
347
+// With this option the Z_MIN_PROBE_PIN will only be used for probing, never for homing.
348
+//
349
+// *** PLEASE READ ALL INSTRUCTIONS BELOW FOR SAFETY! ***
350
+//
351
+// To continue using the Z-min-endstop for homing, be sure to disable Z_SAFE_HOMING.
352
+// Example: To park the head outside the bed area when homing with G28.
353
+//
354
+// To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
355
+//
356
+// For a servo-based Z probe, you must set up servo support below, including
357
+// NUM_SERVOS, Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES.
358
+//
359
+// - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
360
+// - Use 5V for powered (usu. inductive) sensors.
361
+// - Otherwise connect:
362
+//   - normally-closed switches to GND and D32.
363
+//   - normally-open switches to 5V and D32.
364
+//
365
+// Normally-closed switches are advised and are the default.
366
+//
367
+// The Z_MIN_PROBE_PIN sets the Arduino pin to use. (See your board's pins file.)
368
+// Since the RAMPS Aux4->D32 pin maps directly to the Arduino D32 pin, D32 is the
369
+// default pin for all RAMPS-based boards. Some other boards map differently.
370
+// To set or change the pin for your board, edit the appropriate pins_XXXXX.h file.
371
+//
372
+// WARNING:
373
+// Setting the wrong pin may have unexpected and potentially disastrous consequences.
374
+// Use with caution and do your homework.
375
+//
376
+//#define Z_MIN_PROBE_ENDSTOP
377
+
378
+// If you want to use the Z_MIN_PIN to connect your Z_MIN_PROBE comment out the next define.
379
+// In other words. The z-min-probe is connected to the Z_MIN_PIN and is used for homing and for probing.
380
+#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
381
+// If you want to use a probe you do have to define one of the two defines above!
382
+
342 383
 // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
343 384
 // This only affects a Z probe endstop if you have separate Z min endstop as well and have
344
-// activated Z_MIN_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z probe,
385
+// activated Z_MIN_PROBE_ENDSTOP above. If you are using the Z Min endstop on your Z probe,
345 386
 // this has no effect.
387
+// In other words. If a Z_MIN_PROBE_PIN is defined in your pin file - don't use it.
346 388
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
347 389
 
348 390
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
@@ -523,6 +565,18 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
523 565
   //#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
524 566
                                                                              // Useful to retract a deployable Z probe.
525 567
 
568
+  // Probes are sensors/switches that need to be activated before they can be used
569
+  // and deactivated after the use.
570
+  // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, ... . You have to activate one of these for the AUTO_BED_LEVELING_FEATURE
571
+
572
+  // A fix mounted probe, like the normal inductive probe, must be deactivated to go below Z_PROBE_OFFSET_FROM_EXTRUDER
573
+  // when the hardware endstops are active.
574
+  //#define FIX_MOUNTED_PROBE
575
+
576
+  // A Servo Probe can be defined in the servo section below.
577
+
578
+  // A Allen Key Probe is currently predefined only in the delta example configurations.
579
+
526 580
   //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
527 581
   //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.
528 582
 
@@ -530,7 +584,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
530 584
   //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
531 585
   //it is highly recommended you let this Z_SAFE_HOMING enabled!!!
532 586
 
533
-  #define Z_SAFE_HOMING   // This feature is meant to avoid Z homing with Z probe outside the bed area.
587
+  #define Z_SAFE_HOMING   // Use the z-min-probe for homing to z-min - not the z-min-endstop.
588
+                          // This feature is meant to avoid Z homing with Z probe outside the bed area.
534 589
                           // When defined, it will:
535 590
                           // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
536 591
                           // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
@@ -544,37 +599,6 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
544 599
 
545 600
   #endif
546 601
 
547
-  // Support for a dedicated Z probe endstop separate from the Z min endstop.
548
-  // If you would like to use both a Z probe and a Z min endstop together,
549
-  // uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below.
550
-  // If you still want to use the Z min endstop for homing, disable Z_SAFE_HOMING above.
551
-  // Example: To park the head outside the bed area when homing with G28.
552
-  //
553
-  // WARNING:
554
-  // The Z min endstop will need to set properly as it would without a Z probe
555
-  // to prevent head crashes and premature stopping during a print.
556
-  //
557
-  // To use a separate Z probe endstop, you must have a Z_MIN_PROBE_PIN
558
-  // defined in the pins_XXXXX.h file for your control board.
559
-  // If you are using a servo based Z probe, you will need to enable NUM_SERVOS,
560
-  // Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C SERVO support below.
561
-  // RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin
562
-  // in the Aux 4 section of the RAMPS board. Use 5V for powered sensors,
563
-  // otherwise connect to ground and D32 for normally closed configuration
564
-  // and 5V and D32 for normally open configurations.
565
-  // Normally closed configuration is advised and assumed.
566
-  // The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin.
567
-  // Z_MIN_PROBE_PIN is setting the pin to use on the Arduino.
568
-  // Since the D32 pin on the RAMPS maps to D32 on Arduino, this works.
569
-  // D32 is currently selected in the RAMPS 1.3/1.4 pin file.
570
-  // All other boards will need changes to the respective pins_XXXXX.h file.
571
-  //
572
-  // WARNING:
573
-  // Setting the wrong pin may have unexpected and potentially disastrous outcomes.
574
-  // Use with caution and do your homework.
575
-  //
576
-  //#define Z_MIN_PROBE_ENDSTOP
577
-
578 602
 #endif // AUTO_BED_LEVELING_FEATURE
579 603
 
580 604
 

+ 57
- 33
Marlin/example_configurations/tvrrug/Round2/Configuration.h View File

@@ -326,10 +326,52 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
326 326
 //#define DISABLE_MAX_ENDSTOPS
327 327
 //#define DISABLE_MIN_ENDSTOPS
328 328
 
329
+//===========================================================================
330
+//============================= Z Probe Options =============================
331
+//===========================================================================
332
+
333
+// Enable Z_MIN_PROBE_ENDSTOP to use _both_ a Z-probe and a Z-min-endstop on the same machine.
334
+// With this option the Z_MIN_PROBE_PIN will only be used for probing, never for homing.
335
+//
336
+// *** PLEASE READ ALL INSTRUCTIONS BELOW FOR SAFETY! ***
337
+//
338
+// To continue using the Z-min-endstop for homing, be sure to disable Z_SAFE_HOMING.
339
+// Example: To park the head outside the bed area when homing with G28.
340
+//
341
+// To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
342
+//
343
+// For a servo-based Z probe, you must set up servo support below, including
344
+// NUM_SERVOS, Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES.
345
+//
346
+// - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
347
+// - Use 5V for powered (usu. inductive) sensors.
348
+// - Otherwise connect:
349
+//   - normally-closed switches to GND and D32.
350
+//   - normally-open switches to 5V and D32.
351
+//
352
+// Normally-closed switches are advised and are the default.
353
+//
354
+// The Z_MIN_PROBE_PIN sets the Arduino pin to use. (See your board's pins file.)
355
+// Since the RAMPS Aux4->D32 pin maps directly to the Arduino D32 pin, D32 is the
356
+// default pin for all RAMPS-based boards. Some other boards map differently.
357
+// To set or change the pin for your board, edit the appropriate pins_XXXXX.h file.
358
+//
359
+// WARNING:
360
+// Setting the wrong pin may have unexpected and potentially disastrous consequences.
361
+// Use with caution and do your homework.
362
+//
363
+//#define Z_MIN_PROBE_ENDSTOP
364
+
365
+// If you want to use the Z_MIN_PIN to connect your Z_MIN_PROBE comment out the next define.
366
+// In other words. The z-min-probe is connected to the Z_MIN_PIN and is used for homing and for probing.
367
+#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
368
+// If you want to use a probe you do have to define one of the two defines above!
369
+
329 370
 // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
330 371
 // This only affects a Z probe endstop if you have separate Z min endstop as well and have
331
-// activated Z_MIN_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z probe,
372
+// activated Z_MIN_PROBE_ENDSTOP above. If you are using the Z Min endstop on your Z probe,
332 373
 // this has no effect.
374
+// In other words. If a Z_MIN_PROBE_PIN is defined in your pin file - don't use it.
333 375
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
334 376
 
335 377
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
@@ -510,6 +552,18 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
510 552
   //#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
511 553
                                                                              // Useful to retract a deployable Z probe.
512 554
 
555
+  // Probes are sensors/switches that need to be activated before they can be used
556
+  // and deactivated after the use.
557
+  // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, ... . You have to activate one of these for the AUTO_BED_LEVELING_FEATURE
558
+
559
+  // A fix mounted probe, like the normal inductive probe, must be deactivated to go below Z_PROBE_OFFSET_FROM_EXTRUDER
560
+  // when the hardware endstops are active.
561
+  //#define FIX_MOUNTED_PROBE
562
+
563
+  // A Servo Probe can be defined in the servo section below.
564
+
565
+  // A Allen Key Probe is currently predefined only in the delta example configurations.
566
+
513 567
   //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
514 568
   //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.
515 569
 
@@ -517,7 +571,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
517 571
   //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
518 572
   //it is highly recommended you let this Z_SAFE_HOMING enabled!!!
519 573
 
520
-  #define Z_SAFE_HOMING   // This feature is meant to avoid Z homing with Z probe outside the bed area.
574
+  #define Z_SAFE_HOMING   // Use the z-min-probe for homing to z-min - not the z-min-endstop.
575
+                          // This feature is meant to avoid Z homing with Z probe outside the bed area.
521 576
                           // When defined, it will:
522 577
                           // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
523 578
                           // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
@@ -531,37 +586,6 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
531 586
 
532 587
   #endif
533 588
 
534
-  // Support for a dedicated Z probe endstop separate from the Z min endstop.
535
-  // If you would like to use both a Z probe and a Z min endstop together,
536
-  // uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below.
537
-  // If you still want to use the Z min endstop for homing, disable Z_SAFE_HOMING above.
538
-  // Example: To park the head outside the bed area when homing with G28.
539
-  //
540
-  // WARNING:
541
-  // The Z min endstop will need to set properly as it would without a Z probe
542
-  // to prevent head crashes and premature stopping during a print.
543
-  //
544
-  // To use a separate Z probe endstop, you must have a Z_MIN_PROBE_PIN
545
-  // defined in the pins_XXXXX.h file for your control board.
546
-  // If you are using a servo based Z probe, you will need to enable NUM_SERVOS,
547
-  // Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C SERVO support below.
548
-  // RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin
549
-  // in the Aux 4 section of the RAMPS board. Use 5V for powered sensors,
550
-  // otherwise connect to ground and D32 for normally closed configuration
551
-  // and 5V and D32 for normally open configurations.
552
-  // Normally closed configuration is advised and assumed.
553
-  // The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin.
554
-  // Z_MIN_PROBE_PIN is setting the pin to use on the Arduino.
555
-  // Since the D32 pin on the RAMPS maps to D32 on Arduino, this works.
556
-  // D32 is currently selected in the RAMPS 1.3/1.4 pin file.
557
-  // All other boards will need changes to the respective pins_XXXXX.h file.
558
-  //
559
-  // WARNING:
560
-  // Setting the wrong pin may have unexpected and potentially disastrous outcomes.
561
-  // Use with caution and do your homework.
562
-  //
563
-  //#define Z_MIN_PROBE_ENDSTOP
564
-
565 589
 #endif // AUTO_BED_LEVELING_FEATURE
566 590
 
567 591
 

+ 18
- 10
Marlin/stepper.cpp View File

@@ -39,6 +39,9 @@
39 39
 //===========================================================================
40 40
 block_t* current_block;  // A pointer to the block currently being traced
41 41
 
42
+#if ENABLED(HAS_Z_MIN_PROBE)
43
+  volatile bool z_probe_is_active = false;
44
+#endif
42 45
 
43 46
 //===========================================================================
44 47
 //============================= private variables ===========================
@@ -425,17 +428,18 @@ inline void update_endstops() {
425 428
             }
426 429
           #else // !Z_DUAL_ENDSTOPS
427 430
 
428
-            UPDATE_ENDSTOP(Z, MIN);
429
-
431
+            #if ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN) && ENABLED(HAS_Z_MIN_PROBE)
432
+              if (z_probe_is_active) UPDATE_ENDSTOP(Z, MIN);
433
+            #else
434
+              UPDATE_ENDSTOP(Z, MIN);
435
+            #endif
430 436
           #endif // !Z_DUAL_ENDSTOPS
431
-        #endif // Z_MIN_PIN
432
-
433
-        #if ENABLED(Z_MIN_PROBE_ENDSTOP)
434
-          UPDATE_ENDSTOP(Z, MIN_PROBE);
437
+        #endif
435 438
 
436
-          if (TEST_ENDSTOP(Z_MIN_PROBE)) {
437
-            endstops_trigsteps[Z_AXIS] = count_position[Z_AXIS];
438
-            SBI(endstop_hit_bits, Z_MIN_PROBE);
439
+        #if ENABLED(Z_MIN_PROBE_ENDSTOP) && DISABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN) && ENABLED(HAS_Z_MIN_PROBE)
440
+          if (z_probe_is_active) {
441
+            UPDATE_ENDSTOP(Z, MIN_PROBE);
442
+            if (TEST_ENDSTOP(Z_MIN_PROBE)) endstop_hit_bits |= _BV(Z_MIN_PROBE);
439 443
           }
440 444
         #endif
441 445
       }
@@ -649,7 +653,11 @@ ISR(TIMER1_COMPA_vect) {
649 653
   if (current_block != NULL) {
650 654
 
651 655
     // Update endstops state, if enabled
652
-    if (check_endstops) update_endstops();
656
+    #if ENABLED(HAS_Z_MIN_PROBE)
657
+      if (check_endstops || z_probe_is_active) update_endstops();
658
+    #else
659
+      if (check_endstops) update_endstops();
660
+    #endif
653 661
 
654 662
     // Take multiple steps per interrupt (For high speed moves)
655 663
     for (int8_t i = 0; i < step_loops; i++) {

Loading…
Cancel
Save