Browse Source

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 9 years ago
parent
commit
3f45a1acf9

+ 5
- 0
Marlin/Conditionals.h View File

572
     #endif
572
     #endif
573
   #endif
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
 #endif //CONFIGURATION_LCD
580
 #endif //CONFIGURATION_LCD
576
 #endif //CONDITIONALS_H
581
 #endif //CONDITIONALS_H

+ 63
- 40
Marlin/Configuration.h View File

337
 //#define DISABLE_MAX_ENDSTOPS
337
 //#define DISABLE_MAX_ENDSTOPS
338
 //#define DISABLE_MIN_ENDSTOPS
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
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
386
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
345
 
387
 
346
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
388
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
521
   //#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.
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
                                                                              // Useful to retract a deployable Z probe.
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
                           // When defined, it will:
586
                           // When defined, it will:
533
                           // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
587
                           // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
534
                           // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
588
                           // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
542
 
596
 
543
   #endif
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
 #endif // AUTO_BED_LEVELING_FEATURE
599
 #endif // AUTO_BED_LEVELING_FEATURE
577
 
600
 
578
 
601
 

+ 73
- 30
Marlin/Marlin_main.cpp View File

462
   float extrude_min_temp = EXTRUDE_MINTEMP;
462
   float extrude_min_temp = EXTRUDE_MINTEMP;
463
 #endif
463
 #endif
464
 
464
 
465
+#if ENABLED(HAS_Z_MIN_PROBE)
466
+  extern volatile bool z_probe_is_active;
467
+#endif
468
+
465
 #if ENABLED(SDSUPPORT)
469
 #if ENABLED(SDSUPPORT)
466
   #include "SdFatUtil.h"
470
   #include "SdFatUtil.h"
467
   int freeMemory() { return SdFatUtil::FreeRam(); }
471
   int freeMemory() { return SdFatUtil::FreeRam(); }
619
     servo[3].detach();
623
     servo[3].detach();
620
   #endif
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
     for (int i = 0; i < 3; i++)
641
     for (int i = 0; i < 3; i++)
625
       if (servo_endstop_id[i] >= 0)
642
       if (servo_endstop_id[i] >= 0)
626
         servo[servo_endstop_id[i]].move(servo_endstop_angle[i][1]);
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
     refresh_cmd_timeout();
1476
     refresh_cmd_timeout();
1459
   }
1477
   }
1460
 
1478
 
1479
+  #if ENABLED(HAS_Z_MIN_PROBE)
1480
+
1461
   static void deploy_z_probe() {
1481
   static void deploy_z_probe() {
1462
 
1482
 
1463
     #if ENABLED(DEBUG_LEVELING_FEATURE)
1483
     #if ENABLED(DEBUG_LEVELING_FEATURE)
1466
       }
1486
       }
1467
     #endif
1487
     #endif
1468
 
1488
 
1489
+    if (z_probe_is_active) return;
1490
+
1469
     #if HAS_SERVO_ENDSTOPS
1491
     #if HAS_SERVO_ENDSTOPS
1470
 
1492
 
1471
       // Engage Z Servo endstop if enabled
1493
       // Engage Z Servo endstop if enabled
1505
             if (Z_PROBE_ALLEN_KEY_DEPLOY_3_FEEDRATE != Z_PROBE_ALLEN_KEY_DEPLOY_2_FEEDRATE)
1527
             if (Z_PROBE_ALLEN_KEY_DEPLOY_3_FEEDRATE != Z_PROBE_ALLEN_KEY_DEPLOY_2_FEEDRATE)
1506
               feedrate = Z_PROBE_ALLEN_KEY_DEPLOY_3_FEEDRATE;
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
       // Partially Home X,Y for safety
1544
       // Partially Home X,Y for safety
1524
       destination[X_AXIS] = destination[X_AXIS] * 0.75;
1545
       destination[X_AXIS] = destination[X_AXIS] * 0.75;
1545
 
1566
 
1546
     #endif // Z_PROBE_ALLEN_KEY
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
   static void stow_z_probe(bool doRaise = true) {
1577
   static void stow_z_probe(bool doRaise = true) {
1554
       }
1581
       }
