Просмотр исходного кода

Check probes only when deployed

Aim: Test probes in update_endstops only when activated

Changes:
Configurations
 Add define for FIX_MOUNTED_PROBE to handle the situation where formerly ENDSTOPS_ONLY_FOR_HOMING had to be set, or lowering the nozzle below Z_PROBE_OFFSET_FROM_EXTRUDER could give an "endstop hit" message.
 Add define for Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN to indicate a common situation, that we have a probe but it is connected to an endstop pin
 Add some comments
 Shift some entries to have related things together.

Conditionals.h
 We have a probe (HAS_Z_MIN_PROBE) if one of the pins is defined AND one of the probes is defined.

SanityCheck.h
 Add some tests if the probe is connected and if we have defined a probe.

stepper.cpp
 Changes to test the probe only when it is deployed (z_probe_is_active).
 Test update_endstops() when the probe is deployed.

MarlinMain.cpp
 a. set and reset z_probe_is_active in deploy_z_probe(), stow_z_probe() and dock_sled()
 b. set and reset z_probe_is_active in the case a z-servo is moved to a defined position. The only remaining unhandled servo move is in M280 where we do not end in a defined position. If you want to handle a probe use M401/402
 c. skip deploying/stowing when already deployed/stowed in the dedicated deploy/stow functions.
 d. Handle the new FIX_MOUNTED_PROBE in parallel to a servo driven probe/endstop.

 To do: In another PR. handle all probes in deploy/stow_z_probe.
 Sort out SERVO_LEVELING vs. HAS_SERVO_ENDSTOPS.
AnHardt 8 лет назад
Родитель
Сommit
3f45a1acf9
23 измененных файлов: 1199 добавлений и 642 удалений
  1. 5
    0
      Marlin/Conditionals.h
  2. 63
    40
      Marlin/Configuration.h
  3. 73
    30
      Marlin/Marlin_main.cpp
  4. 28
    0
      Marlin/SanityCheck.h
  5. 57
    33
      Marlin/example_configurations/Felix/Configuration.h
  6. 57
    33
      Marlin/example_configurations/Felix/Configuration_DUAL.h
  7. 57
    33
      Marlin/example_configurations/Hephestos/Configuration.h
  8. 43
    32
      Marlin/example_configurations/Hephestos_2/Configuration.h
  9. 57
    33
      Marlin/example_configurations/K8200/Configuration.h
  10. 57
    33
      Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h
  11. 57
    33
      Marlin/example_configurations/RigidBot/Configuration.h
  12. 57
    33
      Marlin/example_configurations/SCARA/Configuration.h
  13. 57
    2
      Marlin/example_configurations/TAZ4/Configuration.h
  14. 57
    33
      Marlin/example_configurations/WITBOX/Configuration.h
  15. 57
    33
      Marlin/example_configurations/adafruit/ST7565/Configuration.h
  16. 57
    33
      Marlin/example_configurations/delta/biv2.5/Configuration.h
  17. 57
    33
      Marlin/example_configurations/delta/generic/Configuration.h
  18. 57
    33
      Marlin/example_configurations/delta/kossel_mini/Configuration.h
  19. 57
    33
      Marlin/example_configurations/delta/kossel_pro/Configuration.h
  20. 57
    33
      Marlin/example_configurations/delta/kossel_xl/Configuration.h
  21. 57
    33
      Marlin/example_configurations/makibox/Configuration.h
  22. 57
    33
      Marlin/example_configurations/tvrrug/Round2/Configuration.h
  23. 18
    10
      Marlin/stepper.cpp

+ 5
- 0
Marlin/Conditionals.h Просмотреть файл

@@ -572,5 +572,10 @@
572 572
     #endif
573 573
   #endif
574 574
 
575
+  #if ( (HAS_Z_MIN && ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN)) || HAS_Z_PROBE ) && \
576
+    ( ENABLED(FIX_MOUNTED_PROBE) || defined(Z_ENDSTOP_SERVO_NR) || ENABLED(Z_PROBE_ALLEN_KEY) || ENABLED(Z_PROBE_SLED) )
577
+    #define HAS_Z_MIN_PROBE
578
+  #endif
579
+
575 580
 #endif //CONFIGURATION_LCD
576 581
 #endif //CONDITIONALS_H

+ 63
- 40
Marlin/Configuration.h Просмотреть файл

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

+ 73
- 30
Marlin/Marlin_main.cpp Просмотреть файл

