Browse Source

G425 — Auto-calibrate Backlash and Nozzle Offsets (#13050)

Marcio Teixeira 5 years ago
parent
commit
e1604198ff
77 changed files with 4334 additions and 3 deletions
  1. 53
    0
      Marlin/Configuration_adv.h
  2. 53
    0
      Marlin/src/config/default/Configuration_adv.h
  3. 53
    0
      Marlin/src/config/examples/3DFabXYZ/Migbot/Configuration_adv.h
  4. 53
    0
      Marlin/src/config/examples/AlephObjects/TAZ4/Configuration_adv.h
  5. 53
    0
      Marlin/src/config/examples/Anet/A2/Configuration_adv.h
  6. 53
    0
      Marlin/src/config/examples/Anet/A2plus/Configuration_adv.h
  7. 53
    0
      Marlin/src/config/examples/Anet/A6/Configuration_adv.h
  8. 53
    0
      Marlin/src/config/examples/Anet/A8/Configuration_adv.h
  9. 53
    0
      Marlin/src/config/examples/AnyCubic/i3/Configuration_adv.h
  10. 53
    0
      Marlin/src/config/examples/ArmEd/Configuration_adv.h
  11. 53
    0
      Marlin/src/config/examples/BIBO/TouchX/cyclops/Configuration_adv.h
  12. 53
    0
      Marlin/src/config/examples/BIBO/TouchX/default/Configuration_adv.h
  13. 53
    0
      Marlin/src/config/examples/BQ/Hephestos/Configuration_adv.h
  14. 53
    0
      Marlin/src/config/examples/BQ/Hephestos_2/Configuration_adv.h
  15. 53
    0
      Marlin/src/config/examples/BQ/WITBOX/Configuration_adv.h
  16. 53
    0
      Marlin/src/config/examples/Cartesio/Configuration_adv.h
  17. 53
    0
      Marlin/src/config/examples/Creality/CR-10/Configuration_adv.h
  18. 53
    0
      Marlin/src/config/examples/Creality/CR-10S/Configuration_adv.h
  19. 53
    0
      Marlin/src/config/examples/Creality/CR-10mini/Configuration_adv.h
  20. 53
    0
      Marlin/src/config/examples/Creality/CR-8/Configuration_adv.h
  21. 53
    0
      Marlin/src/config/examples/Creality/Ender-2/Configuration_adv.h
  22. 53
    0
      Marlin/src/config/examples/Creality/Ender-3/Configuration_adv.h
  23. 53
    0
      Marlin/src/config/examples/Creality/Ender-4/Configuration_adv.h
  24. 53
    0
      Marlin/src/config/examples/Einstart-S/Configuration_adv.h
  25. 53
    0
      Marlin/src/config/examples/Felix/Configuration_adv.h
  26. 53
    0
      Marlin/src/config/examples/FlashForge/CreatorPro/Configuration_adv.h
  27. 53
    0
      Marlin/src/config/examples/FolgerTech/i3-2020/Configuration_adv.h
  28. 53
    0
      Marlin/src/config/examples/Formbot/Raptor/Configuration_adv.h
  29. 53
    0
      Marlin/src/config/examples/Formbot/T_Rex_2+/Configuration_adv.h
  30. 53
    0
      Marlin/src/config/examples/Formbot/T_Rex_3/Configuration_adv.h
  31. 53
    0
      Marlin/src/config/examples/Geeetech/MeCreator2/Configuration_adv.h
  32. 53
    0
      Marlin/src/config/examples/Geeetech/Prusa i3 Pro C/Configuration_adv.h
  33. 53
    0
      Marlin/src/config/examples/Geeetech/Prusa i3 Pro W/Configuration_adv.h
  34. 53
    0
      Marlin/src/config/examples/Infitary/i3-M508/Configuration_adv.h
  35. 53
    0
      Marlin/src/config/examples/JGAurora/A5/Configuration_adv.h
  36. 53
    0
      Marlin/src/config/examples/MakerParts/Configuration_adv.h
  37. 53
    0
      Marlin/src/config/examples/Malyan/M150/Configuration_adv.h
  38. 53
    0
      Marlin/src/config/examples/Malyan/M200/Configuration_adv.h
  39. 53
    0
      Marlin/src/config/examples/Micromake/C1/enhanced/Configuration_adv.h
  40. 53
    0
      Marlin/src/config/examples/Mks/Robin/Configuration_adv.h
  41. 53
    0
      Marlin/src/config/examples/Mks/Sbase/Configuration_adv.h
  42. 53
    0
      Marlin/src/config/examples/RapideLite/RL200/Configuration_adv.h
  43. 53
    0
      Marlin/src/config/examples/RigidBot/Configuration_adv.h
  44. 53
    0
      Marlin/src/config/examples/SCARA/Configuration_adv.h
  45. 53
    0
      Marlin/src/config/examples/Sanguinololu/Configuration_adv.h
  46. 53
    0
      Marlin/src/config/examples/TheBorg/Configuration_adv.h
  47. 53
    0
      Marlin/src/config/examples/TinyBoy2/Configuration_adv.h
  48. 53
    0
      Marlin/src/config/examples/Tronxy/X3A/Configuration_adv.h
  49. 53
    0
      Marlin/src/config/examples/UltiMachine/Archim1/Configuration_adv.h
  50. 53
    0
      Marlin/src/config/examples/UltiMachine/Archim2/Configuration_adv.h
  51. 53
    0
      Marlin/src/config/examples/VORONDesign/Configuration_adv.h
  52. 53
    0
      Marlin/src/config/examples/Velleman/K8200/Configuration_adv.h
  53. 53
    0
      Marlin/src/config/examples/Velleman/K8400/Configuration_adv.h
  54. 53
    0
      Marlin/src/config/examples/WASP/PowerWASP/Configuration_adv.h
  55. 53
    0
      Marlin/src/config/examples/Wanhao/Duplicator 6/Configuration_adv.h
  56. 53
    0
      Marlin/src/config/examples/delta/Anycubic/Kossel/Configuration_adv.h
  57. 53
    0
      Marlin/src/config/examples/delta/FLSUN/auto_calibrate/Configuration_adv.h
  58. 53
    0
      Marlin/src/config/examples/delta/FLSUN/kossel/Configuration_adv.h
  59. 53
    0
      Marlin/src/config/examples/delta/FLSUN/kossel_mini/Configuration_adv.h
  60. 53
    0
      Marlin/src/config/examples/delta/Geeetech/Rostock 301/Configuration_adv.h
  61. 53
    0
      Marlin/src/config/examples/delta/MKS/SBASE/Configuration_adv.h
  62. 53
    0
      Marlin/src/config/examples/delta/Tevo Little Monster/Configuration_adv.h
  63. 53
    0
      Marlin/src/config/examples/delta/generic/Configuration_adv.h
  64. 52
    0
      Marlin/src/config/examples/delta/kossel_mini/Configuration_adv.h
  65. 53
    0
      Marlin/src/config/examples/delta/kossel_xl/Configuration_adv.h
  66. 53
    0
      Marlin/src/config/examples/gCreate/gMax1.5+/Configuration_adv.h
  67. 53
    0
      Marlin/src/config/examples/makibox/Configuration_adv.h
  68. 53
    0
      Marlin/src/config/examples/tvrrug/Round2/Configuration_adv.h
  69. 53
    0
      Marlin/src/config/examples/wt150/Configuration_adv.h
  70. 3
    2
      Marlin/src/core/utility.h
  71. 639
    0
      Marlin/src/gcode/calibrate/G425.cpp
  72. 4
    0
      Marlin/src/gcode/gcode.cpp
  73. 4
    0
      Marlin/src/gcode/gcode.h
  74. 1
    0
      Marlin/src/inc/Conditionals_post.h
  75. 10
    0
      Marlin/src/module/endstops.cpp
  76. 16
    0
      Marlin/src/module/endstops.h
  77. 1
    1
      buildroot/share/tests/teensy35_tests

+ 53
- 0
Marlin/Configuration_adv.h View File

@@ -521,6 +521,59 @@
521 521
 #endif
522 522
 
523 523
 /**
524
+ * Automatic backlash, position and hotend offset calibration
525
+ *
526
+ * Enable G425 to run automatic calibration using an electrically-
527
+ * conductive cube, bolt, or washer mounted on the bed.
528
+ *
529
+ * G425 uses the probe to touch the top and sides of the calibration object
530
+ * on the bed and measures and/or correct positional offsets, axis backlash
531
+ * and hotend offsets.
532
+ *
533
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
534
+ *       ±5mm of true values for G425 to succeed.
535
+ */
536
+//#define CALIBRATION_GCODE
537
+#if ENABLED(CALIBRATION_GCODE)
538
+
539
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
540
+
541
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
542
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
543
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
544
+
545
+  // The following parameters refer to the conical section of the nozzle tip.
546
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
547
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
548
+
549
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
550
+  //#define CALIBRATION_REPORTING
551
+
552
+  // The true location and dimension the cube/bolt/washer on the bed.
553
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
554
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
555
+
556
+  // Comment out any sides which are unreachable by the probe. For best
557
+  // auto-calibration results, all sides must be reachable.
558
+  #define CALIBRATION_MEASURE_RIGHT
559
+  #define CALIBRATION_MEASURE_FRONT
560
+  #define CALIBRATION_MEASURE_LEFT
561
+  #define CALIBRATION_MEASURE_BACK
562
+
563
+  // Probing at the exact top center only works if the center is flat. If
564
+  // probing on a screwhead or hollow washer, probe near the edges.
565
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
566
+
567
+  // Define pin which is read during calibration
568
+  #ifndef CALIBRATION_PIN
569
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
570
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
571
+    //#define CALIBRATION_PIN_PULLDOWN
572
+    #define CALIBRATION_PIN_PULLUP
573
+  #endif
574
+#endif
575
+
576
+/**
524 577
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
525 578
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
526 579
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/default/Configuration_adv.h View File

@@ -521,6 +521,59 @@
521 521
 #endif
522 522
 
523 523
 /**
524
+ * Automatic backlash, position and hotend offset calibration
525
+ *
526
+ * Enable G425 to run automatic calibration using an electrically-
527
+ * conductive cube, bolt, or washer mounted on the bed.
528
+ *
529
+ * G425 uses the probe to touch the top and sides of the calibration object
530
+ * on the bed and measures and/or correct positional offsets, axis backlash
531
+ * and hotend offsets.
532
+ *
533
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
534
+ *       ±5mm of true values for G425 to succeed.
535
+ */
536
+//#define CALIBRATION_GCODE
537
+#if ENABLED(CALIBRATION_GCODE)
538
+
539
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
540
+
541
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
542
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
543
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
544
+
545
+  // The following parameters refer to the conical section of the nozzle tip.
546
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
547
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
548
+
549
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
550
+  //#define CALIBRATION_REPORTING
551
+
552
+  // The true location and dimension the cube/bolt/washer on the bed.
553
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
554
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
555
+
556
+  // Comment out any sides which are unreachable by the probe. For best
557
+  // auto-calibration results, all sides must be reachable.
558
+  #define CALIBRATION_MEASURE_RIGHT
559
+  #define CALIBRATION_MEASURE_FRONT
560
+  #define CALIBRATION_MEASURE_LEFT
561
+  #define CALIBRATION_MEASURE_BACK
562
+
563
+  // Probing at the exact top center only works if the center is flat. If
564
+  // probing on a screwhead or hollow washer, probe near the edges.
565
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
566
+
567
+  // Define pin which is read during calibration
568
+  #ifndef CALIBRATION_PIN
569
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
570
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
571
+    //#define CALIBRATION_PIN_PULLDOWN
572
+    #define CALIBRATION_PIN_PULLUP
573
+  #endif
574
+#endif
575
+
576
+/**
524 577
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
525 578
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
526 579
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/3DFabXYZ/Migbot/Configuration_adv.h View File

@@ -521,6 +521,59 @@
521 521
 #endif
522 522
 
523 523
 /**
524
+ * Automatic backlash, position and hotend offset calibration
525
+ *
526
+ * Enable G425 to run automatic calibration using an electrically-
527
+ * conductive cube, bolt, or washer mounted on the bed.
528
+ *
529
+ * G425 uses the probe to touch the top and sides of the calibration object
530
+ * on the bed and measures and/or correct positional offsets, axis backlash
531
+ * and hotend offsets.
532
+ *
533
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
534
+ *       ±5mm of true values for G425 to succeed.
535
+ */
536
+//#define CALIBRATION_GCODE
537
+#if ENABLED(CALIBRATION_GCODE)
538
+
539
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
540
+
541
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
542
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
543
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
544
+
545
+  // The following parameters refer to the conical section of the nozzle tip.
546
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
547
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
548
+
549
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
550
+  //#define CALIBRATION_REPORTING
551
+
552
+  // The true location and dimension the cube/bolt/washer on the bed.
553
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
554
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
555
+
556
+  // Comment out any sides which are unreachable by the probe. For best
557
+  // auto-calibration results, all sides must be reachable.
558
+  #define CALIBRATION_MEASURE_RIGHT
559
+  #define CALIBRATION_MEASURE_FRONT
560
+  #define CALIBRATION_MEASURE_LEFT
561
+  #define CALIBRATION_MEASURE_BACK
562
+
563
+  // Probing at the exact top center only works if the center is flat. If
564
+  // probing on a screwhead or hollow washer, probe near the edges.
565
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
566
+
567
+  // Define pin which is read during calibration
568
+  #ifndef CALIBRATION_PIN
569
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
570
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
571
+    //#define CALIBRATION_PIN_PULLDOWN
572
+    #define CALIBRATION_PIN_PULLUP
573
+  #endif
574
+#endif
575
+
576
+/**
524 577
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
525 578
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
526 579
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/AlephObjects/TAZ4/Configuration_adv.h View File

@@ -521,6 +521,59 @@
521 521
 #endif
522 522
 
523 523
 /**
524
+ * Automatic backlash, position and hotend offset calibration
525
+ *
526
+ * Enable G425 to run automatic calibration using an electrically-
527
+ * conductive cube, bolt, or washer mounted on the bed.
528
+ *
529
+ * G425 uses the probe to touch the top and sides of the calibration object
530
+ * on the bed and measures and/or correct positional offsets, axis backlash
531
+ * and hotend offsets.
532
+ *
533
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
534
+ *       ±5mm of true values for G425 to succeed.
535
+ */
536
+//#define CALIBRATION_GCODE
537
+#if ENABLED(CALIBRATION_GCODE)
538
+
539
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
540
+
541
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
542
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
543
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
544
+
545
+  // The following parameters refer to the conical section of the nozzle tip.
546
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
547
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
548
+
549
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
550
+  //#define CALIBRATION_REPORTING
551
+
552
+  // The true location and dimension the cube/bolt/washer on the bed.
553
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
554
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
555
+
556
+  // Comment out any sides which are unreachable by the probe. For best
557
+  // auto-calibration results, all sides must be reachable.
558
+  #define CALIBRATION_MEASURE_RIGHT
559
+  #define CALIBRATION_MEASURE_FRONT
560
+  #define CALIBRATION_MEASURE_LEFT
561
+  #define CALIBRATION_MEASURE_BACK
562
+
563
+  // Probing at the exact top center only works if the center is flat. If
564
+  // probing on a screwhead or hollow washer, probe near the edges.
565
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
566
+
567
+  // Define pin which is read during calibration
568
+  #ifndef CALIBRATION_PIN
569
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
570
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
571
+    //#define CALIBRATION_PIN_PULLDOWN
572
+    #define CALIBRATION_PIN_PULLUP
573
+  #endif
574
+#endif
575
+
576
+/**
524 577
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
525 578
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
526 579
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/Anet/A2/Configuration_adv.h View File

@@ -521,6 +521,59 @@
521 521
 #endif
522 522
 
523 523
 /**
524
+ * Automatic backlash, position and hotend offset calibration
525
+ *
526
+ * Enable G425 to run automatic calibration using an electrically-
527
+ * conductive cube, bolt, or washer mounted on the bed.
528
+ *
529
+ * G425 uses the probe to touch the top and sides of the calibration object
530
+ * on the bed and measures and/or correct positional offsets, axis backlash
531
+ * and hotend offsets.
532
+ *
533
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
534
+ *       ±5mm of true values for G425 to succeed.
535
+ */
536
+//#define CALIBRATION_GCODE
537
+#if ENABLED(CALIBRATION_GCODE)
538
+
539
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
540
+
541
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
542
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
543
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
544
+
545
+  // The following parameters refer to the conical section of the nozzle tip.
546
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
547
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
548
+
549
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
550
+  //#define CALIBRATION_REPORTING
551
+
552
+  // The true location and dimension the cube/bolt/washer on the bed.
553
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
554
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
555
+
556
+  // Comment out any sides which are unreachable by the probe. For best
557
+  // auto-calibration results, all sides must be reachable.
558
+  #define CALIBRATION_MEASURE_RIGHT
559
+  #define CALIBRATION_MEASURE_FRONT
560
+  #define CALIBRATION_MEASURE_LEFT
561
+  #define CALIBRATION_MEASURE_BACK
562
+
563
+  // Probing at the exact top center only works if the center is flat. If
564
+  // probing on a screwhead or hollow washer, probe near the edges.
565
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
566
+
567
+  // Define pin which is read during calibration
568
+  #ifndef CALIBRATION_PIN
569
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
570
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
571
+    //#define CALIBRATION_PIN_PULLDOWN
572
+    #define CALIBRATION_PIN_PULLUP
573
+  #endif
574
+#endif
575
+
576
+/**
524 577
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
525 578
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
526 579
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/Anet/A2plus/Configuration_adv.h View File

@@ -521,6 +521,59 @@
521 521
 #endif
522 522
 
523 523
 /**
524
+ * Automatic backlash, position and hotend offset calibration
525
+ *
526
+ * Enable G425 to run automatic calibration using an electrically-
527
+ * conductive cube, bolt, or washer mounted on the bed.
528
+ *
529
+ * G425 uses the probe to touch the top and sides of the calibration object
530
+ * on the bed and measures and/or correct positional offsets, axis backlash
531
+ * and hotend offsets.
532
+ *
533
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
534
+ *       ±5mm of true values for G425 to succeed.
535
+ */
536
+//#define CALIBRATION_GCODE
537
+#if ENABLED(CALIBRATION_GCODE)
538
+
539
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
540
+
541
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
542
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
543
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
544
+
545
+  // The following parameters refer to the conical section of the nozzle tip.
546
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
547
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
548
+
549
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
550
+  //#define CALIBRATION_REPORTING
551
+
552
+  // The true location and dimension the cube/bolt/washer on the bed.
553
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
554
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
555
+
556
+  // Comment out any sides which are unreachable by the probe. For best
557
+  // auto-calibration results, all sides must be reachable.
558
+  #define CALIBRATION_MEASURE_RIGHT
559
+  #define CALIBRATION_MEASURE_FRONT
560
+  #define CALIBRATION_MEASURE_LEFT
561
+  #define CALIBRATION_MEASURE_BACK
562
+
563
+  // Probing at the exact top center only works if the center is flat. If
564
+  // probing on a screwhead or hollow washer, probe near the edges.
565
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
566
+
567
+  // Define pin which is read during calibration
568
+  #ifndef CALIBRATION_PIN
569
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
570
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
571
+    //#define CALIBRATION_PIN_PULLDOWN
572
+    #define CALIBRATION_PIN_PULLUP
573
+  #endif
574
+#endif
575
+
576
+/**
524 577
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
525 578
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
526 579
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/Anet/A6/Configuration_adv.h View File

@@ -520,6 +520,59 @@
520 520
 #endif
521 521
 
522 522
 /**
523
+ * Automatic backlash, position and hotend offset calibration
524
+ *
525
+ * Enable G425 to run automatic calibration using an electrically-
526
+ * conductive cube, bolt, or washer mounted on the bed.
527
+ *
528
+ * G425 uses the probe to touch the top and sides of the calibration object
529
+ * on the bed and measures and/or correct positional offsets, axis backlash
530
+ * and hotend offsets.
531
+ *
532
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
533
+ *       ±5mm of true values for G425 to succeed.
534
+ */
535
+//#define CALIBRATION_GCODE
536
+#if ENABLED(CALIBRATION_GCODE)
537
+
538
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
539
+
540
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
541
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
542
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
543
+
544
+  // The following parameters refer to the conical section of the nozzle tip.
545
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
546
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
547
+
548
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
549
+  //#define CALIBRATION_REPORTING
550
+
551
+  // The true location and dimension the cube/bolt/washer on the bed.
552
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
553
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
554
+
555
+  // Comment out any sides which are unreachable by the probe. For best
556
+  // auto-calibration results, all sides must be reachable.
557
+  #define CALIBRATION_MEASURE_RIGHT
558
+  #define CALIBRATION_MEASURE_FRONT
559
+  #define CALIBRATION_MEASURE_LEFT
560
+  #define CALIBRATION_MEASURE_BACK
561
+
562
+  // Probing at the exact top center only works if the center is flat. If
563
+  // probing on a screwhead or hollow washer, probe near the edges.
564
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
565
+
566
+  // Define pin which is read during calibration
567
+  #ifndef CALIBRATION_PIN
568
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
569
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
570
+    //#define CALIBRATION_PIN_PULLDOWN
571
+    #define CALIBRATION_PIN_PULLUP
572
+  #endif
573
+#endif
574
+
575
+/**
523 576
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
524 577
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
525 578
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/Anet/A8/Configuration_adv.h View File

@@ -521,6 +521,59 @@
521 521
 #endif
522 522
 
523 523
 /**
524
+ * Automatic backlash, position and hotend offset calibration
525
+ *
526
+ * Enable G425 to run automatic calibration using an electrically-
527
+ * conductive cube, bolt, or washer mounted on the bed.
528
+ *
529
+ * G425 uses the probe to touch the top and sides of the calibration object
530
+ * on the bed and measures and/or correct positional offsets, axis backlash
531
+ * and hotend offsets.
532
+ *
533
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
534
+ *       ±5mm of true values for G425 to succeed.
535
+ */
536
+//#define CALIBRATION_GCODE
537
+#if ENABLED(CALIBRATION_GCODE)
538
+
539
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
540
+
541
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
542
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
543
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
544
+
545
+  // The following parameters refer to the conical section of the nozzle tip.
546
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
547
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
548
+
549
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
550
+  //#define CALIBRATION_REPORTING
551
+
552
+  // The true location and dimension the cube/bolt/washer on the bed.
553
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
554
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
555
+
556
+  // Comment out any sides which are unreachable by the probe. For best
557
+  // auto-calibration results, all sides must be reachable.
558
+  #define CALIBRATION_MEASURE_RIGHT
559
+  #define CALIBRATION_MEASURE_FRONT
560
+  #define CALIBRATION_MEASURE_LEFT
561
+  #define CALIBRATION_MEASURE_BACK
562
+
563
+  // Probing at the exact top center only works if the center is flat. If
564
+  // probing on a screwhead or hollow washer, probe near the edges.
565
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
566
+
567
+  // Define pin which is read during calibration
568
+  #ifndef CALIBRATION_PIN
569
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
570
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
571
+    //#define CALIBRATION_PIN_PULLDOWN
572
+    #define CALIBRATION_PIN_PULLUP
573
+  #endif
574
+#endif
575
+
576
+/**
524 577
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
525 578
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
526 579
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/AnyCubic/i3/Configuration_adv.h View File

@@ -521,6 +521,59 @@
521 521
 #endif
522 522
 
523 523
 /**
524
+ * Automatic backlash, position and hotend offset calibration
525
+ *
526
+ * Enable G425 to run automatic calibration using an electrically-
527
+ * conductive cube, bolt, or washer mounted on the bed.
528
+ *
529
+ * G425 uses the probe to touch the top and sides of the calibration object
530
+ * on the bed and measures and/or correct positional offsets, axis backlash
531
+ * and hotend offsets.
532
+ *
533
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
534
+ *       ±5mm of true values for G425 to succeed.
535
+ */
536
+//#define CALIBRATION_GCODE
537
+#if ENABLED(CALIBRATION_GCODE)
538
+
539
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
540
+
541
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
542
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
543
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
544
+
545
+  // The following parameters refer to the conical section of the nozzle tip.
546
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
547
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
548
+
549
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
550
+  //#define CALIBRATION_REPORTING
551
+
552
+  // The true location and dimension the cube/bolt/washer on the bed.
553
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
554
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
555
+
556
+  // Comment out any sides which are unreachable by the probe. For best
557
+  // auto-calibration results, all sides must be reachable.
558
+  #define CALIBRATION_MEASURE_RIGHT
559
+  #define CALIBRATION_MEASURE_FRONT
560
+  #define CALIBRATION_MEASURE_LEFT
561
+  #define CALIBRATION_MEASURE_BACK
562
+
563
+  // Probing at the exact top center only works if the center is flat. If
564
+  // probing on a screwhead or hollow washer, probe near the edges.
565
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
566
+
567
+  // Define pin which is read during calibration
568
+  #ifndef CALIBRATION_PIN
569
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
570
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
571
+    //#define CALIBRATION_PIN_PULLDOWN
572
+    #define CALIBRATION_PIN_PULLUP
573
+  #endif
574
+#endif
575
+
576
+/**
524 577
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
525 578
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
526 579
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/ArmEd/Configuration_adv.h View File

@@ -525,6 +525,59 @@
525 525
 #endif
526 526
 
527 527
 /**
528
+ * Automatic backlash, position and hotend offset calibration
529
+ *
530
+ * Enable G425 to run automatic calibration using an electrically-
531
+ * conductive cube, bolt, or washer mounted on the bed.
532
+ *
533
+ * G425 uses the probe to touch the top and sides of the calibration object
534
+ * on the bed and measures and/or correct positional offsets, axis backlash
535
+ * and hotend offsets.
536
+ *
537
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
538
+ *       ±5mm of true values for G425 to succeed.
539
+ */
540
+//#define CALIBRATION_GCODE
541
+#if ENABLED(CALIBRATION_GCODE)
542
+
543
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
544
+
545
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
546
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
547
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
548
+
549
+  // The following parameters refer to the conical section of the nozzle tip.
550
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
551
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
552
+
553
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
554
+  //#define CALIBRATION_REPORTING
555
+
556
+  // The true location and dimension the cube/bolt/washer on the bed.
557
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
558
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
559
+
560
+  // Comment out any sides which are unreachable by the probe. For best
561
+  // auto-calibration results, all sides must be reachable.
562
+  #define CALIBRATION_MEASURE_RIGHT
563
+  #define CALIBRATION_MEASURE_FRONT
564
+  #define CALIBRATION_MEASURE_LEFT
565
+  #define CALIBRATION_MEASURE_BACK
566
+
567
+  // Probing at the exact top center only works if the center is flat. If
568
+  // probing on a screwhead or hollow washer, probe near the edges.
569
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
570
+
571
+  // Define pin which is read during calibration
572
+  #ifndef CALIBRATION_PIN
573
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
574
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
575
+    //#define CALIBRATION_PIN_PULLDOWN
576
+    #define CALIBRATION_PIN_PULLUP
577
+  #endif
578
+#endif
579
+
580
+/**
528 581
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
529 582
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
530 583
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/BIBO/TouchX/cyclops/Configuration_adv.h View File

@@ -520,6 +520,59 @@
520 520
 #endif
521 521
 
522 522
 /**
523
+ * Automatic backlash, position and hotend offset calibration
524
+ *
525
+ * Enable G425 to run automatic calibration using an electrically-
526
+ * conductive cube, bolt, or washer mounted on the bed.
527
+ *
528
+ * G425 uses the probe to touch the top and sides of the calibration object
529
+ * on the bed and measures and/or correct positional offsets, axis backlash
530
+ * and hotend offsets.
531
+ *
532
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
533
+ *       ±5mm of true values for G425 to succeed.
534
+ */
535
+//#define CALIBRATION_GCODE
536
+#if ENABLED(CALIBRATION_GCODE)
537
+
538
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
539
+
540
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
541
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
542
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
543
+
544
+  // The following parameters refer to the conical section of the nozzle tip.
545
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
546
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
547
+
548
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
549
+  //#define CALIBRATION_REPORTING
550
+
551
+  // The true location and dimension the cube/bolt/washer on the bed.
552
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
553
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
554
+
555
+  // Comment out any sides which are unreachable by the probe. For best
556
+  // auto-calibration results, all sides must be reachable.
557
+  #define CALIBRATION_MEASURE_RIGHT
558
+  #define CALIBRATION_MEASURE_FRONT
559
+  #define CALIBRATION_MEASURE_LEFT
560
+  #define CALIBRATION_MEASURE_BACK
561
+
562
+  // Probing at the exact top center only works if the center is flat. If
563
+  // probing on a screwhead or hollow washer, probe near the edges.
564
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
565
+
566
+  // Define pin which is read during calibration
567
+  #ifndef CALIBRATION_PIN
568
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
569
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
570
+    //#define CALIBRATION_PIN_PULLDOWN
571
+    #define CALIBRATION_PIN_PULLUP
572
+  #endif
573
+#endif
574
+
575
+/**
523 576
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
524 577
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
525 578
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/BIBO/TouchX/default/Configuration_adv.h View File

@@ -521,6 +521,59 @@
521 521
 #endif
522 522
 
523 523
 /**
524
+ * Automatic backlash, position and hotend offset calibration
525
+ *
526
+ * Enable G425 to run automatic calibration using an electrically-
527
+ * conductive cube, bolt, or washer mounted on the bed.
528
+ *
529
+ * G425 uses the probe to touch the top and sides of the calibration object
530
+ * on the bed and measures and/or correct positional offsets, axis backlash
531
+ * and hotend offsets.
532
+ *
533
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
534
+ *       ±5mm of true values for G425 to succeed.
535
+ */
536
+//#define CALIBRATION_GCODE
537
+#if ENABLED(CALIBRATION_GCODE)
538
+
539
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
540
+
541
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
542
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
543
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
544
+
545
+  // The following parameters refer to the conical section of the nozzle tip.
546
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
547
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
548
+
549
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
550
+  //#define CALIBRATION_REPORTING
551
+
552
+  // The true location and dimension the cube/bolt/washer on the bed.
553
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
554
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
555
+
556
+  // Comment out any sides which are unreachable by the probe. For best
557
+  // auto-calibration results, all sides must be reachable.
558
+  #define CALIBRATION_MEASURE_RIGHT
559
+  #define CALIBRATION_MEASURE_FRONT
560
+  #define CALIBRATION_MEASURE_LEFT
561
+  #define CALIBRATION_MEASURE_BACK
562
+
563
+  // Probing at the exact top center only works if the center is flat. If
564
+  // probing on a screwhead or hollow washer, probe near the edges.
565
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
566
+
567
+  // Define pin which is read during calibration
568
+  #ifndef CALIBRATION_PIN
569
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
570
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
571
+    //#define CALIBRATION_PIN_PULLDOWN
572
+    #define CALIBRATION_PIN_PULLUP
573
+  #endif
574
+#endif
575
+
576
+/**
524 577
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
525 578
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
526 579
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/BQ/Hephestos/Configuration_adv.h View File

@@ -521,6 +521,59 @@
521 521
 #endif
522 522
 
523 523
 /**
524
+ * Automatic backlash, position and hotend offset calibration
525
+ *
526
+ * Enable G425 to run automatic calibration using an electrically-
527
+ * conductive cube, bolt, or washer mounted on the bed.
528
+ *
529
+ * G425 uses the probe to touch the top and sides of the calibration object
530
+ * on the bed and measures and/or correct positional offsets, axis backlash
531
+ * and hotend offsets.
532
+ *
533
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
534
+ *       ±5mm of true values for G425 to succeed.
535
+ */
536
+//#define CALIBRATION_GCODE
537
+#if ENABLED(CALIBRATION_GCODE)
538
+
539
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
540
+
541
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
542
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
543
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
544
+
545
+  // The following parameters refer to the conical section of the nozzle tip.
546
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
547
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
548
+
549
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
550
+  //#define CALIBRATION_REPORTING
551
+
552
+  // The true location and dimension the cube/bolt/washer on the bed.
553
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
554
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
555
+
556
+  // Comment out any sides which are unreachable by the probe. For best
557
+  // auto-calibration results, all sides must be reachable.
558
+  #define CALIBRATION_MEASURE_RIGHT
559
+  #define CALIBRATION_MEASURE_FRONT
560
+  #define CALIBRATION_MEASURE_LEFT
561
+  #define CALIBRATION_MEASURE_BACK
562
+
563
+  // Probing at the exact top center only works if the center is flat. If
564
+  // probing on a screwhead or hollow washer, probe near the edges.
565
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
566
+
567
+  // Define pin which is read during calibration
568
+  #ifndef CALIBRATION_PIN
569
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
570
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
571
+    //#define CALIBRATION_PIN_PULLDOWN
572
+    #define CALIBRATION_PIN_PULLUP
573
+  #endif
574
+#endif
575
+
576
+/**
524 577
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
525 578
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
526 579
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/BQ/Hephestos_2/Configuration_adv.h View File

@@ -521,6 +521,59 @@
521 521
 #endif
522 522
 
523 523
 /**
524
+ * Automatic backlash, position and hotend offset calibration
525
+ *
526
+ * Enable G425 to run automatic calibration using an electrically-
527
+ * conductive cube, bolt, or washer mounted on the bed.
528
+ *
529
+ * G425 uses the probe to touch the top and sides of the calibration object
530
+ * on the bed and measures and/or correct positional offsets, axis backlash
531
+ * and hotend offsets.
532
+ *
533
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
534
+ *       ±5mm of true values for G425 to succeed.
535
+ */
536
+//#define CALIBRATION_GCODE
537
+#if ENABLED(CALIBRATION_GCODE)
538
+
539
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
540
+
541
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
542
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
543
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
544
+
545
+  // The following parameters refer to the conical section of the nozzle tip.
546
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
547
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
548
+
549
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
550
+  //#define CALIBRATION_REPORTING
551
+
552
+  // The true location and dimension the cube/bolt/washer on the bed.
553
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
554
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
555
+
556
+  // Comment out any sides which are unreachable by the probe. For best
557
+  // auto-calibration results, all sides must be reachable.
558
+  #define CALIBRATION_MEASURE_RIGHT
559
+  #define CALIBRATION_MEASURE_FRONT
560
+  #define CALIBRATION_MEASURE_LEFT
561
+  #define CALIBRATION_MEASURE_BACK
562
+
563
+  // Probing at the exact top center only works if the center is flat. If
564
+  // probing on a screwhead or hollow washer, probe near the edges.
565
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
566
+
567
+  // Define pin which is read during calibration
568
+  #ifndef CALIBRATION_PIN
569
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
570
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
571
+    //#define CALIBRATION_PIN_PULLDOWN
572
+    #define CALIBRATION_PIN_PULLUP
573
+  #endif
574
+#endif
575
+
576
+/**
524 577
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
525 578
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
526 579
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/BQ/WITBOX/Configuration_adv.h View File

@@ -521,6 +521,59 @@
521 521
 #endif
522 522
 
523 523
 /**
524
+ * Automatic backlash, position and hotend offset calibration
525
+ *
526
+ * Enable G425 to run automatic calibration using an electrically-
527
+ * conductive cube, bolt, or washer mounted on the bed.
528
+ *
529
+ * G425 uses the probe to touch the top and sides of the calibration object
530
+ * on the bed and measures and/or correct positional offsets, axis backlash
531
+ * and hotend offsets.
532
+ *
533
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
534
+ *       ±5mm of true values for G425 to succeed.
535
+ */
536
+//#define CALIBRATION_GCODE
537
+#if ENABLED(CALIBRATION_GCODE)
538
+
539
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
540
+
541
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
542
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
543
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
544
+
545
+  // The following parameters refer to the conical section of the nozzle tip.
546
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
547
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
548
+
549
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
550
+  //#define CALIBRATION_REPORTING
551
+
552
+  // The true location and dimension the cube/bolt/washer on the bed.
553
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
554
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
555
+
556
+  // Comment out any sides which are unreachable by the probe. For best
557
+  // auto-calibration results, all sides must be reachable.
558
+  #define CALIBRATION_MEASURE_RIGHT
559
+  #define CALIBRATION_MEASURE_FRONT
560
+  #define CALIBRATION_MEASURE_LEFT
561
+  #define CALIBRATION_MEASURE_BACK
562
+
563
+  // Probing at the exact top center only works if the center is flat. If
564
+  // probing on a screwhead or hollow washer, probe near the edges.
565
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
566
+
567
+  // Define pin which is read during calibration
568
+  #ifndef CALIBRATION_PIN
569
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
570
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
571
+    //#define CALIBRATION_PIN_PULLDOWN
572
+    #define CALIBRATION_PIN_PULLUP
573
+  #endif
574
+#endif
575
+
576
+/**
524 577
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
525 578
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
526 579
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/Cartesio/Configuration_adv.h View File

@@ -521,6 +521,59 @@
521 521
 #endif
522 522
 
523 523
 /**
524
+ * Automatic backlash, position and hotend offset calibration
525
+ *
526
+ * Enable G425 to run automatic calibration using an electrically-
527
+ * conductive cube, bolt, or washer mounted on the bed.
528
+ *
529
+ * G425 uses the probe to touch the top and sides of the calibration object
530
+ * on the bed and measures and/or correct positional offsets, axis backlash
531
+ * and hotend offsets.
532
+ *
533
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
534
+ *       ±5mm of true values for G425 to succeed.
535
+ */
536
+//#define CALIBRATION_GCODE
537
+#if ENABLED(CALIBRATION_GCODE)
538
+
539
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
540
+
541
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
542
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
543
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
544
+
545
+  // The following parameters refer to the conical section of the nozzle tip.
546
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
547
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
548
+
549
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
550
+  //#define CALIBRATION_REPORTING
551
+
552
+  // The true location and dimension the cube/bolt/washer on the bed.
553
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
554
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
555
+
556
+  // Comment out any sides which are unreachable by the probe. For best
557
+  // auto-calibration results, all sides must be reachable.
558
+  #define CALIBRATION_MEASURE_RIGHT
559
+  #define CALIBRATION_MEASURE_FRONT
560
+  #define CALIBRATION_MEASURE_LEFT
561
+  #define CALIBRATION_MEASURE_BACK
562
+
563
+  // Probing at the exact top center only works if the center is flat. If
564
+  // probing on a screwhead or hollow washer, probe near the edges.
565
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
566
+
567
+  // Define pin which is read during calibration
568
+  #ifndef CALIBRATION_PIN
569
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
570
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
571
+    //#define CALIBRATION_PIN_PULLDOWN
572
+    #define CALIBRATION_PIN_PULLUP
573
+  #endif
574
+#endif
575
+
576
+/**
524 577
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
525 578
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
526 579
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/Creality/CR-10/Configuration_adv.h View File

@@ -521,6 +521,59 @@
521 521
 #endif
522 522
 
523 523
 /**
524
+ * Automatic backlash, position and hotend offset calibration
525
+ *
526
+ * Enable G425 to run automatic calibration using an electrically-
527
+ * conductive cube, bolt, or washer mounted on the bed.
528
+ *
529
+ * G425 uses the probe to touch the top and sides of the calibration object
530
+ * on the bed and measures and/or correct positional offsets, axis backlash
531
+ * and hotend offsets.
532
+ *
533
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
534
+ *       ±5mm of true values for G425 to succeed.
535
+ */
536
+//#define CALIBRATION_GCODE
537
+#if ENABLED(CALIBRATION_GCODE)
538
+
539
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
540
+
541
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
542
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
543
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
544
+
545
+  // The following parameters refer to the conical section of the nozzle tip.
546
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
547
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
548
+
549
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
550
+  //#define CALIBRATION_REPORTING
551
+
552
+  // The true location and dimension the cube/bolt/washer on the bed.
553
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
554
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
555
+
556
+  // Comment out any sides which are unreachable by the probe. For best
557
+  // auto-calibration results, all sides must be reachable.
558
+  #define CALIBRATION_MEASURE_RIGHT
559
+  #define CALIBRATION_MEASURE_FRONT
560
+  #define CALIBRATION_MEASURE_LEFT
561
+  #define CALIBRATION_MEASURE_BACK
562
+
563
+  // Probing at the exact top center only works if the center is flat. If
564
+  // probing on a screwhead or hollow washer, probe near the edges.
565
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
566
+
567
+  // Define pin which is read during calibration
568
+  #ifndef CALIBRATION_PIN
569
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
570
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
571
+    //#define CALIBRATION_PIN_PULLDOWN
572
+    #define CALIBRATION_PIN_PULLUP
573
+  #endif
574
+#endif
575
+
576
+/**
524 577
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
525 578
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
526 579
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/Creality/CR-10S/Configuration_adv.h View File

@@ -521,6 +521,59 @@
521 521
 #endif
522 522
 
523 523
 /**
524
+ * Automatic backlash, position and hotend offset calibration
525
+ *
526
+ * Enable G425 to run automatic calibration using an electrically-
527
+ * conductive cube, bolt, or washer mounted on the bed.
528
+ *
529
+ * G425 uses the probe to touch the top and sides of the calibration object
530
+ * on the bed and measures and/or correct positional offsets, axis backlash
531
+ * and hotend offsets.
532
+ *
533
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
534
+ *       ±5mm of true values for G425 to succeed.
535
+ */
536
+//#define CALIBRATION_GCODE
537
+#if ENABLED(CALIBRATION_GCODE)
538
+
539
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
540
+
541
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
542
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
543
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
544
+
545
+  // The following parameters refer to the conical section of the nozzle tip.
546
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
547
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
548
+
549
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
550
+  //#define CALIBRATION_REPORTING
551
+
552
+  // The true location and dimension the cube/bolt/washer on the bed.
553
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
554
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
555
+
556
+  // Comment out any sides which are unreachable by the probe. For best
557
+  // auto-calibration results, all sides must be reachable.
558
+  #define CALIBRATION_MEASURE_RIGHT
559
+  #define CALIBRATION_MEASURE_FRONT
560
+  #define CALIBRATION_MEASURE_LEFT
561
+  #define CALIBRATION_MEASURE_BACK
562
+
563
+  // Probing at the exact top center only works if the center is flat. If
564
+  // probing on a screwhead or hollow washer, probe near the edges.
565
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
566
+
567
+  // Define pin which is read during calibration
568
+  #ifndef CALIBRATION_PIN
569
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
570
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
571
+    //#define CALIBRATION_PIN_PULLDOWN
572
+    #define CALIBRATION_PIN_PULLUP
573
+  #endif
574
+#endif
575
+
576
+/**
524 577
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
525 578
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
526 579
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/Creality/CR-10mini/Configuration_adv.h View File

@@ -521,6 +521,59 @@
521 521
 #endif
522 522
 
523 523
 /**
524
+ * Automatic backlash, position and hotend offset calibration
525
+ *
526
+ * Enable G425 to run automatic calibration using an electrically-
527
+ * conductive cube, bolt, or washer mounted on the bed.
528
+ *
529
+ * G425 uses the probe to touch the top and sides of the calibration object
530
+ * on the bed and measures and/or correct positional offsets, axis backlash
531
+ * and hotend offsets.
532
+ *
533
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
534
+ *       ±5mm of true values for G425 to succeed.
535
+ */
536
+//#define CALIBRATION_GCODE
537
+#if ENABLED(CALIBRATION_GCODE)
538
+
539
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
540
+
541
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
542
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
543
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
544
+
545
+  // The following parameters refer to the conical section of the nozzle tip.
546
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
547
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
548
+
549
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
550
+  //#define CALIBRATION_REPORTING
551
+
552
+  // The true location and dimension the cube/bolt/washer on the bed.
553
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
554
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
555
+
556
+  // Comment out any sides which are unreachable by the probe. For best
557
+  // auto-calibration results, all sides must be reachable.
558
+  #define CALIBRATION_MEASURE_RIGHT
559
+  #define CALIBRATION_MEASURE_FRONT
560
+  #define CALIBRATION_MEASURE_LEFT
561
+  #define CALIBRATION_MEASURE_BACK
562
+
563
+  // Probing at the exact top center only works if the center is flat. If
564
+  // probing on a screwhead or hollow washer, probe near the edges.
565
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
566
+
567
+  // Define pin which is read during calibration
568
+  #ifndef CALIBRATION_PIN
569
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
570
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
571
+    //#define CALIBRATION_PIN_PULLDOWN
572
+    #define CALIBRATION_PIN_PULLUP
573
+  #endif
574
+#endif
575
+
576
+/**
524 577
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
525 578
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
526 579
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/Creality/CR-8/Configuration_adv.h View File

@@ -521,6 +521,59 @@
521 521
 #endif
522 522
 
523 523
 /**
524
+ * Automatic backlash, position and hotend offset calibration
525
+ *
526
+ * Enable G425 to run automatic calibration using an electrically-
527
+ * conductive cube, bolt, or washer mounted on the bed.
528
+ *
529
+ * G425 uses the probe to touch the top and sides of the calibration object
530
+ * on the bed and measures and/or correct positional offsets, axis backlash
531
+ * and hotend offsets.
532
+ *
533
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
534
+ *       ±5mm of true values for G425 to succeed.
535
+ */
536
+//#define CALIBRATION_GCODE
537
+#if ENABLED(CALIBRATION_GCODE)
538
+
539
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
540
+
541
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
542
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
543
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
544
+
545
+  // The following parameters refer to the conical section of the nozzle tip.
546
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
547
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
548
+
549
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
550
+  //#define CALIBRATION_REPORTING
551
+
552
+  // The true location and dimension the cube/bolt/washer on the bed.
553
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
554
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
555
+
556
+  // Comment out any sides which are unreachable by the probe. For best
557
+  // auto-calibration results, all sides must be reachable.
558
+  #define CALIBRATION_MEASURE_RIGHT
559
+  #define CALIBRATION_MEASURE_FRONT
560
+  #define CALIBRATION_MEASURE_LEFT
561
+  #define CALIBRATION_MEASURE_BACK
562
+
563
+  // Probing at the exact top center only works if the center is flat. If
564
+  // probing on a screwhead or hollow washer, probe near the edges.
565
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
566
+
567
+  // Define pin which is read during calibration
568
+  #ifndef CALIBRATION_PIN
569
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
570
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
571
+    //#define CALIBRATION_PIN_PULLDOWN
572
+    #define CALIBRATION_PIN_PULLUP
573
+  #endif
574
+#endif
575
+
576
+/**
524 577
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
525 578
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
526 579
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/Creality/Ender-2/Configuration_adv.h View File

@@ -521,6 +521,59 @@
521 521
 #endif
522 522
 
523 523
 /**
524
+ * Automatic backlash, position and hotend offset calibration
525
+ *
526
+ * Enable G425 to run automatic calibration using an electrically-
527
+ * conductive cube, bolt, or washer mounted on the bed.
528
+ *
529
+ * G425 uses the probe to touch the top and sides of the calibration object
530
+ * on the bed and measures and/or correct positional offsets, axis backlash
531
+ * and hotend offsets.
532
+ *
533
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
534
+ *       ±5mm of true values for G425 to succeed.
535
+ */
536
+//#define CALIBRATION_GCODE
537
+#if ENABLED(CALIBRATION_GCODE)
538
+
539
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
540
+
541
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
542
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
543
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
544
+
545
+  // The following parameters refer to the conical section of the nozzle tip.
546
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
547
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
548
+
549
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
550
+  //#define CALIBRATION_REPORTING
551
+
552
+  // The true location and dimension the cube/bolt/washer on the bed.
553
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
554
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
555
+
556
+  // Comment out any sides which are unreachable by the probe. For best
557
+  // auto-calibration results, all sides must be reachable.
558
+  #define CALIBRATION_MEASURE_RIGHT
559
+  #define CALIBRATION_MEASURE_FRONT
560
+  #define CALIBRATION_MEASURE_LEFT
561
+  #define CALIBRATION_MEASURE_BACK
562
+
563
+  // Probing at the exact top center only works if the center is flat. If
564
+  // probing on a screwhead or hollow washer, probe near the edges.
565
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
566
+
567
+  // Define pin which is read during calibration
568
+  #ifndef CALIBRATION_PIN
569
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
570
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
571
+    //#define CALIBRATION_PIN_PULLDOWN
572
+    #define CALIBRATION_PIN_PULLUP
573
+  #endif
574
+#endif
575
+
576
+/**
524 577
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
525 578
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
526 579
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/Creality/Ender-3/Configuration_adv.h View File

@@ -521,6 +521,59 @@
521 521
 #endif
522 522
 
523 523
 /**
524
+ * Automatic backlash, position and hotend offset calibration
525
+ *
526
+ * Enable G425 to run automatic calibration using an electrically-
527
+ * conductive cube, bolt, or washer mounted on the bed.
528
+ *
529
+ * G425 uses the probe to touch the top and sides of the calibration object
530
+ * on the bed and measures and/or correct positional offsets, axis backlash
531
+ * and hotend offsets.
532
+ *
533
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
534
+ *       ±5mm of true values for G425 to succeed.
535
+ */
536
+//#define CALIBRATION_GCODE
537
+#if ENABLED(CALIBRATION_GCODE)
538
+
539
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
540
+
541
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
542
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
543
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
544
+
545
+  // The following parameters refer to the conical section of the nozzle tip.
546
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
547
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
548
+
549
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
550
+  //#define CALIBRATION_REPORTING
551
+
552
+  // The true location and dimension the cube/bolt/washer on the bed.
553
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
554
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
555
+
556
+  // Comment out any sides which are unreachable by the probe. For best
557
+  // auto-calibration results, all sides must be reachable.
558
+  #define CALIBRATION_MEASURE_RIGHT
559
+  #define CALIBRATION_MEASURE_FRONT
560
+  #define CALIBRATION_MEASURE_LEFT
561
+  #define CALIBRATION_MEASURE_BACK
562
+
563
+  // Probing at the exact top center only works if the center is flat. If
564
+  // probing on a screwhead or hollow washer, probe near the edges.
565
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
566
+
567
+  // Define pin which is read during calibration
568
+  #ifndef CALIBRATION_PIN
569
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
570
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
571
+    //#define CALIBRATION_PIN_PULLDOWN
572
+    #define CALIBRATION_PIN_PULLUP
573
+  #endif
574
+#endif
575
+
576
+/**
524 577
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
525 578
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
526 579
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/Creality/Ender-4/Configuration_adv.h View File

@@ -521,6 +521,59 @@
521 521
 #endif
522 522
 
523 523
 /**
524
+ * Automatic backlash, position and hotend offset calibration
525
+ *
526
+ * Enable G425 to run automatic calibration using an electrically-
527
+ * conductive cube, bolt, or washer mounted on the bed.
528
+ *
529
+ * G425 uses the probe to touch the top and sides of the calibration object
530
+ * on the bed and measures and/or correct positional offsets, axis backlash
531
+ * and hotend offsets.
532
+ *
533
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
534
+ *       ±5mm of true values for G425 to succeed.
535
+ */
536
+//#define CALIBRATION_GCODE
537
+#if ENABLED(CALIBRATION_GCODE)
538
+
539
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
540
+
541
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
542
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
543
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
544
+
545
+  // The following parameters refer to the conical section of the nozzle tip.
546
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
547
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
548
+
549
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
550
+  //#define CALIBRATION_REPORTING
551
+
552
+  // The true location and dimension the cube/bolt/washer on the bed.
553
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
554
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
555
+
556
+  // Comment out any sides which are unreachable by the probe. For best
557
+  // auto-calibration results, all sides must be reachable.
558
+  #define CALIBRATION_MEASURE_RIGHT
559
+  #define CALIBRATION_MEASURE_FRONT
560
+  #define CALIBRATION_MEASURE_LEFT
561
+  #define CALIBRATION_MEASURE_BACK
562
+
563
+  // Probing at the exact top center only works if the center is flat. If
564
+  // probing on a screwhead or hollow washer, probe near the edges.
565
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
566
+
567
+  // Define pin which is read during calibration
568
+  #ifndef CALIBRATION_PIN
569
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
570
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
571
+    //#define CALIBRATION_PIN_PULLDOWN
572
+    #define CALIBRATION_PIN_PULLUP
573
+  #endif
574
+#endif
575
+
576
+/**
524 577
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
525 578
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
526 579
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/Einstart-S/Configuration_adv.h View File

@@ -521,6 +521,59 @@
521 521
 #endif
522 522
 
523 523
 /**
524
+ * Automatic backlash, position and hotend offset calibration
525
+ *
526
+ * Enable G425 to run automatic calibration using an electrically-
527
+ * conductive cube, bolt, or washer mounted on the bed.
528
+ *
529
+ * G425 uses the probe to touch the top and sides of the calibration object
530
+ * on the bed and measures and/or correct positional offsets, axis backlash
531
+ * and hotend offsets.
532
+ *
533
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
534
+ *       ±5mm of true values for G425 to succeed.
535
+ */
536
+//#define CALIBRATION_GCODE
537
+#if ENABLED(CALIBRATION_GCODE)
538
+
539
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
540
+
541
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
542
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
543
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
544
+
545
+  // The following parameters refer to the conical section of the nozzle tip.
546
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
547
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
548
+
549
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
550
+  //#define CALIBRATION_REPORTING
551
+
552
+  // The true location and dimension the cube/bolt/washer on the bed.
553
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
554
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
555
+
556
+  // Comment out any sides which are unreachable by the probe. For best
557
+  // auto-calibration results, all sides must be reachable.
558
+  #define CALIBRATION_MEASURE_RIGHT
559
+  #define CALIBRATION_MEASURE_FRONT
560
+  #define CALIBRATION_MEASURE_LEFT
561
+  #define CALIBRATION_MEASURE_BACK
562
+
563
+  // Probing at the exact top center only works if the center is flat. If
564
+  // probing on a screwhead or hollow washer, probe near the edges.
565
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
566
+
567
+  // Define pin which is read during calibration
568
+  #ifndef CALIBRATION_PIN
569
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
570
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
571
+    //#define CALIBRATION_PIN_PULLDOWN
572
+    #define CALIBRATION_PIN_PULLUP
573
+  #endif
574
+#endif
575
+
576
+/**
524 577
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
525 578
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
526 579
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/Felix/Configuration_adv.h View File

@@ -521,6 +521,59 @@
521 521
 #endif
522 522
 
523 523
 /**
524
+ * Automatic backlash, position and hotend offset calibration
525
+ *
526
+ * Enable G425 to run automatic calibration using an electrically-
527
+ * conductive cube, bolt, or washer mounted on the bed.
528
+ *
529
+ * G425 uses the probe to touch the top and sides of the calibration object
530
+ * on the bed and measures and/or correct positional offsets, axis backlash
531
+ * and hotend offsets.
532
+ *
533
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
534
+ *       ±5mm of true values for G425 to succeed.
535
+ */
536
+//#define CALIBRATION_GCODE
537
+#if ENABLED(CALIBRATION_GCODE)
538
+
539
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
540
+
541
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
542
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
543
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
544
+
545
+  // The following parameters refer to the conical section of the nozzle tip.
546
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
547
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
548
+
549
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
550
+  //#define CALIBRATION_REPORTING
551
+
552
+  // The true location and dimension the cube/bolt/washer on the bed.
553
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
554
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
555
+
556
+  // Comment out any sides which are unreachable by the probe. For best
557
+  // auto-calibration results, all sides must be reachable.
558
+  #define CALIBRATION_MEASURE_RIGHT
559
+  #define CALIBRATION_MEASURE_FRONT
560
+  #define CALIBRATION_MEASURE_LEFT
561
+  #define CALIBRATION_MEASURE_BACK
562
+
563
+  // Probing at the exact top center only works if the center is flat. If
564
+  // probing on a screwhead or hollow washer, probe near the edges.
565
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
566
+
567
+  // Define pin which is read during calibration
568
+  #ifndef CALIBRATION_PIN
569
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
570
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
571
+    //#define CALIBRATION_PIN_PULLDOWN
572
+    #define CALIBRATION_PIN_PULLUP
573
+  #endif
574
+#endif
575
+
576
+/**
524 577
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
525 578
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
526 579
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/FlashForge/CreatorPro/Configuration_adv.h View File

@@ -521,6 +521,59 @@
521 521
 #endif
522 522
 
523 523
 /**
524
+ * Automatic backlash, position and hotend offset calibration
525
+ *
526
+ * Enable G425 to run automatic calibration using an electrically-
527
+ * conductive cube, bolt, or washer mounted on the bed.
528
+ *
529
+ * G425 uses the probe to touch the top and sides of the calibration object
530
+ * on the bed and measures and/or correct positional offsets, axis backlash
531
+ * and hotend offsets.
532
+ *
533
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
534
+ *       ±5mm of true values for G425 to succeed.
535
+ */
536
+//#define CALIBRATION_GCODE
537
+#if ENABLED(CALIBRATION_GCODE)
538
+
539
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
540
+
541
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
542
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
543
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
544
+
545
+  // The following parameters refer to the conical section of the nozzle tip.
546
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
547
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
548
+
549
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
550
+  //#define CALIBRATION_REPORTING
551
+
552
+  // The true location and dimension the cube/bolt/washer on the bed.
553
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
554
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
555
+
556
+  // Comment out any sides which are unreachable by the probe. For best
557
+  // auto-calibration results, all sides must be reachable.
558
+  #define CALIBRATION_MEASURE_RIGHT
559
+  #define CALIBRATION_MEASURE_FRONT
560
+  #define CALIBRATION_MEASURE_LEFT
561
+  #define CALIBRATION_MEASURE_BACK
562
+
563
+  // Probing at the exact top center only works if the center is flat. If
564
+  // probing on a screwhead or hollow washer, probe near the edges.
565
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
566
+
567
+  // Define pin which is read during calibration
568
+  #ifndef CALIBRATION_PIN
569
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
570
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
571
+    //#define CALIBRATION_PIN_PULLDOWN
572
+    #define CALIBRATION_PIN_PULLUP
573
+  #endif
574
+#endif
575
+
576
+/**
524 577
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
525 578
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
526 579
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/FolgerTech/i3-2020/Configuration_adv.h View File

@@ -521,6 +521,59 @@
521 521
 #endif
522 522
 
523 523
 /**
524
+ * Automatic backlash, position and hotend offset calibration
525
+ *
526
+ * Enable G425 to run automatic calibration using an electrically-
527
+ * conductive cube, bolt, or washer mounted on the bed.
528
+ *
529
+ * G425 uses the probe to touch the top and sides of the calibration object
530
+ * on the bed and measures and/or correct positional offsets, axis backlash
531
+ * and hotend offsets.
532
+ *
533
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
534
+ *       ±5mm of true values for G425 to succeed.
535
+ */
536
+//#define CALIBRATION_GCODE
537
+#if ENABLED(CALIBRATION_GCODE)
538
+
539
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
540
+
541
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
542
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
543
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
544
+
545
+  // The following parameters refer to the conical section of the nozzle tip.
546
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
547
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
548
+
549
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
550
+  //#define CALIBRATION_REPORTING
551
+
552
+  // The true location and dimension the cube/bolt/washer on the bed.
553
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
554
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
555
+
556
+  // Comment out any sides which are unreachable by the probe. For best
557
+  // auto-calibration results, all sides must be reachable.
558
+  #define CALIBRATION_MEASURE_RIGHT
559
+  #define CALIBRATION_MEASURE_FRONT
560
+  #define CALIBRATION_MEASURE_LEFT
561
+  #define CALIBRATION_MEASURE_BACK
562
+
563
+  // Probing at the exact top center only works if the center is flat. If
564
+  // probing on a screwhead or hollow washer, probe near the edges.
565
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
566
+
567
+  // Define pin which is read during calibration
568
+  #ifndef CALIBRATION_PIN
569
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
570
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
571
+    //#define CALIBRATION_PIN_PULLDOWN
572
+    #define CALIBRATION_PIN_PULLUP
573
+  #endif
574
+#endif
575
+
576
+/**
524 577
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
525 578
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
526 579
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/Formbot/Raptor/Configuration_adv.h View File

@@ -521,6 +521,59 @@
521 521
 #endif
522 522
 
523 523
 /**
524
+ * Automatic backlash, position and hotend offset calibration
525
+ *
526
+ * Enable G425 to run automatic calibration using an electrically-
527
+ * conductive cube, bolt, or washer mounted on the bed.
528
+ *
529
+ * G425 uses the probe to touch the top and sides of the calibration object
530
+ * on the bed and measures and/or correct positional offsets, axis backlash
531
+ * and hotend offsets.
532
+ *
533
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
534
+ *       ±5mm of true values for G425 to succeed.
535
+ */
536
+//#define CALIBRATION_GCODE
537
+#if ENABLED(CALIBRATION_GCODE)
538
+
539
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
540
+
541
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
542
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
543
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
544
+
545
+  // The following parameters refer to the conical section of the nozzle tip.
546
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
547
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
548
+
549
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
550
+  //#define CALIBRATION_REPORTING
551
+
552
+  // The true location and dimension the cube/bolt/washer on the bed.
553
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
554
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
555
+
556
+  // Comment out any sides which are unreachable by the probe. For best
557
+  // auto-calibration results, all sides must be reachable.
558
+  #define CALIBRATION_MEASURE_RIGHT
559
+  #define CALIBRATION_MEASURE_FRONT
560
+  #define CALIBRATION_MEASURE_LEFT
561
+  #define CALIBRATION_MEASURE_BACK
562
+
563
+  // Probing at the exact top center only works if the center is flat. If
564
+  // probing on a screwhead or hollow washer, probe near the edges.
565
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
566
+
567
+  // Define pin which is read during calibration
568
+  #ifndef CALIBRATION_PIN
569
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
570
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
571
+    //#define CALIBRATION_PIN_PULLDOWN
572
+    #define CALIBRATION_PIN_PULLUP
573
+  #endif
574
+#endif
575
+
576
+/**
524 577
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
525 578
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
526 579
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/Formbot/T_Rex_2+/Configuration_adv.h View File

@@ -525,6 +525,59 @@
525 525
 #endif
526 526
 
527 527
 /**
528
+ * Automatic backlash, position and hotend offset calibration
529
+ *
530
+ * Enable G425 to run automatic calibration using an electrically-
531
+ * conductive cube, bolt, or washer mounted on the bed.
532
+ *
533
+ * G425 uses the probe to touch the top and sides of the calibration object
534
+ * on the bed and measures and/or correct positional offsets, axis backlash
535
+ * and hotend offsets.
536
+ *
537
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
538
+ *       ±5mm of true values for G425 to succeed.
539
+ */
540
+//#define CALIBRATION_GCODE
541
+#if ENABLED(CALIBRATION_GCODE)
542
+
543
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
544
+
545
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
546
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
547
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
548
+
549
+  // The following parameters refer to the conical section of the nozzle tip.
550
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
551
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
552
+
553
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
554
+  //#define CALIBRATION_REPORTING
555
+
556
+  // The true location and dimension the cube/bolt/washer on the bed.
557
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
558
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
559
+
560
+  // Comment out any sides which are unreachable by the probe. For best
561
+  // auto-calibration results, all sides must be reachable.
562
+  #define CALIBRATION_MEASURE_RIGHT
563
+  #define CALIBRATION_MEASURE_FRONT
564
+  #define CALIBRATION_MEASURE_LEFT
565
+  #define CALIBRATION_MEASURE_BACK
566
+
567
+  // Probing at the exact top center only works if the center is flat. If
568
+  // probing on a screwhead or hollow washer, probe near the edges.
569
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
570
+
571
+  // Define pin which is read during calibration
572
+  #ifndef CALIBRATION_PIN
573
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
574
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
575
+    //#define CALIBRATION_PIN_PULLDOWN
576
+    #define CALIBRATION_PIN_PULLUP
577
+  #endif
578
+#endif
579
+
580
+/**
528 581
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
529 582
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
530 583
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/Formbot/T_Rex_3/Configuration_adv.h View File

@@ -526,6 +526,59 @@
526 526
 #endif
527 527
 
528 528
 /**
529
+ * Automatic backlash, position and hotend offset calibration
530
+ *
531
+ * Enable G425 to run automatic calibration using an electrically-
532
+ * conductive cube, bolt, or washer mounted on the bed.
533
+ *
534
+ * G425 uses the probe to touch the top and sides of the calibration object
535
+ * on the bed and measures and/or correct positional offsets, axis backlash
536
+ * and hotend offsets.
537
+ *
538
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
539
+ *       ±5mm of true values for G425 to succeed.
540
+ */
541
+//#define CALIBRATION_GCODE
542
+#if ENABLED(CALIBRATION_GCODE)
543
+
544
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
545
+
546
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
547
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
548
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
549
+
550
+  // The following parameters refer to the conical section of the nozzle tip.
551
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
552
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
553
+
554
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
555
+  //#define CALIBRATION_REPORTING
556
+
557
+  // The true location and dimension the cube/bolt/washer on the bed.
558
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
559
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
560
+
561
+  // Comment out any sides which are unreachable by the probe. For best
562
+  // auto-calibration results, all sides must be reachable.
563
+  #define CALIBRATION_MEASURE_RIGHT
564
+  #define CALIBRATION_MEASURE_FRONT
565
+  #define CALIBRATION_MEASURE_LEFT
566
+  #define CALIBRATION_MEASURE_BACK
567
+
568
+  // Probing at the exact top center only works if the center is flat. If
569
+  // probing on a screwhead or hollow washer, probe near the edges.
570
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
571
+
572
+  // Define pin which is read during calibration
573
+  #ifndef CALIBRATION_PIN
574
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
575
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
576
+    //#define CALIBRATION_PIN_PULLDOWN
577
+    #define CALIBRATION_PIN_PULLUP
578
+  #endif
579
+#endif
580
+
581
+/**
529 582
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
530 583
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
531 584
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/Geeetech/MeCreator2/Configuration_adv.h View File

@@ -521,6 +521,59 @@
521 521
 #endif
522 522
 
523 523
 /**
524
+ * Automatic backlash, position and hotend offset calibration
525
+ *
526
+ * Enable G425 to run automatic calibration using an electrically-
527
+ * conductive cube, bolt, or washer mounted on the bed.
528
+ *
529
+ * G425 uses the probe to touch the top and sides of the calibration object
530
+ * on the bed and measures and/or correct positional offsets, axis backlash
531
+ * and hotend offsets.
532
+ *
533
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
534
+ *       ±5mm of true values for G425 to succeed.
535
+ */
536
+//#define CALIBRATION_GCODE
537
+#if ENABLED(CALIBRATION_GCODE)
538
+
539
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
540
+
541
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
542
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
543
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
544
+
545
+  // The following parameters refer to the conical section of the nozzle tip.
546
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
547
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
548
+
549
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
550
+  //#define CALIBRATION_REPORTING
551
+
552
+  // The true location and dimension the cube/bolt/washer on the bed.
553
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
554
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
555
+
556
+  // Comment out any sides which are unreachable by the probe. For best
557
+  // auto-calibration results, all sides must be reachable.
558
+  #define CALIBRATION_MEASURE_RIGHT
559
+  #define CALIBRATION_MEASURE_FRONT
560
+  #define CALIBRATION_MEASURE_LEFT
561
+  #define CALIBRATION_MEASURE_BACK
562
+
563
+  // Probing at the exact top center only works if the center is flat. If
564
+  // probing on a screwhead or hollow washer, probe near the edges.
565
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
566
+
567
+  // Define pin which is read during calibration
568
+  #ifndef CALIBRATION_PIN
569
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
570
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
571
+    //#define CALIBRATION_PIN_PULLDOWN
572
+    #define CALIBRATION_PIN_PULLUP
573
+  #endif
574
+#endif
575
+
576
+/**
524 577
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
525 578
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
526 579
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/Geeetech/Prusa i3 Pro C/Configuration_adv.h View File

@@ -521,6 +521,59 @@
521 521
 #endif
522 522
 
523 523
 /**
524
+ * Automatic backlash, position and hotend offset calibration
525
+ *
526
+ * Enable G425 to run automatic calibration using an electrically-
527
+ * conductive cube, bolt, or washer mounted on the bed.
528
+ *
529
+ * G425 uses the probe to touch the top and sides of the calibration object
530
+ * on the bed and measures and/or correct positional offsets, axis backlash
531
+ * and hotend offsets.
532
+ *
533
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
534
+ *       ±5mm of true values for G425 to succeed.
535
+ */
536
+//#define CALIBRATION_GCODE
537
+#if ENABLED(CALIBRATION_GCODE)
538
+
539
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
540
+
541
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
542
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
543
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
544
+
545
+  // The following parameters refer to the conical section of the nozzle tip.
546
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
547
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
548
+
549
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
550
+  //#define CALIBRATION_REPORTING
551
+
552
+  // The true location and dimension the cube/bolt/washer on the bed.
553
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
554
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
555
+
556
+  // Comment out any sides which are unreachable by the probe. For best
557
+  // auto-calibration results, all sides must be reachable.
558
+  #define CALIBRATION_MEASURE_RIGHT
559
+  #define CALIBRATION_MEASURE_FRONT
560
+  #define CALIBRATION_MEASURE_LEFT
561
+  #define CALIBRATION_MEASURE_BACK
562
+
563
+  // Probing at the exact top center only works if the center is flat. If
564
+  // probing on a screwhead or hollow washer, probe near the edges.
565
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
566
+
567
+  // Define pin which is read during calibration
568
+  #ifndef CALIBRATION_PIN
569
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
570
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
571
+    //#define CALIBRATION_PIN_PULLDOWN
572
+    #define CALIBRATION_PIN_PULLUP
573
+  #endif
574
+#endif
575
+
576
+/**
524 577
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
525 578
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
526 579
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/Geeetech/Prusa i3 Pro W/Configuration_adv.h View File

@@ -521,6 +521,59 @@
521 521
 #endif
522 522
 
523 523
 /**
524
+ * Automatic backlash, position and hotend offset calibration
525
+ *
526
+ * Enable G425 to run automatic calibration using an electrically-
527
+ * conductive cube, bolt, or washer mounted on the bed.
528
+ *
529
+ * G425 uses the probe to touch the top and sides of the calibration object
530
+ * on the bed and measures and/or correct positional offsets, axis backlash
531
+ * and hotend offsets.
532
+ *
533
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
534
+ *       ±5mm of true values for G425 to succeed.
535
+ */
536
+//#define CALIBRATION_GCODE
537
+#if ENABLED(CALIBRATION_GCODE)
538
+
539
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
540
+
541
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
542
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
543
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
544
+
545
+  // The following parameters refer to the conical section of the nozzle tip.
546
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
547
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
548
+
549
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
550
+  //#define CALIBRATION_REPORTING
551
+
552
+  // The true location and dimension the cube/bolt/washer on the bed.
553
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
554
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
555
+
556
+  // Comment out any sides which are unreachable by the probe. For best
557
+  // auto-calibration results, all sides must be reachable.
558
+  #define CALIBRATION_MEASURE_RIGHT
559
+  #define CALIBRATION_MEASURE_FRONT
560
+  #define CALIBRATION_MEASURE_LEFT
561
+  #define CALIBRATION_MEASURE_BACK
562
+
563
+  // Probing at the exact top center only works if the center is flat. If
564
+  // probing on a screwhead or hollow washer, probe near the edges.
565
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
566
+
567
+  // Define pin which is read during calibration
568
+  #ifndef CALIBRATION_PIN
569
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
570
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
571
+    //#define CALIBRATION_PIN_PULLDOWN
572
+    #define CALIBRATION_PIN_PULLUP
573
+  #endif
574
+#endif
575
+
576
+/**
524 577
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
525 578
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
526 579
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/Infitary/i3-M508/Configuration_adv.h View File

@@ -521,6 +521,59 @@
521 521
 #endif
522 522
 
523 523
 /**
524
+ * Automatic backlash, position and hotend offset calibration
525
+ *
526
+ * Enable G425 to run automatic calibration using an electrically-
527
+ * conductive cube, bolt, or washer mounted on the bed.
528
+ *
529
+ * G425 uses the probe to touch the top and sides of the calibration object
530
+ * on the bed and measures and/or correct positional offsets, axis backlash
531
+ * and hotend offsets.
532
+ *
533
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
534
+ *       ±5mm of true values for G425 to succeed.
535
+ */
536
+//#define CALIBRATION_GCODE
537
+#if ENABLED(CALIBRATION_GCODE)
538
+
539
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
540
+
541
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
542
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
543
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
544
+
545
+  // The following parameters refer to the conical section of the nozzle tip.
546
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
547
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
548
+
549
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
550
+  //#define CALIBRATION_REPORTING
551
+
552
+  // The true location and dimension the cube/bolt/washer on the bed.
553
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
554
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
555
+
556
+  // Comment out any sides which are unreachable by the probe. For best
557
+  // auto-calibration results, all sides must be reachable.
558
+  #define CALIBRATION_MEASURE_RIGHT
559
+  #define CALIBRATION_MEASURE_FRONT
560
+  #define CALIBRATION_MEASURE_LEFT
561
+  #define CALIBRATION_MEASURE_BACK
562
+
563
+  // Probing at the exact top center only works if the center is flat. If
564
+  // probing on a screwhead or hollow washer, probe near the edges.
565
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
566
+
567
+  // Define pin which is read during calibration
568
+  #ifndef CALIBRATION_PIN
569
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
570
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
571
+    //#define CALIBRATION_PIN_PULLDOWN
572
+    #define CALIBRATION_PIN_PULLUP
573
+  #endif
574
+#endif
575
+
576
+/**
524 577
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
525 578
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
526 579
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/JGAurora/A5/Configuration_adv.h View File

@@ -521,6 +521,59 @@
521 521
 #endif
522 522
 
523 523
 /**
524
+ * Automatic backlash, position and hotend offset calibration
525
+ *
526
+ * Enable G425 to run automatic calibration using an electrically-
527
+ * conductive cube, bolt, or washer mounted on the bed.
528
+ *
529
+ * G425 uses the probe to touch the top and sides of the calibration object
530
+ * on the bed and measures and/or correct positional offsets, axis backlash
531
+ * and hotend offsets.
532
+ *
533
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
534
+ *       ±5mm of true values for G425 to succeed.
535
+ */
536
+//#define CALIBRATION_GCODE
537
+#if ENABLED(CALIBRATION_GCODE)
538
+
539
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
540
+
541
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
542
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
543
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
544
+
545
+  // The following parameters refer to the conical section of the nozzle tip.
546
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
547
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
548
+
549
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
550
+  //#define CALIBRATION_REPORTING
551
+
552
+  // The true location and dimension the cube/bolt/washer on the bed.
553
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
554
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
555
+
556
+  // Comment out any sides which are unreachable by the probe. For best
557
+  // auto-calibration results, all sides must be reachable.
558
+  #define CALIBRATION_MEASURE_RIGHT
559
+  #define CALIBRATION_MEASURE_FRONT
560
+  #define CALIBRATION_MEASURE_LEFT
561
+  #define CALIBRATION_MEASURE_BACK
562
+
563
+  // Probing at the exact top center only works if the center is flat. If
564
+  // probing on a screwhead or hollow washer, probe near the edges.
565
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
566
+
567
+  // Define pin which is read during calibration
568
+  #ifndef CALIBRATION_PIN
569
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
570
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
571
+    //#define CALIBRATION_PIN_PULLDOWN
572
+    #define CALIBRATION_PIN_PULLUP
573
+  #endif
574
+#endif
575
+
576
+/**
524 577
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
525 578
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
526 579
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/MakerParts/Configuration_adv.h View File

@@ -521,6 +521,59 @@
521 521
 #endif
522 522
 
523 523
 /**
524
+ * Automatic backlash, position and hotend offset calibration
525
+ *
526
+ * Enable G425 to run automatic calibration using an electrically-
527
+ * conductive cube, bolt, or washer mounted on the bed.
528
+ *
529
+ * G425 uses the probe to touch the top and sides of the calibration object
530
+ * on the bed and measures and/or correct positional offsets, axis backlash
531
+ * and hotend offsets.
532
+ *
533
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
534
+ *       ±5mm of true values for G425 to succeed.
535
+ */
536
+//#define CALIBRATION_GCODE
537
+#if ENABLED(CALIBRATION_GCODE)
538
+
539
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
540
+
541
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
542
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
543
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
544
+
545
+  // The following parameters refer to the conical section of the nozzle tip.
546
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
547
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
548
+
549
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
550
+  //#define CALIBRATION_REPORTING
551
+
552
+  // The true location and dimension the cube/bolt/washer on the bed.
553
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
554
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
555
+
556
+  // Comment out any sides which are unreachable by the probe. For best
557
+  // auto-calibration results, all sides must be reachable.
558
+  #define CALIBRATION_MEASURE_RIGHT
559
+  #define CALIBRATION_MEASURE_FRONT
560
+  #define CALIBRATION_MEASURE_LEFT
561
+  #define CALIBRATION_MEASURE_BACK
562
+
563
+  // Probing at the exact top center only works if the center is flat. If
564
+  // probing on a screwhead or hollow washer, probe near the edges.
565
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
566
+
567
+  // Define pin which is read during calibration
568
+  #ifndef CALIBRATION_PIN
569
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
570
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
571
+    //#define CALIBRATION_PIN_PULLDOWN
572
+    #define CALIBRATION_PIN_PULLUP
573
+  #endif
574
+#endif
575
+
576
+/**
524 577
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
525 578
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
526 579
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/Malyan/M150/Configuration_adv.h View File

@@ -521,6 +521,59 @@
521 521
 #endif
522 522
 
523 523
 /**
524
+ * Automatic backlash, position and hotend offset calibration
525
+ *
526
+ * Enable G425 to run automatic calibration using an electrically-
527
+ * conductive cube, bolt, or washer mounted on the bed.
528
+ *
529
+ * G425 uses the probe to touch the top and sides of the calibration object
530
+ * on the bed and measures and/or correct positional offsets, axis backlash
531
+ * and hotend offsets.
532
+ *
533
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
534
+ *       ±5mm of true values for G425 to succeed.
535
+ */
536
+//#define CALIBRATION_GCODE
537
+#if ENABLED(CALIBRATION_GCODE)
538
+
539
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
540
+
541
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
542
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
543
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
544
+
545
+  // The following parameters refer to the conical section of the nozzle tip.
546
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
547
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
548
+
549
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
550
+  //#define CALIBRATION_REPORTING
551
+
552
+  // The true location and dimension the cube/bolt/washer on the bed.
553
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
554
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
555
+
556
+  // Comment out any sides which are unreachable by the probe. For best
557
+  // auto-calibration results, all sides must be reachable.
558
+  #define CALIBRATION_MEASURE_RIGHT
559
+  #define CALIBRATION_MEASURE_FRONT
560
+  #define CALIBRATION_MEASURE_LEFT
561
+  #define CALIBRATION_MEASURE_BACK
562
+
563
+  // Probing at the exact top center only works if the center is flat. If
564
+  // probing on a screwhead or hollow washer, probe near the edges.
565
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
566
+
567
+  // Define pin which is read during calibration
568
+  #ifndef CALIBRATION_PIN
569
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
570
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
571
+    //#define CALIBRATION_PIN_PULLDOWN
572
+    #define CALIBRATION_PIN_PULLUP
573
+  #endif
574
+#endif
575
+
576
+/**
524 577
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
525 578
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
526 579
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/Malyan/M200/Configuration_adv.h View File

@@ -521,6 +521,59 @@
521 521
 #endif
522 522
 
523 523
 /**
524
+ * Automatic backlash, position and hotend offset calibration
525
+ *
526
+ * Enable G425 to run automatic calibration using an electrically-
527
+ * conductive cube, bolt, or washer mounted on the bed.
528
+ *
529
+ * G425 uses the probe to touch the top and sides of the calibration object
530
+ * on the bed and measures and/or correct positional offsets, axis backlash
531
+ * and hotend offsets.
532
+ *
533
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
534
+ *       ±5mm of true values for G425 to succeed.
535
+ */
536
+//#define CALIBRATION_GCODE
537
+#if ENABLED(CALIBRATION_GCODE)
538
+
539
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
540
+
541
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
542
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
543
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
544
+
545
+  // The following parameters refer to the conical section of the nozzle tip.
546
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
547
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
548
+
549
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
550
+  //#define CALIBRATION_REPORTING
551
+
552
+  // The true location and dimension the cube/bolt/washer on the bed.
553
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
554
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
555
+
556
+  // Comment out any sides which are unreachable by the probe. For best
557
+  // auto-calibration results, all sides must be reachable.
558
+  #define CALIBRATION_MEASURE_RIGHT
559
+  #define CALIBRATION_MEASURE_FRONT
560
+  #define CALIBRATION_MEASURE_LEFT
561
+  #define CALIBRATION_MEASURE_BACK
562
+
563
+  // Probing at the exact top center only works if the center is flat. If
564
+  // probing on a screwhead or hollow washer, probe near the edges.
565
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
566
+
567
+  // Define pin which is read during calibration
568
+  #ifndef CALIBRATION_PIN
569
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
570
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
571
+    //#define CALIBRATION_PIN_PULLDOWN
572
+    #define CALIBRATION_PIN_PULLUP
573
+  #endif
574
+#endif
575
+
576
+/**
524 577
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
525 578
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
526 579
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/Micromake/C1/enhanced/Configuration_adv.h View File

@@ -521,6 +521,59 @@
521 521
 #endif
522 522
 
523 523
 /**
524
+ * Automatic backlash, position and hotend offset calibration
525
+ *
526
+ * Enable G425 to run automatic calibration using an electrically-
527
+ * conductive cube, bolt, or washer mounted on the bed.
528
+ *
529
+ * G425 uses the probe to touch the top and sides of the calibration object
530
+ * on the bed and measures and/or correct positional offsets, axis backlash
531
+ * and hotend offsets.
532
+ *
533
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
534
+ *       ±5mm of true values for G425 to succeed.
535
+ */
536
+//#define CALIBRATION_GCODE
537
+#if ENABLED(CALIBRATION_GCODE)
538
+
539
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
540
+
541
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
542
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
543
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
544
+
545
+  // The following parameters refer to the conical section of the nozzle tip.
546
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
547
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
548
+
549
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
550
+  //#define CALIBRATION_REPORTING
551
+
552
+  // The true location and dimension the cube/bolt/washer on the bed.
553
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
554
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
555
+
556
+  // Comment out any sides which are unreachable by the probe. For best
557
+  // auto-calibration results, all sides must be reachable.
558
+  #define CALIBRATION_MEASURE_RIGHT
559
+  #define CALIBRATION_MEASURE_FRONT
560
+  #define CALIBRATION_MEASURE_LEFT
561
+  #define CALIBRATION_MEASURE_BACK
562
+
563
+  // Probing at the exact top center only works if the center is flat. If
564
+  // probing on a screwhead or hollow washer, probe near the edges.
565
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
566
+
567
+  // Define pin which is read during calibration
568
+  #ifndef CALIBRATION_PIN
569
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
570
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
571
+    //#define CALIBRATION_PIN_PULLDOWN
572
+    #define CALIBRATION_PIN_PULLUP
573
+  #endif
574
+#endif
575
+
576
+/**
524 577
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
525 578
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
526 579
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/Mks/Robin/Configuration_adv.h View File

@@ -521,6 +521,59 @@
521 521
 #endif
522 522
 
523 523
 /**
524
+ * Automatic backlash, position and hotend offset calibration
525
+ *
526
+ * Enable G425 to run automatic calibration using an electrically-
527
+ * conductive cube, bolt, or washer mounted on the bed.
528
+ *
529
+ * G425 uses the probe to touch the top and sides of the calibration object
530
+ * on the bed and measures and/or correct positional offsets, axis backlash
531
+ * and hotend offsets.
532
+ *
533
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
534
+ *       ±5mm of true values for G425 to succeed.
535
+ */
536
+//#define CALIBRATION_GCODE
537
+#if ENABLED(CALIBRATION_GCODE)
538
+
539
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
540
+
541
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
542
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
543
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
544
+
545
+  // The following parameters refer to the conical section of the nozzle tip.
546
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
547
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
548
+
549
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
550
+  //#define CALIBRATION_REPORTING
551
+
552
+  // The true location and dimension the cube/bolt/washer on the bed.
553
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
554
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
555
+
556
+  // Comment out any sides which are unreachable by the probe. For best
557
+  // auto-calibration results, all sides must be reachable.
558
+  #define CALIBRATION_MEASURE_RIGHT
559
+  #define CALIBRATION_MEASURE_FRONT
560
+  #define CALIBRATION_MEASURE_LEFT
561
+  #define CALIBRATION_MEASURE_BACK
562
+
563
+  // Probing at the exact top center only works if the center is flat. If
564
+  // probing on a screwhead or hollow washer, probe near the edges.
565
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
566
+
567
+  // Define pin which is read during calibration
568
+  #ifndef CALIBRATION_PIN
569
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
570
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
571
+    //#define CALIBRATION_PIN_PULLDOWN
572
+    #define CALIBRATION_PIN_PULLUP
573
+  #endif
574
+#endif
575
+
576
+/**
524 577
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
525 578
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
526 579
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/Mks/Sbase/Configuration_adv.h View File

@@ -521,6 +521,59 @@
521 521
 #endif
522 522
 
523 523
 /**
524
+ * Automatic backlash, position and hotend offset calibration
525
+ *
526
+ * Enable G425 to run automatic calibration using an electrically-
527
+ * conductive cube, bolt, or washer mounted on the bed.
528
+ *
529
+ * G425 uses the probe to touch the top and sides of the calibration object
530
+ * on the bed and measures and/or correct positional offsets, axis backlash
531
+ * and hotend offsets.
532
+ *
533
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
534
+ *       ±5mm of true values for G425 to succeed.
535
+ */
536
+//#define CALIBRATION_GCODE
537
+#if ENABLED(CALIBRATION_GCODE)
538
+
539
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
540
+
541
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
542
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
543
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
544
+
545
+  // The following parameters refer to the conical section of the nozzle tip.
546
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
547
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
548
+
549
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
550
+  //#define CALIBRATION_REPORTING
551
+
552
+  // The true location and dimension the cube/bolt/washer on the bed.
553
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
554
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
555
+
556
+  // Comment out any sides which are unreachable by the probe. For best
557
+  // auto-calibration results, all sides must be reachable.
558
+  #define CALIBRATION_MEASURE_RIGHT
559
+  #define CALIBRATION_MEASURE_FRONT
560
+  #define CALIBRATION_MEASURE_LEFT
561
+  #define CALIBRATION_MEASURE_BACK
562
+
563
+  // Probing at the exact top center only works if the center is flat. If
564
+  // probing on a screwhead or hollow washer, probe near the edges.
565
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
566
+
567
+  // Define pin which is read during calibration
568
+  #ifndef CALIBRATION_PIN
569
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
570
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
571
+    //#define CALIBRATION_PIN_PULLDOWN
572
+    #define CALIBRATION_PIN_PULLUP
573
+  #endif
574
+#endif
575
+
576
+/**
524 577
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
525 578
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
526 579
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/RapideLite/RL200/Configuration_adv.h View File

@@ -521,6 +521,59 @@
521 521
 #endif
522 522
 
523 523
 /**
524
+ * Automatic backlash, position and hotend offset calibration
525
+ *
526
+ * Enable G425 to run automatic calibration using an electrically-
527
+ * conductive cube, bolt, or washer mounted on the bed.
528
+ *
529
+ * G425 uses the probe to touch the top and sides of the calibration object
530
+ * on the bed and measures and/or correct positional offsets, axis backlash
531
+ * and hotend offsets.
532
+ *
533
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
534
+ *       ±5mm of true values for G425 to succeed.
535
+ */
536
+//#define CALIBRATION_GCODE
537
+#if ENABLED(CALIBRATION_GCODE)
538
+
539
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
540
+
541
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
542
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
543
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
544
+
545
+  // The following parameters refer to the conical section of the nozzle tip.
546
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
547
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
548
+
549
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
550
+  //#define CALIBRATION_REPORTING
551
+
552
+  // The true location and dimension the cube/bolt/washer on the bed.
553
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
554
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
555
+
556
+  // Comment out any sides which are unreachable by the probe. For best
557
+  // auto-calibration results, all sides must be reachable.
558
+  #define CALIBRATION_MEASURE_RIGHT
559
+  #define CALIBRATION_MEASURE_FRONT
560
+  #define CALIBRATION_MEASURE_LEFT
561
+  #define CALIBRATION_MEASURE_BACK
562
+
563
+  // Probing at the exact top center only works if the center is flat. If
564
+  // probing on a screwhead or hollow washer, probe near the edges.
565
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
566
+
567
+  // Define pin which is read during calibration
568
+  #ifndef CALIBRATION_PIN
569
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
570
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
571
+    //#define CALIBRATION_PIN_PULLDOWN
572
+    #define CALIBRATION_PIN_PULLUP
573
+  #endif
574
+#endif
575
+
576
+/**
524 577
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
525 578
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
526 579
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/RigidBot/Configuration_adv.h View File

@@ -521,6 +521,59 @@
521 521
 #endif
522 522
 
523 523
 /**
524
+ * Automatic backlash, position and hotend offset calibration
525
+ *
526
+ * Enable G425 to run automatic calibration using an electrically-
527
+ * conductive cube, bolt, or washer mounted on the bed.
528
+ *
529
+ * G425 uses the probe to touch the top and sides of the calibration object
530
+ * on the bed and measures and/or correct positional offsets, axis backlash
531
+ * and hotend offsets.
532
+ *
533
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
534
+ *       ±5mm of true values for G425 to succeed.
535
+ */
536
+//#define CALIBRATION_GCODE
537
+#if ENABLED(CALIBRATION_GCODE)
538
+
539
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
540
+
541
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
542
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
543
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
544
+
545
+  // The following parameters refer to the conical section of the nozzle tip.
546
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
547
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
548
+
549
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
550
+  //#define CALIBRATION_REPORTING
551
+
552
+  // The true location and dimension the cube/bolt/washer on the bed.
553
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
554
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
555
+
556
+  // Comment out any sides which are unreachable by the probe. For best
557
+  // auto-calibration results, all sides must be reachable.
558
+  #define CALIBRATION_MEASURE_RIGHT
559
+  #define CALIBRATION_MEASURE_FRONT
560
+  #define CALIBRATION_MEASURE_LEFT
561
+  #define CALIBRATION_MEASURE_BACK
562
+
563
+  // Probing at the exact top center only works if the center is flat. If
564
+  // probing on a screwhead or hollow washer, probe near the edges.
565
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
566
+
567
+  // Define pin which is read during calibration
568
+  #ifndef CALIBRATION_PIN
569
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
570
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
571
+    //#define CALIBRATION_PIN_PULLDOWN
572
+    #define CALIBRATION_PIN_PULLUP
573
+  #endif
574
+#endif
575
+
576
+/**
524 577
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
525 578
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
526 579
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/SCARA/Configuration_adv.h View File

@@ -521,6 +521,59 @@
521 521
 #endif
522 522
 
523 523
 /**
524
+ * Automatic backlash, position and hotend offset calibration
525
+ *
526
+ * Enable G425 to run automatic calibration using an electrically-
527
+ * conductive cube, bolt, or washer mounted on the bed.
528
+ *
529
+ * G425 uses the probe to touch the top and sides of the calibration object
530
+ * on the bed and measures and/or correct positional offsets, axis backlash
531
+ * and hotend offsets.
532
+ *
533
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
534
+ *       ±5mm of true values for G425 to succeed.
535
+ */
536
+//#define CALIBRATION_GCODE
537
+#if ENABLED(CALIBRATION_GCODE)
538
+
539
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
540
+
541
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
542
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
543
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
544
+
545
+  // The following parameters refer to the conical section of the nozzle tip.
546
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
547
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
548
+
549
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
550
+  //#define CALIBRATION_REPORTING
551
+
552
+  // The true location and dimension the cube/bolt/washer on the bed.
553
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
554
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
555
+
556
+  // Comment out any sides which are unreachable by the probe. For best
557
+  // auto-calibration results, all sides must be reachable.
558
+  #define CALIBRATION_MEASURE_RIGHT
559
+  #define CALIBRATION_MEASURE_FRONT
560
+  #define CALIBRATION_MEASURE_LEFT
561
+  #define CALIBRATION_MEASURE_BACK
562
+
563
+  // Probing at the exact top center only works if the center is flat. If
564
+  // probing on a screwhead or hollow washer, probe near the edges.
565
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
566
+
567
+  // Define pin which is read during calibration
568
+  #ifndef CALIBRATION_PIN
569
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
570
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
571
+    //#define CALIBRATION_PIN_PULLDOWN
572
+    #define CALIBRATION_PIN_PULLUP
573
+  #endif
574
+#endif
575
+
576
+/**
524 577
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
525 578
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
526 579
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/Sanguinololu/Configuration_adv.h View File

@@ -521,6 +521,59 @@
521 521
 #endif
522 522
 
523 523
 /**
524
+ * Automatic backlash, position and hotend offset calibration
525
+ *
526
+ * Enable G425 to run automatic calibration using an electrically-
527
+ * conductive cube, bolt, or washer mounted on the bed.
528
+ *
529
+ * G425 uses the probe to touch the top and sides of the calibration object
530
+ * on the bed and measures and/or correct positional offsets, axis backlash
531
+ * and hotend offsets.
532
+ *
533
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
534
+ *       ±5mm of true values for G425 to succeed.
535
+ */
536
+//#define CALIBRATION_GCODE
537
+#if ENABLED(CALIBRATION_GCODE)
538
+
539
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
540
+
541
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
542
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
543
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
544
+
545
+  // The following parameters refer to the conical section of the nozzle tip.
546
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
547
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
548
+
549
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
550
+  //#define CALIBRATION_REPORTING
551
+
552
+  // The true location and dimension the cube/bolt/washer on the bed.
553
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
554
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
555
+
556
+  // Comment out any sides which are unreachable by the probe. For best
557
+  // auto-calibration results, all sides must be reachable.
558
+  #define CALIBRATION_MEASURE_RIGHT
559
+  #define CALIBRATION_MEASURE_FRONT
560
+  #define CALIBRATION_MEASURE_LEFT
561
+  #define CALIBRATION_MEASURE_BACK
562
+
563
+  // Probing at the exact top center only works if the center is flat. If
564
+  // probing on a screwhead or hollow washer, probe near the edges.
565
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
566
+
567
+  // Define pin which is read during calibration
568
+  #ifndef CALIBRATION_PIN
569
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
570
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
571
+    //#define CALIBRATION_PIN_PULLDOWN
572
+    #define CALIBRATION_PIN_PULLUP
573
+  #endif
574
+#endif
575
+
576
+/**
524 577
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
525 578
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
526 579
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/TheBorg/Configuration_adv.h View File

@@ -521,6 +521,59 @@
521 521
 #endif
522 522
 
523 523
 /**
524
+ * Automatic backlash, position and hotend offset calibration
525
+ *
526
+ * Enable G425 to run automatic calibration using an electrically-
527
+ * conductive cube, bolt, or washer mounted on the bed.
528
+ *
529
+ * G425 uses the probe to touch the top and sides of the calibration object
530
+ * on the bed and measures and/or correct positional offsets, axis backlash
531
+ * and hotend offsets.
532
+ *
533
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
534
+ *       ±5mm of true values for G425 to succeed.
535
+ */
536
+//#define CALIBRATION_GCODE
537
+#if ENABLED(CALIBRATION_GCODE)
538
+
539
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
540
+
541
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
542
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
543
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
544
+
545
+  // The following parameters refer to the conical section of the nozzle tip.
546
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
547
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
548
+
549
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
550
+  //#define CALIBRATION_REPORTING
551
+
552
+  // The true location and dimension the cube/bolt/washer on the bed.
553
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
554
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
555
+
556
+  // Comment out any sides which are unreachable by the probe. For best
557
+  // auto-calibration results, all sides must be reachable.
558
+  #define CALIBRATION_MEASURE_RIGHT
559
+  #define CALIBRATION_MEASURE_FRONT
560
+  #define CALIBRATION_MEASURE_LEFT
561
+  #define CALIBRATION_MEASURE_BACK
562
+
563
+  // Probing at the exact top center only works if the center is flat. If
564
+  // probing on a screwhead or hollow washer, probe near the edges.
565
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
566
+
567
+  // Define pin which is read during calibration
568
+  #ifndef CALIBRATION_PIN
569
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
570
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
571
+    //#define CALIBRATION_PIN_PULLDOWN
572
+    #define CALIBRATION_PIN_PULLUP
573
+  #endif
574
+#endif
575
+
576
+/**
524 577
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
525 578
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
526 579
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/TinyBoy2/Configuration_adv.h View File

@@ -521,6 +521,59 @@
521 521
 #endif
522 522
 
523 523
 /**
524
+ * Automatic backlash, position and hotend offset calibration
525
+ *
526
+ * Enable G425 to run automatic calibration using an electrically-
527
+ * conductive cube, bolt, or washer mounted on the bed.
528
+ *
529
+ * G425 uses the probe to touch the top and sides of the calibration object
530
+ * on the bed and measures and/or correct positional offsets, axis backlash
531
+ * and hotend offsets.
532
+ *
533
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
534
+ *       ±5mm of true values for G425 to succeed.
535
+ */
536
+//#define CALIBRATION_GCODE
537
+#if ENABLED(CALIBRATION_GCODE)
538
+
539
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
540
+
541
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
542
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
543
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
544
+
545
+  // The following parameters refer to the conical section of the nozzle tip.
546
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
547
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
548
+
549
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
550
+  //#define CALIBRATION_REPORTING
551
+
552
+  // The true location and dimension the cube/bolt/washer on the bed.
553
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
554
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
555
+
556
+  // Comment out any sides which are unreachable by the probe. For best
557
+  // auto-calibration results, all sides must be reachable.
558
+  #define CALIBRATION_MEASURE_RIGHT
559
+  #define CALIBRATION_MEASURE_FRONT
560
+  #define CALIBRATION_MEASURE_LEFT
561
+  #define CALIBRATION_MEASURE_BACK
562
+
563
+  // Probing at the exact top center only works if the center is flat. If
564
+  // probing on a screwhead or hollow washer, probe near the edges.
565
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
566
+
567
+  // Define pin which is read during calibration
568
+  #ifndef CALIBRATION_PIN
569
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
570
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
571
+    //#define CALIBRATION_PIN_PULLDOWN
572
+    #define CALIBRATION_PIN_PULLUP
573
+  #endif
574
+#endif
575
+
576
+/**
524 577
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
525 578
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
526 579
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/Tronxy/X3A/Configuration_adv.h View File

@@ -521,6 +521,59 @@
521 521
 #endif
522 522
 
523 523
 /**
524
+ * Automatic backlash, position and hotend offset calibration
525
+ *
526
+ * Enable G425 to run automatic calibration using an electrically-
527
+ * conductive cube, bolt, or washer mounted on the bed.
528
+ *
529
+ * G425 uses the probe to touch the top and sides of the calibration object
530
+ * on the bed and measures and/or correct positional offsets, axis backlash
531
+ * and hotend offsets.
532
+ *
533
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
534
+ *       ±5mm of true values for G425 to succeed.
535
+ */
536
+//#define CALIBRATION_GCODE
537
+#if ENABLED(CALIBRATION_GCODE)
538
+
539
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
540
+
541
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
542
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
543
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
544
+
545
+  // The following parameters refer to the conical section of the nozzle tip.
546
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
547
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
548
+
549
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
550
+  //#define CALIBRATION_REPORTING
551
+
552
+  // The true location and dimension the cube/bolt/washer on the bed.
553
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
554
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
555
+
556
+  // Comment out any sides which are unreachable by the probe. For best
557
+  // auto-calibration results, all sides must be reachable.
558
+  #define CALIBRATION_MEASURE_RIGHT
559
+  #define CALIBRATION_MEASURE_FRONT
560
+  #define CALIBRATION_MEASURE_LEFT
561
+  #define CALIBRATION_MEASURE_BACK
562
+
563
+  // Probing at the exact top center only works if the center is flat. If
564
+  // probing on a screwhead or hollow washer, probe near the edges.
565
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
566
+
567
+  // Define pin which is read during calibration
568
+  #ifndef CALIBRATION_PIN
569
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
570
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
571
+    //#define CALIBRATION_PIN_PULLDOWN
572
+    #define CALIBRATION_PIN_PULLUP
573
+  #endif
574
+#endif
575
+
576
+/**
524 577
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
525 578
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
526 579
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/UltiMachine/Archim1/Configuration_adv.h View File

@@ -521,6 +521,59 @@
521 521
 #endif
522 522
 
523 523
 /**
524
+ * Automatic backlash, position and hotend offset calibration
525
+ *
526
+ * Enable G425 to run automatic calibration using an electrically-
527
+ * conductive cube, bolt, or washer mounted on the bed.
528
+ *
529
+ * G425 uses the probe to touch the top and sides of the calibration object
530
+ * on the bed and measures and/or correct positional offsets, axis backlash
531
+ * and hotend offsets.
532
+ *
533
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
534
+ *       ±5mm of true values for G425 to succeed.
535
+ */
536
+//#define CALIBRATION_GCODE
537
+#if ENABLED(CALIBRATION_GCODE)
538
+
539
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
540
+
541
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
542
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
543
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
544
+
545
+  // The following parameters refer to the conical section of the nozzle tip.
546
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
547
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
548
+
549
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
550
+  //#define CALIBRATION_REPORTING
551
+
552
+  // The true location and dimension the cube/bolt/washer on the bed.
553
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
554
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
555
+
556
+  // Comment out any sides which are unreachable by the probe. For best
557
+  // auto-calibration results, all sides must be reachable.
558
+  #define CALIBRATION_MEASURE_RIGHT
559
+  #define CALIBRATION_MEASURE_FRONT
560
+  #define CALIBRATION_MEASURE_LEFT
561
+  #define CALIBRATION_MEASURE_BACK
562
+
563
+  // Probing at the exact top center only works if the center is flat. If
564
+  // probing on a screwhead or hollow washer, probe near the edges.
565
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
566
+
567
+  // Define pin which is read during calibration
568
+  #ifndef CALIBRATION_PIN
569
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
570
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
571
+    //#define CALIBRATION_PIN_PULLDOWN
572
+    #define CALIBRATION_PIN_PULLUP
573
+  #endif
574
+#endif
575
+
576
+/**
524 577
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
525 578
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
526 579
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/UltiMachine/Archim2/Configuration_adv.h View File

@@ -521,6 +521,59 @@
521 521
 #endif
522 522
 
523 523
 /**
524
+ * Automatic backlash, position and hotend offset calibration
525
+ *
526
+ * Enable G425 to run automatic calibration using an electrically-
527
+ * conductive cube, bolt, or washer mounted on the bed.
528
+ *
529
+ * G425 uses the probe to touch the top and sides of the calibration object
530
+ * on the bed and measures and/or correct positional offsets, axis backlash
531
+ * and hotend offsets.
532
+ *
533
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
534
+ *       ±5mm of true values for G425 to succeed.
535
+ */
536
+//#define CALIBRATION_GCODE
537
+#if ENABLED(CALIBRATION_GCODE)
538
+
539
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
540
+
541
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
542
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
543
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
544
+
545
+  // The following parameters refer to the conical section of the nozzle tip.
546
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
547
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
548
+
549
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
550
+  //#define CALIBRATION_REPORTING
551
+
552
+  // The true location and dimension the cube/bolt/washer on the bed.
553
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
554
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
555
+
556
+  // Comment out any sides which are unreachable by the probe. For best
557
+  // auto-calibration results, all sides must be reachable.
558
+  #define CALIBRATION_MEASURE_RIGHT
559
+  #define CALIBRATION_MEASURE_FRONT
560
+  #define CALIBRATION_MEASURE_LEFT
561
+  #define CALIBRATION_MEASURE_BACK
562
+
563
+  // Probing at the exact top center only works if the center is flat. If
564
+  // probing on a screwhead or hollow washer, probe near the edges.
565
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
566
+
567
+  // Define pin which is read during calibration
568
+  #ifndef CALIBRATION_PIN
569
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
570
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
571
+    //#define CALIBRATION_PIN_PULLDOWN
572
+    #define CALIBRATION_PIN_PULLUP
573
+  #endif
574
+#endif
575
+
576
+/**
524 577
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
525 578
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
526 579
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/VORONDesign/Configuration_adv.h View File

@@ -521,6 +521,59 @@
521 521
 #endif
522 522
 
523 523
 /**
524
+ * Automatic backlash, position and hotend offset calibration
525
+ *
526
+ * Enable G425 to run automatic calibration using an electrically-
527
+ * conductive cube, bolt, or washer mounted on the bed.
528
+ *
529
+ * G425 uses the probe to touch the top and sides of the calibration object
530
+ * on the bed and measures and/or correct positional offsets, axis backlash
531
+ * and hotend offsets.
532
+ *
533
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
534
+ *       ±5mm of true values for G425 to succeed.
535
+ */
536
+//#define CALIBRATION_GCODE
537
+#if ENABLED(CALIBRATION_GCODE)
538
+
539
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
540
+
541
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
542
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
543
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
544
+
545
+  // The following parameters refer to the conical section of the nozzle tip.
546
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
547
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
548
+
549
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
550
+  //#define CALIBRATION_REPORTING
551
+
552
+  // The true location and dimension the cube/bolt/washer on the bed.
553
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
554
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
555
+
556
+  // Comment out any sides which are unreachable by the probe. For best
557
+  // auto-calibration results, all sides must be reachable.
558
+  #define CALIBRATION_MEASURE_RIGHT
559
+  #define CALIBRATION_MEASURE_FRONT
560
+  #define CALIBRATION_MEASURE_LEFT
561
+  #define CALIBRATION_MEASURE_BACK
562
+
563
+  // Probing at the exact top center only works if the center is flat. If
564
+  // probing on a screwhead or hollow washer, probe near the edges.
565
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
566
+
567
+  // Define pin which is read during calibration
568
+  #ifndef CALIBRATION_PIN
569
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
570
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
571
+    //#define CALIBRATION_PIN_PULLDOWN
572
+    #define CALIBRATION_PIN_PULLUP
573
+  #endif
574
+#endif
575
+
576
+/**
524 577
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
525 578
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
526 579
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/Velleman/K8200/Configuration_adv.h View File

@@ -534,6 +534,59 @@
534 534
 #endif
535 535
 
536 536
 /**
537
+ * Automatic backlash, position and hotend offset calibration
538
+ *
539
+ * Enable G425 to run automatic calibration using an electrically-
540
+ * conductive cube, bolt, or washer mounted on the bed.
541
+ *
542
+ * G425 uses the probe to touch the top and sides of the calibration object
543
+ * on the bed and measures and/or correct positional offsets, axis backlash
544
+ * and hotend offsets.
545
+ *
546
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
547
+ *       ±5mm of true values for G425 to succeed.
548
+ */
549
+//#define CALIBRATION_GCODE
550
+#if ENABLED(CALIBRATION_GCODE)
551
+
552
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
553
+
554
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
555
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
556
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
557
+
558
+  // The following parameters refer to the conical section of the nozzle tip.
559
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
560
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
561
+
562
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
563
+  //#define CALIBRATION_REPORTING
564
+
565
+  // The true location and dimension the cube/bolt/washer on the bed.
566
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
567
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
568
+
569
+  // Comment out any sides which are unreachable by the probe. For best
570
+  // auto-calibration results, all sides must be reachable.
571
+  #define CALIBRATION_MEASURE_RIGHT
572
+  #define CALIBRATION_MEASURE_FRONT
573
+  #define CALIBRATION_MEASURE_LEFT
574
+  #define CALIBRATION_MEASURE_BACK
575
+
576
+  // Probing at the exact top center only works if the center is flat. If
577
+  // probing on a screwhead or hollow washer, probe near the edges.
578
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
579
+
580
+  // Define pin which is read during calibration
581
+  #ifndef CALIBRATION_PIN
582
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
583
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
584
+    //#define CALIBRATION_PIN_PULLDOWN
585
+    #define CALIBRATION_PIN_PULLUP
586
+  #endif
587
+#endif
588
+
589
+/**
537 590
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
538 591
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
539 592
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/Velleman/K8400/Configuration_adv.h View File

@@ -521,6 +521,59 @@
521 521
 #endif
522 522
 
523 523
 /**
524
+ * Automatic backlash, position and hotend offset calibration
525
+ *
526
+ * Enable G425 to run automatic calibration using an electrically-
527
+ * conductive cube, bolt, or washer mounted on the bed.
528
+ *
529
+ * G425 uses the probe to touch the top and sides of the calibration object
530
+ * on the bed and measures and/or correct positional offsets, axis backlash
531
+ * and hotend offsets.
532
+ *
533
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
534
+ *       ±5mm of true values for G425 to succeed.
535
+ */
536
+//#define CALIBRATION_GCODE
537
+#if ENABLED(CALIBRATION_GCODE)
538
+
539
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
540
+
541
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
542
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
543
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
544
+
545
+  // The following parameters refer to the conical section of the nozzle tip.
546
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
547
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
548
+
549
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
550
+  //#define CALIBRATION_REPORTING
551
+
552
+  // The true location and dimension the cube/bolt/washer on the bed.
553
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
554
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
555
+
556
+  // Comment out any sides which are unreachable by the probe. For best
557
+  // auto-calibration results, all sides must be reachable.
558
+  #define CALIBRATION_MEASURE_RIGHT
559
+  #define CALIBRATION_MEASURE_FRONT
560
+  #define CALIBRATION_MEASURE_LEFT
561
+  #define CALIBRATION_MEASURE_BACK
562
+
563
+  // Probing at the exact top center only works if the center is flat. If
564
+  // probing on a screwhead or hollow washer, probe near the edges.
565
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
566
+
567
+  // Define pin which is read during calibration
568
+  #ifndef CALIBRATION_PIN
569
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
570
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
571
+    //#define CALIBRATION_PIN_PULLDOWN
572
+    #define CALIBRATION_PIN_PULLUP
573
+  #endif
574
+#endif
575
+
576
+/**
524 577
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
525 578
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
526 579
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/WASP/PowerWASP/Configuration_adv.h View File

@@ -521,6 +521,59 @@
521 521
 #endif
522 522
 
523 523
 /**
524
+ * Automatic backlash, position and hotend offset calibration
525
+ *
526
+ * Enable G425 to run automatic calibration using an electrically-
527
+ * conductive cube, bolt, or washer mounted on the bed.
528
+ *
529
+ * G425 uses the probe to touch the top and sides of the calibration object
530
+ * on the bed and measures and/or correct positional offsets, axis backlash
531
+ * and hotend offsets.
532
+ *
533
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
534
+ *       ±5mm of true values for G425 to succeed.
535
+ */
536
+//#define CALIBRATION_GCODE
537
+#if ENABLED(CALIBRATION_GCODE)
538
+
539
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
540
+
541
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
542
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
543
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
544
+
545
+  // The following parameters refer to the conical section of the nozzle tip.
546
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
547
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
548
+
549
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
550
+  //#define CALIBRATION_REPORTING
551
+
552
+  // The true location and dimension the cube/bolt/washer on the bed.
553
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
554
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
555
+
556
+  // Comment out any sides which are unreachable by the probe. For best
557
+  // auto-calibration results, all sides must be reachable.
558
+  #define CALIBRATION_MEASURE_RIGHT
559
+  #define CALIBRATION_MEASURE_FRONT
560
+  #define CALIBRATION_MEASURE_LEFT
561
+  #define CALIBRATION_MEASURE_BACK
562
+
563
+  // Probing at the exact top center only works if the center is flat. If
564
+  // probing on a screwhead or hollow washer, probe near the edges.
565
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
566
+
567
+  // Define pin which is read during calibration
568
+  #ifndef CALIBRATION_PIN
569
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
570
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
571
+    //#define CALIBRATION_PIN_PULLDOWN
572
+    #define CALIBRATION_PIN_PULLUP
573
+  #endif
574
+#endif
575
+
576
+/**
524 577
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
525 578
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
526 579
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/Wanhao/Duplicator 6/Configuration_adv.h View File

@@ -521,6 +521,59 @@
521 521
 #endif
522 522
 
523 523
 /**
524
+ * Automatic backlash, position and hotend offset calibration
525
+ *
526
+ * Enable G425 to run automatic calibration using an electrically-
527
+ * conductive cube, bolt, or washer mounted on the bed.
528
+ *
529
+ * G425 uses the probe to touch the top and sides of the calibration object
530
+ * on the bed and measures and/or correct positional offsets, axis backlash
531
+ * and hotend offsets.
532
+ *
533
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
534
+ *       ±5mm of true values for G425 to succeed.
535
+ */
536
+//#define CALIBRATION_GCODE
537
+#if ENABLED(CALIBRATION_GCODE)
538
+
539
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
540
+
541
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
542
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
543
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
544
+
545
+  // The following parameters refer to the conical section of the nozzle tip.
546
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
547
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
548
+
549
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
550
+  //#define CALIBRATION_REPORTING
551
+
552
+  // The true location and dimension the cube/bolt/washer on the bed.
553
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
554
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
555
+
556
+  // Comment out any sides which are unreachable by the probe. For best
557
+  // auto-calibration results, all sides must be reachable.
558
+  #define CALIBRATION_MEASURE_RIGHT
559
+  #define CALIBRATION_MEASURE_FRONT
560
+  #define CALIBRATION_MEASURE_LEFT
561
+  #define CALIBRATION_MEASURE_BACK
562
+
563
+  // Probing at the exact top center only works if the center is flat. If
564
+  // probing on a screwhead or hollow washer, probe near the edges.
565
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
566
+
567
+  // Define pin which is read during calibration
568
+  #ifndef CALIBRATION_PIN
569
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
570
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
571
+    //#define CALIBRATION_PIN_PULLDOWN
572
+    #define CALIBRATION_PIN_PULLUP
573
+  #endif
574
+#endif
575
+
576
+/**
524 577
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
525 578
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
526 579
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/delta/Anycubic/Kossel/Configuration_adv.h View File

@@ -523,6 +523,59 @@
523 523
 #endif
524 524
 
525 525
 /**
526
+ * Automatic backlash, position and hotend offset calibration
527
+ *
528
+ * Enable G425 to run automatic calibration using an electrically-
529
+ * conductive cube, bolt, or washer mounted on the bed.
530
+ *
531
+ * G425 uses the probe to touch the top and sides of the calibration object
532
+ * on the bed and measures and/or correct positional offsets, axis backlash
533
+ * and hotend offsets.
534
+ *
535
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
536
+ *       ±5mm of true values for G425 to succeed.
537
+ */
538
+//#define CALIBRATION_GCODE
539
+#if ENABLED(CALIBRATION_GCODE)
540
+
541
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
542
+
543
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
544
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
545
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
546
+
547
+  // The following parameters refer to the conical section of the nozzle tip.
548
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
549
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
550
+
551
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
552
+  //#define CALIBRATION_REPORTING
553
+
554
+  // The true location and dimension the cube/bolt/washer on the bed.
555
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
556
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
557
+
558
+  // Comment out any sides which are unreachable by the probe. For best
559
+  // auto-calibration results, all sides must be reachable.
560
+  #define CALIBRATION_MEASURE_RIGHT
561
+  #define CALIBRATION_MEASURE_FRONT
562
+  #define CALIBRATION_MEASURE_LEFT
563
+  #define CALIBRATION_MEASURE_BACK
564
+
565
+  // Probing at the exact top center only works if the center is flat. If
566
+  // probing on a screwhead or hollow washer, probe near the edges.
567
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
568
+
569
+  // Define pin which is read during calibration
570
+  #ifndef CALIBRATION_PIN
571
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
572
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
573
+    //#define CALIBRATION_PIN_PULLDOWN
574
+    #define CALIBRATION_PIN_PULLUP
575
+  #endif
576
+#endif
577
+
578
+/**
526 579
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
527 580
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
528 581
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/delta/FLSUN/auto_calibrate/Configuration_adv.h View File

@@ -523,6 +523,59 @@
523 523
 #endif
524 524
 
525 525
 /**
526
+ * Automatic backlash, position and hotend offset calibration
527
+ *
528
+ * Enable G425 to run automatic calibration using an electrically-
529
+ * conductive cube, bolt, or washer mounted on the bed.
530
+ *
531
+ * G425 uses the probe to touch the top and sides of the calibration object
532
+ * on the bed and measures and/or correct positional offsets, axis backlash
533
+ * and hotend offsets.
534
+ *
535
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
536
+ *       ±5mm of true values for G425 to succeed.
537
+ */
538
+//#define CALIBRATION_GCODE
539
+#if ENABLED(CALIBRATION_GCODE)
540
+
541
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
542
+
543
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
544
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
545
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
546
+
547
+  // The following parameters refer to the conical section of the nozzle tip.
548
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
549
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
550
+
551
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
552
+  //#define CALIBRATION_REPORTING
553
+
554
+  // The true location and dimension the cube/bolt/washer on the bed.
555
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
556
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
557
+
558
+  // Comment out any sides which are unreachable by the probe. For best
559
+  // auto-calibration results, all sides must be reachable.
560
+  #define CALIBRATION_MEASURE_RIGHT
561
+  #define CALIBRATION_MEASURE_FRONT
562
+  #define CALIBRATION_MEASURE_LEFT
563
+  #define CALIBRATION_MEASURE_BACK
564
+
565
+  // Probing at the exact top center only works if the center is flat. If
566
+  // probing on a screwhead or hollow washer, probe near the edges.
567
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
568
+
569
+  // Define pin which is read during calibration
570
+  #ifndef CALIBRATION_PIN
571
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
572
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
573
+    //#define CALIBRATION_PIN_PULLDOWN
574
+    #define CALIBRATION_PIN_PULLUP
575
+  #endif
576
+#endif
577
+
578
+/**
526 579
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
527 580
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
528 581
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/delta/FLSUN/kossel/Configuration_adv.h View File

@@ -523,6 +523,59 @@
523 523
 #endif
524 524
 
525 525
 /**
526
+ * Automatic backlash, position and hotend offset calibration
527
+ *
528
+ * Enable G425 to run automatic calibration using an electrically-
529
+ * conductive cube, bolt, or washer mounted on the bed.
530
+ *
531
+ * G425 uses the probe to touch the top and sides of the calibration object
532
+ * on the bed and measures and/or correct positional offsets, axis backlash
533
+ * and hotend offsets.
534
+ *
535
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
536
+ *       ±5mm of true values for G425 to succeed.
537
+ */
538
+//#define CALIBRATION_GCODE
539
+#if ENABLED(CALIBRATION_GCODE)
540
+
541
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
542
+
543
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
544
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
545
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
546
+
547
+  // The following parameters refer to the conical section of the nozzle tip.
548
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
549
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
550
+
551
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
552
+  //#define CALIBRATION_REPORTING
553
+
554
+  // The true location and dimension the cube/bolt/washer on the bed.
555
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
556
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
557
+
558
+  // Comment out any sides which are unreachable by the probe. For best
559
+  // auto-calibration results, all sides must be reachable.
560
+  #define CALIBRATION_MEASURE_RIGHT
561
+  #define CALIBRATION_MEASURE_FRONT
562
+  #define CALIBRATION_MEASURE_LEFT
563
+  #define CALIBRATION_MEASURE_BACK
564
+
565
+  // Probing at the exact top center only works if the center is flat. If
566
+  // probing on a screwhead or hollow washer, probe near the edges.
567
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
568
+
569
+  // Define pin which is read during calibration
570
+  #ifndef CALIBRATION_PIN
571
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
572
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
573
+    //#define CALIBRATION_PIN_PULLDOWN
574
+    #define CALIBRATION_PIN_PULLUP
575
+  #endif
576
+#endif
577
+
578
+/**
526 579
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
527 580
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
528 581
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/delta/FLSUN/kossel_mini/Configuration_adv.h View File

@@ -523,6 +523,59 @@
523 523
 #endif
524 524
 
525 525
 /**
526
+ * Automatic backlash, position and hotend offset calibration
527
+ *
528
+ * Enable G425 to run automatic calibration using an electrically-
529
+ * conductive cube, bolt, or washer mounted on the bed.
530
+ *
531
+ * G425 uses the probe to touch the top and sides of the calibration object
532
+ * on the bed and measures and/or correct positional offsets, axis backlash
533
+ * and hotend offsets.
534
+ *
535
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
536
+ *       ±5mm of true values for G425 to succeed.
537
+ */
538
+//#define CALIBRATION_GCODE
539
+#if ENABLED(CALIBRATION_GCODE)
540
+
541
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
542
+
543
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
544
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
545
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
546
+
547
+  // The following parameters refer to the conical section of the nozzle tip.
548
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
549
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
550
+
551
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
552
+  //#define CALIBRATION_REPORTING
553
+
554
+  // The true location and dimension the cube/bolt/washer on the bed.
555
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
556
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
557
+
558
+  // Comment out any sides which are unreachable by the probe. For best
559
+  // auto-calibration results, all sides must be reachable.
560
+  #define CALIBRATION_MEASURE_RIGHT
561
+  #define CALIBRATION_MEASURE_FRONT
562
+  #define CALIBRATION_MEASURE_LEFT
563
+  #define CALIBRATION_MEASURE_BACK
564
+
565
+  // Probing at the exact top center only works if the center is flat. If
566
+  // probing on a screwhead or hollow washer, probe near the edges.
567
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
568
+
569
+  // Define pin which is read during calibration
570
+  #ifndef CALIBRATION_PIN
571
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
572
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
573
+    //#define CALIBRATION_PIN_PULLDOWN
574
+    #define CALIBRATION_PIN_PULLUP
575
+  #endif
576
+#endif
577
+
578
+/**
526 579
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
527 580
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
528 581
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/delta/Geeetech/Rostock 301/Configuration_adv.h View File

@@ -523,6 +523,59 @@
523 523
 #endif
524 524
 
525 525
 /**
526
+ * Automatic backlash, position and hotend offset calibration
527
+ *
528
+ * Enable G425 to run automatic calibration using an electrically-
529
+ * conductive cube, bolt, or washer mounted on the bed.
530
+ *
531
+ * G425 uses the probe to touch the top and sides of the calibration object
532
+ * on the bed and measures and/or correct positional offsets, axis backlash
533
+ * and hotend offsets.
534
+ *
535
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
536
+ *       ±5mm of true values for G425 to succeed.
537
+ */
538
+//#define CALIBRATION_GCODE
539
+#if ENABLED(CALIBRATION_GCODE)
540
+
541
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
542
+
543
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
544
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
545
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
546
+
547
+  // The following parameters refer to the conical section of the nozzle tip.
548
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
549
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
550
+
551
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
552
+  //#define CALIBRATION_REPORTING
553
+
554
+  // The true location and dimension the cube/bolt/washer on the bed.
555
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
556
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
557
+
558
+  // Comment out any sides which are unreachable by the probe. For best
559
+  // auto-calibration results, all sides must be reachable.
560
+  #define CALIBRATION_MEASURE_RIGHT
561
+  #define CALIBRATION_MEASURE_FRONT
562
+  #define CALIBRATION_MEASURE_LEFT
563
+  #define CALIBRATION_MEASURE_BACK
564
+
565
+  // Probing at the exact top center only works if the center is flat. If
566
+  // probing on a screwhead or hollow washer, probe near the edges.
567
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
568
+
569
+  // Define pin which is read during calibration
570
+  #ifndef CALIBRATION_PIN
571
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
572
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
573
+    //#define CALIBRATION_PIN_PULLDOWN
574
+    #define CALIBRATION_PIN_PULLUP
575
+  #endif
576
+#endif
577
+
578
+/**
526 579
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
527 580
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
528 581
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/delta/MKS/SBASE/Configuration_adv.h View File

@@ -523,6 +523,59 @@
523 523
 #endif
524 524
 
525 525
 /**
526
+ * Automatic backlash, position and hotend offset calibration
527
+ *
528
+ * Enable G425 to run automatic calibration using an electrically-
529
+ * conductive cube, bolt, or washer mounted on the bed.
530
+ *
531
+ * G425 uses the probe to touch the top and sides of the calibration object
532
+ * on the bed and measures and/or correct positional offsets, axis backlash
533
+ * and hotend offsets.
534
+ *
535
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
536
+ *       ±5mm of true values for G425 to succeed.
537
+ */
538
+//#define CALIBRATION_GCODE
539
+#if ENABLED(CALIBRATION_GCODE)
540
+
541
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
542
+
543
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
544
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
545
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
546
+
547
+  // The following parameters refer to the conical section of the nozzle tip.
548
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
549
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
550
+
551
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
552
+  //#define CALIBRATION_REPORTING
553
+
554
+  // The true location and dimension the cube/bolt/washer on the bed.
555
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
556
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
557
+
558
+  // Comment out any sides which are unreachable by the probe. For best
559
+  // auto-calibration results, all sides must be reachable.
560
+  #define CALIBRATION_MEASURE_RIGHT
561
+  #define CALIBRATION_MEASURE_FRONT
562
+  #define CALIBRATION_MEASURE_LEFT
563
+  #define CALIBRATION_MEASURE_BACK
564
+
565
+  // Probing at the exact top center only works if the center is flat. If
566
+  // probing on a screwhead or hollow washer, probe near the edges.
567
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
568
+
569
+  // Define pin which is read during calibration
570
+  #ifndef CALIBRATION_PIN
571
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
572
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
573
+    //#define CALIBRATION_PIN_PULLDOWN
574
+    #define CALIBRATION_PIN_PULLUP
575
+  #endif
576
+#endif
577
+
578
+/**
526 579
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
527 580
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
528 581
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/delta/Tevo Little Monster/Configuration_adv.h View File

@@ -523,6 +523,59 @@
523 523
 #endif
524 524
 
525 525
 /**
526
+ * Automatic backlash, position and hotend offset calibration
527
+ *
528
+ * Enable G425 to run automatic calibration using an electrically-
529
+ * conductive cube, bolt, or washer mounted on the bed.
530
+ *
531
+ * G425 uses the probe to touch the top and sides of the calibration object
532
+ * on the bed and measures and/or correct positional offsets, axis backlash
533
+ * and hotend offsets.
534
+ *
535
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
536
+ *       ±5mm of true values for G425 to succeed.
537
+ */
538
+//#define CALIBRATION_GCODE
539
+#if ENABLED(CALIBRATION_GCODE)
540
+
541
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
542
+
543
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
544
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
545
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
546
+
547
+  // The following parameters refer to the conical section of the nozzle tip.
548
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
549
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
550
+
551
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
552
+  //#define CALIBRATION_REPORTING
553
+
554
+  // The true location and dimension the cube/bolt/washer on the bed.
555
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
556
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
557
+
558
+  // Comment out any sides which are unreachable by the probe. For best
559
+  // auto-calibration results, all sides must be reachable.
560
+  #define CALIBRATION_MEASURE_RIGHT
561
+  #define CALIBRATION_MEASURE_FRONT
562
+  #define CALIBRATION_MEASURE_LEFT
563
+  #define CALIBRATION_MEASURE_BACK
564
+
565
+  // Probing at the exact top center only works if the center is flat. If
566
+  // probing on a screwhead or hollow washer, probe near the edges.
567
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
568
+
569
+  // Define pin which is read during calibration
570
+  #ifndef CALIBRATION_PIN
571
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
572
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
573
+    //#define CALIBRATION_PIN_PULLDOWN
574
+    #define CALIBRATION_PIN_PULLUP
575
+  #endif
576
+#endif
577
+
578
+/**
526 579
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
527 580
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
528 581
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/delta/generic/Configuration_adv.h View File

@@ -523,6 +523,59 @@
523 523
 #endif
524 524
 
525 525
 /**
526
+ * Automatic backlash, position and hotend offset calibration
527
+ *
528
+ * Enable G425 to run automatic calibration using an electrically-
529
+ * conductive cube, bolt, or washer mounted on the bed.
530
+ *
531
+ * G425 uses the probe to touch the top and sides of the calibration object
532
+ * on the bed and measures and/or correct positional offsets, axis backlash
533
+ * and hotend offsets.
534
+ *
535
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
536
+ *       ±5mm of true values for G425 to succeed.
537
+ */
538
+//#define CALIBRATION_GCODE
539
+#if ENABLED(CALIBRATION_GCODE)
540
+
541
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
542
+
543
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
544
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
545
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
546
+
547
+  // The following parameters refer to the conical section of the nozzle tip.
548
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
549
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
550
+
551
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
552
+  //#define CALIBRATION_REPORTING
553
+
554
+  // The true location and dimension the cube/bolt/washer on the bed.
555
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
556
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
557
+
558
+  // Comment out any sides which are unreachable by the probe. For best
559
+  // auto-calibration results, all sides must be reachable.
560
+  #define CALIBRATION_MEASURE_RIGHT
561
+  #define CALIBRATION_MEASURE_FRONT
562
+  #define CALIBRATION_MEASURE_LEFT
563
+  #define CALIBRATION_MEASURE_BACK
564
+
565
+  // Probing at the exact top center only works if the center is flat. If
566
+  // probing on a screwhead or hollow washer, probe near the edges.
567
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
568
+
569
+  // Define pin which is read during calibration
570
+  #ifndef CALIBRATION_PIN
571
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
572
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
573
+    //#define CALIBRATION_PIN_PULLDOWN
574
+    #define CALIBRATION_PIN_PULLUP
575
+  #endif
576
+#endif
577
+
578
+/**
526 579
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
527 580
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
528 581
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 52
- 0
Marlin/src/config/examples/delta/kossel_mini/Configuration_adv.h View File

@@ -523,6 +523,58 @@
523 523
 #endif
524 524
 
525 525
 /**
526
+ * Automatic backlash, position and hotend offset calibration
527
+ *
528
+ * Enable G425 to run automatic calibration using an electrically-
529
+ * conductive cube, bolt, or washer mounted on the bed.
530
+ *
531
+ * G425 uses the probe to touch the top and sides of the calibration object
532
+ * on the bed and measures and/or correct positional offsets, axis backlash
533
+ * and hotend offsets.
534
+ *
535
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
536
+ *       ±5mm of true values for G425 to succeed.
537
+ */
538
+//#define CALIBRATION_GCODE
539
+#if ENABLED(CALIBRATION_GCODE)
540
+
541
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
542
+
543
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
544
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
545
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
546
+
547
+  // The following parameters refer to the conical section of the nozzle tip.
548
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
549
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
550
+
551
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
552
+  //#define CALIBRATION_REPORTING
553
+
554
+  // The true location and dimension the cube/bolt/washer on the bed.
555
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
556
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
557
+
558
+  // Comment out any sides which are unreachable by the probe. For best
559
+  // auto-calibration results, all sides must be reachable.
560
+  #define CALIBRATION_MEASURE_RIGHT
561
+  #define CALIBRATION_MEASURE_FRONT
562
+  #define CALIBRATION_MEASURE_LEFT
563
+  #define CALIBRATION_MEASURE_BACK
564
+
565
+  // Probing at the exact top center only works if the center is flat. If
566
+  // probing on a screwhead or hollow washer, probe near the edges.
567
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
568
+
569
+  // Define pin which is read during calibration
570
+  #ifndef CALIBRATION_PIN
571
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
572
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
573
+    //#define CALIBRATION_PIN_PULLDOWN
574
+    #define CALIBRATION_PIN_PULLUP
575
+  #endif
576
+#endif
577
+/**
526 578
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
527 579
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
528 580
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/delta/kossel_xl/Configuration_adv.h View File

@@ -523,6 +523,59 @@
523 523
 #endif
524 524
 
525 525
 /**
526
+ * Automatic backlash, position and hotend offset calibration
527
+ *
528
+ * Enable G425 to run automatic calibration using an electrically-
529
+ * conductive cube, bolt, or washer mounted on the bed.
530
+ *
531
+ * G425 uses the probe to touch the top and sides of the calibration object
532
+ * on the bed and measures and/or correct positional offsets, axis backlash
533
+ * and hotend offsets.
534
+ *
535
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
536
+ *       ±5mm of true values for G425 to succeed.
537
+ */
538
+//#define CALIBRATION_GCODE
539
+#if ENABLED(CALIBRATION_GCODE)
540
+
541
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
542
+
543
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
544
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
545
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
546
+
547
+  // The following parameters refer to the conical section of the nozzle tip.
548
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
549
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
550
+
551
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
552
+  //#define CALIBRATION_REPORTING
553
+
554
+  // The true location and dimension the cube/bolt/washer on the bed.
555
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
556
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
557
+
558
+  // Comment out any sides which are unreachable by the probe. For best
559
+  // auto-calibration results, all sides must be reachable.
560
+  #define CALIBRATION_MEASURE_RIGHT
561
+  #define CALIBRATION_MEASURE_FRONT
562
+  #define CALIBRATION_MEASURE_LEFT
563
+  #define CALIBRATION_MEASURE_BACK
564
+
565
+  // Probing at the exact top center only works if the center is flat. If
566
+  // probing on a screwhead or hollow washer, probe near the edges.
567
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
568
+
569
+  // Define pin which is read during calibration
570
+  #ifndef CALIBRATION_PIN
571
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
572
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
573
+    //#define CALIBRATION_PIN_PULLDOWN
574
+    #define CALIBRATION_PIN_PULLUP
575
+  #endif
576
+#endif
577
+
578
+/**
526 579
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
527 580
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
528 581
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/gCreate/gMax1.5+/Configuration_adv.h View File

@@ -521,6 +521,59 @@
521 521
 #endif
522 522
 
523 523
 /**
524
+ * Automatic backlash, position and hotend offset calibration
525
+ *
526
+ * Enable G425 to run automatic calibration using an electrically-
527
+ * conductive cube, bolt, or washer mounted on the bed.
528
+ *
529
+ * G425 uses the probe to touch the top and sides of the calibration object
530
+ * on the bed and measures and/or correct positional offsets, axis backlash
531
+ * and hotend offsets.
532
+ *
533
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
534
+ *       ±5mm of true values for G425 to succeed.
535
+ */
536
+//#define CALIBRATION_GCODE
537
+#if ENABLED(CALIBRATION_GCODE)
538
+
539
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
540
+
541
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
542
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
543
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
544
+
545
+  // The following parameters refer to the conical section of the nozzle tip.
546
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
547
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
548
+
549
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
550
+  //#define CALIBRATION_REPORTING
551
+
552
+  // The true location and dimension the cube/bolt/washer on the bed.
553
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
554
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
555
+
556
+  // Comment out any sides which are unreachable by the probe. For best
557
+  // auto-calibration results, all sides must be reachable.
558
+  #define CALIBRATION_MEASURE_RIGHT
559
+  #define CALIBRATION_MEASURE_FRONT
560
+  #define CALIBRATION_MEASURE_LEFT
561
+  #define CALIBRATION_MEASURE_BACK
562
+
563
+  // Probing at the exact top center only works if the center is flat. If
564
+  // probing on a screwhead or hollow washer, probe near the edges.
565
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
566
+
567
+  // Define pin which is read during calibration
568
+  #ifndef CALIBRATION_PIN
569
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
570
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
571
+    //#define CALIBRATION_PIN_PULLDOWN
572
+    #define CALIBRATION_PIN_PULLUP
573
+  #endif
574
+#endif
575
+
576
+/**
524 577
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
525 578
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
526 579
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/makibox/Configuration_adv.h View File

@@ -521,6 +521,59 @@
521 521
 #endif
522 522
 
523 523
 /**
524
+ * Automatic backlash, position and hotend offset calibration
525
+ *
526
+ * Enable G425 to run automatic calibration using an electrically-
527
+ * conductive cube, bolt, or washer mounted on the bed.
528
+ *
529
+ * G425 uses the probe to touch the top and sides of the calibration object
530
+ * on the bed and measures and/or correct positional offsets, axis backlash
531
+ * and hotend offsets.
532
+ *
533
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
534
+ *       ±5mm of true values for G425 to succeed.
535
+ */
536
+//#define CALIBRATION_GCODE
537
+#if ENABLED(CALIBRATION_GCODE)
538
+
539
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
540
+
541
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
542
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
543
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
544
+
545
+  // The following parameters refer to the conical section of the nozzle tip.
546
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
547
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
548
+
549
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
550
+  //#define CALIBRATION_REPORTING
551
+
552
+  // The true location and dimension the cube/bolt/washer on the bed.
553
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
554
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
555
+
556
+  // Comment out any sides which are unreachable by the probe. For best
557
+  // auto-calibration results, all sides must be reachable.
558
+  #define CALIBRATION_MEASURE_RIGHT
559
+  #define CALIBRATION_MEASURE_FRONT
560
+  #define CALIBRATION_MEASURE_LEFT
561
+  #define CALIBRATION_MEASURE_BACK
562
+
563
+  // Probing at the exact top center only works if the center is flat. If
564
+  // probing on a screwhead or hollow washer, probe near the edges.
565
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
566
+
567
+  // Define pin which is read during calibration
568
+  #ifndef CALIBRATION_PIN
569
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
570
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
571
+    //#define CALIBRATION_PIN_PULLDOWN
572
+    #define CALIBRATION_PIN_PULLUP
573
+  #endif
574
+#endif
575
+
576
+/**
524 577
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
525 578
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
526 579
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/tvrrug/Round2/Configuration_adv.h View File

@@ -521,6 +521,59 @@
521 521
 #endif
522 522
 
523 523
 /**
524
+ * Automatic backlash, position and hotend offset calibration
525
+ *
526
+ * Enable G425 to run automatic calibration using an electrically-
527
+ * conductive cube, bolt, or washer mounted on the bed.
528
+ *
529
+ * G425 uses the probe to touch the top and sides of the calibration object
530
+ * on the bed and measures and/or correct positional offsets, axis backlash
531
+ * and hotend offsets.
532
+ *
533
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
534
+ *       ±5mm of true values for G425 to succeed.
535
+ */
536
+//#define CALIBRATION_GCODE
537
+#if ENABLED(CALIBRATION_GCODE)
538
+
539
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
540
+
541
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
542
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
543
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
544
+
545
+  // The following parameters refer to the conical section of the nozzle tip.
546
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
547
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
548
+
549
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
550
+  //#define CALIBRATION_REPORTING
551
+
552
+  // The true location and dimension the cube/bolt/washer on the bed.
553
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
554
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
555
+
556
+  // Comment out any sides which are unreachable by the probe. For best
557
+  // auto-calibration results, all sides must be reachable.
558
+  #define CALIBRATION_MEASURE_RIGHT
559
+  #define CALIBRATION_MEASURE_FRONT
560
+  #define CALIBRATION_MEASURE_LEFT
561
+  #define CALIBRATION_MEASURE_BACK
562
+
563
+  // Probing at the exact top center only works if the center is flat. If
564
+  // probing on a screwhead or hollow washer, probe near the edges.
565
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
566
+
567
+  // Define pin which is read during calibration
568
+  #ifndef CALIBRATION_PIN
569
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
570
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
571
+    //#define CALIBRATION_PIN_PULLDOWN
572
+    #define CALIBRATION_PIN_PULLUP
573
+  #endif
574
+#endif
575
+
576
+/**
524 577
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
525 578
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
526 579
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 53
- 0
Marlin/src/config/examples/wt150/Configuration_adv.h View File

@@ -521,6 +521,59 @@
521 521
 #endif
522 522
 
523 523
 /**
524
+ * Automatic backlash, position and hotend offset calibration
525
+ *
526
+ * Enable G425 to run automatic calibration using an electrically-
527
+ * conductive cube, bolt, or washer mounted on the bed.
528
+ *
529
+ * G425 uses the probe to touch the top and sides of the calibration object
530
+ * on the bed and measures and/or correct positional offsets, axis backlash
531
+ * and hotend offsets.
532
+ *
533
+ * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within
534
+ *       ±5mm of true values for G425 to succeed.
535
+ */
536
+//#define CALIBRATION_GCODE
537
+#if ENABLED(CALIBRATION_GCODE)
538
+
539
+  #define CALIBRATION_MEASUREMENT_RESOLUTION     0.01 // mm
540
+
541
+  #define CALIBRATION_FEEDRATE_SLOW             60    // mm/m
542
+  #define CALIBRATION_FEEDRATE_FAST           1200    // mm/m
543
+  #define CALIBRATION_FEEDRATE_TRAVEL         3000    // mm/m
544
+
545
+  // The following parameters refer to the conical section of the nozzle tip.
546
+  #define CALIBRATION_NOZZLE_TIP_HEIGHT          1.0  // mm
547
+  #define CALIBRATION_NOZZLE_OUTER_DIAMETER      2.0  // mm
548
+
549
+  // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM).
550
+  //#define CALIBRATION_REPORTING
551
+
552
+  // The true location and dimension the cube/bolt/washer on the bed.
553
+  #define CALIBRATION_OBJECT_CENTER     { 264.0, -22.0,  -2.0} // mm
554
+  #define CALIBRATION_OBJECT_DIMENSIONS {  10.0,  10.0,  10.0} // mm
555
+
556
+  // Comment out any sides which are unreachable by the probe. For best
557
+  // auto-calibration results, all sides must be reachable.
558
+  #define CALIBRATION_MEASURE_RIGHT
559
+  #define CALIBRATION_MEASURE_FRONT
560
+  #define CALIBRATION_MEASURE_LEFT
561
+  #define CALIBRATION_MEASURE_BACK
562
+
563
+  // Probing at the exact top center only works if the center is flat. If
564
+  // probing on a screwhead or hollow washer, probe near the edges.
565
+  //#define CALIBRATION_MEASURE_AT_TOP_EDGES
566
+
567
+  // Define pin which is read during calibration
568
+  #ifndef CALIBRATION_PIN
569
+    #define CALIBRATION_PIN -1 // Override in pins.h or set to -1 to use your Z endstop
570
+    #define CALIBRATION_PIN_INVERTING false // set to true to invert the pin
571
+    //#define CALIBRATION_PIN_PULLDOWN
572
+    #define CALIBRATION_PIN_PULLUP
573
+  #endif
574
+#endif
575
+
576
+/**
524 577
  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies
525 578
  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible
526 579
  * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the

+ 3
- 2
Marlin/src/core/utility.h View File

@@ -128,9 +128,10 @@ class restorer {
128 128
   T  val_;
129 129
 public:
130 130
   restorer(T& perm) : ref_(perm), val_(perm) {}
131
+  restorer(T& perm, T temp_val) : ref_(perm), val_(perm) { perm = temp_val; }
131 132
   ~restorer() { restore(); }
132 133
   inline void restore() { ref_ = val_; }
133 134
 };
134 135
 
135
-#define REMEMBER(X) restorer<typeof(X)> X##_restorer(X)
136
-#define RESTORE(X) X##_restorer.restore()
136
+#define REMEMBER(N,X, ...) restorer<typeof(X)> N##_restorer(X, ##__VA_ARGS__)
137
+#define RESTORE(N) N##_restorer.restore()

+ 639
- 0
Marlin/src/gcode/calibrate/G425.cpp View File

@@ -0,0 +1,639 @@
1
+/**
2
+ * Marlin 3D Printer Firmware
3
+ * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
4
+ *
5
+ * Based on Sprinter and grbl.
6
+ * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
7
+ *
8
+ * This program is free software: you can redistribute it and/or modify
9
+ * it under the terms of the GNU General Public License as published by
10
+ * the Free Software Foundation, either version 3 of the License, or
11
+ * (at your option) any later version.
12
+ *
13
+ * This program is distributed in the hope that it will be useful,
14
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
+ * GNU General Public License for more details.
17
+ *
18
+ * You should have received a copy of the GNU General Public License
19
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
20
+ *
21
+ */
22
+
23
+#include "../../Marlin.h"
24
+
25
+#if ENABLED(CALIBRATION_GCODE)
26
+
27
+#include "../gcode.h"
28
+#include "../../lcd/ultralcd.h"
29
+#include "../../module/motion.h"
30
+#include "../../module/planner.h"
31
+#include "../../module/tool_change.h"
32
+#include "../../module/endstops.h"
33
+
34
+/**
35
+ * G425 backs away from the calibration object by various distances
36
+ * depending on the confidence level:
37
+ *
38
+ *   UNKNOWN   - No real notion on where the calibration object is on the bed
39
+ *   UNCERTAIN - Measurement may be uncertain due to backlash
40
+ *   CERTAIN   - Measurement obtained with backlash compensation
41
+ */
42
+
43
+#ifndef CALIBRATION_MEASUREMENT_UNKNOWN
44
+  #define CALIBRATION_MEASUREMENT_UNKNOWN   5.0 // mm
45
+#endif
46
+#ifndef CALIBRATION_MEASUREMENT_UNCERTAIN
47
+  #define CALIBRATION_MEASUREMENT_UNCERTAIN 1.0 // mm
48
+#endif
49
+#ifndef CALIBRATION_MEASUREMENT_CERTAIN
50
+  #define CALIBRATION_MEASUREMENT_CERTAIN   0.5 // mm
51
+#endif
52
+
53
+#define HAS_X_CENTER (ENABLED(CALIBRATION_MEASURE_LEFT)  && ENABLED(CALIBRATION_MEASURE_RIGHT))
54
+#define HAS_Y_CENTER (ENABLED(CALIBRATION_MEASURE_FRONT) && ENABLED(CALIBRATION_MEASURE_BACK))
55
+
56
+#if ENABLED(BACKLASH_GCODE)
57
+  extern float backlash_distance_mm[], backlash_correction, backlash_smoothing_mm;
58
+#endif
59
+
60
+enum side_t : uint8_t { TOP, RIGHT, FRONT, LEFT, BACK, NUM_SIDES };
61
+
62
+struct measurements_t {
63
+  static const float dimensions[XYZ];
64
+  static const float true_center[XYZ]; // This cannot be constexpr since it is accessed by index in probe_side
65
+  float obj_center[XYZ] = CALIBRATION_OBJECT_CENTER;
66
+  float obj_side[NUM_SIDES];
67
+
68
+  float backlash[NUM_SIDES];
69
+  float pos_error[XYZ];
70
+
71
+  float nozzle_outer_dimension[2] = {CALIBRATION_NOZZLE_OUTER_DIAMETER, CALIBRATION_NOZZLE_OUTER_DIAMETER};
72
+};
73
+
74
+const float measurements_t::true_center[XYZ] = CALIBRATION_OBJECT_CENTER;
75
+
76
+const float measurements_t::dimensions[]  = CALIBRATION_OBJECT_DIMENSIONS;
77
+
78
+#define TEMPORARY_ENDSTOP_STATE(enable) REMEMBER(tes, soft_endstops_enabled, enable); TemporaryGlobalEndstopsState tges(enable)
79
+
80
+#if ENABLED(BACKLASH_GCODE)
81
+  #define TEMPORARY_BACKLASH_STATE(enable) REMEMBER(tbst, backlash_correction, enable)
82
+#else
83
+  #define TEMPORARY_BACKLASH_STATE(enable)
84
+#endif
85
+
86
+#if ENABLED(BACKLASH_GCODE) && defined(BACKLASH_SMOOTHING_MM)
87
+  #define TEMPORARY_BACKLASH_SMOOTHING(value) REMEMBER(tbsm, backlash_smoothing_mm, value)
88
+#else
89
+  #define TEMPORARY_BACKLASH_SMOOTHING(value)
90
+#endif
91
+
92
+/**
93
+ * Move to a particular location. Up to three individual axes
94
+ * and their destinations can be specified, in any order.
95
+ */
96
+inline void move_to(
97
+  const AxisEnum a1 = NO_AXIS, const float p1 = 0,
98
+  const AxisEnum a2 = NO_AXIS, const float p2 = 0,
99
+  const AxisEnum a3 = NO_AXIS, const float p3 = 0
100
+) {
101
+  set_destination_from_current();
102
+
103
+  // Note: The order of p1, p2, p3 may not correspond to X, Y, Z
104
+  if (a1 != NO_AXIS) destination[a1] = p1;
105
+  if (a2 != NO_AXIS) destination[a2] = p2;
106
+  if (a3 != NO_AXIS) destination[a3] = p3;
107
+
108
+  // Make sure coordinates are within bounds
109
+  destination[X_AXIS] = MAX(MIN(destination[X_AXIS], X_MAX_POS), X_MIN_POS);
110
+  destination[Y_AXIS] = MAX(MIN(destination[Y_AXIS], Y_MAX_POS), Y_MIN_POS);
111
+  destination[Z_AXIS] = MAX(MIN(destination[Z_AXIS], Z_MAX_POS), Z_MIN_POS);
112
+
113
+  // Move to position
114
+  do_blocking_move_to(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], MMM_TO_MMS(CALIBRATION_FEEDRATE_TRAVEL));
115
+}
116
+
117
+/**
118
+ * Move to the exact center above the calibration object
119
+ *
120
+ *   m                  in     - Measurement record
121
+ *   uncertainty        in     - How far away from the object top to park
122
+ */
123
+inline void park_above_object(measurements_t &m, const float uncertainty) {
124
+  /* Move to safe distance above calibration object */
125
+  move_to(Z_AXIS, m.obj_center[Z_AXIS] + m.dimensions[Z_AXIS] / 2 + uncertainty);
126
+
127
+  /* Move to center of calibration object in XY */
128
+  move_to(X_AXIS, m.obj_center[X_AXIS], Y_AXIS, m.obj_center[Y_AXIS]);
129
+}
130
+
131
+#if HOTENDS > 1
132
+
133
+  inline void set_nozzle(measurements_t &m, const uint8_t extruder) {
134
+    if (extruder != active_extruder) {
135
+      park_above_object(m, CALIBRATION_MEASUREMENT_UNKNOWN);
136
+      tool_change(extruder);
137
+    }
138
+  }
139
+
140
+  inline void reset_nozzle_offsets() {
141
+    constexpr float tmp[XYZ][HOTENDS] = { HOTEND_OFFSET_X, HOTEND_OFFSET_Y, HOTEND_OFFSET_Z };
142
+    LOOP_XYZ(i) HOTEND_LOOP() hotend_offset[i][e] = tmp[i][e];
143
+  }
144
+
145
+  inline void normalize_hotend_offsets() {
146
+    for (uint8_t e = 1; e < HOTENDS; e++) {
147
+      hotend_offset[X_AXIS][e] -= hotend_offset[X_AXIS][0];
148
+      hotend_offset[Y_AXIS][e] -= hotend_offset[Y_AXIS][0];
149
+      hotend_offset[Z_AXIS][e] -= hotend_offset[Z_AXIS][0];
150
+    }
151
+    hotend_offset[X_AXIS][0] = 0;
152
+    hotend_offset[Y_AXIS][0] = 0;
153
+    hotend_offset[Z_AXIS][0] = 0;
154
+  }
155
+
156
+#endif // HOTENDS > 1
157
+
158
+inline bool read_calibration_pin() {
159
+  #if HAS_CALIBRATION_PIN
160
+    return (READ(CALIBRATION_PIN) != CALIBRATION_PIN_INVERTING);
161
+  #elif ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN)
162
+    return (READ(Z_MIN_PIN) != Z_MIN_ENDSTOP_INVERTING);
163
+  #else
164
+    return (READ(Z_MIN_PROBE_PIN) != Z_MIN_PROBE_ENDSTOP_INVERTING);
165
+  #endif
166
+}
167
+
168
+/**
169
+ * Move along axis in the specified dir until the probe value becomes stop_state,
170
+ * then return the axis value.
171
+ *
172
+ *   axis         in - Axis along which the measurement will take place
173
+ *   dir          in - Direction along that axis (-1 or 1)
174
+ *   stop_state   in - Move until probe pin becomes this value
175
+ *   fast         in - Fast vs. precise measurement
176
+ */
177
+float measuring_movement(const AxisEnum axis, const int dir, const bool stop_state, const bool fast) {
178
+  const float step  =            fast ? 0.25                      : CALIBRATION_MEASUREMENT_RESOLUTION;
179
+  const float mms   = MMM_TO_MMS(fast ? CALIBRATION_FEEDRATE_FAST : CALIBRATION_FEEDRATE_SLOW);
180
+  const float limit =            fast ? 50                        : 5;
181
+
182
+  set_destination_from_current();
183
+  for (float travel = 0; travel < limit; travel += step) {
184
+    destination[axis] += dir * step;
185
+    do_blocking_move_to(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], mms);
186
+    planner.synchronize();
187
+    if (read_calibration_pin() == stop_state)
188
+      break;
189
+  }
190
+  return destination[axis];
191
+}
192
+
193
+/**
194
+ * Move along axis until the probe is triggered. Move toolhead to its starting
195
+ * point and return the measured value.
196
+ *
197
+ *   axis               in     - Axis along which the measurement will take place
198
+ *   dir                in     - Direction along that axis (-1 or 1)
199
+ *   stop_state         in     - Move until probe pin becomes this value
200
+ *   backlash_ptr       in/out - When not NULL, measure and record axis backlash
201
+ *   uncertainty        in     - If uncertainty is CALIBRATION_MEASUREMENT_UNKNOWN, do a fast probe.
202
+ */
203
+inline float measure(const AxisEnum axis, const int dir, const bool stop_state, float * const backlash_ptr, const float uncertainty) {
204
+  const bool fast = uncertainty == CALIBRATION_MEASUREMENT_UNKNOWN;
205
+
206
+  // Save position
207
+  set_destination_from_current();
208
+  const float start_pos = destination[axis];
209
+  const float measured_pos = measuring_movement(axis, dir, stop_state, fast);
210
+  // Measure backlash
211
+  if (backlash_ptr && !fast) {
212
+    const float release_pos = measuring_movement(axis, -dir, !stop_state, fast);
213
+    *backlash_ptr = ABS(release_pos - measured_pos);
214
+  }
215
+  // Return to starting position
216
+  destination[axis] = start_pos;
217
+  do_blocking_move_to(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], MMM_TO_MMS(CALIBRATION_FEEDRATE_TRAVEL));
218
+  return measured_pos;
219
+}
220
+
221
+/**
222
+ * Probe one side of the calibration object
223
+ *
224
+ *   m                  in/out - Measurement record, m.obj_center and m.obj_side will be updated.
225
+ *   uncertainty        in     - How far away from the calibration object to begin probing
226
+ *   side               in     - Side of probe where probe will occur
227
+ *   probe_top_at_edge  in     - When probing sides, probe top of calibration object nearest edge
228
+ *                               to find out height of edge
229
+ */
230
+inline void probe_side(measurements_t &m, const float uncertainty, const side_t side, const bool probe_top_at_edge=false) {
231
+  AxisEnum axis;
232
+  float dir;
233
+
234
+  park_above_object(m, uncertainty);
235
+
236
+  switch(side) {
237
+    case TOP: {
238
+      const float measurement = measure(Z_AXIS, -1, true, &m.backlash[TOP], uncertainty);
239
+      m.obj_center[Z_AXIS] = measurement - m.dimensions[Z_AXIS] / 2;
240
+      m.obj_side[TOP] = measurement;
241
+      return;
242
+    }
243
+    case RIGHT: axis = X_AXIS; dir = -1; break;
244
+    case FRONT: axis = Y_AXIS; dir =  1; break;
245
+    case LEFT:  axis = X_AXIS; dir =  1; break;
246
+    case BACK:  axis = Y_AXIS; dir = -1; break;
247
+    default:
248
+      return;
249
+  }
250
+
251
+  if (probe_top_at_edge) {
252
+    // Probe top nearest the side we are probing
253
+    move_to(axis, m.obj_center[axis] + (-dir) * (m.dimensions[axis] / 2 - m.nozzle_outer_dimension[axis]));
254
+    m.obj_side[TOP] = measure(Z_AXIS, -1, true, &m.backlash[TOP], uncertainty);
255
+    m.obj_center[Z_AXIS] = m.obj_side[TOP] - m.dimensions[Z_AXIS] / 2;
256
+  }
257
+
258
+  // Move to safe distance to the side of the calibration object
259
+  move_to(axis, m.obj_center[axis] + (-dir) * (m.dimensions[axis] / 2 + m.nozzle_outer_dimension[axis] / 2 + uncertainty));
260
+
261
+  // Plunge below the side of the calibration object and measure
262
+  move_to(Z_AXIS, m.obj_side[TOP] - CALIBRATION_NOZZLE_TIP_HEIGHT * 0.7);
263
+  const float measurement = measure(axis, dir, true, &m.backlash[side], uncertainty);
264
+  m.obj_center[axis] = measurement + dir * (m.dimensions[axis] / 2 + m.nozzle_outer_dimension[axis] / 2);
265
+  m.obj_side[side] = measurement;
266
+}
267
+
268
+/**
269
+ * Probe all sides of the calibration calibration object
270
+ *
271
+ *   m                  in/out - Measurement record: center, backlash and error values be updated.
272
+ *   uncertainty        in     - How far away from the calibration object to begin probing
273
+ */
274
+inline void probe_sides(measurements_t &m, const float uncertainty) {
275
+  TEMPORARY_ENDSTOP_STATE(false);
276
+
277
+  #ifdef CALIBRATION_MEASURE_AT_TOP_EDGES
278
+    constexpr bool probe_top_at_edge = true;
279
+  #else
280
+    /* Probing at the exact center only works if the center is flat. Probing on a washer
281
+     * or bolt will require probing the top near the side edges, away from the center.
282
+     */
283
+    constexpr bool probe_top_at_edge = false;
284
+    probe_side(m, uncertainty, TOP);
285
+  #endif
286
+
287
+  #ifdef CALIBRATION_MEASURE_RIGHT
288
+    probe_side(m, uncertainty, RIGHT, probe_top_at_edge);
289
+  #endif
290
+  #ifdef CALIBRATION_MEASURE_FRONT
291
+    probe_side(m, uncertainty, FRONT, probe_top_at_edge);
292
+  #endif
293
+  #ifdef CALIBRATION_MEASURE_LEFT
294
+    probe_side(m, uncertainty, LEFT,  probe_top_at_edge);
295
+  #endif
296
+  #ifdef CALIBRATION_MEASURE_BACK
297
+    probe_side(m, uncertainty, BACK,  probe_top_at_edge);
298
+  #endif
299
+
300
+  /* Compute the measured center of the calibration object. */
301
+  #if HAS_X_CENTER
302
+    m.obj_center[X_AXIS] = (m.obj_side[LEFT] + m.obj_side[RIGHT]) / 2;
303
+  #endif
304
+  #if HAS_Y_CENTER
305
+    m.obj_center[Y_AXIS] = (m.obj_side[FRONT] + m.obj_side[BACK]) / 2;
306
+  #endif
307
+
308
+  /* Compute the outside diameter of the nozzle at the height
309
+   * at which it makes contact with the calibration object */
310
+  #if HAS_X_CENTER
311
+    m.nozzle_outer_dimension[X_AXIS] = m.obj_side[RIGHT] - m.obj_side[LEFT] - m.dimensions[X_AXIS];
312
+  #endif
313
+  #if HAS_Y_CENTER
314
+    m.nozzle_outer_dimension[Y_AXIS] = m.obj_side[BACK]  - m.obj_side[FRONT] - m.dimensions[Y_AXIS];
315
+  #endif
316
+
317
+  park_above_object(m, uncertainty);
318
+
319
+  /* The positional error is the difference between the known calibration
320
+   * object location and the measured calibration object location */
321
+  m.pos_error[X_AXIS] =
322
+  #if HAS_X_CENTER
323
+    m.true_center[X_AXIS] - m.obj_center[X_AXIS];
324
+  #else
325
+    0;
326
+  #endif
327
+  m.pos_error[Y_AXIS] =
328
+  #if HAS_Y_CENTER
329
+    m.true_center[Y_AXIS] - m.obj_center[Y_AXIS];
330
+  #else
331
+    0;
332
+  #endif
333
+  m.pos_error[Z_AXIS] = m.true_center[Z_AXIS] - m.obj_center[Z_AXIS];
334
+}
335
+
336
+#if ENABLED(CALIBRATION_REPORTING)
337
+  inline void report_measured_faces(const measurements_t &m) {
338
+    SERIAL_ECHOLNPGM("Sides:");
339
+    SERIAL_ECHOLNPAIR("  Top: ", m.obj_side[TOP]);
340
+    #if ENABLED(CALIBRATION_MEASURE_LEFT)
341
+      SERIAL_ECHOLNPAIR("  Left: ", m.obj_side[LEFT]);
342
+    #endif
343
+    #if ENABLED(CALIBRATION_MEASURE_RIGHT)
344
+      SERIAL_ECHOLNPAIR("  Right: ", m.obj_side[RIGHT]);
345
+    #endif
346
+    #if ENABLED(CALIBRATION_MEASURE_FRONT)
347
+      SERIAL_ECHOLNPAIR("  Front: ", m.obj_side[FRONT]);
348
+    #endif
349
+    #if ENABLED(CALIBRATION_MEASURE_BACK)
350
+      SERIAL_ECHOLNPAIR("  Back: ", m.obj_side[BACK]);
351
+    #endif
352
+    SERIAL_EOL();
353
+  }
354
+
355
+  inline void report_measured_center(const measurements_t &m) {
356
+    SERIAL_ECHOLNPGM("Center:");
357
+    #if HAS_X_CENTER
358
+      SERIAL_ECHOLNPAIR(" X", m.obj_center[X_AXIS]);
359
+    #endif
360
+    #if HAS_Y_CENTER
361
+      SERIAL_ECHOLNPAIR(" Y", m.obj_center[Y_AXIS]);
362
+    #endif
363
+    SERIAL_ECHOLNPAIR(" Z", m.obj_center[Z_AXIS]);
364
+    SERIAL_EOL();
365
+  }
366
+
367
+  inline void report_measured_backlash(const measurements_t &m) {
368
+    SERIAL_ECHOLNPGM("Backlash:");
369
+    #if ENABLED(CALIBRATION_MEASURE_LEFT)
370
+      SERIAL_ECHOLNPAIR("  Left: ", m.backlash[LEFT]);
371
+    #endif
372
+    #if ENABLED(CALIBRATION_MEASURE_RIGHT)
373
+      SERIAL_ECHOLNPAIR("  Right: ", m.backlash[RIGHT]);
374
+    #endif
375
+    #if ENABLED(CALIBRATION_MEASURE_FRONT)
376
+      SERIAL_ECHOLNPAIR("  Front: ", m.backlash[FRONT]);
377
+    #endif
378
+    #if ENABLED(CALIBRATION_MEASURE_BACK)
379
+      SERIAL_ECHOLNPAIR("  Back: ", m.backlash[BACK]);
380
+    #endif
381
+    SERIAL_ECHOLNPAIR("  Top: ", m.backlash[TOP]);
382
+    SERIAL_EOL();
383
+  }
384
+
385
+  inline void report_measured_positional_error(const measurements_t &m) {
386
+    SERIAL_CHAR('T');
387
+    SERIAL_ECHO(int(active_extruder));
388
+    SERIAL_ECHOLNPGM(" Positional Error:");
389
+    #if HAS_X_CENTER
390
+      SERIAL_ECHOLNPAIR(" X", m.pos_error[X_AXIS]);
391
+    #endif
392
+    #if HAS_Y_CENTER
393
+      SERIAL_ECHOLNPAIR(" Y", m.pos_error[Y_AXIS]);
394
+    #endif
395
+    SERIAL_ECHOLNPAIR(" Z", m.pos_error[Z_AXIS]);
396
+    SERIAL_EOL();
397
+  }
398
+
399
+  inline void report_measured_nozzle_dimensions(const measurements_t &m) {
400
+    SERIAL_ECHOLNPGM("Nozzle Tip Outer Dimensions:");
401
+    #if HAS_X_CENTER
402
+      SERIAL_ECHOLNPAIR(" X", m.nozzle_outer_dimension[X_AXIS]);
403
+    #endif
404
+    #if HAS_Y_CENTER
405
+      SERIAL_ECHOLNPAIR(" Y", m.nozzle_outer_dimension[Y_AXIS]);
406
+    #endif
407
+    SERIAL_EOL();
408
+  }
409
+
410
+  #if HOTENDS > 1
411
+    //
412
+    // This function requires normalize_hotend_offsets() to be called
413
+    //
414
+    inline void report_hotend_offsets() {
415
+      for (uint8_t e = 1; e < HOTENDS; e++) {
416
+        SERIAL_ECHOPAIR("T", int(e));
417
+        SERIAL_ECHOLNPGM(" Hotend Offset:");
418
+        SERIAL_ECHOLNPAIR("  X: ", hotend_offset[X_AXIS][e]);
419
+        SERIAL_ECHOLNPAIR("  Y: ", hotend_offset[Y_AXIS][e]);
420
+        SERIAL_ECHOLNPAIR("  Z: ", hotend_offset[Z_AXIS][e]);
421
+        SERIAL_EOL();
422
+      }
423
+    }
424
+  #endif
425
+#endif // CALIBRATION_REPORTING
426
+
427
+/**
428
+ * Probe around the calibration object to measure backlash
429
+ *
430
+ *   m              in/out - Measurement record, updated with new readings
431
+ *   uncertainty    in     - How far away from the object to begin probing
432
+ */
433
+inline void calibrate_backlash(measurements_t &m, const float uncertainty) {
434
+  // Backlash compensation should be off while measuring backlash
435
+
436
+  {
437
+    // New scope for TEMPORARY_BACKLASH_STATE
438
+    TEMPORARY_BACKLASH_STATE(false);
439
+    TEMPORARY_BACKLASH_SMOOTHING(0);
440
+
441
+    probe_sides(m, uncertainty);
442
+
443
+    #if ENABLED(BACKLASH_GCODE)
444
+      #if HAS_X_CENTER
445
+        backlash_distance_mm[X_AXIS] = (m.backlash[LEFT] + m.backlash[RIGHT]) / 2;
446
+      #elif ENABLED(CALIBRATION_MEASURE_LEFT)
447
+        backlash_distance_mm[X_AXIS] = m.backlash[LEFT];
448
+      #elif ENABLED(CALIBRATION_MEASURE_RIGHT)
449
+        backlash_distance_mm[X_AXIS] = m.backlash[RIGHT];
450
+      #endif
451
+
452
+      #if HAS_Y_CENTER
453
+        backlash_distance_mm[Y_AXIS] = (m.backlash[FRONT] + m.backlash[BACK]) / 2;
454
+      #elif ENABLED(CALIBRATION_MEASURE_FRONT)
455
+        backlash_distance_mm[Y_AXIS] = m.backlash[FRONT];
456
+      #elif ENABLED(CALIBRATION_MEASURE_BACK)
457
+        backlash_distance_mm[Y_AXIS] = m.backlash[BACK];
458
+      #endif
459
+
460
+      backlash_distance_mm[Z_AXIS] = m.backlash[TOP];
461
+    #endif
462
+  }
463
+
464
+  #if ENABLED(BACKLASH_GCODE)
465
+    // Turn on backlash compensation and move in all
466
+    // directions to take up any backlash
467
+
468
+    {
469
+      // New scope for TEMPORARY_BACKLASH_STATE
470
+      TEMPORARY_BACKLASH_STATE(true);
471
+      TEMPORARY_BACKLASH_SMOOTHING(0);
472
+      move_to(
473
+        X_AXIS, current_position[X_AXIS] + 3,
474
+        Y_AXIS, current_position[Y_AXIS] + 3,
475
+        Z_AXIS, current_position[Z_AXIS] + 3
476
+      );
477
+      move_to(
478
+        X_AXIS, current_position[X_AXIS] - 3,
479
+        Y_AXIS, current_position[Y_AXIS] - 3,
480
+        Z_AXIS, current_position[Z_AXIS] - 3
481
+      );
482
+    }
483
+  #endif
484
+}
485
+
486
+inline void update_measurements(measurements_t &m, const AxisEnum axis) {
487
+  current_position[axis] += m.pos_error[axis];
488
+  m.obj_center[axis] = m.true_center[axis];
489
+  m.pos_error[axis] = 0;
490
+}
491
+
492
+/**
493
+ * Probe around the calibration object. Adjust the position and toolhead offset
494
+ * using the deviation from the known position of the calibration object.
495
+ *
496
+ *   m              in/out - Measurement record, updated with new readings
497
+ *   uncertainty    in     - How far away from the object to begin probing
498
+ *   extruder       in     - What extruder to probe
499
+ *
500
+ * Prerequisites:
501
+ *    - Call calibrate_backlash() beforehand for best accuracy
502
+ */
503
+inline void calibrate_toolhead(measurements_t &m, const float uncertainty, const uint8_t extruder) {
504
+  TEMPORARY_BACKLASH_STATE(true);
505
+  TEMPORARY_BACKLASH_SMOOTHING(0);
506
+
507
+  #if HOTENDS > 1
508
+    set_nozzle(m, extruder);
509
+  #endif
510
+
511
+  probe_sides(m, uncertainty);
512
+
513
+  /* Adjust the hotend offset */
514
+  #if HOTENDS > 1
515
+    #if HAS_X_CENTER
516
+      hotend_offset[X_AXIS][extruder] += m.pos_error[X_AXIS];
517
+    #endif
518
+    #if HAS_Y_CENTER
519
+      hotend_offset[Y_AXIS][extruder] += m.pos_error[Y_AXIS];
520
+    #endif
521
+    hotend_offset[Z_AXIS][extruder] += m.pos_error[Z_AXIS];
522
+
523
+    normalize_hotend_offsets();
524
+  #endif
525
+
526
+  // Correct for positional error, so the object
527
+  // is at the known actual spot
528
+  planner.synchronize();
529
+  #if HAS_X_CENTER
530
+    update_measurements(m, X_AXIS);
531
+  #endif
532
+  #if HAS_Y_CENTER
533
+    update_measurements(m, Y_AXIS);
534
+  #endif
535
+  update_measurements(m, Z_AXIS);
536
+
537
+  sync_plan_position();
538
+}
539
+
540
+/**
541
+ * Probe around the calibration object for all toolheads, adjusting the coordinate
542
+ * system for the first nozzle and the nozzle offset for subsequent nozzles.
543
+ *
544
+ *   m              in/out - Measurement record, updated with new readings
545
+ *   uncertainty    in     - How far away from the object to begin probing
546
+ */
547
+inline void calibrate_all_toolheads(measurements_t &m, const float uncertainty) {
548
+  TEMPORARY_BACKLASH_STATE(true);
549
+  TEMPORARY_BACKLASH_SMOOTHING(0);
550
+
551
+  HOTEND_LOOP() calibrate_toolhead(m, uncertainty, e);
552
+
553
+  #if HOTENDS > 1
554
+    normalize_hotend_offsets();
555
+    set_nozzle(m, 0);
556
+  #endif
557
+}
558
+
559
+/**
560
+ * Perform a full auto-calibration routine:
561
+ *
562
+ *   1) For each nozzle, touch top and sides of object to determine object position and
563
+ *      nozzle offsets. Do a fast but rough search over a wider area.
564
+ *   2) With the first nozzle, touch top and sides of object to determine backlash values
565
+ *      for all axis (if BACKLASH_GCODE is enabled)
566
+ *   3) For each nozzle, touch top and sides of object slowly to determine precise
567
+ *      position of object. Adjust coordinate system and nozzle offsets so probed object
568
+ *      location corresponds to known object location with a high degree of precision.
569
+ */
570
+inline void calibrate_all() {
571
+  measurements_t m;
572
+
573
+  #if HOTENDS > 1
574
+    reset_nozzle_offsets();
575
+  #endif
576
+
577
+  TEMPORARY_BACKLASH_STATE(true);
578
+  TEMPORARY_BACKLASH_SMOOTHING(0);
579
+
580
+
581
+  /* Do a fast and rough calibration of the toolheads */
582
+  calibrate_all_toolheads(m, CALIBRATION_MEASUREMENT_UNKNOWN);
583
+
584
+  #if ENABLED(BACKLASH_GCODE)
585
+    calibrate_backlash(m, CALIBRATION_MEASUREMENT_UNCERTAIN);
586
+  #endif
587
+
588
+  /* Cycle the toolheads so the servos settle into their "natural" positions */
589
+  #if HOTENDS > 1
590
+    HOTEND_LOOP() set_nozzle(m, e);
591
+  #endif
592
+
593
+  /* Do a slow and precise calibration of the toolheads */
594
+  calibrate_all_toolheads(m, CALIBRATION_MEASUREMENT_UNCERTAIN);
595
+
596
+  move_to(X_AXIS, 150); // Park nozzle away from calibration object
597
+}
598
+
599
+/**
600
+ * G425: Perform calibration with calibration object.
601
+ *
602
+ *   B           - Perform calibration of backlash only.
603
+ *   T<extruder> - Perform calibration of toolhead only.
604
+ *   V           - Probe object and print position, error, backlash and hotend offset.
605
+ *   U           - Uncertainty, how far to start probe away from the object (mm)
606
+ *
607
+ *   no args     - Perform entire calibration sequence (backlash + position on all toolheads)
608
+ */
609
+void GcodeSuite::G425() {
610
+  if (axis_unhomed_error()) return;
611
+
612
+  measurements_t m;
613
+
614
+  float uncertainty = parser.seenval('U') ? parser.value_float() : CALIBRATION_MEASUREMENT_UNCERTAIN;
615
+
616
+  if (parser.seen('B'))
617
+    calibrate_backlash(m, uncertainty);
618
+  else if (parser.seen('T'))
619
+    calibrate_toolhead(m, uncertainty, parser.has_value() ? parser.value_int() : active_extruder);
620
+  #if ENABLED(CALIBRATION_REPORTING)
621
+    else if (parser.seen('V')) {
622
+      probe_sides(m, uncertainty);
623
+      SERIAL_EOL();
624
+      report_measured_faces(m);
625
+      report_measured_center(m);
626
+      report_measured_backlash(m);
627
+      report_measured_nozzle_dimensions(m);
628
+      report_measured_positional_error(m);
629
+      #if HOTENDS > 1
630
+        normalize_hotend_offsets();
631
+        report_hotend_offsets();
632
+      #endif
633
+    }
634
+  #endif
635
+  else
636
+    calibrate_all();
637
+}
638
+
639
+#endif // CALIBRATION_GCODE