1555
     #endif
1582
     #endif
1556
 
1583
 
1584
+    if (!z_probe_is_active) return;
1585
+
1557
     #if HAS_SERVO_ENDSTOPS
1586
     #if HAS_SERVO_ENDSTOPS
1558
 
1587
 
1559
       // Retract Z Servo endstop if enabled
1588
       // Retract Z Servo endstop if enabled
1638
           Stop();
1667
           Stop();
1639
         }
1668
         }
1640
     #endif // Z_PROBE_ALLEN_KEY
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
   enum ProbeAction {
1679
   enum ProbeAction {
1644
     ProbeStay          = 0,
1680
     ProbeStay          = 0,
1825
         SERIAL_EOL;
1861
         SERIAL_EOL;
1826
       }
1862
       }
1827
     #endif
1863
     #endif
1864
+
1865
+    if (z_probe_is_active == dock) return;
1866
+
1828
     if (!axis_known_position[X_AXIS] || !axis_known_position[Y_AXIS]) {
1867
     if (!axis_known_position[X_AXIS] || !axis_known_position[Y_AXIS]) {
1829
       LCD_MESSAGEPGM(MSG_POSITION_UNKNOWN);
1868
       LCD_MESSAGEPGM(MSG_POSITION_UNKNOWN);
1830
       SERIAL_ECHO_START;
1869
       SERIAL_ECHO_START;
1847
       digitalWrite(SLED_PIN, HIGH); // turn on magnet
1886
       digitalWrite(SLED_PIN, HIGH); // turn on magnet
1848
     }
1887
     }
1849
     do_blocking_move_to_x(oldXpos); // return to position before docking
1888
     do_blocking_move_to_x(oldXpos); // return to position before docking
1889
+
1890
+    z_probe_is_active = dock;
1850
   }
1891
   }
1851
 
1892
 
1852
 #endif // Z_PROBE_SLED
1893
 #endif // Z_PROBE_SLED
1887
       if (axis == Z_AXIS) {
1928
       if (axis == Z_AXIS) {
1888
         if (axis_home_dir < 0) dock_sled(false);
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
       // Deploy a Z probe if there is one, and homing towards the bed
1933
       // Deploy a Z probe if there is one, and homing towards the bed
1895
       if (axis == Z_AXIS) {
1934
       if (axis == Z_AXIS) {
1900
 
1939
 
1901
     #if HAS_SERVO_ENDSTOPS
1940
     #if HAS_SERVO_ENDSTOPS
1902
       // Engage Servo endstop if enabled
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
         servo[servo_endstop_id[axis]].move(servo_endstop_angle[axis][0]);
1943
         servo[servo_endstop_id[axis]].move(servo_endstop_angle[axis][0]);
1944
+        z_probe_is_active = true;
1945
+      }
1905
     #endif
1946
     #endif
1906
 
1947
 
1907
     // Set a flag for Z motor locking
1948
     // Set a flag for Z motor locking
2034
       if (axis == Z_AXIS) {
2075
       if (axis == Z_AXIS) {
2035
         if (axis_home_dir < 0) dock_sled(true);
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
       // Deploy a Z probe if there is one, and homing towards the bed
2080
       // Deploy a Z probe if there is one, and homing towards the bed
2042
       if (axis == Z_AXIS) {
2081
       if (axis == Z_AXIS) {
2063
             }
2102
             }
2064
           #endif
2103
           #endif
2065
           servo[servo_endstop_id[axis]].move(servo_endstop_angle[axis][1]);
2104
           servo[servo_endstop_id[axis]].move(servo_endstop_angle[axis][1]);
2105
+          z_probe_is_active = false;
2066
         }
2106
         }
2067
       #endif
2107
       #endif
2068
     }
2108
     }
3195
       #if ENABLED(Z_PROBE_ALLEN_KEY)
3235
       #if ENABLED(Z_PROBE_ALLEN_KEY)
3196
         stow_z_probe();
3236
         stow_z_probe();
3197
       #elif Z_RAISE_AFTER_PROBING > 0
3237
       #elif Z_RAISE_AFTER_PROBING > 0
3198
-        raise_z_after_probing();
3238
+        raise_z_after_probing(); // ???
3199
       #endif
3239
       #endif
3200
     #else // !DELTA
3240
     #else // !DELTA
3201
       if (verbose_level > 0)
3241
       if (verbose_level > 0)
3279
         }