@@ -462,6 +462,10 @@ void serial_echopair_P(const char* s_P, unsigned long v) { serialprintPGM(s_P);
462 462
   float extrude_min_temp = EXTRUDE_MINTEMP;
463 463
 #endif
464 464
 
465
+#if ENABLED(HAS_Z_MIN_PROBE)
466
+  extern volatile bool z_probe_is_active;
467
+#endif
468
+
465 469
 #if ENABLED(SDSUPPORT)
466 470
   #include "SdFatUtil.h"
467 471
   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,
@@ -1825,6 +1861,9 @@ static void setup_for_endstop_move() {
1825 1861
         SERIAL_EOL;
1826 1862
       }
1827 1863
     #endif
1864
+
1865
+    if (z_probe_is_active == dock) return;
1866
+
1828 1867
     if (!axis_known_position[X_AXIS] || !axis_known_position[Y_AXIS]) {
1829 1868
       LCD_MESSAGEPGM(MSG_POSITION_UNKNOWN);
1830 1869
       SERIAL_ECHO_START;
@@ -1847,6 +1886,8 @@ static void setup_for_endstop_move() {
1847 1886
       digitalWrite(SLED_PIN, HIGH); // turn on magnet
1848 1887
     }
1849 1888
     do_blocking_move_to_x(oldXpos); // return to position before docking
1889
+
1890
+    z_probe_is_active = dock;
1850 1891
   }
1851 1892
 
1852 1893
 #endif // Z_PROBE_SLED
@@ -1887,9 +1928,7 @@ static void homeaxis(AxisEnum axis) {
1887 1928
       if (axis == Z_AXIS) {
1888 1929
         if (axis_home_dir < 0) dock_sled(false);
1889 1930
       }
1890
-    #endif
1891
-
1892
-    #if SERVO_LEVELING && DISABLED(Z_PROBE_SLED)
1931
+    #elif SERVO_LEVELING || ENABLED(FIX_MOUNTED_PROBE)
1893 1932
 
1894 1933
       // Deploy a Z probe if there is one, and homing towards the bed
1895 1934
       if (axis == Z_AXIS) {
@@ -1900,8 +1939,10 @@ static void homeaxis(AxisEnum axis) {
1900 1939
 
1901 1940
     #if HAS_SERVO_ENDSTOPS
1902 1941
       // Engage Servo endstop if enabled
1903
-      if (axis != Z_AXIS && servo_endstop_id[axis] >= 0)
1942
+      if (axis != Z_AXIS && servo_endstop_id[axis] >= 0) {
1904 1943
         servo[servo_endstop_id[axis]].move(servo_endstop_angle[axis][0]);
1944
+        z_probe_is_active = true;
1945
+      }
1905 1946
     #endif
1906 1947
 
1907 1948
     // Set a flag for Z motor locking
@@ -2034,9 +2075,7 @@ static void homeaxis(AxisEnum axis) {
2034 2075
       if (axis == Z_AXIS) {
2035 2076
         if (axis_home_dir < 0) dock_sled(true);
2036 2077
       }
2037
-    #endif
2038
-
2039
-    #if SERVO_LEVELING && DISABLED(Z_PROBE_SLED)
2078
+    #elif SERVO_LEVELING || ENABLED(FIX_MOUNTED_PROBE)
2040 2079
 
2041 2080
       // Deploy a Z probe if there is one, and homing towards the bed
2042 2081
       if (axis == Z_AXIS) {
@@ -2063,6 +2102,7 @@ static void homeaxis(AxisEnum axis) {
2063 2102
             }
2064 2103
           #endif
2065 2104
           servo[servo_endstop_id[axis]].move(servo_endstop_angle[axis][1]);
2105
+          z_probe_is_active = false;
2066 2106
         }
2067 2107
       #endif
2068 2108
     }
@@ -3195,7 +3235,7 @@ inline void gcode_G28() {
3195 3235
       #if ENABLED(Z_PROBE_ALLEN_KEY)
3196 3236
         stow_z_probe();
3197 3237
       #elif Z_RAISE_AFTER_PROBING > 0
3198
-        raise_z_after_probing();
3238
+        raise_z_after_probing(); // ???
3199 3239
       #endif
3200 3240
     #else // !DELTA
3201 3241
       if (verbose_level > 0)
@@ -3279,6 +3319,9 @@ inline void gcode_G28() {
3279 3319
         }
3280 3320
       #endif
3281 3321
       enqueue_and_echo_commands_P(PSTR(Z_PROBE_END_SCRIPT));
3322
+      #if ENABLED(HAS_Z_MIN_PROBE)
3323
+        z_probe_is_active = false;
3324
+      #endif
3282 3325
       st_synchronize();
3283 3326
     #endif
3284 3327
 
@@ -3292,7 +3335,7 @@ inline void gcode_G28() {
3292 3335
 
3293 3336
   }
3294 3337
 
3295
-  #if DISABLED(Z_PROBE_SLED)
3338
+  #if DISABLED(Z_PROBE_SLED) // could be avoided
3296 3339
 
3297 3340
     /**
3298 3341
      * G30: Do a single Z probe at the current XY
@@ -3301,11 +3344,11 @@ inline void gcode_G28() {
3301 3344
       #if HAS_SERVO_ENDSTOPS
3302 3345
         raise_z_for_servo();
3303 3346
       #endif
3304
-      deploy_z_probe(); // Engage Z Servo endstop if available
3347
+      deploy_z_probe(); // Engage Z Servo endstop if available. Z_PROBE_SLED is missed her.
3305 3348
 
3306 3349
       st_synchronize();
3307 3350
       // TODO: clear the leveling matrix or the planner will be set incorrectly
3308
-      setup_for_endstop_move();
3351
+      setup_for_endstop_move(); // to late. Must be done before deploying.
3309 3352
 
3310 3353
       feedrate = homing_feedrate[Z_AXIS];
3311 3354
 
@@ -3318,12 +3361,12 @@ inline void gcode_G28() {
3318 3361
       SERIAL_PROTOCOL(current_position[Z_AXIS] + 0.0001);
3319 3362
       SERIAL_EOL;
3320 3363
 
3321
-      clean_up_after_endstop_move();
3364
+      clean_up_after_endstop_move(); // to early. must be done after the stowing.
3322 3365
 
3323 3366
       #if HAS_SERVO_ENDSTOPS
3324 3367
         raise_z_for_servo();
3325 3368
       #endif
3326
-      stow_z_probe(false); // Retract Z Servo endstop if available
3369
+      stow_z_probe(false); // Retract Z Servo endstop if available. Z_PROBE_SLED is missed her.
3327 3370
     }
3328 3371
 
3329 3372
   #endif //!Z_PROBE_SLED

+ 28
- 0
Marlin/SanityCheck.h Просмотреть файл

@@ -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 Просмотреть файл

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

+ 57
- 33
Marlin/example_configurations/Felix/Configuration_DUAL.h Просмотреть файл

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

+ 57
- 33
Marlin/example_configurations/Hephestos/Configuration.h Просмотреть файл

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

+ 43
- 32
Marlin/example_configurations/Hephestos_2/Configuration.h Просмотреть файл

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

+ 57
- 33
Marlin/example_configurations/K8200/Configuration.h Просмотреть файл

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

+ 57
- 33
Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h Просмотреть файл

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

+ 57
- 33
Marlin/example_configurations/RigidBot/Configuration.h Просмотреть файл

@@ -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
@@ -515,6 +557,18 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
515 557
   //#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.
516 558
                                                                              // Useful to retract a deployable Z probe.
517 559
 
560
+  // Probes are sensors/switches that need to be activated before they can be used
561
+  // and deactivated after the use.
562
+  // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, ... . You have to activate one of these for the AUTO_BED_LEVELING_FEATURE
563
+
564
+  // A fix mounted probe, like the normal inductive probe, must be deactivated to go below Z_PROBE_OFFSET_FROM_EXTRUDER
565
+  // when the hardware endstops are active.
566
+  //#define FIX_MOUNTED_PROBE
567
+
568
+  // A Servo Probe can be defined in the servo section below.
569
+
570
+  // A Allen Key Probe is currently predefined only in the delta example configurations.
571
+
518 572
   //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
519 573
   //#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.
520 574
 
@@ -522,7 +576,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
522 576
   //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
523 577
   //it is highly recommended you let this Z_SAFE_HOMING enabled!!!
524 578
 
525
-  #define Z_SAFE_HOMING   // This feature is meant to avoid Z homing with Z probe outside the bed area.
579
+  #define Z_SAFE_HOMING   // Use the z-min-probe for homing to z-min - not the z-min-endstop.
580
+                          // This feature is meant to avoid Z homing with Z probe outside the bed area.
526 581
                           // When defined, it will:
527 582
                           // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
528 583
                           // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
@@ -536,37 +591,6 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
536 591
 
537 592
   #endif
538 593
 
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 594
 #endif // AUTO_BED_LEVELING_FEATURE
571 595
 
572 596
 

+ 57
- 33
Marlin/example_configurations/SCARA/Configuration.h Просмотреть файл

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

+ 57
- 2
Marlin/example_configurations/TAZ4/Configuration.h Просмотреть файл

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

+ 57
- 33
Marlin/example_configurations/WITBOX/Configuration.h Просмотреть файл

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

+ 57
- 33
Marlin/example_configurations/adafruit/ST7565/Configuration.h Просмотреть файл

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

+ 57
- 33
Marlin/example_configurations/delta/biv2.5/Configuration.h Просмотреть файл

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

+ 57
- 33
Marlin/example_configurations/delta/generic/Configuration.h Просмотреть файл

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

+ 57
- 33
Marlin/example_configurations/delta/kossel_mini/Configuration.h Просмотреть файл

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

+ 57
- 33
Marlin/example_configurations/delta/kossel_pro/Configuration.h Просмотреть файл

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

+ 57
- 33
Marlin/example_configurations/delta/kossel_xl/Configuration.h Просмотреть файл

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

+ 57
- 33
Marlin/example_configurations/makibox/Configuration.h Просмотреть файл

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

+ 57
- 33
Marlin/example_configurations/tvrrug/Round2/Configuration.h Просмотреть файл

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

+ 18
- 10
Marlin/stepper.cpp Просмотреть файл

@@ -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++) {

Загрузка…
Отмена
Сохранить