+ 4
- 0
Marlin/src/gcode/gcode.cpp View File

@@ -270,6 +270,10 @@ void GcodeSuite::process_parsed_command(
270 270
         case 42: G42(); break;                                    // G42: Coordinated move to a mesh point
271 271
       #endif
272 272
 
273
+      #if ENABLED(CALIBRATION_GCODE)
274
+        case 425: G425(); break;                                  // G425: Perform calibration with calibration cube
275
+      #endif
276
+
273 277
       #if ENABLED(DEBUG_GCODE_PARSER)
274 278
         case 800: parser.debug(); break;                          // G800: GCode Parser Test for G
275 279
       #endif

+ 4
- 0
Marlin/src/gcode/gcode.h View File

@@ -436,6 +436,10 @@ private:
436 436
 
437 437
   static void G92();
438 438
 
439
+  #if ENABLED(CALIBRATION_GCODE)
440
+    static void G425();
441
+  #endif
442
+
439 443
   #if HAS_RESUME_CONTINUE
440 444
     static void M0_M1();
441 445
   #endif

+ 1
- 0
Marlin/src/inc/Conditionals_post.h View File

@@ -888,6 +888,7 @@
888 888
 #define HAS_Z3_MIN (PIN_EXISTS(Z3_MIN))
889 889
 #define HAS_Z3_MAX (PIN_EXISTS(Z3_MAX))
890 890
 #define HAS_Z_MIN_PROBE_PIN (PIN_EXISTS(Z_MIN_PROBE))
891
+#define HAS_CALIBRATION_PIN (PIN_EXISTS(CALIBRATION))
891 892
 
892 893
 // ADC Temp Sensors (Thermistor or Thermocouple with amplifier ADC interface)
893 894
 #define HAS_ADC_TEST(P) (PIN_EXISTS(TEMP_##P) && TEMP_SENSOR_##P != 0 && DISABLED(HEATER_##P##_USES_MAX6675))

+ 10
- 0
Marlin/src/module/endstops.cpp View File

@@ -218,6 +218,16 @@ void Endstops::init() {
218 218
     #endif
219 219
   #endif
220 220
 
221
+  #if HAS_CALIBRATION_PIN
222
+    #if ENABLED(CALIBRATION_PIN_PULLUP)
223
+      SET_INPUT_PULLUP(CALIBRATION_PIN);
224
+    #elif ENABLED(CALIBRATION_PIN_PULLDOWN)
225
+      SET_INPUT_PULLDOWN(CALIBRATION_PIN);
226
+    #else
227
+      SET_INPUT(CALIBRATION_PIN);
228
+    #endif
229
+  #endif
230
+
221 231
   #if ENABLED(Z_MIN_PROBE_ENDSTOP)
222 232
     #if ENABLED(ENDSTOPPULLUP_ZMIN_PROBE)
223 233
       SET_INPUT_PULLUP(Z_MIN_PROBE_PIN);

+ 16
- 0
Marlin/src/module/endstops.h View File

@@ -97,6 +97,8 @@ class Endstops {
97 97
       );
98 98
     }
99 99
 
100
+    static inline bool global_enabled() { return enabled_globally; }
101
+
100 102
     /**
101 103
      * Periodic call to poll endstops if required. Called from temperature ISR
102 104
      */
@@ -173,3 +175,17 @@ class Endstops {
173 175
 };
174 176
 
175 177
 extern Endstops endstops;
178
+
179
+/**
180
+ * A class to save and change the endstop state,
181
+ * then restore it when it goes out of scope.
182
+ */
183
+class TemporaryGlobalEndstopsState {
184
+  bool saved;
185
+
186
+  public:
187
+    TemporaryGlobalEndstopsState(const bool enable) : saved(endstops.global_enabled()) {
188
+      endstops.enable_globally(enable);
189
+    }
190
+    ~TemporaryGlobalEndstopsState() { endstops.enable_globally(saved); }
191
+};

+ 1
- 1
buildroot/share/tests/teensy35_tests View File

@@ -20,7 +20,7 @@ opt_set TEMP_SENSOR_0 1
20 20
 opt_set TEMP_SENSOR_1 5
21 21
 opt_set TEMP_SENSOR_BED 1
22 22
 opt_enable REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER SDSUPPORT \
23
-           FILAMENT_WIDTH_SENSOR FILAMENT_LCD_DISPLAY \
23
+           FILAMENT_WIDTH_SENSOR FILAMENT_LCD_DISPLAY CALIBRATION_GCODE \
24 24
            FIX_MOUNTED_PROBE Z_SAFE_HOMING AUTO_BED_LEVELING_BILINEAR Z_MIN_PROBE_REPEATABILITY_TEST DEBUG_LEVELING_FEATURE \
25 25
            BABYSTEPPING BABYSTEP_XY BABYSTEP_ZPROBE_OFFSET BABYSTEP_ZPROBE_GFX_OVERLAY \
26 26
            PRINTCOUNTER NOZZLE_PARK_FEATURE NOZZLE_CLEAN_FEATURE SLOW_PWM_HEATERS PIDTEMPBED EEPROM_SETTINGS INCH_MODE_SUPPORT TEMPERATURE_UNITS_SUPPORT M100_FREE_MEMORY_WATCHER \

Loading…
Cancel
Save