3319
         }
3280
       #endif
3320
       #endif
3281
       enqueue_and_echo_commands_P(PSTR(Z_PROBE_END_SCRIPT));
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
       st_synchronize();
3325
       st_synchronize();
3283
     #endif
3326
     #endif
3284
 
3327
 
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
      * G30: Do a single Z probe at the current XY
3341
      * G30: Do a single Z probe at the current XY
3301
       #if HAS_SERVO_ENDSTOPS
3344
       #if HAS_SERVO_ENDSTOPS
3302
         raise_z_for_servo();
3345
         raise_z_for_servo();
3303
       #endif
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
       st_synchronize();
3349
       st_synchronize();
3307
       // TODO: clear the leveling matrix or the planner will be set incorrectly
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
       feedrate = homing_feedrate[Z_AXIS];
3353
       feedrate = homing_feedrate[Z_AXIS];
3311
 
3354
 
3318
       SERIAL_PROTOCOL(current_position[Z_AXIS] + 0.0001);
3361
       SERIAL_PROTOCOL(current_position[Z_AXIS] + 0.0001);
3319
       SERIAL_EOL;
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
       #if HAS_SERVO_ENDSTOPS
3366
       #if HAS_SERVO_ENDSTOPS
3324
         raise_z_for_servo();
3367
         raise_z_for_servo();
3325
       #endif
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
   #endif //!Z_PROBE_SLED
3372
   #endif //!Z_PROBE_SLED

+ 28
- 0
Marlin/SanityCheck.h View File

128
 #endif
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
  * Auto Bed Leveling
159
  * Auto Bed Leveling
132
  */
160
  */
133
 #if ENABLED(AUTO_BED_LEVELING_FEATURE)
161
 #if ENABLED(AUTO_BED_LEVELING_FEATURE)

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

319
 #define DISABLE_MAX_ENDSTOPS
319
 #define DISABLE_MAX_ENDSTOPS
320
 //#define DISABLE_MIN_ENDSTOPS
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
 // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
363
 // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
323
 // This only affects a Z probe endstop if you have separate Z min endstop as well and have
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
 // this has no effect.
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
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
368
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
327
 
369
 
328
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
370
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
503
   //#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.
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
                                                                              // Useful to retract a deployable Z probe.
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
   //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
560
   //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
507
   //#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.
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
   //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
564
   //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
511
   //it is highly recommended you let this Z_SAFE_HOMING enabled!!!
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
                           // When defined, it will:
569
                           // When defined, it will:
515
                           // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
570
                           // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
516
                           // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
571
                           // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
524
 
579
 
525
   #endif
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
 #endif // AUTO_BED_LEVELING_FEATURE
582
 #endif // AUTO_BED_LEVELING_FEATURE
559
 
583
 
560
 
584
 

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

316
 #define DISABLE_MAX_ENDSTOPS
316
 #define DISABLE_MAX_ENDSTOPS
317
 //#define DISABLE_MIN_ENDSTOPS
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
 // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
360
 // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
320
 // This only affects a Z probe endstop if you have separate Z min endstop as well and have
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
 // this has no effect.
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
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
365
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
324
 
366
 
325
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
367
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
500
   //#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
   //#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
                                                                              // Useful to retract a deployable Z probe.
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
   //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
557
   //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
504
   //#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
   //#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
   //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
561
   //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
508
   //it is highly recommended you let this Z_SAFE_HOMING enabled!!!
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
                           // When defined, it will:
566
                           // When defined, it will:
512
                           // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
567
                           // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
513
                           // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
568
                           // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
521
 
576
 
522
   #endif
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
 #endif // AUTO_BED_LEVELING_FEATURE
579
 #endif // AUTO_BED_LEVELING_FEATURE
556
 
580
 
557
 
581
 

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

329
 //#define DISABLE_MAX_ENDSTOPS
329
 //#define DISABLE_MAX_ENDSTOPS
330
 //#define DISABLE_MIN_ENDSTOPS
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
 // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
373
 // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
333
 // This only affects a Z probe endstop if you have separate Z min endstop as well and have
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
 // this has no effect.
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
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
378
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
337
 
379
 
338
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
380
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
513
   //#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.
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
                                                                              // Useful to retract a deployable Z probe.
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
   //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
570
   //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
517
   //#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.
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
   //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
574
   //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
521
   //it is highly recommended you let this Z_SAFE_HOMING enabled!!!
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
                           // When defined, it will:
579
                           // When defined, it will:
525
                           // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
580
                           // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
526
                           // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
581
                           // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
534
 
589
 
535
   #endif
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
 #endif // AUTO_BED_LEVELING_FEATURE
592
 #endif // AUTO_BED_LEVELING_FEATURE
569
 
593
 
570
 
594
 

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

332
 #define DISABLE_MAX_ENDSTOPS
332
 #define DISABLE_MAX_ENDSTOPS
333
 //#define DISABLE_MIN_ENDSTOPS
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
 // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
376
 // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
336
 // This only affects a Z probe endstop if you have separate Z min endstop as well and have
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
 // this has no effect.
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
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
381
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
340
 
382
 
341
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
383
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
537
 
579
 
538
   #endif
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
 #endif // AUTO_BED_LEVELING_FEATURE
582
 #endif // AUTO_BED_LEVELING_FEATURE
572
 
583
 
573
 
584
 

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

352
 #define DISABLE_MAX_ENDSTOPS
352
 #define DISABLE_MAX_ENDSTOPS
353
 //#define DISABLE_MIN_ENDSTOPS
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
 // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
396
 // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
356
 // This only affects a Z probe endstop if you have separate Z min endstop as well and have
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
 // this has no effect.
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
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
401
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
360
 
402
 
361
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
403
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
536
   //#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.
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
                                                                              // Useful to retract a deployable Z probe.
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
   //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
593
   //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
540
   //#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.
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
   //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
597
   //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
544
   //it is highly recommended you let this Z_SAFE_HOMING enabled!!!
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
                           // When defined, it will:
602
                           // When defined, it will:
548
                           // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
603
                           // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
549
                           // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
604
                           // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
557
 
612
 
558
   #endif
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
 #endif // AUTO_BED_LEVELING_FEATURE
615
 #endif // AUTO_BED_LEVELING_FEATURE
592
 
616
 
593
 
617
 

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

337
 //#define DISABLE_MAX_ENDSTOPS
337
 //#define DISABLE_MAX_ENDSTOPS
338
 //#define DISABLE_MIN_ENDSTOPS
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
 // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
381
 // 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
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
 // this has no effect.
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
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
386
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
345
 
387
 
346
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
388
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
521
   //#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.
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
                                                                              // Useful to retract a deployable Z probe.
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
   //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
578
   //#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.
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
   //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
582
   //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!!!
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
                           // When defined, it will:
587
                           // When defined, it will:
533
                           // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
588
                           // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
534
                           // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
589
                           // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
542
 
597
 
543
   #endif
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
 #endif // AUTO_BED_LEVELING_FEATURE
600
 #endif // AUTO_BED_LEVELING_FEATURE
577
 
601
 
578
 
602
 

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

331
 //#define DISABLE_MAX_ENDSTOPS
331
 //#define DISABLE_MAX_ENDSTOPS
332
 //#define DISABLE_MIN_ENDSTOPS
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
 // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
375
 // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
335
 // This only affects a Z probe endstop if you have separate Z min endstop as well and have
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
 // this has no effect.
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
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
380
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
339
 
381
 
340
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
382
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
515
   //#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.
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
                                                                              // Useful to retract a deployable Z probe.
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
   //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
572
   //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
519
   //#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.
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
   //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
576
   //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
523
   //it is highly recommended you let this Z_SAFE_HOMING enabled!!!
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
                           // When defined, it will:
581
                           // When defined, it will:
527
                           // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
582
                           // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
528
                           // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
583
                           // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
536
 
591
 
537
   #endif
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
 #endif // AUTO_BED_LEVELING_FEATURE
594
 #endif // AUTO_BED_LEVELING_FEATURE
571
 
595
 
572
 
596
 

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

345
 //#define DISABLE_MAX_ENDSTOPS
345
 //#define DISABLE_MAX_ENDSTOPS
346
 //#define DISABLE_MIN_ENDSTOPS
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
 // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
389
 // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
349
 // This only affects a Z probe endstop if you have separate Z min endstop as well and have
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
 // this has no effect.
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
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
394
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
353
 
395
 
354
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
396
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
529
   //#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.
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
                                                                              // Useful to retract a deployable Z probe.
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
   //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
586
   //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
533
   //#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.
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
   //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
590
   //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
537
   //it is highly recommended you let this Z_SAFE_HOMING enabled!!!
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
                             // When defined, it will:
595
                             // When defined, it will:
541
                             // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
596
                             // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
542
                             // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
597
                             // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
550
 
605
 
551
   #endif
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
 #endif // AUTO_BED_LEVELING_FEATURE
608
 #endif // AUTO_BED_LEVELING_FEATURE
585
 
609
 
586
 
610
 

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

357
 #define DISABLE_MAX_ENDSTOPS
357
 #define DISABLE_MAX_ENDSTOPS
358
 //#define DISABLE_MIN_ENDSTOPS
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
 // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
401
 // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
361
 // This only affects a Z probe endstop if you have separate Z min endstop as well and have
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
 // this has no effect.
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
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
406
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
365
 
407
 
366
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
408
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
541
   //#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
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
                                                                              // Useful to retract a deployable Z probe.
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
   //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
598
   //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
545
   //#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.
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
   //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
602
   //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
549
   //it is highly recommended you let this Z_SAFE_HOMING enabled!!!
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
                           // When defined, it will:
607
                           // When defined, it will:
553
                           // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
608
                           // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
554
                           // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
609
                           // - If stepper drivers timeout, it will need X and Y homing again before Z homing.

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

329
 //#define DISABLE_MAX_ENDSTOPS
329
 //#define DISABLE_MAX_ENDSTOPS
330
 //#define DISABLE_MIN_ENDSTOPS
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
 // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
373
 // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
333
 // This only affects a Z probe endstop if you have separate Z min endstop as well and have
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
 // this has no effect.
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
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
378
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
337
 
379
 
338
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
380
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
513
   //#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.
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
                                                                              // Useful to retract a deployable Z probe.
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
   //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
570
   //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
517
   //#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.
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
   //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
574
   //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
521
   //it is highly recommended you let this Z_SAFE_HOMING enabled!!!
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
                           // When defined, it will:
579
                           // When defined, it will:
525
                           // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
580
                           // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
526
                           // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
581
                           // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
534
 
589
 
535
   #endif
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
 #endif // AUTO_BED_LEVELING_FEATURE
592
 #endif // AUTO_BED_LEVELING_FEATURE
569
 
593
 
570
 
594
 

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

337
 //#define DISABLE_MAX_ENDSTOPS
337
 //#define DISABLE_MAX_ENDSTOPS
338
 //#define DISABLE_MIN_ENDSTOPS
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
 // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
381
 // 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
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
 // this has no effect.
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
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
386
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
345
 
387
 
346
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
388
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
521
   //#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.
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
                                                                              // Useful to retract a deployable Z probe.
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
   //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
578
   //#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.
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
   //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
582
   //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!!!
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
                           // When defined, it will:
587
                           // When defined, it will:
533
                           // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
588
                           // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
534
                           // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
589
                           // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
542
 
597
 
543
   #endif
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
 #endif // AUTO_BED_LEVELING_FEATURE
600
 #endif // AUTO_BED_LEVELING_FEATURE
577
 
601
 
578
 
602
 

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

372
 //#define DISABLE_MAX_ENDSTOPS
372
 //#define DISABLE_MAX_ENDSTOPS
373
 #define DISABLE_MIN_ENDSTOPS // Deltas only use min endstops for probing.
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
 // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
416
 // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
376
 // This only affects a Z probe endstop if you have separate Z min endstop as well and have
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
 // this has no effect.
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
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
421
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
380
 
422
 
381
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
423
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
560
   //#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.
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
                                                                              // Useful to retract a deployable Z probe.
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
   //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
617
   //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
564
   //#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.
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
   //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
702
   //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
649
   //it is highly recommended you let this Z_SAFE_HOMING enabled!!!
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
                           // When defined, it will:
707
                           // When defined, it will:
653
                           // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
708
                           // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
654
                           // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
709
                           // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
662
 
717
 
663
   #endif
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
 #endif // AUTO_BED_LEVELING_FEATURE
720
 #endif // AUTO_BED_LEVELING_FEATURE
697
 
721
 
698
 
722
 

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

372
 //#define DISABLE_MAX_ENDSTOPS
372
 //#define DISABLE_MAX_ENDSTOPS
373
 #define DISABLE_MIN_ENDSTOPS // Deltas only use min endstops for probing.
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
 // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
416
 // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
376
 // This only affects a Z probe endstop if you have separate Z min endstop as well and have
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
 // this has no effect.
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
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
421
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
380
 
422
 
381
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
423
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
560
   //#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.
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
                                                                              // Useful to retract a deployable Z probe.
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
   //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
617
   //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
564
   //#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.
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
   //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
702
   //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
649
   //it is highly recommended you let this Z_SAFE_HOMING enabled!!!
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
                           // When defined, it will:
707
                           // When defined, it will:
653
                           // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
708
                           // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
654
                           // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
709
                           // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
662
 
717
 
663
   #endif
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
 #endif // AUTO_BED_LEVELING_FEATURE
720
 #endif // AUTO_BED_LEVELING_FEATURE
697
 
721
 
698
 
722
 

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

372
 //#define DISABLE_MAX_ENDSTOPS
372
 //#define DISABLE_MAX_ENDSTOPS
373
 //#define DISABLE_MIN_ENDSTOPS // Deltas only use min endstops for probing.
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
 // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
416
 // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
376
 // This only affects a Z probe endstop if you have separate Z min endstop as well and have
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
 // this has no effect.
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
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
421
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
380
 
422
 
381
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
423
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
560
   //#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.
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
                                                                              // Useful to retract a deployable Z probe.
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
   //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
617
   //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
564
   //#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.
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
   //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
706
   //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
653
   //it is highly recommended you let this Z_SAFE_HOMING enabled!!!
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
                           // When defined, it will:
711
                           // When defined, it will:
657
                           // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
712
                           // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
658
                           // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
713
                           // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
666
 
721
 
667
   #endif
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
 #endif // AUTO_BED_LEVELING_FEATURE
724
 #endif // AUTO_BED_LEVELING_FEATURE
701
 
725
 
702
 
726
 

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

359
 //#define DISABLE_MAX_ENDSTOPS
359
 //#define DISABLE_MAX_ENDSTOPS
360
 //#define DISABLE_MIN_ENDSTOPS // Deltas only use min endstops for probing.
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
 // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
403
 // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
363
 // This only affects a Z probe endstop if you have separate Z min endstop as well and have
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
 // this has no effect.
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
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
408
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
367
 
409
 
368
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
410
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
549
   //#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.
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
                                                                              // Useful to retract a deployable Z probe.
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
   //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
606
   //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
553
   //#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.
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
   //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
691
   //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
638
   //it is highly recommended you let this Z_SAFE_HOMING enabled!!!
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
                           // When defined, it will:
696
                           // When defined, it will:
642
                           // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
697
                           // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
643
                           // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
698
                           // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
651
 
706
 
652
   #endif
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
 #endif // AUTO_BED_LEVELING_FEATURE
709
 #endif // AUTO_BED_LEVELING_FEATURE
686
 
710
 
687
 
711
 

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

365
 //#define DISABLE_MAX_ENDSTOPS
365
 //#define DISABLE_MAX_ENDSTOPS
366
 //#define DISABLE_MIN_ENDSTOPS
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
 // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
409
 // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
369
 // This only affects a Z probe endstop if you have separate Z min endstop as well and have
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
 // this has no effect.
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
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
414
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
373
 
415
 
374
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
416
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
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.
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
                                                                             // Useful to retract a deployable Z probe.
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
   //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
610
   //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
557
   //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.
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
   //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
614
   //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
561
   //it is highly recommended you let this Z_SAFE_HOMING enabled!!!
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
                           // When defined, it will:
619
                           // When defined, it will:
565
                           // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
620
                           // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
566
                           // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
621
                           // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
574
 
629
 
575
   #endif
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
 #endif // AUTO_BED_LEVELING_FEATURE
632
 #endif // AUTO_BED_LEVELING_FEATURE
609
 
633
 
610
 
634
 

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

340
 //#define DISABLE_MAX_ENDSTOPS
340
 //#define DISABLE_MAX_ENDSTOPS
341
 //#define DISABLE_MIN_ENDSTOPS
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
 // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
384
 // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
344
 // This only affects a Z probe endstop if you have separate Z min endstop as well and have
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
 // this has no effect.
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
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
389
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
348
 
390
 
349
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
391
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
524
   //#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.
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
                                                                              // Useful to retract a deployable Z probe.
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
   //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
581
   //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
528
   //#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.
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
   //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
585
   //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
532
   //it is highly recommended you let this Z_SAFE_HOMING enabled!!!
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
                           // When defined, it will:
590
                           // When defined, it will:
536
                           // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
591
                           // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
537
                           // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
592
                           // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
545
 
600
 
546
   #endif
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
 #endif // AUTO_BED_LEVELING_FEATURE
603
 #endif // AUTO_BED_LEVELING_FEATURE
580
 
604
 
581
 
605
 

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

327
 //#define DISABLE_MAX_ENDSTOPS
327
 //#define DISABLE_MAX_ENDSTOPS
328
 //#define DISABLE_MIN_ENDSTOPS
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
 // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
371
 // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
331
 // This only affects a Z probe endstop if you have separate Z min endstop as well and have
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
 // this has no effect.
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
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
376
 //#define DISABLE_Z_MIN_PROBE_ENDSTOP
335
 
377
 
336
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
378
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
511
   //#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
553
   //#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
                                                                              // Useful to retract a deployable Z probe.
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
   //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
568
   //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
515
   //#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.
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
   //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
572
   //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
519
   //it is highly recommended you let this Z_SAFE_HOMING enabled!!!
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
                           // When defined, it will:
577
                           // When defined, it will:
523
                           // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
578
                           // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
524
                           // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
579
                           // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
532
 
587
 
533
   #endif
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
 #endif // AUTO_BED_LEVELING_FEATURE
590
 #endif // AUTO_BED_LEVELING_FEATURE
567
 
591
 
568
 
592
 

+ 18
- 10
Marlin/stepper.cpp View File

39
 //===========================================================================
39
 //===========================================================================
40
 block_t* current_block;  // A pointer to the block currently being traced
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
 //============================= private variables ===========================
47
 //============================= private variables ===========================
425
             }
428
             }
426
           #else // !Z_DUAL_ENDSTOPS
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
           #endif // !Z_DUAL_ENDSTOPS
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
         #endif
444
         #endif
441
       }
445
       }
649
   if (current_block != NULL) {
653
   if (current_block != NULL) {
650
 
654
 
651
     // Update endstops state, if enabled
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
     // Take multiple steps per interrupt (For high speed moves)
662
     // Take multiple steps per interrupt (For high speed moves)
655
     for (int8_t i = 0; i < step_loops; i++) {
663
     for (int8_t i = 0; i < step_loops; i++) {

Loading…
Cancel
Save