Browse Source

Enable ABL by type, support bilinear on cartesian

Scott Lahteine 8 years ago
parent
commit
ea0dbee3c9
34 changed files with 1501 additions and 1293 deletions
  1. 8
    8
      .travis.yml
  2. 6
    19
      Marlin/Conditionals_post.h
  3. 119
    46
      Marlin/Configuration.h
  4. 3
    3
      Marlin/Marlin.h
  5. 48
    49
      Marlin/Marlin_main.cpp
  6. 53
    20
      Marlin/SanityCheck.h
  7. 57
    51
      Marlin/example_configurations/Cartesio/Configuration.h
  8. 57
    51
      Marlin/example_configurations/Felix/Configuration.h
  9. 57
    51
      Marlin/example_configurations/Felix/DUAL/Configuration.h
  10. 57
    51
      Marlin/example_configurations/Hephestos/Configuration.h
  11. 57
    51
      Marlin/example_configurations/Hephestos_2/Configuration.h
  12. 57
    51
      Marlin/example_configurations/K8200/Configuration.h
  13. 57
    51
      Marlin/example_configurations/K8400/Configuration.h
  14. 57
    51
      Marlin/example_configurations/K8400/Dual-head/Configuration.h
  15. 57
    51
      Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h
  16. 57
    51
      Marlin/example_configurations/RigidBot/Configuration.h
  17. 57
    51
      Marlin/example_configurations/SCARA/Configuration.h
  18. 57
    51
      Marlin/example_configurations/TAZ4/Configuration.h
  19. 57
    51
      Marlin/example_configurations/WITBOX/Configuration.h
  20. 57
    51
      Marlin/example_configurations/adafruit/ST7565/Configuration.h
  21. 66
    62
      Marlin/example_configurations/delta/biv2.5/Configuration.h
  22. 66
    62
      Marlin/example_configurations/delta/generic/Configuration.h
  23. 66
    62
      Marlin/example_configurations/delta/kossel_mini/Configuration.h
  24. 66
    62
      Marlin/example_configurations/delta/kossel_pro/Configuration.h
  25. 66
    62
      Marlin/example_configurations/delta/kossel_xl/Configuration.h
  26. 57
    51
      Marlin/example_configurations/makibox/Configuration.h
  27. 57
    51
      Marlin/example_configurations/tvrrug/Round2/Configuration.h
  28. 12
    12
      Marlin/planner.cpp
  29. 3
    3
      Marlin/planner.h
  30. 1
    1
      Marlin/qr_solve.cpp
  31. 1
    1
      Marlin/qr_solve.h
  32. 1
    1
      Marlin/ultralcd.cpp
  33. 2
    2
      Marlin/vector_3.cpp
  34. 2
    2
      Marlin/vector_3.h

+ 8
- 8
.travis.yml View File

@@ -106,9 +106,9 @@ script:
106 106
   - opt_enable FIX_MOUNTED_PROBE Z_SAFE_HOMING
107 107
   - build_marlin
108 108
   #
109
-  # ...with AUTO_BED_LEVELING_FEATURE, Z_MIN_PROBE_REPEATABILITY_TEST, & DEBUG_LEVELING_FEATURE
109
+  # ...with AUTO_BED_LEVELING_LINEAR, Z_MIN_PROBE_REPEATABILITY_TEST, & DEBUG_LEVELING_FEATURE
110 110
   #
111
-  - opt_enable AUTO_BED_LEVELING_FEATURE Z_MIN_PROBE_REPEATABILITY_TEST DEBUG_LEVELING_FEATURE
111
+  - opt_enable AUTO_BED_LEVELING_LINEAR Z_MIN_PROBE_REPEATABILITY_TEST DEBUG_LEVELING_FEATURE
112 112
   - opt_set ABL_GRID_POINTS_X 16
113 113
   - opt_set ABL_GRID_POINTS_Y 16
114 114
   - build_marlin
@@ -119,9 +119,9 @@ script:
119 119
   - opt_enable Z_PROBE_SLED
120 120
   - build_marlin
121 121
   #
122
-  # ...with AUTO_BED_LEVELING_FEATURE & DEBUG_LEVELING_FEATURE
122
+  # ...with AUTO_BED_LEVELING_LINEAR & DEBUG_LEVELING_FEATURE
123 123
   #
124
-  - opt_enable AUTO_BED_LEVELING_FEATURE DEBUG_LEVELING_FEATURE
124
+  - opt_enable AUTO_BED_LEVELING_LINEAR DEBUG_LEVELING_FEATURE
125 125
   - build_marlin
126 126
   #
127 127
   # Test a Servo Probe
@@ -130,9 +130,9 @@ script:
130 130
   - opt_enable NUM_SERVOS Z_ENDSTOP_SERVO_NR Z_SERVO_ANGLES DEACTIVATE_SERVOS_AFTER_MOVE
131 131
   - build_marlin
132 132
   #
133
-  # ...with AUTO_BED_LEVELING_FEATURE & DEBUG_LEVELING_FEATURE
133
+  # ...with AUTO_BED_LEVELING_3POINT & DEBUG_LEVELING_FEATURE
134 134
   #
135
-  - opt_enable AUTO_BED_LEVELING_FEATURE DEBUG_LEVELING_FEATURE
135
+  - opt_enable AUTO_BED_LEVELING_3POINT DEBUG_LEVELING_FEATURE
136 136
   - build_marlin
137 137
   #
138 138
   # Test MESH_BED_LEVELING feature, with LCD
@@ -360,7 +360,7 @@ script:
360 360
   #
361 361
   - use_example_configs delta/generic
362 362
   - opt_disable DISABLE_MIN_ENDSTOPS
363
-  - opt_enable AUTO_BED_LEVELING_FEATURE Z_PROBE_ALLEN_KEY
363
+  - opt_enable AUTO_BED_LEVELING_BILINEAR Z_PROBE_ALLEN_KEY
364 364
   - build_marlin
365 365
   #
366 366
   # Delta Config (Mini Kossel)
@@ -376,7 +376,7 @@ script:
376 376
   # SCARA Config
377 377
   #
378 378
   - use_example_configs SCARA
379
-  - opt_enable AUTO_BED_LEVELING_FEATURE FIX_MOUNTED_PROBE USE_ZMIN_PLUG EEPROM_SETTINGS EEPROM_CHITCHAT ULTIMAKERCONTROLLER
379
+  - opt_enable AUTO_BED_LEVELING_BILINEAR FIX_MOUNTED_PROBE USE_ZMIN_PLUG EEPROM_SETTINGS EEPROM_CHITCHAT ULTIMAKERCONTROLLER
380 380
   - build_marlin
381 381
   #
382 382
   # tvrrug Config need to check board type for sanguino atmega644p

+ 6
- 19
Marlin/Conditionals_post.h View File

@@ -117,8 +117,6 @@
117 117
   /**
118 118
    * Auto Bed Leveling and Z Probe Repeatability Test
119 119
    */
120
-  #define HAS_PROBING_PROCEDURE (ENABLED(AUTO_BED_LEVELING_FEATURE) || ENABLED(Z_MIN_PROBE_REPEATABILITY_TEST))
121
-
122 120
   #define HOMING_Z_WITH_PROBE (HAS_BED_PROBE && Z_HOME_DIR < 0 && ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN))
123 121
 
124 122
   /**
@@ -644,25 +642,14 @@
644 642
   #endif
645 643
 
646 644
   /**
647
-   * Specify the exact style of auto bed leveling
648
-   *
649
-   *  3POINT    - 3 Point Probing with the least-squares solution.
650
-   *  LINEAR    - Grid Probing with the least-squares solution.
651
-   *  NONLINEAR - Grid Probing with a mesh solution. Best for large beds.
645
+   * Set ABL options based on the specific type of leveling
652 646
    */
653
-  #if ENABLED(AUTO_BED_LEVELING_FEATURE)
654
-    #if DISABLED(AUTO_BED_LEVELING_GRID)
655
-      #define AUTO_BED_LEVELING_LINEAR
656
-      #define AUTO_BED_LEVELING_3POINT
657
-    #elif IS_KINEMATIC
658
-      #define AUTO_BED_LEVELING_NONLINEAR
659
-    #else
660
-      #define AUTO_BED_LEVELING_LINEAR
661
-      #define AUTO_BED_LEVELING_LINEAR_GRID
662
-    #endif
663
-  #endif
647
+  #define ABL_PLANAR (ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_3POINT))
648
+  #define ABL_GRID   (ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR))
649
+  #define HAS_ABL    (ABL_PLANAR || ABL_GRID)
664 650
 
665
-  #define PLANNER_LEVELING (ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_FEATURE))
651
+  #define HAS_PROBING_PROCEDURE (HAS_ABL || ENABLED(Z_MIN_PROBE_REPEATABILITY_TEST))
652
+  #define PLANNER_LEVELING      (HAS_ABL || ENABLED(MESH_BED_LEVELING))
666 653
 
667 654
   /**
668 655
    * Buzzer/Speaker

+ 119
- 46
Marlin/Configuration.h View File

@@ -516,7 +516,7 @@
516 516
 // Probes are sensors/switches that are activated / deactivated before/after use.
517 517
 //
518 518
 // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
519
-// You must activate one of these to use AUTO_BED_LEVELING_FEATURE below.
519
+// You must activate one of these to use Auto Bed Leveling below.
520 520
 //
521 521
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
522 522
 //
@@ -738,69 +738,142 @@
738 738
 #endif  // MESH_BED_LEVELING
739 739
 
740 740
 //===========================================================================
741
-//============================ Bed Auto Leveling ============================
741
+//============================ Auto Bed Leveling ============================
742 742
 //===========================================================================
743
-
744 743
 // @section bedlevel
745 744
 
746
-//#define AUTO_BED_LEVELING_FEATURE // Delete the comment to enable (remove // at the start of the line)
745
+/**
746
+ * Select one form of Auto Bed Leveling below.
747
+ *
748
+ *  If you're also using the Probe for Z Homing, it's
749
+ *  highly recommended to enable Z_SAFE_HOMING also!
750
+ *
751
+ * - 3POINT
752
+ *   Probe 3 arbitrary points on the bed (that aren't collinear)
753
+ *   You specify the XY coordinates of all 3 points.
754
+ *   The result is a single tilted plane. Best for a flat bed.
755
+ *
756
+ * - LINEAR
757
+ *   Probe several points in a grid.
758
+ *   You specify the rectangle and the density of sample points.
759
+ *   The result is a single tilted plane. Best for a flat bed.
760
+ *
761
+ * - BILINEAR
762
+ *   Probe several points in a grid.
763
+ *   You specify the rectangle and the density of sample points.
764
+ *   The result is a mesh, best for large or uneven beds.
765
+ */
766
+//#define AUTO_BED_LEVELING_3POINT
767
+//#define AUTO_BED_LEVELING_LINEAR
768
+//#define AUTO_BED_LEVELING_BILINEAR
747 769
 
748
-// Enable this feature to get detailed logging of G28, G29, M48, etc.
749
-// Logging is off by default. Enable this logging feature with 'M111 S32'.
750
-// NOTE: Requires a huge amount of PROGMEM.
770
+/**
771
+ * Enable detailed logging of G28, G29, M48, etc.
772
+ * Turn on with the command 'M111 S32'.
773
+ * NOTE: Requires a lot of PROGMEM!
774
+ */
751 775
 //#define DEBUG_LEVELING_FEATURE
752 776
 
753
-#if ENABLED(AUTO_BED_LEVELING_FEATURE)
777
+#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
778
+
779
+  // Set the number of grid points per dimension.
780
+  #define ABL_GRID_POINTS_X 3
781
+  #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
782
+
783
+  // Set the boundaries for probing (where the probe can reach).
784
+  #define LEFT_PROBE_BED_POSITION 15
785
+  #define RIGHT_PROBE_BED_POSITION 170
786
+  #define FRONT_PROBE_BED_POSITION 20
787
+  #define BACK_PROBE_BED_POSITION 170
788
+
789
+  // The Z probe minimum outer margin (to validate G29 parameters).
790
+  #define MIN_PROBE_EDGE 10
791
+
792
+#elif ENABLED(AUTO_BED_LEVELING_3POINT)
793
+
794
+  // 3 arbitrary points to probe.
795
+  // A simple cross-product is used to estimate the plane of the bed.
796
+  #define ABL_PROBE_PT_1_X 15
797
+  #define ABL_PROBE_PT_1_Y 180
798
+  #define ABL_PROBE_PT_2_X 15
799
+  #define ABL_PROBE_PT_2_Y 20
800
+  #define ABL_PROBE_PT_3_X 170
801
+  #define ABL_PROBE_PT_3_Y 20
802
+
803
+#endif
754 804
 
755
-  // There are 2 different ways to specify probing locations:
756
-  //
757
-  // - "grid" mode
758
-  //   Probe several points in a rectangular grid.
759
-  //   You specify the rectangle and the density of sample points.
760
-  //   This mode is preferred because there are more measurements.
761
-  //
762
-  // - "3-point" mode
763
-  //   Probe 3 arbitrary points on the bed (that aren't collinear)
764
-  //   You specify the XY coordinates of all 3 points.
805
+/**
806
+ * Commands to execute at the end of G29 probing.
807
+ * Useful to retract or move the Z probe out of the way.
808
+ */
809
+//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"
765 810
 
766
-  // Enable this to sample the bed in a grid (least squares solution).
767
-  // Note: this feature generates 10KB extra code size.
768
-  #define AUTO_BED_LEVELING_GRID
769 811
 
770
-  #if ENABLED(AUTO_BED_LEVELING_GRID)
812
+/**
813
+ * Select one form of Auto Bed Leveling below.
814
+ *
815
+ *  If you're also using the Probe for Z Homing, it's
816
+ *  highly recommended to enable Z_SAFE_HOMING also!
817
+ *
818
+ * - 3POINT
819
+ *   Probe 3 arbitrary points on the bed (that aren't collinear)
820
+ *   You specify the XY coordinates of all 3 points.
821
+ *   The result is a single tilted plane. Best for a flat bed.
822
+ *
823
+ * - LINEAR
824
+ *   Probe several points in a grid.
825
+ *   You specify the rectangle and the density of sample points.
826
+ *   The result is a single tilted plane. Best for a flat bed.
827
+ *
828
+ * - BILINEAR
829
+ *   Probe several points in a grid.
830
+ *   You specify the rectangle and the density of sample points.
831
+ *   The result is a mesh, best for large or uneven beds.
832
+ */
833
+//#define AUTO_BED_LEVELING_3POINT
834
+//#define AUTO_BED_LEVELING_LINEAR
835
+//#define AUTO_BED_LEVELING_BILINEAR
771 836
 
772
-    #define LEFT_PROBE_BED_POSITION 15
773
-    #define RIGHT_PROBE_BED_POSITION 170
774
-    #define FRONT_PROBE_BED_POSITION 20
775
-    #define BACK_PROBE_BED_POSITION 170
837
+/**
838
+ * Enable detailed logging of G28, G29, M48, etc.
839
+ * Turn on with the command 'M111 S32'.
840
+ * NOTE: Requires a lot of PROGMEM!
841
+ */
842
+//#define DEBUG_LEVELING_FEATURE
776 843
 
777
-    #define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this.
844
+#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
778 845
 
779
-    // Set the number of grid points per dimension.
780
-    // You probably don't need more than 3 (squared=9).
781
-    #define ABL_GRID_POINTS_X 3
782
-    #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
846
+  // Set the number of grid points per dimension.
847
+  #define ABL_GRID_POINTS_X 3
848
+  #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
783 849
 
784
-  #else  // !AUTO_BED_LEVELING_GRID
850
+  // Set the boundaries for probing (where the probe can reach).
851
+  #define LEFT_PROBE_BED_POSITION 15
852
+  #define RIGHT_PROBE_BED_POSITION 170
853
+  #define FRONT_PROBE_BED_POSITION 20
854
+  #define BACK_PROBE_BED_POSITION 170
785 855
 
786
-    // Arbitrary points to probe.
787
-    // A simple cross-product is used to estimate the plane of the bed.
788
-    #define ABL_PROBE_PT_1_X 15
789
-    #define ABL_PROBE_PT_1_Y 180
790
-    #define ABL_PROBE_PT_2_X 15
791
-    #define ABL_PROBE_PT_2_Y 20
792
-    #define ABL_PROBE_PT_3_X 170
793
-    #define ABL_PROBE_PT_3_Y 20
856
+  // The Z probe minimum outer margin (to validate G29 parameters).
857
+  #define MIN_PROBE_EDGE 10
794 858
 
795
-  #endif // !AUTO_BED_LEVELING_GRID
859
+#elif ENABLED(AUTO_BED_LEVELING_3POINT)
796 860
 
797
-  //#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
798
-                                                                             // Useful to retract a deployable Z probe.
861
+  // 3 arbitrary points to probe.
862
+  // A simple cross-product is used to estimate the plane of the bed.
863
+  #define ABL_PROBE_PT_1_X 15
864
+  #define ABL_PROBE_PT_1_Y 180
865
+  #define ABL_PROBE_PT_2_X 15
866
+  #define ABL_PROBE_PT_2_Y 20
867
+  #define ABL_PROBE_PT_3_X 170
868
+  #define ABL_PROBE_PT_3_Y 20
799 869
 
800
-  // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing,
801
-  // it is highly recommended you also enable Z_SAFE_HOMING below!
870
+#endif
802 871
 
803
-#endif // AUTO_BED_LEVELING_FEATURE
872
+/**
873
+ * Commands to execute at the end of G29 probing.
874
+ * Useful to retract or move the Z probe out of the way.
875
+ */
876
+//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"
804 877
 
805 878
 
806 879
 // @section homing

+ 3
- 3
Marlin/Marlin.h View File

@@ -319,9 +319,9 @@ float code_value_temp_diff();
319 319
   void forward_kinematics_SCARA(const float &a, const float &b);
320 320
 #endif
321 321
 
322
-#if ENABLED(AUTO_BED_LEVELING_NONLINEAR)
323
-  extern int nonlinear_grid_spacing[2];
324
-  float nonlinear_z_offset(float logical[XYZ]);
322
+#if ENABLED(AUTO_BED_LEVELING_BILINEAR)
323
+  extern int bilinear_grid_spacing[2];
324
+  float bilinear_z_offset(float logical[XYZ]);
325 325
 #endif
326 326
 
327 327
 #if ENABLED(Z_DUAL_ENDSTOPS)

+ 48
- 49
Marlin/Marlin_main.cpp View File

@@ -21,7 +21,6 @@
21 21
  */
22 22
 
23 23
 /**
24
- *
25 24
  * About Marlin
26 25
  *
27 26
  * This firmware is a mashup between Sprinter and grbl.
@@ -34,11 +33,11 @@
34 33
 
35 34
 #include "Marlin.h"
36 35
 
37
-#if ENABLED(AUTO_BED_LEVELING_FEATURE)
36
+#if HAS_ABL
38 37
   #include "vector_3.h"
39 38
 #endif
40 39
 
41
-#if ENABLED(AUTO_BED_LEVELING_LINEAR_GRID)
40
+#if ENABLED(AUTO_BED_LEVELING_LINEAR)
42 41
   #include "qr_solve.h"
43 42
 #elif ENABLED(MESH_BED_LEVELING)
44 43
   #include "mesh_bed_leveling.h"
@@ -397,7 +396,7 @@ static uint8_t target_extruder;
397 396
 
398 397
 #define PLANNER_XY_FEEDRATE() (min(planner.max_feedrate_mm_s[X_AXIS], planner.max_feedrate_mm_s[Y_AXIS]))
399 398
 
400
-#if ENABLED(AUTO_BED_LEVELING_FEATURE)
399
+#if HAS_ABL
401 400
   float xy_probe_feedrate_mm_s = MMM_TO_MMS(XY_PROBE_SPEED);
402 401
   #define XY_PROBE_FEEDRATE_MM_S xy_probe_feedrate_mm_s
403 402
 #elif defined(XY_PROBE_SPEED)
@@ -490,8 +489,8 @@ static uint8_t target_extruder;
490 489
 
491 490
 #endif
492 491
 
493
-#if ENABLED(AUTO_BED_LEVELING_NONLINEAR)
494
-  int nonlinear_grid_spacing[2] = { 0 };
492
+#if ENABLED(AUTO_BED_LEVELING_BILINEAR)
493
+  int bilinear_grid_spacing[2] = { 0 };
495 494
   float bed_level_grid[ABL_GRID_POINTS_X][ABL_GRID_POINTS_Y];
496 495
 #endif
497 496
 
@@ -631,7 +630,7 @@ static void report_current_position();
631 630
     print_xyz(prefix, suffix, xyz[X_AXIS], xyz[Y_AXIS], xyz[Z_AXIS]);
632 631
   }
633 632
 
634
-  #if ENABLED(AUTO_BED_LEVELING_FEATURE)
633
+  #if HAS_ABL
635 634
     void print_xyz(const char* prefix, const char* suffix, const vector_3 &xyz) {
636 635
       print_xyz(prefix, suffix, xyz.x, xyz.y, xyz.z);
637 636
     }
@@ -2120,7 +2119,7 @@ static void clean_up_after_endstop_or_probe_move() {
2120 2119
 
2121 2120
 #endif // HAS_BED_PROBE
2122 2121
 
2123
-#if ENABLED(AUTO_BED_LEVELING_FEATURE)
2122
+#if HAS_ABL
2124 2123
 
2125 2124
   /**
2126 2125
    * Reset calibration results to zero.
@@ -2134,16 +2133,16 @@ static void clean_up_after_endstop_or_probe_move() {
2134 2133
     #if ENABLED(DEBUG_LEVELING_FEATURE)
2135 2134
       if (DEBUGGING(LEVELING)) SERIAL_ECHOLNPGM("reset_bed_level");
2136 2135
     #endif
2137
-    #if ENABLED(AUTO_BED_LEVELING_LINEAR)
2136
+    #if ABL_PLANAR
2138 2137
       planner.bed_level_matrix.set_to_identity();
2139
-    #elif ENABLED(AUTO_BED_LEVELING_NONLINEAR)
2138
+    #elif ENABLED(AUTO_BED_LEVELING_BILINEAR)
2140 2139
       memset(bed_level_grid, 0, sizeof(bed_level_grid));
2141 2140
     #endif
2142 2141
   }
2143 2142
 
2144
-#endif // AUTO_BED_LEVELING_FEATURE
2143
+#endif // HAS_ABL
2145 2144
 
2146
-#if ENABLED(AUTO_BED_LEVELING_NONLINEAR)
2145
+#if ENABLED(AUTO_BED_LEVELING_BILINEAR)
2147 2146
 
2148 2147
   /**
2149 2148
    * Extrapolate a single point from its neighbors
@@ -2189,7 +2188,7 @@ static void clean_up_after_endstop_or_probe_move() {
2189 2188
     }
2190 2189
   }
2191 2190
 
2192
-#endif // AUTO_BED_LEVELING_NONLINEAR
2191
+#endif // AUTO_BED_LEVELING_BILINEAR
2193 2192
 
2194 2193
 /**
2195 2194
  * Home an individual linear axis
@@ -2980,7 +2979,7 @@ inline void gcode_G28() {
2980 2979
   stepper.synchronize();
2981 2980
 
2982 2981
   // For auto bed leveling, clear the level matrix
2983
-  #if ENABLED(AUTO_BED_LEVELING_FEATURE)
2982
+  #if HAS_ABL
2984 2983
     reset_bed_level();
2985 2984
   #endif
2986 2985
 
@@ -3392,7 +3391,7 @@ inline void gcode_G28() {
3392 3391
     report_current_position();
3393 3392
   }
3394 3393
 
3395
-#elif ENABLED(AUTO_BED_LEVELING_FEATURE)
3394
+#elif HAS_ABL
3396 3395
 
3397 3396
   /**
3398 3397
    * G29: Detailed Z probe, probes the bed at 3 or more points.
@@ -3400,7 +3399,7 @@ inline void gcode_G28() {
3400 3399
    *
3401 3400
    * Enhanced G29 Auto Bed Leveling Probe Routine
3402 3401
    *
3403
-   * Parameters With AUTO_BED_LEVELING_GRID:
3402
+   * Parameters With ABL_GRID:
3404 3403
    *
3405 3404
    *  P  Set the size of the grid that will be probed (P x P points).
3406 3405
    *     Not supported by non-linear delta printer bed leveling.
@@ -3454,9 +3453,9 @@ inline void gcode_G28() {
3454 3453
     bool dryrun = code_seen('D'),
3455 3454
          stow_probe_after_each = code_seen('E');
3456 3455
 
3457
-    #if ENABLED(AUTO_BED_LEVELING_GRID)
3456
+    #if ABL_GRID
3458 3457
 
3459
-      #if ENABLED(AUTO_BED_LEVELING_LINEAR)
3458
+      #if ABL_PLANAR
3460 3459
         bool do_topography_map = verbose_level > 2 || code_seen('T');
3461 3460
       #endif
3462 3461
 
@@ -3468,7 +3467,7 @@ inline void gcode_G28() {
3468 3467
       int abl_grid_points_x = ABL_GRID_POINTS_X,
3469 3468
           abl_grid_points_y = ABL_GRID_POINTS_Y;
3470 3469
 
3471
-      #if ENABLED(AUTO_BED_LEVELING_LINEAR)
3470
+      #if ABL_PLANAR
3472 3471
         if (code_seen('P')) abl_grid_points_x = abl_grid_points_y = code_value_int();
3473 3472
         if (abl_grid_points_x < 2) {
3474 3473
           SERIAL_PROTOCOLLNPGM("?Number of probed (P)oints is implausible (2 minimum).");
@@ -3512,7 +3511,7 @@ inline void gcode_G28() {
3512 3511
         return;
3513 3512
       }
3514 3513
 
3515
-    #endif // AUTO_BED_LEVELING_GRID
3514
+    #endif // ABL_GRID
3516 3515
 
3517 3516
     stepper.synchronize();
3518 3517
 
@@ -3541,25 +3540,25 @@ inline void gcode_G28() {
3541 3540
 
3542 3541
     float xProbe = 0, yProbe = 0, measured_z = 0;
3543 3542
 
3544
-    #if ENABLED(AUTO_BED_LEVELING_GRID)
3543
+    #if ABL_GRID
3545 3544
 
3546 3545
       // probe at the points of a lattice grid
3547 3546
       const float xGridSpacing = (right_probe_bed_position - left_probe_bed_position) / (abl_grid_points_x - 1),
3548 3547
                   yGridSpacing = (back_probe_bed_position - front_probe_bed_position) / (abl_grid_points_y - 1);
3549 3548
 
3550
-      #if ENABLED(AUTO_BED_LEVELING_NONLINEAR)
3549
+      #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
3551 3550
 
3552 3551
         float zoffset = zprobe_zoffset;
3553 3552
         if (code_seen('Z')) zoffset += code_value_axis_units(Z_AXIS);
3554 3553
 
3555
-        if (xGridSpacing != nonlinear_grid_spacing[X_AXIS] || yGridSpacing != nonlinear_grid_spacing[Y_AXIS]) {
3556
-          nonlinear_grid_spacing[X_AXIS] = xGridSpacing;
3557
-          nonlinear_grid_spacing[Y_AXIS] = yGridSpacing;
3554
+        if (xGridSpacing != bilinear_grid_spacing[X_AXIS] || yGridSpacing != bilinear_grid_spacing[Y_AXIS]) {
3555
+          bilinear_grid_spacing[X_AXIS] = xGridSpacing;
3556
+          bilinear_grid_spacing[Y_AXIS] = yGridSpacing;
3558 3557
           // Can't re-enable (on error) until the new grid is written
3559 3558
           abl_should_reenable = false;
3560 3559
         }
3561 3560
 
3562
-      #elif ENABLED(AUTO_BED_LEVELING_LINEAR_GRID)
3561
+      #elif ENABLED(AUTO_BED_LEVELING_LINEAR)
3563 3562
 
3564 3563
         /**
3565 3564
          * solve the plane equation ax + by + d = z
@@ -3578,7 +3577,7 @@ inline void gcode_G28() {
3578 3577
               eqnBVector[abl2],     // "B" vector of Z points
3579 3578
               mean = 0.0;
3580 3579
 
3581
-      #endif // AUTO_BED_LEVELING_LINEAR_GRID
3580
+      #endif // AUTO_BED_LEVELING_LINEAR
3582 3581
 
3583 3582
       bool zig = abl_grid_points_y & 1; //always end at [RIGHT_PROBE_BED_POSITION, BACK_PROBE_BED_POSITION]
3584 3583
 
@@ -3605,7 +3604,7 @@ inline void gcode_G28() {
3605 3604
           float xBase = left_probe_bed_position + xGridSpacing * xCount;
3606 3605
           xProbe = floor(xBase + (xBase < 0 ? 0 : 0.5));
3607 3606
 
3608
-          #if ENABLED(AUTO_BED_LEVELING_LINEAR_GRID)
3607
+          #if ENABLED(AUTO_BED_LEVELING_LINEAR)
3609 3608
             indexIntoAB[xCount][yCount] = ++probePointCounter;
3610 3609
           #endif
3611 3610
 
@@ -3622,7 +3621,7 @@ inline void gcode_G28() {
3622 3621
             return;
3623 3622
           }
3624 3623
 
3625
-          #if ENABLED(AUTO_BED_LEVELING_LINEAR_GRID)
3624
+          #if ENABLED(AUTO_BED_LEVELING_LINEAR)
3626 3625
 
3627 3626
             mean += measured_z;
3628 3627
             eqnBVector[probePointCounter] = measured_z;
@@ -3630,7 +3629,7 @@ inline void gcode_G28() {
3630 3629
             eqnAMatrix[probePointCounter + 1 * abl2] = yProbe;
3631 3630
             eqnAMatrix[probePointCounter + 2 * abl2] = 1;
3632 3631
 
3633
-          #elif ENABLED(AUTO_BED_LEVELING_NONLINEAR)
3632
+          #elif ENABLED(AUTO_BED_LEVELING_BILINEAR)
3634 3633
 
3635 3634
             bed_level_grid[xCount][yCount] = measured_z + zoffset;
3636 3635
 
@@ -3700,12 +3699,12 @@ inline void gcode_G28() {
3700 3699
     #endif
3701 3700
 
3702 3701
     // Calculate leveling, print reports, correct the position
3703
-    #if ENABLED(AUTO_BED_LEVELING_NONLINEAR)
3702
+    #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
3704 3703
 
3705 3704
       if (!dryrun) extrapolate_unprobed_bed_level();
3706 3705
       print_bed_level();
3707 3706
 
3708
-    #elif ENABLED(AUTO_BED_LEVELING_LINEAR_GRID)
3707
+    #elif ENABLED(AUTO_BED_LEVELING_LINEAR)
3709 3708
 
3710 3709
       // For LINEAR leveling calculate matrix, print reports, correct the position
3711 3710
 
@@ -3802,9 +3801,9 @@ inline void gcode_G28() {
3802 3801
         }
3803 3802
       } //do_topography_map
3804 3803
 
3805
-    #endif // AUTO_BED_LEVELING_LINEAR_GRID
3804
+    #endif // AUTO_BED_LEVELING_LINEAR
3806 3805
 
3807
-    #if ENABLED(AUTO_BED_LEVELING_LINEAR)
3806
+    #if ABL_PLANAR
3808 3807
 
3809 3808
       // For LINEAR and 3POINT leveling correct the current position
3810 3809
 
@@ -3863,7 +3862,7 @@ inline void gcode_G28() {
3863 3862
         #endif
3864 3863
       }
3865 3864
 
3866
-    #endif // AUTO_BED_LEVELING_LINEAR
3865
+    #endif // ABL_PLANAR
3867 3866
 
3868 3867
     #ifdef Z_PROBE_END_SCRIPT
3869 3868
       #if ENABLED(DEBUG_LEVELING_FEATURE)
@@ -3885,7 +3884,7 @@ inline void gcode_G28() {
3885 3884
     planner.abl_enabled = dryrun ? abl_should_reenable : true;
3886 3885
   }
3887 3886
 
3888
-#endif // AUTO_BED_LEVELING_FEATURE
3887
+#endif // HAS_ABL
3889 3888
 
3890 3889
 #if HAS_BED_PROBE
3891 3890
 
@@ -3894,7 +3893,7 @@ inline void gcode_G28() {
3894 3893
    */
3895 3894
   inline void gcode_G30() {
3896 3895
 
3897
-    #if ENABLED(AUTO_BED_LEVELING_FEATURE)
3896
+    #if HAS_ABL
3898 3897
       reset_bed_level();
3899 3898
     #endif
3900 3899
 
@@ -4340,7 +4339,7 @@ inline void gcode_M42() {
4340 4339
       SERIAL_PROTOCOLLNPGM("Positioning the probe...");
4341 4340
 
4342 4341
     // Disable bed level correction in M48 because we want the raw data when we probe
4343
-    #if ENABLED(AUTO_BED_LEVELING_FEATURE)
4342
+    #if HAS_ABL
4344 4343
       reset_bed_level();
4345 4344
     #endif
4346 4345
 
@@ -6806,7 +6805,7 @@ void tool_change(const uint8_t tmp_extruder, const float fr_mm_s/*=0.0*/, bool n
6806 6805
             }
6807 6806
           #endif
6808 6807
 
6809
-          // No extra case for AUTO_BED_LEVELING_FEATURE in DUAL_X_CARRIAGE. Does that mean they don't work together?
6808
+          // No extra case for HAS_ABL in DUAL_X_CARRIAGE. Does that mean they don't work together?
6810 6809
         #else // !DUAL_X_CARRIAGE
6811 6810
 
6812 6811
           #if ENABLED(SWITCHING_EXTRUDER)
@@ -6865,7 +6864,7 @@ void tool_change(const uint8_t tmp_extruder, const float fr_mm_s/*=0.0*/, bool n
6865 6864
            * Z software endstop. But this is technically correct (and
6866 6865
            * there is no viable alternative).
6867 6866
            */
6868
-          #if ENABLED(AUTO_BED_LEVELING_LINEAR)
6867
+          #if ABL_PLANAR
6869 6868
             // Offset extruder, make sure to apply the bed level rotation matrix
6870 6869
             vector_3 tmp_offset_vec = vector_3(hotend_offset[X_AXIS][tmp_extruder],
6871 6870
                                                hotend_offset[Y_AXIS][tmp_extruder],
@@ -6893,7 +6892,7 @@ void tool_change(const uint8_t tmp_extruder, const float fr_mm_s/*=0.0*/, bool n
6893 6892
             float xydiff[2] = { offset_vec.x, offset_vec.y };
6894 6893
             current_position[Z_AXIS] += offset_vec.z;
6895 6894
 
6896
-          #else // !AUTO_BED_LEVELING_LINEAR
6895
+          #else // !ABL_PLANAR
6897 6896
 
6898 6897
             float xydiff[2] = {
6899 6898
               hotend_offset[X_AXIS][tmp_extruder] - hotend_offset[X_AXIS][active_extruder],
@@ -6917,7 +6916,7 @@ void tool_change(const uint8_t tmp_extruder, const float fr_mm_s/*=0.0*/, bool n
6917 6916
 
6918 6917
             #endif // MESH_BED_LEVELING
6919 6918
 
6920
-          #endif // !AUTO_BED_LEVELING_FEATURE
6919
+          #endif // !HAS_ABL
6921 6920
 
6922 6921
           #if ENABLED(DEBUG_LEVELING_FEATURE)
6923 6922
             if (DEBUGGING(LEVELING)) {
@@ -7140,11 +7139,11 @@ void process_next_command() {
7140 7139
         gcode_G28();
7141 7140
         break;
7142 7141
 
7143
-      #if ENABLED(AUTO_BED_LEVELING_FEATURE) || ENABLED(MESH_BED_LEVELING)
7142
+      #if HAS_ABL || ENABLED(MESH_BED_LEVELING)
7144 7143
         case 29: // G29 Detailed Z probe, probes the bed at 3 or more points.
7145 7144
           gcode_G29();
7146 7145
           break;
7147
-      #endif // AUTO_BED_LEVELING_FEATURE
7146
+      #endif // HAS_ABL
7148 7147
 
7149 7148
       #if HAS_BED_PROBE
7150 7149
 
@@ -7780,17 +7779,17 @@ void ok_to_send() {
7780 7779
 
7781 7780
 #endif
7782 7781
 
7783
-#if ENABLED(AUTO_BED_LEVELING_NONLINEAR)
7782
+#if ENABLED(AUTO_BED_LEVELING_BILINEAR)
7784 7783
 
7785 7784
   // Get the Z adjustment for non-linear bed leveling
7786
-  float nonlinear_z_offset(float cartesian[XYZ]) {
7785
+  float bilinear_z_offset(float cartesian[XYZ]) {
7787 7786
 
7788 7787
     int half_x = (ABL_GRID_POINTS_X - 1) / 2,
7789 7788
         half_y = (ABL_GRID_POINTS_Y - 1) / 2;
7790 7789
     float hx2 = half_x - 0.001, hx1 = -hx2,
7791 7790
           hy2 = half_y - 0.001, hy1 = -hy2,
7792
-          grid_x = max(hx1, min(hx2, RAW_X_POSITION(cartesian[X_AXIS]) / nonlinear_grid_spacing[X_AXIS])),
7793
-          grid_y = max(hy1, min(hy2, RAW_Y_POSITION(cartesian[Y_AXIS]) / nonlinear_grid_spacing[Y_AXIS]));
7791
+          grid_x = max(hx1, min(hx2, RAW_X_POSITION(cartesian[X_AXIS]) / bilinear_grid_spacing[X_AXIS])),
7792
+          grid_y = max(hy1, min(hy2, RAW_Y_POSITION(cartesian[Y_AXIS]) / bilinear_grid_spacing[Y_AXIS]));
7794 7793
     int   floor_x = floor(grid_x), floor_y = floor(grid_y);
7795 7794
     float ratio_x = grid_x - floor_x, ratio_y = grid_y - floor_y,
7796 7795
           z1 = bed_level_grid[floor_x + half_x][floor_y + half_y],
@@ -7819,7 +7818,7 @@ void ok_to_send() {
7819 7818
     return (1 - ratio_x) * left + ratio_x * right;
7820 7819
   }
7821 7820
 
7822
-#endif // AUTO_BED_LEVELING_NONLINEAR
7821
+#endif // AUTO_BED_LEVELING_BILINEAR
7823 7822
 
7824 7823
 #if ENABLED(DELTA)
7825 7824
 

+ 53
- 20
Marlin/SanityCheck.h View File

@@ -69,8 +69,6 @@
69 69
   #error "CUSTOM_MENDEL_NAME is now CUSTOM_MACHINE_NAME. Please update your configuration."
70 70
 #elif defined(HAS_AUTOMATIC_VERSIONING)
71 71
   #error "HAS_AUTOMATIC_VERSIONING is now USE_AUTOMATIC_VERSIONING. Please update your configuration."
72
-#elif defined(ENABLE_AUTO_BED_LEVELING)
73
-  #error "ENABLE_AUTO_BED_LEVELING is now AUTO_BED_LEVELING_FEATURE. Please update your configuration."
74 72
 #elif defined(SDSLOW)
75 73
   #error "SDSLOW deprecated. Set SPI_SPEED to SPI_HALF_SPEED instead."
76 74
 #elif defined(SDEXTRASLOW)
@@ -137,8 +135,12 @@
137 135
   #error "PREVENT_DANGEROUS_EXTRUDE is now PREVENT_COLD_EXTRUSION. Please update your configuration."
138 136
 #elif defined(SCARA)
139 137
   #error "SCARA is now MORGAN_SCARA. Please update your configuration."
140
-#elif defined(AUTO_BED_LEVELING_GRID_POINTS)
141
-  #error "AUTO_BED_LEVELING_GRID_POINTS is now ABL_GRID_POINTS_X and ABL_GRID_POINTS_Y. Please update your configuration."
138
+#elif defined(ENABLE_AUTO_BED_LEVELING)
139
+  #error "ENABLE_AUTO_BED_LEVELING is deprecated. Specify AUTO_BED_LEVELING_LINEAR, AUTO_BED_LEVELING_BILINEAR, or AUTO_BED_LEVELING_3POINT."
140
+#elif defined(AUTO_BED_LEVELING_FEATURE)
141
+  #error "AUTO_BED_LEVELING_FEATURE is deprecated. Specify AUTO_BED_LEVELING_LINEAR, AUTO_BED_LEVELING_BILINEAR, or AUTO_BED_LEVELING_3POINT."
142
+#elif defined(ABL_GRID_POINTS)
143
+  #error "ABL_GRID_POINTS is now ABL_GRID_POINTS_X and ABL_GRID_POINTS_Y. Please update your configuration."
142 144
 #elif defined(BEEPER)
143 145
   #error "BEEPER is now BEEPER_PIN. Please update your pins definitions."
144 146
 #elif defined(SDCARDDETECT)
@@ -205,7 +207,7 @@
205 207
   #if DISABLED(USE_XMAX_PLUG) && DISABLED(USE_YMAX_PLUG) && DISABLED(USE_ZMAX_PLUG)
206 208
     #error "You probably want to use Max Endstops for DELTA!"
207 209
   #endif
208
-  #if ENABLED(AUTO_BED_LEVELING_GRID)
210
+  #if ABL_GRID
209 211
     #if (ABL_GRID_POINTS_X & 1) == 0 || (ABL_GRID_POINTS_Y & 1) == 0
210 212
       #error "DELTA requires ABL_GRID_POINTS_X and ABL_GRID_POINTS_Y to be odd numbers."
211 213
     #elif ABL_GRID_POINTS_X < 3
@@ -340,28 +342,55 @@
340 342
 #endif
341 343
 
342 344
 /**
345
+ * Allow only one bed leveling option to be defined
346
+ */
347
+#if HAS_ABL
348
+  #define COUNT_LEV_1 0
349
+  #if ENABLED(AUTO_BED_LEVELING_LINEAR)
350
+    #define COUNT_LEV_2 INCREMENT(COUNT_LEV_1)
351
+  #else
352
+    #define COUNT_LEV_2 COUNT_LEV_1
353
+  #endif
354
+  #if ENABLED(AUTO_BED_LEVELING_3POINT)
355
+    #define COUNT_LEV_3 INCREMENT(COUNT_LEV_2)
356
+  #else
357
+    #define COUNT_LEV_3 COUNT_LEV_2
358
+  #endif
359
+  #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
360
+    #define COUNT_LEV_4 INCREMENT(COUNT_LEV_3)
361
+  #else
362
+    #define COUNT_LEV_4 COUNT_LEV_3
363
+  #endif
364
+  #if ENABLED(MESH_BED_LEVELING)
365
+    #define COUNT_LEV_5 INCREMENT(COUNT_LEV_4)
366
+  #else
367
+    #define COUNT_LEV_5 COUNT_LEV_4
368
+  #endif
369
+  #if COUNT_LEV_5 > 1
370
+    #error "Select only one of: MESH_BED_LEVELING, AUTO_BED_LEVELING_LINEAR, AUTO_BED_LEVELING_3POINT, or AUTO_BED_LEVELING_BILINEAR."
371
+  #endif
372
+#endif
373
+
374
+/**
343 375
  * Mesh Bed Leveling
344 376
  */
345 377
 #if ENABLED(MESH_BED_LEVELING)
346 378
   #if ENABLED(DELTA)
347 379
     #error "MESH_BED_LEVELING does not yet support DELTA printers."
348
-  #elif ENABLED(AUTO_BED_LEVELING_FEATURE)
349
-    #error "Select AUTO_BED_LEVELING_FEATURE or MESH_BED_LEVELING, not both."
350 380
   #elif MESH_NUM_X_POINTS > 9 || MESH_NUM_Y_POINTS > 9
351 381
     #error "MESH_NUM_X_POINTS and MESH_NUM_Y_POINTS must be less than 10."
352 382
   #endif
353 383
 #elif ENABLED(MANUAL_BED_LEVELING)
354
-  #error "MESH_BED_LEVELING is required for MANUAL_BED_LEVELING."
384
+  #error "MANUAL_BED_LEVELING only applies to MESH_BED_LEVELING."
355 385
 #endif
356 386
 
357 387
 /**
358 388
  * Probes
359 389
  */
360
-
361 390
 #if PROBE_SELECTED
362 391
 
363 392
   /**
364
-   * Only allow one probe option to be defined
393
+   * Allow only one probe option to be defined
365 394
    */
366 395
   #define COUNT_PROBE_1 0
367 396
   #if ENABLED(FIX_MOUNTED_PROBE)
@@ -448,8 +477,8 @@
448 477
   /**
449 478
    * Require some kind of probe for bed leveling and probe testing
450 479
    */
451
-  #if ENABLED(AUTO_BED_LEVELING_FEATURE)
452
-    #error "AUTO_BED_LEVELING_FEATURE requires a probe! Define a Z Servo, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or FIX_MOUNTED_PROBE."
480
+  #if HAS_ABL
481
+    #error "Auto Bed Leveling requires a probe! Define a Z Servo, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or FIX_MOUNTED_PROBE."
453 482
   #elif ENABLED(Z_MIN_PROBE_REPEATABILITY_TEST)
454 483
     #error "Z_MIN_PROBE_REPEATABILITY_TEST requires a probe! Define a Z Servo, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or FIX_MOUNTED_PROBE."
455 484
   #endif
@@ -485,19 +514,23 @@
485 514
 /**
486 515
  * Auto Bed Leveling
487 516
  */
488
-#if ENABLED(AUTO_BED_LEVELING_FEATURE)
517
+#if HAS_ABL
489 518
 
490 519
   /**
491
-   * Delta has limited bed leveling options
520
+   * Delta and SCARA have limited bed leveling options
492 521
    */
493
-  #if ENABLED(DELTA) && DISABLED(AUTO_BED_LEVELING_GRID)
494
-    #error "You must use AUTO_BED_LEVELING_GRID for DELTA bed leveling."
522
+  #if DISABLED(AUTO_BED_LEVELING_BILINEAR)
523
+    #if ENABLED(DELTA)
524
+      #error "Only AUTO_BED_LEVELING_BILINEAR is supported for DELTA bed leveling."
525
+    #elif ENABLED(SCARA)
526
+      #error "Only AUTO_BED_LEVELING_BILINEAR is supported for SCARA bed leveling."
527
+    #endif
495 528
   #endif
496 529
 
497 530
   /**
498 531
    * Check if Probe_Offset * Grid Points is greater than Probing Range
499 532
    */
500
-  #if ENABLED(AUTO_BED_LEVELING_GRID)
533
+  #if ABL_GRID
501 534
     #ifndef DELTA_PROBEABLE_RADIUS
502 535
       // Be sure points are in the right order
503 536
       #if LEFT_PROBE_BED_POSITION > RIGHT_PROBE_BED_POSITION
@@ -516,7 +549,7 @@
516 549
         #error "The given BACK_PROBE_BED_POSITION can't be reached by the Z probe."
517 550
       #endif
518 551
     #endif
519
-  #else // !AUTO_BED_LEVELING_GRID
552
+  #else // !ABL_GRID
520 553
 
521 554
     // Check the triangulation points
522 555
     #if ABL_PROBE_PT_1_X < MIN_PROBE_X || ABL_PROBE_PT_1_X > MAX_PROBE_X
@@ -533,9 +566,9 @@
533 566
       #error "The given ABL_PROBE_PT_3_Y can't be reached by the Z probe."
534 567
     #endif
535 568
 
536
-  #endif // !AUTO_BED_LEVELING_GRID
569
+  #endif // !ABL_GRID
537 570
 
538
-#endif // AUTO_BED_LEVELING_FEATURE
571
+#endif // HAS_ABL
539 572
 
540 573
 /**
541 574
  * Advance Extrusion

+ 57
- 51
Marlin/example_configurations/Cartesio/Configuration.h View File

@@ -499,7 +499,7 @@
499 499
 // Probes are sensors/switches that are activated / deactivated before/after use.
500 500
 //
501 501
 // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
502
-// You must activate one of these to use AUTO_BED_LEVELING_FEATURE below.
502
+// You must activate one of these to use Auto Bed Leveling below.
503 503
 //
504 504
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
505 505
 //
@@ -721,69 +721,75 @@
721 721
 #endif  // MESH_BED_LEVELING
722 722
 
723 723
 //===========================================================================
724
-//============================ Bed Auto Leveling ============================
724
+//============================ Auto Bed Leveling ============================
725 725
 //===========================================================================
726
-
727 726
 // @section bedlevel
728 727
 
729
-//#define AUTO_BED_LEVELING_FEATURE // Delete the comment to enable (remove // at the start of the line)
728
+/**
729
+ * Select one form of Auto Bed Leveling below.
730
+ *
731
+ *  If you're also using the Probe for Z Homing, it's
732
+ *  highly recommended to enable Z_SAFE_HOMING also!
733
+ *
734
+ * - 3POINT
735
+ *   Probe 3 arbitrary points on the bed (that aren't collinear)
736
+ *   You specify the XY coordinates of all 3 points.
737
+ *   The result is a single tilted plane. Best for a flat bed.
738
+ *
739
+ * - LINEAR
740
+ *   Probe several points in a grid.
741
+ *   You specify the rectangle and the density of sample points.
742
+ *   The result is a single tilted plane. Best for a flat bed.
743
+ *
744
+ * - BILINEAR
745
+ *   Probe several points in a grid.
746
+ *   You specify the rectangle and the density of sample points.
747
+ *   The result is a mesh, best for large or uneven beds.
748
+ */
749
+//#define AUTO_BED_LEVELING_3POINT
750
+//#define AUTO_BED_LEVELING_LINEAR
751
+//#define AUTO_BED_LEVELING_BILINEAR
730 752
 
731
-// Enable this feature to get detailed logging of G28, G29, M48, etc.
732
-// Logging is off by default. Enable this logging feature with 'M111 S32'.
733
-// NOTE: Requires a huge amount of PROGMEM.
753
+/**
754
+ * Enable detailed logging of G28, G29, M48, etc.
755
+ * Turn on with the command 'M111 S32'.
756
+ * NOTE: Requires a lot of PROGMEM!
757
+ */
734 758
 //#define DEBUG_LEVELING_FEATURE
735 759
 
736
-#if ENABLED(AUTO_BED_LEVELING_FEATURE)
760
+#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
737 761
 
738
-  // There are 2 different ways to specify probing locations:
739
-  //
740
-  // - "grid" mode
741
-  //   Probe several points in a rectangular grid.
742
-  //   You specify the rectangle and the density of sample points.
743
-  //   This mode is preferred because there are more measurements.
744
-  //
745
-  // - "3-point" mode
746
-  //   Probe 3 arbitrary points on the bed (that aren't collinear)
747
-  //   You specify the XY coordinates of all 3 points.
762
+  // Set the number of grid points per dimension.
763
+  #define ABL_GRID_POINTS_X 3
764
+  #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
748 765
 
749
-  // Enable this to sample the bed in a grid (least squares solution).
750
-  // Note: this feature generates 10KB extra code size.
751
-  #define AUTO_BED_LEVELING_GRID
766
+  // Set the boundaries for probing (where the probe can reach).
767
+  #define LEFT_PROBE_BED_POSITION 15
768
+  #define RIGHT_PROBE_BED_POSITION 170
769
+  #define FRONT_PROBE_BED_POSITION 20
770
+  #define BACK_PROBE_BED_POSITION 170
752 771
 
753
-  #if ENABLED(AUTO_BED_LEVELING_GRID)
772
+  // The Z probe minimum outer margin (to validate G29 parameters).
773
+  #define MIN_PROBE_EDGE 10
754 774
 
755
-    #define LEFT_PROBE_BED_POSITION 15
756
-    #define RIGHT_PROBE_BED_POSITION 170
757
-    #define FRONT_PROBE_BED_POSITION 20
758
-    #define BACK_PROBE_BED_POSITION 170
775
+#elif ENABLED(AUTO_BED_LEVELING_3POINT)
759 776
 
760
-    #define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this.
777
+  // 3 arbitrary points to probe.
778
+  // A simple cross-product is used to estimate the plane of the bed.
779
+  #define ABL_PROBE_PT_1_X 15
780
+  #define ABL_PROBE_PT_1_Y 180
781
+  #define ABL_PROBE_PT_2_X 15
782
+  #define ABL_PROBE_PT_2_Y 20
783
+  #define ABL_PROBE_PT_3_X 170
784
+  #define ABL_PROBE_PT_3_Y 20
761 785
 
762
-    // Set the number of grid points per dimension.
763
-    // You probably don't need more than 3 (squared=9).
764
-    #define ABL_GRID_POINTS_X 3
765
-    #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
766
-
767
-  #else  // !AUTO_BED_LEVELING_GRID
768
-
769
-    // Arbitrary points to probe.
770
-    // A simple cross-product is used to estimate the plane of the bed.
771
-    #define ABL_PROBE_PT_1_X 15
772
-    #define ABL_PROBE_PT_1_Y 180
773
-    #define ABL_PROBE_PT_2_X 15
774
-    #define ABL_PROBE_PT_2_Y 20
775
-    #define ABL_PROBE_PT_3_X 170
776
-    #define ABL_PROBE_PT_3_Y 20
777
-
778
-  #endif // !AUTO_BED_LEVELING_GRID
779
-
780
-  //#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
781
-                                                                             // Useful to retract a deployable Z probe.
782
-
783
-  // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing,
784
-  // it is highly recommended you also enable Z_SAFE_HOMING below!
786
+#endif
785 787
 
786
-#endif // AUTO_BED_LEVELING_FEATURE
788
+/**
789
+ * Commands to execute at the end of G29 probing.
790
+ * Useful to retract or move the Z probe out of the way.
791
+ */
792
+//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"
787 793
 
788 794
 
789 795
 // @section homing

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

@@ -482,7 +482,7 @@
482 482
 // Probes are sensors/switches that are activated / deactivated before/after use.
483 483
 //
484 484
 // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
485
-// You must activate one of these to use AUTO_BED_LEVELING_FEATURE below.
485
+// You must activate one of these to use Auto Bed Leveling below.
486 486
 //
487 487
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
488 488
 //
@@ -704,69 +704,75 @@
704 704
 #endif  // MESH_BED_LEVELING
705 705
 
706 706
 //===========================================================================
707
-//============================ Bed Auto Leveling ============================
707
+//============================ Auto Bed Leveling ============================
708 708
 //===========================================================================
709
-
710 709
 // @section bedlevel
711 710
 
712
-//#define AUTO_BED_LEVELING_FEATURE // Delete the comment to enable (remove // at the start of the line)
711
+/**
712
+ * Select one form of Auto Bed Leveling below.
713
+ *
714
+ *  If you're also using the Probe for Z Homing, it's
715
+ *  highly recommended to enable Z_SAFE_HOMING also!
716
+ *
717
+ * - 3POINT
718
+ *   Probe 3 arbitrary points on the bed (that aren't collinear)
719
+ *   You specify the XY coordinates of all 3 points.
720
+ *   The result is a single tilted plane. Best for a flat bed.
721
+ *
722
+ * - LINEAR
723
+ *   Probe several points in a grid.
724
+ *   You specify the rectangle and the density of sample points.
725
+ *   The result is a single tilted plane. Best for a flat bed.
726
+ *
727
+ * - BILINEAR
728
+ *   Probe several points in a grid.
729
+ *   You specify the rectangle and the density of sample points.
730
+ *   The result is a mesh, best for large or uneven beds.
731
+ */
732
+//#define AUTO_BED_LEVELING_3POINT
733
+//#define AUTO_BED_LEVELING_LINEAR
734
+//#define AUTO_BED_LEVELING_BILINEAR
713 735
 
714
-// Enable this feature to get detailed logging of G28, G29, M48, etc.
715
-// Logging is off by default. Enable this logging feature with 'M111 S32'.
716
-// NOTE: Requires a huge amount of PROGMEM.
736
+/**
737
+ * Enable detailed logging of G28, G29, M48, etc.
738
+ * Turn on with the command 'M111 S32'.
739
+ * NOTE: Requires a lot of PROGMEM!
740
+ */
717 741
 //#define DEBUG_LEVELING_FEATURE
718 742
 
719
-#if ENABLED(AUTO_BED_LEVELING_FEATURE)
743
+#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
720 744
 
721
-  // There are 2 different ways to specify probing locations:
722
-  //
723
-  // - "grid" mode
724
-  //   Probe several points in a rectangular grid.
725
-  //   You specify the rectangle and the density of sample points.
726
-  //   This mode is preferred because there are more measurements.
727
-  //
728
-  // - "3-point" mode
729
-  //   Probe 3 arbitrary points on the bed (that aren't collinear)
730
-  //   You specify the XY coordinates of all 3 points.
745
+  // Set the number of grid points per dimension.
746
+  #define ABL_GRID_POINTS_X 3
747
+  #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
731 748
 
732
-  // Enable this to sample the bed in a grid (least squares solution).
733
-  // Note: this feature generates 10KB extra code size.
734
-  #define AUTO_BED_LEVELING_GRID
749
+  // Set the boundaries for probing (where the probe can reach).
750
+  #define LEFT_PROBE_BED_POSITION 15
751
+  #define RIGHT_PROBE_BED_POSITION 170
752
+  #define FRONT_PROBE_BED_POSITION 20
753
+  #define BACK_PROBE_BED_POSITION 180
735 754
 
736
-  #if ENABLED(AUTO_BED_LEVELING_GRID)
755
+  // The Z probe minimum outer margin (to validate G29 parameters).
756
+  #define MIN_PROBE_EDGE 10
737 757
 
738
-    #define LEFT_PROBE_BED_POSITION 15
739
-    #define RIGHT_PROBE_BED_POSITION 170
740
-    #define FRONT_PROBE_BED_POSITION 20
741
-    #define BACK_PROBE_BED_POSITION 180
758
+#elif ENABLED(AUTO_BED_LEVELING_3POINT)
742 759
 
743
-    #define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this.
760
+  // 3 arbitrary points to probe.
761
+  // A simple cross-product is used to estimate the plane of the bed.
762
+  #define ABL_PROBE_PT_1_X 15
763
+  #define ABL_PROBE_PT_1_Y 180
764
+  #define ABL_PROBE_PT_2_X 15
765
+  #define ABL_PROBE_PT_2_Y 20
766
+  #define ABL_PROBE_PT_3_X 170
767
+  #define ABL_PROBE_PT_3_Y 20
744 768
 
745
-    // Set the number of grid points per dimension.
746
-    // You probably don't need more than 3 (squared=9).
747
-    #define ABL_GRID_POINTS_X 3
748
-    #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
749
-
750
-  #else  // !AUTO_BED_LEVELING_GRID
751
-
752
-    // Arbitrary points to probe.
753
-    // A simple cross-product is used to estimate the plane of the bed.
754
-    #define ABL_PROBE_PT_1_X 15
755
-    #define ABL_PROBE_PT_1_Y 180
756
-    #define ABL_PROBE_PT_2_X 15
757
-    #define ABL_PROBE_PT_2_Y 20
758
-    #define ABL_PROBE_PT_3_X 170
759
-    #define ABL_PROBE_PT_3_Y 20
760
-
761
-  #endif // !AUTO_BED_LEVELING_GRID
762
-
763
-  //#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
764
-                                                                             // Useful to retract a deployable Z probe.
765
-
766
-  // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing,
767
-  // it is highly recommended you also enable Z_SAFE_HOMING below!
769
+#endif
768 770
 
769
-#endif // AUTO_BED_LEVELING_FEATURE
771
+/**
772
+ * Commands to execute at the end of G29 probing.
773
+ * Useful to retract or move the Z probe out of the way.
774
+ */
775
+//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"
770 776
 
771 777
 
772 778
 // @section homing

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

@@ -480,7 +480,7 @@
480 480
 // Probes are sensors/switches that are activated / deactivated before/after use.
481 481
 //
482 482
 // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
483
-// You must activate one of these to use AUTO_BED_LEVELING_FEATURE below.
483
+// You must activate one of these to use Auto Bed Leveling below.
484 484
 //
485 485
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
486 486
 //
@@ -702,69 +702,75 @@
702 702
 #endif  // MESH_BED_LEVELING
703 703
 
704 704
 //===========================================================================
705
-//============================ Bed Auto Leveling ============================
705
+//============================ Auto Bed Leveling ============================
706 706
 //===========================================================================
707
-
708 707
 // @section bedlevel
709 708
 
710
-//#define AUTO_BED_LEVELING_FEATURE // Delete the comment to enable (remove // at the start of the line)
709
+/**
710
+ * Select one form of Auto Bed Leveling below.
711
+ *
712
+ *  If you're also using the Probe for Z Homing, it's
713
+ *  highly recommended to enable Z_SAFE_HOMING also!
714
+ *
715
+ * - 3POINT
716
+ *   Probe 3 arbitrary points on the bed (that aren't collinear)
717
+ *   You specify the XY coordinates of all 3 points.
718
+ *   The result is a single tilted plane. Best for a flat bed.
719
+ *
720
+ * - LINEAR
721
+ *   Probe several points in a grid.
722
+ *   You specify the rectangle and the density of sample points.
723
+ *   The result is a single tilted plane. Best for a flat bed.
724
+ *
725
+ * - BILINEAR
726
+ *   Probe several points in a grid.
727
+ *   You specify the rectangle and the density of sample points.
728
+ *   The result is a mesh, best for large or uneven beds.
729
+ */
730
+//#define AUTO_BED_LEVELING_3POINT
731
+//#define AUTO_BED_LEVELING_LINEAR
732
+//#define AUTO_BED_LEVELING_BILINEAR
711 733
 
712
-// Enable this feature to get detailed logging of G28, G29, M48, etc.
713
-// Logging is off by default. Enable this logging feature with 'M111 S32'.
714
-// NOTE: Requires a huge amount of PROGMEM.
734
+/**
735
+ * Enable detailed logging of G28, G29, M48, etc.
736
+ * Turn on with the command 'M111 S32'.
737
+ * NOTE: Requires a lot of PROGMEM!
738
+ */
715 739
 //#define DEBUG_LEVELING_FEATURE
716 740
 
717
-#if ENABLED(AUTO_BED_LEVELING_FEATURE)
741
+#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
718 742
 
719
-  // There are 2 different ways to specify probing locations:
720
-  //
721
-  // - "grid" mode
722
-  //   Probe several points in a rectangular grid.
723
-  //   You specify the rectangle and the density of sample points.
724
-  //   This mode is preferred because there are more measurements.
725
-  //
726
-  // - "3-point" mode
727
-  //   Probe 3 arbitrary points on the bed (that aren't collinear)
728
-  //   You specify the XY coordinates of all 3 points.
743
+  // Set the number of grid points per dimension.
744
+  #define ABL_GRID_POINTS_X 3
745
+  #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
729 746
 
730
-  // Enable this to sample the bed in a grid (least squares solution).
731
-  // Note: this feature generates 10KB extra code size.
732
-  #define AUTO_BED_LEVELING_GRID
747
+  // Set the boundaries for probing (where the probe can reach).
748
+  #define LEFT_PROBE_BED_POSITION 15
749
+  #define RIGHT_PROBE_BED_POSITION 170
750
+  #define FRONT_PROBE_BED_POSITION 20
751
+  #define BACK_PROBE_BED_POSITION 180
733 752
 
734
-  #if ENABLED(AUTO_BED_LEVELING_GRID)
753
+  // The Z probe minimum outer margin (to validate G29 parameters).
754
+  #define MIN_PROBE_EDGE 10
735 755
 
736
-    #define LEFT_PROBE_BED_POSITION 15
737
-    #define RIGHT_PROBE_BED_POSITION 170
738
-    #define FRONT_PROBE_BED_POSITION 20
739
-    #define BACK_PROBE_BED_POSITION 180
756
+#elif ENABLED(AUTO_BED_LEVELING_3POINT)
740 757
 
741
-    #define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this.
758
+  // 3 arbitrary points to probe.
759
+  // A simple cross-product is used to estimate the plane of the bed.
760
+  #define ABL_PROBE_PT_1_X 15
761
+  #define ABL_PROBE_PT_1_Y 180
762
+  #define ABL_PROBE_PT_2_X 15
763
+  #define ABL_PROBE_PT_2_Y 20
764
+  #define ABL_PROBE_PT_3_X 170
765
+  #define ABL_PROBE_PT_3_Y 20
742 766
 
743
-    // Set the number of grid points per dimension.
744
-    // You probably don't need more than 3 (squared=9).
745
-    #define ABL_GRID_POINTS_X 3
746
-    #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
747
-
748
-  #else  // !AUTO_BED_LEVELING_GRID
749
-
750
-    // Arbitrary points to probe.
751
-    // A simple cross-product is used to estimate the plane of the bed.
752
-    #define ABL_PROBE_PT_1_X 15
753
-    #define ABL_PROBE_PT_1_Y 180
754
-    #define ABL_PROBE_PT_2_X 15
755
-    #define ABL_PROBE_PT_2_Y 20
756
-    #define ABL_PROBE_PT_3_X 170
757
-    #define ABL_PROBE_PT_3_Y 20
758
-
759
-  #endif // !AUTO_BED_LEVELING_GRID
760
-
761
-  //#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
762
-                                                                             // Useful to retract a deployable Z probe.
763
-
764
-  // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing,
765
-  // it is highly recommended you also enable Z_SAFE_HOMING below!
767
+#endif
766 768
 
767
-#endif // AUTO_BED_LEVELING_FEATURE
769
+/**
770
+ * Commands to execute at the end of G29 probing.
771
+ * Useful to retract or move the Z probe out of the way.
772
+ */
773
+//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"
768 774
 
769 775
 
770 776
 // @section homing

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

@@ -491,7 +491,7 @@
491 491
 // Probes are sensors/switches that are activated / deactivated before/after use.
492 492
 //
493 493
 // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
494
-// You must activate one of these to use AUTO_BED_LEVELING_FEATURE below.
494
+// You must activate one of these to use Auto Bed Leveling below.
495 495
 //
496 496
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
497 497
 //
@@ -713,69 +713,75 @@
713 713
 #endif  // MESH_BED_LEVELING
714 714
 
715 715
 //===========================================================================
716
-//============================ Bed Auto Leveling ============================
716
+//============================ Auto Bed Leveling ============================
717 717
 //===========================================================================
718
-
719 718
 // @section bedlevel
720 719
 
721
-//#define AUTO_BED_LEVELING_FEATURE // Delete the comment to enable (remove // at the start of the line)
720
+/**
721
+ * Select one form of Auto Bed Leveling below.
722
+ *
723
+ *  If you're also using the Probe for Z Homing, it's
724
+ *  highly recommended to enable Z_SAFE_HOMING also!
725
+ *
726
+ * - 3POINT
727
+ *   Probe 3 arbitrary points on the bed (that aren't collinear)
728
+ *   You specify the XY coordinates of all 3 points.
729
+ *   The result is a single tilted plane. Best for a flat bed.
730
+ *
731
+ * - LINEAR
732
+ *   Probe several points in a grid.
733
+ *   You specify the rectangle and the density of sample points.
734
+ *   The result is a single tilted plane. Best for a flat bed.
735
+ *
736
+ * - BILINEAR
737
+ *   Probe several points in a grid.
738
+ *   You specify the rectangle and the density of sample points.
739
+ *   The result is a mesh, best for large or uneven beds.
740
+ */
741
+//#define AUTO_BED_LEVELING_3POINT
742
+//#define AUTO_BED_LEVELING_LINEAR
743
+//#define AUTO_BED_LEVELING_BILINEAR
722 744
 
723
-// Enable this feature to get detailed logging of G28, G29, M48, etc.
724
-// Logging is off by default. Enable this logging feature with 'M111 S32'.
725
-// NOTE: Requires a huge amount of PROGMEM.
745
+/**
746
+ * Enable detailed logging of G28, G29, M48, etc.
747
+ * Turn on with the command 'M111 S32'.
748
+ * NOTE: Requires a lot of PROGMEM!
749
+ */
726 750
 //#define DEBUG_LEVELING_FEATURE
727 751
 
728
-#if ENABLED(AUTO_BED_LEVELING_FEATURE)
752
+#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
729 753
 
730
-  // There are 2 different ways to specify probing locations:
731
-  //
732
-  // - "grid" mode
733
-  //   Probe several points in a rectangular grid.
734
-  //   You specify the rectangle and the density of sample points.
735
-  //   This mode is preferred because there are more measurements.
736
-  //
737
-  // - "3-point" mode
738
-  //   Probe 3 arbitrary points on the bed (that aren't collinear)
739
-  //   You specify the XY coordinates of all 3 points.
754
+  // Set the number of grid points per dimension.
755
+  #define ABL_GRID_POINTS_X 3
756
+  #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
740 757
 
741
-  // Enable this to sample the bed in a grid (least squares solution).
742
-  // Note: this feature generates 10KB extra code size.
743
-  #define AUTO_BED_LEVELING_GRID
758
+  // Set the boundaries for probing (where the probe can reach).
759
+  #define LEFT_PROBE_BED_POSITION 15
760
+  #define RIGHT_PROBE_BED_POSITION 170
761
+  #define FRONT_PROBE_BED_POSITION 20
762
+  #define BACK_PROBE_BED_POSITION 170
744 763
 
745
-  #if ENABLED(AUTO_BED_LEVELING_GRID)
764
+  // The Z probe minimum outer margin (to validate G29 parameters).
765
+  #define MIN_PROBE_EDGE 10
746 766
 
747
-    #define LEFT_PROBE_BED_POSITION 15
748
-    #define RIGHT_PROBE_BED_POSITION 170
749
-    #define FRONT_PROBE_BED_POSITION 20
750
-    #define BACK_PROBE_BED_POSITION 170
767
+#elif ENABLED(AUTO_BED_LEVELING_3POINT)
751 768
 
752
-    #define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this.
769
+  // 3 arbitrary points to probe.
770
+  // A simple cross-product is used to estimate the plane of the bed.
771
+  #define ABL_PROBE_PT_1_X 15
772
+  #define ABL_PROBE_PT_1_Y 180
773
+  #define ABL_PROBE_PT_2_X 15
774
+  #define ABL_PROBE_PT_2_Y 20
775
+  #define ABL_PROBE_PT_3_X 170
776
+  #define ABL_PROBE_PT_3_Y 20
753 777
 
754
-    // Set the number of grid points per dimension.
755
-    // You probably don't need more than 3 (squared=9).
756
-    #define ABL_GRID_POINTS_X 3
757
-    #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
758
-
759
-  #else  // !AUTO_BED_LEVELING_GRID
760
-
761
-    // Arbitrary points to probe.
762
-    // A simple cross-product is used to estimate the plane of the bed.
763
-    #define ABL_PROBE_PT_1_X 15
764
-    #define ABL_PROBE_PT_1_Y 180
765
-    #define ABL_PROBE_PT_2_X 15
766
-    #define ABL_PROBE_PT_2_Y 20
767
-    #define ABL_PROBE_PT_3_X 170
768
-    #define ABL_PROBE_PT_3_Y 20
769
-
770
-  #endif // !AUTO_BED_LEVELING_GRID
771
-
772
-  //#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
773
-                                                                             // Useful to retract a deployable Z probe.
774
-
775
-  // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing,
776
-  // it is highly recommended you also enable Z_SAFE_HOMING below!
778
+#endif
777 779
 
778
-#endif // AUTO_BED_LEVELING_FEATURE
780
+/**
781
+ * Commands to execute at the end of G29 probing.
782
+ * Useful to retract or move the Z probe out of the way.
783
+ */
784
+//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"
779 785
 
780 786
 
781 787
 // @section homing

+ 57
- 51
Marlin/example_configurations/Hephestos_2/Configuration.h View File

@@ -493,7 +493,7 @@
493 493
 // Probes are sensors/switches that are activated / deactivated before/after use.
494 494
 //
495 495
 // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
496
-// You must activate one of these to use AUTO_BED_LEVELING_FEATURE below.
496
+// You must activate one of these to use Auto Bed Leveling below.
497 497
 //
498 498
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
499 499
 //
@@ -715,69 +715,75 @@
715 715
 #endif  // MESH_BED_LEVELING
716 716
 
717 717
 //===========================================================================
718
-//============================ Bed Auto Leveling ============================
718
+//============================ Auto Bed Leveling ============================
719 719
 //===========================================================================
720
-
721 720
 // @section bedlevel
722 721
 
723
-#define AUTO_BED_LEVELING_FEATURE // Delete the comment to enable (remove // at the start of the line)
722
+/**
723
+ * Select one form of Auto Bed Leveling below.
724
+ *
725
+ *  If you're also using the Probe for Z Homing, it's
726
+ *  highly recommended to enable Z_SAFE_HOMING also!
727
+ *
728
+ * - 3POINT
729
+ *   Probe 3 arbitrary points on the bed (that aren't collinear)
730
+ *   You specify the XY coordinates of all 3 points.
731
+ *   The result is a single tilted plane. Best for a flat bed.
732
+ *
733
+ * - LINEAR
734
+ *   Probe several points in a grid.
735
+ *   You specify the rectangle and the density of sample points.
736
+ *   The result is a single tilted plane. Best for a flat bed.
737
+ *
738
+ * - BILINEAR
739
+ *   Probe several points in a grid.
740
+ *   You specify the rectangle and the density of sample points.
741
+ *   The result is a mesh, best for large or uneven beds.
742
+ */
743
+//#define AUTO_BED_LEVELING_3POINT
744
+#define AUTO_BED_LEVELING_LINEAR
745
+//#define AUTO_BED_LEVELING_BILINEAR
724 746
 
725
-// Enable this feature to get detailed logging of G28, G29, M48, etc.
726
-// Logging is off by default. Enable this logging feature with 'M111 S32'.
727
-// NOTE: Requires a huge amount of PROGMEM.
747
+/**
748
+ * Enable detailed logging of G28, G29, M48, etc.
749
+ * Turn on with the command 'M111 S32'.
750
+ * NOTE: Requires a lot of PROGMEM!
751
+ */
728 752
 //#define DEBUG_LEVELING_FEATURE
729 753
 
730
-#if ENABLED(AUTO_BED_LEVELING_FEATURE)
754
+#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
731 755
 
732
-  // There are 2 different ways to specify probing locations:
733
-  //
734
-  // - "grid" mode
735
-  //   Probe several points in a rectangular grid.
736
-  //   You specify the rectangle and the density of sample points.
737
-  //   This mode is preferred because there are more measurements.
738
-  //
739
-  // - "3-point" mode
740
-  //   Probe 3 arbitrary points on the bed (that aren't collinear)
741
-  //   You specify the XY coordinates of all 3 points.
756
+  // Set the number of grid points per dimension.
757
+  #define ABL_GRID_POINTS_X 3
758
+  #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
742 759
 
743
-  // Enable this to sample the bed in a grid (least squares solution).
744
-  // Note: this feature generates 10KB extra code size.
745
-  #define AUTO_BED_LEVELING_GRID
760
+  // Set the boundaries for probing (where the probe can reach).
761
+  #define LEFT_PROBE_BED_POSITION  X_MIN_POS + X_PROBE_OFFSET_FROM_EXTRUDER
762
+  #define RIGHT_PROBE_BED_POSITION X_MAX_POS - (X_PROBE_OFFSET_FROM_EXTRUDER)
763
+  #define FRONT_PROBE_BED_POSITION Y_MIN_POS + Y_PROBE_OFFSET_FROM_EXTRUDER
764
+  #define BACK_PROBE_BED_POSITION  Y_MAX_POS - (Y_PROBE_OFFSET_FROM_EXTRUDER)
746 765
 
747
-  #if ENABLED(AUTO_BED_LEVELING_GRID)
766
+  // The Z probe minimum outer margin (to validate G29 parameters).
767
+  #define MIN_PROBE_EDGE 10
748 768
 
749
-    #define LEFT_PROBE_BED_POSITION  X_MIN_POS + X_PROBE_OFFSET_FROM_EXTRUDER
750
-    #define RIGHT_PROBE_BED_POSITION X_MAX_POS - (X_PROBE_OFFSET_FROM_EXTRUDER)
751
-    #define FRONT_PROBE_BED_POSITION Y_MIN_POS + Y_PROBE_OFFSET_FROM_EXTRUDER
752
-    #define BACK_PROBE_BED_POSITION  Y_MAX_POS - (Y_PROBE_OFFSET_FROM_EXTRUDER)
769
+#elif ENABLED(AUTO_BED_LEVELING_3POINT)
753 770
 
754
-    #define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this.
771
+  // 3 arbitrary points to probe.
772
+  // A simple cross-product is used to estimate the plane of the bed.
773
+  #define ABL_PROBE_PT_1_X X_MIN_POS + X_PROBE_OFFSET_FROM_EXTRUDER
774
+  #define ABL_PROBE_PT_1_Y Y_MIN_POS + Y_PROBE_OFFSET_FROM_EXTRUDER
775
+  #define ABL_PROBE_PT_2_X X_MAX_POS - (X_PROBE_OFFSET_FROM_EXTRUDER)
776
+  #define ABL_PROBE_PT_2_Y Y_MIN_POS + Y_PROBE_OFFSET_FROM_EXTRUDER
777
+  #define ABL_PROBE_PT_3_X ((X_MIN_POS + X_MAX_POS) / 2)
778
+  #define ABL_PROBE_PT_3_Y Y_MAX_POS - (Y_PROBE_OFFSET_FROM_EXTRUDER)
755 779
 
756
-    // Set the number of grid points per dimension.
757
-    // You probably don't need more than 3 (squared=9).
758
-    #define ABL_GRID_POINTS_X 3
759
-    #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
760
-
761
-  #else  // !AUTO_BED_LEVELING_GRID
762
-
763
-    // Arbitrary points to probe.
764
-    // A simple cross-product is used to estimate the plane of the bed.
765
-    #define ABL_PROBE_PT_1_X X_MIN_POS + X_PROBE_OFFSET_FROM_EXTRUDER
766
-    #define ABL_PROBE_PT_1_Y Y_MIN_POS + Y_PROBE_OFFSET_FROM_EXTRUDER
767
-    #define ABL_PROBE_PT_2_X X_MAX_POS - (X_PROBE_OFFSET_FROM_EXTRUDER)
768
-    #define ABL_PROBE_PT_2_Y Y_MIN_POS + Y_PROBE_OFFSET_FROM_EXTRUDER
769
-    #define ABL_PROBE_PT_3_X ((X_MIN_POS + X_MAX_POS) / 2)
770
-    #define ABL_PROBE_PT_3_Y Y_MAX_POS - (Y_PROBE_OFFSET_FROM_EXTRUDER)
771
-
772
-  #endif // !AUTO_BED_LEVELING_GRID
773
-
774
-  //#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
775
-                                                                             // Useful to retract a deployable Z probe.
776
-
777
-  // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing,
778
-  // it is highly recommended you also enable Z_SAFE_HOMING below!
780
+#endif
779 781
 
780
-#endif // AUTO_BED_LEVELING_FEATURE
782
+/**
783
+ * Commands to execute at the end of G29 probing.
784
+ * Useful to retract or move the Z probe out of the way.
785
+ */
786
+//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"
781 787
 
782 788
 
783 789
 // @section homing

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

@@ -516,7 +516,7 @@
516 516
 // Probes are sensors/switches that are activated / deactivated before/after use.
517 517
 //
518 518
 // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
519
-// You must activate one of these to use AUTO_BED_LEVELING_FEATURE below.
519
+// You must activate one of these to use Auto Bed Leveling below.
520 520
 //
521 521
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
522 522
 //
@@ -738,69 +738,75 @@
738 738
 #endif  // MESH_BED_LEVELING
739 739
 
740 740
 //===========================================================================
741
-//============================ Bed Auto Leveling ============================
741
+//============================ Auto Bed Leveling ============================
742 742
 //===========================================================================
743
-
744 743
 // @section bedlevel
745 744
 
746
-//#define AUTO_BED_LEVELING_FEATURE // Delete the comment to enable (remove // at the start of the line)
745
+/**
746
+ * Select one form of Auto Bed Leveling below.
747
+ *
748
+ *  If you're also using the Probe for Z Homing, it's
749
+ *  highly recommended to enable Z_SAFE_HOMING also!
750
+ *
751
+ * - 3POINT
752
+ *   Probe 3 arbitrary points on the bed (that aren't collinear)
753
+ *   You specify the XY coordinates of all 3 points.
754
+ *   The result is a single tilted plane. Best for a flat bed.
755
+ *
756
+ * - LINEAR
757
+ *   Probe several points in a grid.
758
+ *   You specify the rectangle and the density of sample points.
759
+ *   The result is a single tilted plane. Best for a flat bed.
760
+ *
761
+ * - BILINEAR
762
+ *   Probe several points in a grid.
763
+ *   You specify the rectangle and the density of sample points.
764
+ *   The result is a mesh, best for large or uneven beds.
765
+ */
766
+//#define AUTO_BED_LEVELING_3POINT
767
+//#define AUTO_BED_LEVELING_LINEAR
768
+//#define AUTO_BED_LEVELING_BILINEAR
747 769
 
748
-// Enable this feature to get detailed logging of G28, G29, M48, etc.
749
-// Logging is off by default. Enable this logging feature with 'M111 S32'.
750
-// NOTE: Requires a huge amount of PROGMEM.
770
+/**
771
+ * Enable detailed logging of G28, G29, M48, etc.
772
+ * Turn on with the command 'M111 S32'.
773
+ * NOTE: Requires a lot of PROGMEM!
774
+ */
751 775
 //#define DEBUG_LEVELING_FEATURE
752 776
 
753
-#if ENABLED(AUTO_BED_LEVELING_FEATURE)
777
+#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
754 778
 
755
-  // There are 2 different ways to specify probing locations:
756
-  //
757
-  // - "grid" mode
758
-  //   Probe several points in a rectangular grid.
759
-  //   You specify the rectangle and the density of sample points.
760
-  //   This mode is preferred because there are more measurements.
761
-  //
762
-  // - "3-point" mode
763
-  //   Probe 3 arbitrary points on the bed (that aren't collinear)
764
-  //   You specify the XY coordinates of all 3 points.
779
+  // Set the number of grid points per dimension.
780
+  #define ABL_GRID_POINTS_X 3
781
+  #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
765 782
 
766
-  // Enable this to sample the bed in a grid (least squares solution).
767
-  // Note: this feature generates 10KB extra code size.
768
-  #define AUTO_BED_LEVELING_GRID
783
+  // Set the boundaries for probing (where the probe can reach).
784
+  #define LEFT_PROBE_BED_POSITION 15
785
+  #define RIGHT_PROBE_BED_POSITION 170
786
+  #define FRONT_PROBE_BED_POSITION 20
787
+  #define BACK_PROBE_BED_POSITION 170
769 788
 
770
-  #if ENABLED(AUTO_BED_LEVELING_GRID)
789
+  // The Z probe minimum outer margin (to validate G29 parameters).
790
+  #define MIN_PROBE_EDGE 10
771 791
 
772
-    #define LEFT_PROBE_BED_POSITION 15
773
-    #define RIGHT_PROBE_BED_POSITION 170
774
-    #define FRONT_PROBE_BED_POSITION 20
775
-    #define BACK_PROBE_BED_POSITION 170
792
+#elif ENABLED(AUTO_BED_LEVELING_3POINT)
776 793
 
777
-    #define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this.
794
+  // 3 arbitrary points to probe.
795
+  // A simple cross-product is used to estimate the plane of the bed.
796
+  #define ABL_PROBE_PT_1_X 15
797
+  #define ABL_PROBE_PT_1_Y 180
798
+  #define ABL_PROBE_PT_2_X 15
799
+  #define ABL_PROBE_PT_2_Y 20
800
+  #define ABL_PROBE_PT_3_X 170
801
+  #define ABL_PROBE_PT_3_Y 20
778 802
 
779
-    // Set the number of grid points per dimension.
780
-    // You probably don't need more than 3 (squared=9).
781
-    #define ABL_GRID_POINTS_X 3
782
-    #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
783
-
784
-  #else  // !AUTO_BED_LEVELING_GRID
785
-
786
-    // Arbitrary points to probe.
787
-    // A simple cross-product is used to estimate the plane of the bed.
788
-    #define ABL_PROBE_PT_1_X 15
789
-    #define ABL_PROBE_PT_1_Y 180
790
-    #define ABL_PROBE_PT_2_X 15
791
-    #define ABL_PROBE_PT_2_Y 20
792
-    #define ABL_PROBE_PT_3_X 170
793
-    #define ABL_PROBE_PT_3_Y 20
794
-
795
-  #endif // !AUTO_BED_LEVELING_GRID
796
-
797
-  //#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
798
-                                                                             // Useful to retract a deployable Z probe.
799
-
800
-  // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing,
801
-  // it is highly recommended you also enable Z_SAFE_HOMING below!
803
+#endif
802 804
 
803
-#endif // AUTO_BED_LEVELING_FEATURE
805
+/**
806
+ * Commands to execute at the end of G29 probing.
807
+ * Useful to retract or move the Z probe out of the way.
808
+ */
809
+//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"
804 810
 
805 811
 
806 812
 // @section homing

+ 57
- 51
Marlin/example_configurations/K8400/Configuration.h View File

@@ -499,7 +499,7 @@
499 499
 // Probes are sensors/switches that are activated / deactivated before/after use.
500 500
 //
501 501
 // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
502
-// You must activate one of these to use AUTO_BED_LEVELING_FEATURE below.
502
+// You must activate one of these to use Auto Bed Leveling below.
503 503
 //
504 504
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
505 505
 //
@@ -721,69 +721,75 @@
721 721
 #endif  // MESH_BED_LEVELING
722 722
 
723 723
 //===========================================================================
724
-//============================ Bed Auto Leveling ============================
724
+//============================ Auto Bed Leveling ============================
725 725
 //===========================================================================
726
-
727 726
 // @section bedlevel
728 727
 
729
-//#define AUTO_BED_LEVELING_FEATURE // Delete the comment to enable (remove // at the start of the line)
728
+/**
729
+ * Select one form of Auto Bed Leveling below.
730
+ *
731
+ *  If you're also using the Probe for Z Homing, it's
732
+ *  highly recommended to enable Z_SAFE_HOMING also!
733
+ *
734
+ * - 3POINT
735
+ *   Probe 3 arbitrary points on the bed (that aren't collinear)
736
+ *   You specify the XY coordinates of all 3 points.
737
+ *   The result is a single tilted plane. Best for a flat bed.
738
+ *
739
+ * - LINEAR
740
+ *   Probe several points in a grid.
741
+ *   You specify the rectangle and the density of sample points.
742
+ *   The result is a single tilted plane. Best for a flat bed.
743
+ *
744
+ * - BILINEAR
745
+ *   Probe several points in a grid.
746
+ *   You specify the rectangle and the density of sample points.
747
+ *   The result is a mesh, best for large or uneven beds.
748
+ */
749
+//#define AUTO_BED_LEVELING_3POINT
750
+//#define AUTO_BED_LEVELING_LINEAR
751
+//#define AUTO_BED_LEVELING_BILINEAR
730 752
 
731
-// Enable this feature to get detailed logging of G28, G29, M48, etc.
732
-// Logging is off by default. Enable this logging feature with 'M111 S32'.
733
-// NOTE: Requires a huge amount of PROGMEM.
753
+/**
754
+ * Enable detailed logging of G28, G29, M48, etc.
755
+ * Turn on with the command 'M111 S32'.
756
+ * NOTE: Requires a lot of PROGMEM!
757
+ */
734 758
 //#define DEBUG_LEVELING_FEATURE
735 759
 
736
-#if ENABLED(AUTO_BED_LEVELING_FEATURE)
760
+#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
737 761
 
738
-  // There are 2 different ways to specify probing locations:
739
-  //
740
-  // - "grid" mode
741
-  //   Probe several points in a rectangular grid.
742
-  //   You specify the rectangle and the density of sample points.
743
-  //   This mode is preferred because there are more measurements.
744
-  //
745
-  // - "3-point" mode
746
-  //   Probe 3 arbitrary points on the bed (that aren't collinear)
747
-  //   You specify the XY coordinates of all 3 points.
762
+  // Set the number of grid points per dimension.
763
+  #define ABL_GRID_POINTS_X 3
764
+  #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
748 765
 
749
-  // Enable this to sample the bed in a grid (least squares solution).
750
-  // Note: this feature generates 10KB extra code size.
751
-  #define AUTO_BED_LEVELING_GRID
766
+  // Set the boundaries for probing (where the probe can reach).
767
+  #define LEFT_PROBE_BED_POSITION 15
768
+  #define RIGHT_PROBE_BED_POSITION 170
769
+  #define FRONT_PROBE_BED_POSITION 20
770
+  #define BACK_PROBE_BED_POSITION 170
752 771
 
753
-  #if ENABLED(AUTO_BED_LEVELING_GRID)
772
+  // The Z probe minimum outer margin (to validate G29 parameters).
773
+  #define MIN_PROBE_EDGE 10
754 774
 
755
-    #define LEFT_PROBE_BED_POSITION 15
756
-    #define RIGHT_PROBE_BED_POSITION 170
757
-    #define FRONT_PROBE_BED_POSITION 20
758
-    #define BACK_PROBE_BED_POSITION 170
775
+#elif ENABLED(AUTO_BED_LEVELING_3POINT)
759 776
 
760
-    #define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this.
777
+  // 3 arbitrary points to probe.
778
+  // A simple cross-product is used to estimate the plane of the bed.
779
+  #define ABL_PROBE_PT_1_X 15
780
+  #define ABL_PROBE_PT_1_Y 180
781
+  #define ABL_PROBE_PT_2_X 15
782
+  #define ABL_PROBE_PT_2_Y 20
783
+  #define ABL_PROBE_PT_3_X 170
784
+  #define ABL_PROBE_PT_3_Y 20
761 785
 
762
-    // Set the number of grid points per dimension.
763
-    // You probably don't need more than 3 (squared=9).
764
-    #define ABL_GRID_POINTS_X 3
765
-    #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
766
-
767
-  #else  // !AUTO_BED_LEVELING_GRID
768
-
769
-    // Arbitrary points to probe.
770
-    // A simple cross-product is used to estimate the plane of the bed.
771
-    #define ABL_PROBE_PT_1_X 15
772
-    #define ABL_PROBE_PT_1_Y 180
773
-    #define ABL_PROBE_PT_2_X 15
774
-    #define ABL_PROBE_PT_2_Y 20
775
-    #define ABL_PROBE_PT_3_X 170
776
-    #define ABL_PROBE_PT_3_Y 20
777
-
778
-  #endif // !AUTO_BED_LEVELING_GRID
779
-
780
-  //#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
781
-                                                                             // Useful to retract a deployable Z probe.
782
-
783
-  // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing,
784
-  // it is highly recommended you also enable Z_SAFE_HOMING below!
786
+#endif
785 787
 
786
-#endif // AUTO_BED_LEVELING_FEATURE
788
+/**
789
+ * Commands to execute at the end of G29 probing.
790
+ * Useful to retract or move the Z probe out of the way.
791
+ */
792
+//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"
787 793
 
788 794
 
789 795
 // @section homing

+ 57
- 51
Marlin/example_configurations/K8400/Dual-head/Configuration.h View File

@@ -499,7 +499,7 @@
499 499
 // Probes are sensors/switches that are activated / deactivated before/after use.
500 500
 //
501 501
 // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
502
-// You must activate one of these to use AUTO_BED_LEVELING_FEATURE below.
502
+// You must activate one of these to use Auto Bed Leveling below.
503 503
 //
504 504
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
505 505
 //
@@ -721,69 +721,75 @@
721 721
 #endif  // MESH_BED_LEVELING
722 722
 
723 723
 //===========================================================================
724
-//============================ Bed Auto Leveling ============================
724
+//============================ Auto Bed Leveling ============================
725 725
 //===========================================================================
726
-
727 726
 // @section bedlevel
728 727
 
729
-//#define AUTO_BED_LEVELING_FEATURE // Delete the comment to enable (remove // at the start of the line)
728
+/**
729
+ * Select one form of Auto Bed Leveling below.
730
+ *
731
+ *  If you're also using the Probe for Z Homing, it's
732
+ *  highly recommended to enable Z_SAFE_HOMING also!
733
+ *
734
+ * - 3POINT
735
+ *   Probe 3 arbitrary points on the bed (that aren't collinear)
736
+ *   You specify the XY coordinates of all 3 points.
737
+ *   The result is a single tilted plane. Best for a flat bed.
738
+ *
739
+ * - LINEAR
740
+ *   Probe several points in a grid.
741
+ *   You specify the rectangle and the density of sample points.
742
+ *   The result is a single tilted plane. Best for a flat bed.
743
+ *
744
+ * - BILINEAR
745
+ *   Probe several points in a grid.
746
+ *   You specify the rectangle and the density of sample points.
747
+ *   The result is a mesh, best for large or uneven beds.
748
+ */
749
+//#define AUTO_BED_LEVELING_3POINT
750
+//#define AUTO_BED_LEVELING_LINEAR
751
+//#define AUTO_BED_LEVELING_BILINEAR
730 752
 
731
-// Enable this feature to get detailed logging of G28, G29, M48, etc.
732
-// Logging is off by default. Enable this logging feature with 'M111 S32'.
733
-// NOTE: Requires a huge amount of PROGMEM.
753
+/**
754
+ * Enable detailed logging of G28, G29, M48, etc.
755
+ * Turn on with the command 'M111 S32'.
756
+ * NOTE: Requires a lot of PROGMEM!
757
+ */
734 758
 //#define DEBUG_LEVELING_FEATURE
735 759
 
736
-#if ENABLED(AUTO_BED_LEVELING_FEATURE)
760
+#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
737 761
 
738
-  // There are 2 different ways to specify probing locations:
739
-  //
740
-  // - "grid" mode
741
-  //   Probe several points in a rectangular grid.
742
-  //   You specify the rectangle and the density of sample points.
743
-  //   This mode is preferred because there are more measurements.
744
-  //
745
-  // - "3-point" mode
746
-  //   Probe 3 arbitrary points on the bed (that aren't collinear)
747
-  //   You specify the XY coordinates of all 3 points.
762
+  // Set the number of grid points per dimension.
763
+  #define ABL_GRID_POINTS_X 3
764
+  #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
748 765
 
749
-  // Enable this to sample the bed in a grid (least squares solution).
750
-  // Note: this feature generates 10KB extra code size.
751
-  #define AUTO_BED_LEVELING_GRID
766
+  // Set the boundaries for probing (where the probe can reach).
767
+  #define LEFT_PROBE_BED_POSITION 15
768
+  #define RIGHT_PROBE_BED_POSITION 170
769
+  #define FRONT_PROBE_BED_POSITION 20
770
+  #define BACK_PROBE_BED_POSITION 170
752 771
 
753
-  #if ENABLED(AUTO_BED_LEVELING_GRID)
772
+  // The Z probe minimum outer margin (to validate G29 parameters).
773
+  #define MIN_PROBE_EDGE 10
754 774
 
755
-    #define LEFT_PROBE_BED_POSITION 15
756
-    #define RIGHT_PROBE_BED_POSITION 170
757
-    #define FRONT_PROBE_BED_POSITION 20
758
-    #define BACK_PROBE_BED_POSITION 170
775
+#elif ENABLED(AUTO_BED_LEVELING_3POINT)
759 776
 
760
-    #define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this.
777
+  // 3 arbitrary points to probe.
778
+  // A simple cross-product is used to estimate the plane of the bed.
779
+  #define ABL_PROBE_PT_1_X 15
780
+  #define ABL_PROBE_PT_1_Y 180
781
+  #define ABL_PROBE_PT_2_X 15
782
+  #define ABL_PROBE_PT_2_Y 20
783
+  #define ABL_PROBE_PT_3_X 170
784
+  #define ABL_PROBE_PT_3_Y 20
761 785
 
762
-    // Set the number of grid points per dimension.
763
-    // You probably don't need more than 3 (squared=9).
764
-    #define ABL_GRID_POINTS_X 3
765
-    #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
766
-
767
-  #else  // !AUTO_BED_LEVELING_GRID
768
-
769
-    // Arbitrary points to probe.
770
-    // A simple cross-product is used to estimate the plane of the bed.
771
-    #define ABL_PROBE_PT_1_X 15
772
-    #define ABL_PROBE_PT_1_Y 180
773
-    #define ABL_PROBE_PT_2_X 15
774
-    #define ABL_PROBE_PT_2_Y 20
775
-    #define ABL_PROBE_PT_3_X 170
776
-    #define ABL_PROBE_PT_3_Y 20
777
-
778
-  #endif // !AUTO_BED_LEVELING_GRID
779
-
780
-  //#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
781
-                                                                             // Useful to retract a deployable Z probe.
782
-
783
-  // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing,
784
-  // it is highly recommended you also enable Z_SAFE_HOMING below!
786
+#endif
785 787
 
786
-#endif // AUTO_BED_LEVELING_FEATURE
788
+/**
789
+ * Commands to execute at the end of G29 probing.
790
+ * Useful to retract or move the Z probe out of the way.
791
+ */
792
+//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"
787 793
 
788 794
 
789 795
 // @section homing

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

@@ -499,7 +499,7 @@
499 499
 // Probes are sensors/switches that are activated / deactivated before/after use.
500 500
 //
501 501
 // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
502
-// You must activate one of these to use AUTO_BED_LEVELING_FEATURE below.
502
+// You must activate one of these to use Auto Bed Leveling below.
503 503
 //
504 504
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
505 505
 //
@@ -721,69 +721,75 @@
721 721
 #endif  // MESH_BED_LEVELING
722 722
 
723 723
 //===========================================================================
724
-//============================ Bed Auto Leveling ============================
724
+//============================ Auto Bed Leveling ============================
725 725
 //===========================================================================
726
-
727 726
 // @section bedlevel
728 727
 
729
-//#define AUTO_BED_LEVELING_FEATURE // Delete the comment to enable (remove // at the start of the line)
728
+/**
729
+ * Select one form of Auto Bed Leveling below.
730
+ *
731
+ *  If you're also using the Probe for Z Homing, it's
732
+ *  highly recommended to enable Z_SAFE_HOMING also!
733
+ *
734
+ * - 3POINT
735
+ *   Probe 3 arbitrary points on the bed (that aren't collinear)
736
+ *   You specify the XY coordinates of all 3 points.
737
+ *   The result is a single tilted plane. Best for a flat bed.
738
+ *
739
+ * - LINEAR
740
+ *   Probe several points in a grid.
741
+ *   You specify the rectangle and the density of sample points.
742
+ *   The result is a single tilted plane. Best for a flat bed.
743
+ *
744
+ * - BILINEAR
745
+ *   Probe several points in a grid.
746
+ *   You specify the rectangle and the density of sample points.
747
+ *   The result is a mesh, best for large or uneven beds.
748
+ */
749
+//#define AUTO_BED_LEVELING_3POINT
750
+//#define AUTO_BED_LEVELING_LINEAR
751
+//#define AUTO_BED_LEVELING_BILINEAR
730 752
 
731
-// Enable this feature to get detailed logging of G28, G29, M48, etc.
732
-// Logging is off by default. Enable this logging feature with 'M111 S32'.
733
-// NOTE: Requires a huge amount of PROGMEM.
753
+/**
754
+ * Enable detailed logging of G28, G29, M48, etc.
755
+ * Turn on with the command 'M111 S32'.
756
+ * NOTE: Requires a lot of PROGMEM!
757
+ */
734 758
 //#define DEBUG_LEVELING_FEATURE
735 759
 
736
-#if ENABLED(AUTO_BED_LEVELING_FEATURE)
760
+#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
737 761
 
738
-  // There are 2 different ways to specify probing locations:
739
-  //
740
-  // - "grid" mode
741
-  //   Probe several points in a rectangular grid.
742
-  //   You specify the rectangle and the density of sample points.
743
-  //   This mode is preferred because there are more measurements.
744
-  //
745
-  // - "3-point" mode
746
-  //   Probe 3 arbitrary points on the bed (that aren't collinear)
747
-  //   You specify the XY coordinates of all 3 points.
762
+  // Set the number of grid points per dimension.
763
+  #define ABL_GRID_POINTS_X 3
764
+  #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
748 765
 
749
-  // Enable this to sample the bed in a grid (least squares solution).
750
-  // Note: this feature generates 10KB extra code size.
751
-  #define AUTO_BED_LEVELING_GRID
766
+  // Set the boundaries for probing (where the probe can reach).
767
+  #define LEFT_PROBE_BED_POSITION 15
768
+  #define RIGHT_PROBE_BED_POSITION 170
769
+  #define FRONT_PROBE_BED_POSITION 20
770
+  #define BACK_PROBE_BED_POSITION 170
752 771
 
753
-  #if ENABLED(AUTO_BED_LEVELING_GRID)
772
+  // The Z probe minimum outer margin (to validate G29 parameters).
773
+  #define MIN_PROBE_EDGE 10
754 774
 
755
-    #define LEFT_PROBE_BED_POSITION 15
756
-    #define RIGHT_PROBE_BED_POSITION 170
757
-    #define FRONT_PROBE_BED_POSITION 20
758
-    #define BACK_PROBE_BED_POSITION 170
775
+#elif ENABLED(AUTO_BED_LEVELING_3POINT)
759 776
 
760
-    #define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this.
777
+  // 3 arbitrary points to probe.
778
+  // A simple cross-product is used to estimate the plane of the bed.
779
+  #define ABL_PROBE_PT_1_X 15
780
+  #define ABL_PROBE_PT_1_Y 180
781
+  #define ABL_PROBE_PT_2_X 15
782
+  #define ABL_PROBE_PT_2_Y 20
783
+  #define ABL_PROBE_PT_3_X 170
784
+  #define ABL_PROBE_PT_3_Y 20
761 785
 
762
-    // Set the number of grid points per dimension.
763
-    // You probably don't need more than 3 (squared=9).
764
-    #define ABL_GRID_POINTS_X 3
765
-    #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
766
-
767
-  #else  // !AUTO_BED_LEVELING_GRID
768
-
769
-    // Arbitrary points to probe.
770
-    // A simple cross-product is used to estimate the plane of the bed.
771
-    #define ABL_PROBE_PT_1_X 15
772
-    #define ABL_PROBE_PT_1_Y 180
773
-    #define ABL_PROBE_PT_2_X 15
774
-    #define ABL_PROBE_PT_2_Y 20
775
-    #define ABL_PROBE_PT_3_X 170
776
-    #define ABL_PROBE_PT_3_Y 20
777
-
778
-  #endif // !AUTO_BED_LEVELING_GRID
779
-
780
-  //#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
781
-                                                                             // Useful to retract a deployable Z probe.
782
-
783
-  // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing,
784
-  // it is highly recommended you also enable Z_SAFE_HOMING below!
786
+#endif
785 787
 
786
-#endif // AUTO_BED_LEVELING_FEATURE
788
+/**
789
+ * Commands to execute at the end of G29 probing.
790
+ * Useful to retract or move the Z probe out of the way.
791
+ */
792
+//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"
787 793
 
788 794
 
789 795
 // @section homing

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

@@ -497,7 +497,7 @@
497 497
 // Probes are sensors/switches that are activated / deactivated before/after use.
498 498
 //
499 499
 // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
500
-// You must activate one of these to use AUTO_BED_LEVELING_FEATURE below.
500
+// You must activate one of these to use Auto Bed Leveling below.
501 501
 //
502 502
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
503 503
 //
@@ -719,69 +719,75 @@
719 719
 #endif  // MESH_BED_LEVELING
720 720
 
721 721
 //===========================================================================
722
-//============================ Bed Auto Leveling ============================
722
+//============================ Auto Bed Leveling ============================
723 723
 //===========================================================================
724
-
725 724
 // @section bedlevel
726 725
 
727
-//#define AUTO_BED_LEVELING_FEATURE // Delete the comment to enable (remove // at the start of the line)
726
+/**
727
+ * Select one form of Auto Bed Leveling below.
728
+ *
729
+ *  If you're also using the Probe for Z Homing, it's
730
+ *  highly recommended to enable Z_SAFE_HOMING also!
731
+ *
732
+ * - 3POINT
733
+ *   Probe 3 arbitrary points on the bed (that aren't collinear)
734
+ *   You specify the XY coordinates of all 3 points.
735
+ *   The result is a single tilted plane. Best for a flat bed.
736
+ *
737
+ * - LINEAR
738
+ *   Probe several points in a grid.
739
+ *   You specify the rectangle and the density of sample points.
740
+ *   The result is a single tilted plane. Best for a flat bed.
741
+ *
742
+ * - BILINEAR
743
+ *   Probe several points in a grid.
744
+ *   You specify the rectangle and the density of sample points.
745
+ *   The result is a mesh, best for large or uneven beds.
746
+ */
747
+//#define AUTO_BED_LEVELING_3POINT
748
+//#define AUTO_BED_LEVELING_LINEAR
749
+//#define AUTO_BED_LEVELING_BILINEAR
728 750
 
729
-// Enable this feature to get detailed logging of G28, G29, M48, etc.
730
-// Logging is off by default. Enable this logging feature with 'M111 S32'.
731
-// NOTE: Requires a huge amount of PROGMEM.
751
+/**
752
+ * Enable detailed logging of G28, G29, M48, etc.
753
+ * Turn on with the command 'M111 S32'.
754
+ * NOTE: Requires a lot of PROGMEM!
755
+ */
732 756
 //#define DEBUG_LEVELING_FEATURE
733 757
 
734
-#if ENABLED(AUTO_BED_LEVELING_FEATURE)
758
+#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
735 759
 
736
-  // There are 2 different ways to specify probing locations:
737
-  //
738
-  // - "grid" mode
739
-  //   Probe several points in a rectangular grid.
740
-  //   You specify the rectangle and the density of sample points.
741
-  //   This mode is preferred because there are more measurements.
742
-  //
743
-  // - "3-point" mode
744
-  //   Probe 3 arbitrary points on the bed (that aren't collinear)
745
-  //   You specify the XY coordinates of all 3 points.
760
+  // Set the number of grid points per dimension.
761
+  #define ABL_GRID_POINTS_X 3
762
+  #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
746 763
 
747
-  // Enable this to sample the bed in a grid (least squares solution).
748
-  // Note: this feature generates 10KB extra code size.
749
-  #define AUTO_BED_LEVELING_GRID
764
+  // Set the boundaries for probing (where the probe can reach).
765
+  #define LEFT_PROBE_BED_POSITION 15
766
+  #define RIGHT_PROBE_BED_POSITION 170
767
+  #define FRONT_PROBE_BED_POSITION 20
768
+  #define BACK_PROBE_BED_POSITION 170
750 769
 
751
-  #if ENABLED(AUTO_BED_LEVELING_GRID)
770
+  // The Z probe minimum outer margin (to validate G29 parameters).
771
+  #define MIN_PROBE_EDGE 10
752 772
 
753
-    #define LEFT_PROBE_BED_POSITION 15
754
-    #define RIGHT_PROBE_BED_POSITION 170
755
-    #define FRONT_PROBE_BED_POSITION 20
756
-    #define BACK_PROBE_BED_POSITION 170
773
+#elif ENABLED(AUTO_BED_LEVELING_3POINT)
757 774
 
758
-    #define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this.
775
+  // 3 arbitrary points to probe.
776
+  // A simple cross-product is used to estimate the plane of the bed.
777
+  #define ABL_PROBE_PT_1_X 15
778
+  #define ABL_PROBE_PT_1_Y 180
779
+  #define ABL_PROBE_PT_2_X 15
780
+  #define ABL_PROBE_PT_2_Y 20
781
+  #define ABL_PROBE_PT_3_X 170
782
+  #define ABL_PROBE_PT_3_Y 20
759 783
 
760
-    // Set the number of grid points per dimension.
761
-    // You probably don't need more than 3 (squared=9).
762
-    #define ABL_GRID_POINTS_X 3
763
-    #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
764
-
765
-  #else  // !AUTO_BED_LEVELING_GRID
766
-
767
-    // Arbitrary points to probe.
768
-    // A simple cross-product is used to estimate the plane of the bed.
769
-    #define ABL_PROBE_PT_1_X 15
770
-    #define ABL_PROBE_PT_1_Y 180
771
-    #define ABL_PROBE_PT_2_X 15
772
-    #define ABL_PROBE_PT_2_Y 20
773
-    #define ABL_PROBE_PT_3_X 170
774
-    #define ABL_PROBE_PT_3_Y 20
775
-
776
-  #endif // !AUTO_BED_LEVELING_GRID
777
-
778
-  //#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
779
-                                                                             // Useful to retract a deployable Z probe.
780
-
781
-  // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing,
782
-  // it is highly recommended you also enable Z_SAFE_HOMING below!
784
+#endif
783 785
 
784
-#endif // AUTO_BED_LEVELING_FEATURE
786
+/**
787
+ * Commands to execute at the end of G29 probing.
788
+ * Useful to retract or move the Z probe out of the way.
789
+ */
790
+//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"
785 791
 
786 792
 
787 793
 // @section homing

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

@@ -514,7 +514,7 @@
514 514
 // Probes are sensors/switches that are activated / deactivated before/after use.
515 515
 //
516 516
 // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
517
-// You must activate one of these to use AUTO_BED_LEVELING_FEATURE below.
517
+// You must activate one of these to use Auto Bed Leveling below.
518 518
 //
519 519
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
520 520
 //
@@ -736,69 +736,75 @@
736 736
 #endif  // MESH_BED_LEVELING
737 737
 
738 738
 //===========================================================================
739
-//============================ Bed Auto Leveling ============================
739
+//============================ Auto Bed Leveling ============================
740 740
 //===========================================================================
741
-
742 741
 // @section bedlevel
743 742
 
744
-//#define AUTO_BED_LEVELING_FEATURE // Delete the comment to enable (remove // at the start of the line)
743
+/**
744
+ * Select one form of Auto Bed Leveling below.
745
+ *
746
+ *  If you're also using the Probe for Z Homing, it's
747
+ *  highly recommended to enable Z_SAFE_HOMING also!
748
+ *
749
+ * - 3POINT
750
+ *   Probe 3 arbitrary points on the bed (that aren't collinear)
751
+ *   You specify the XY coordinates of all 3 points.
752
+ *   The result is a single tilted plane. Best for a flat bed.
753
+ *
754
+ * - LINEAR
755
+ *   Probe several points in a grid.
756
+ *   You specify the rectangle and the density of sample points.
757
+ *   The result is a single tilted plane. Best for a flat bed.
758
+ *
759
+ * - BILINEAR
760
+ *   Probe several points in a grid.
761
+ *   You specify the rectangle and the density of sample points.
762
+ *   The result is a mesh, best for large or uneven beds.
763
+ */
764
+//#define AUTO_BED_LEVELING_3POINT
765
+//#define AUTO_BED_LEVELING_LINEAR
766
+//#define AUTO_BED_LEVELING_BILINEAR
745 767
 
746
-// Enable this feature to get detailed logging of G28, G29, M48, etc.
747
-// Logging is off by default. Enable this logging feature with 'M111 S32'.
748
-// NOTE: Requires a huge amount of PROGMEM.
768
+/**
769
+ * Enable detailed logging of G28, G29, M48, etc.
770
+ * Turn on with the command 'M111 S32'.
771
+ * NOTE: Requires a lot of PROGMEM!
772
+ */
749 773
 //#define DEBUG_LEVELING_FEATURE
750 774
 
751
-#if ENABLED(AUTO_BED_LEVELING_FEATURE)
775
+#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
752 776
 
753
-  // There are 2 different ways to specify probing locations:
754
-  //
755
-  // - "grid" mode
756
-  //   Probe several points in a rectangular grid.
757
-  //   You specify the rectangle and the density of sample points.
758
-  //   This mode is preferred because there are more measurements.
759
-  //
760
-  // - "3-point" mode
761
-  //   Probe 3 arbitrary points on the bed (that aren't collinear)
762
-  //   You specify the XY coordinates of all 3 points.
777
+  // Set the number of grid points per dimension.
778
+  #define ABL_GRID_POINTS_X 3
779
+  #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
763 780
 
764
-  // Enable this to sample the bed in a grid (least squares solution).
765
-  // Note: this feature generates 10KB extra code size.
766
-  #define AUTO_BED_LEVELING_GRID
781
+  // Set the boundaries for probing (where the probe can reach).
782
+  #define LEFT_PROBE_BED_POSITION 15
783
+  #define RIGHT_PROBE_BED_POSITION 170
784
+  #define FRONT_PROBE_BED_POSITION 20
785
+  #define BACK_PROBE_BED_POSITION 170
767 786
 
768
-  #if ENABLED(AUTO_BED_LEVELING_GRID)
787
+  // The Z probe minimum outer margin (to validate G29 parameters).
788
+  #define MIN_PROBE_EDGE 10
769 789
 
770
-    #define LEFT_PROBE_BED_POSITION 15
771
-    #define RIGHT_PROBE_BED_POSITION 170
772
-    #define FRONT_PROBE_BED_POSITION 20
773
-    #define BACK_PROBE_BED_POSITION 170
790
+#elif ENABLED(AUTO_BED_LEVELING_3POINT)
774 791
 
775
-    #define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this.
792
+  // 3 arbitrary points to probe.
793
+  // A simple cross-product is used to estimate the plane of the bed.
794
+  #define ABL_PROBE_PT_1_X 15
795
+  #define ABL_PROBE_PT_1_Y 180
796
+  #define ABL_PROBE_PT_2_X 15
797
+  #define ABL_PROBE_PT_2_Y 20
798
+  #define ABL_PROBE_PT_3_X 170
799
+  #define ABL_PROBE_PT_3_Y 20
776 800
 
777
-    // Set the number of grid points per dimension.
778
-    // You probably don't need more than 3 (squared=9).
779
-    #define ABL_GRID_POINTS_X 3
780
-    #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
781
-
782
-  #else  // !AUTO_BED_LEVELING_GRID
783
-
784
-    // Arbitrary points to probe.
785
-    // A simple cross-product is used to estimate the plane of the bed.
786
-    #define ABL_PROBE_PT_1_X 15
787
-    #define ABL_PROBE_PT_1_Y 180
788
-    #define ABL_PROBE_PT_2_X 15
789
-    #define ABL_PROBE_PT_2_Y 20
790
-    #define ABL_PROBE_PT_3_X 170
791
-    #define ABL_PROBE_PT_3_Y 20
792
-
793
-  #endif // !AUTO_BED_LEVELING_GRID
794
-
795
-  //#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
796
-                                                                             // Useful to retract a deployable Z probe.
797
-
798
-  // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing,
799
-  // it is highly recommended you also enable Z_SAFE_HOMING below!
801
+#endif
800 802
 
801
-#endif // AUTO_BED_LEVELING_FEATURE
803
+/**
804
+ * Commands to execute at the end of G29 probing.
805
+ * Useful to retract or move the Z probe out of the way.
806
+ */
807
+//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"
802 808
 
803 809
 
804 810
 // @section homing

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

@@ -520,7 +520,7 @@
520 520
 // Probes are sensors/switches that are activated / deactivated before/after use.
521 521
 //
522 522
 // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
523
-// You must activate one of these to use AUTO_BED_LEVELING_FEATURE below.
523
+// You must activate one of these to use Auto Bed Leveling below.
524 524
 //
525 525
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
526 526
 //
@@ -742,69 +742,75 @@
742 742
 #endif  // MESH_BED_LEVELING
743 743
 
744 744
 //===========================================================================
745
-//============================ Bed Auto Leveling ============================
745
+//============================ Auto Bed Leveling ============================
746 746
 //===========================================================================
747
-
748 747
 // @section bedlevel
749 748
 
750
-//#define AUTO_BED_LEVELING_FEATURE // Delete the comment to enable (remove // at the start of the line)
749
+/**
750
+ * Select one form of Auto Bed Leveling below.
751
+ *
752
+ *  If you're also using the Probe for Z Homing, it's
753
+ *  highly recommended to enable Z_SAFE_HOMING also!
754
+ *
755
+ * - 3POINT
756
+ *   Probe 3 arbitrary points on the bed (that aren't collinear)
757
+ *   You specify the XY coordinates of all 3 points.
758
+ *   The result is a single tilted plane. Best for a flat bed.
759
+ *
760
+ * - LINEAR
761
+ *   Probe several points in a grid.
762
+ *   You specify the rectangle and the density of sample points.
763
+ *   The result is a single tilted plane. Best for a flat bed.
764
+ *
765
+ * - BILINEAR
766
+ *   Probe several points in a grid.
767
+ *   You specify the rectangle and the density of sample points.
768
+ *   The result is a mesh, best for large or uneven beds.
769
+ */
770
+//#define AUTO_BED_LEVELING_3POINT
771
+//#define AUTO_BED_LEVELING_LINEAR
772
+//#define AUTO_BED_LEVELING_BILINEAR
751 773
 
752
-// Enable this feature to get detailed logging of G28, G29, M48, etc.
753
-// Logging is off by default. Enable this logging feature with 'M111 S32'.
754
-// NOTE: Requires a huge amount of PROGMEM.
774
+/**
775
+ * Enable detailed logging of G28, G29, M48, etc.
776
+ * Turn on with the command 'M111 S32'.
777
+ * NOTE: Requires a lot of PROGMEM!
778
+ */
755 779
 //#define DEBUG_LEVELING_FEATURE
756 780
 
757
-#if ENABLED(AUTO_BED_LEVELING_FEATURE)
781
+#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
758 782
 
759
-  // There are 2 different ways to specify probing locations:
760
-  //
761
-  // - "grid" mode
762
-  //   Probe several points in a rectangular grid.
763
-  //   You specify the rectangle and the density of sample points.
764
-  //   This mode is preferred because there are more measurements.
765
-  //
766
-  // - "3-point" mode
767
-  //   Probe 3 arbitrary points on the bed (that aren't collinear)
768
-  //   You specify the XY coordinates of all 3 points.
783
+  // Set the number of grid points per dimension.
784
+  #define ABL_GRID_POINTS_X 3
785
+  #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
769 786
 
770
-  // Enable this to sample the bed in a grid (least squares solution).
771
-  // Note: this feature generates 10KB extra code size.
772
-  #define AUTO_BED_LEVELING_GRID
787
+  // Set the boundaries for probing (where the probe can reach).
788
+  #define LEFT_PROBE_BED_POSITION 15
789
+  #define RIGHT_PROBE_BED_POSITION 170
790
+  #define FRONT_PROBE_BED_POSITION 20
791
+  #define BACK_PROBE_BED_POSITION 170
773 792
 
774
-  #if ENABLED(AUTO_BED_LEVELING_GRID)
793
+  // The Z probe minimum outer margin (to validate G29 parameters).
794
+  #define MIN_PROBE_EDGE 10
775 795
 
776
-    #define LEFT_PROBE_BED_POSITION 15
777
-    #define RIGHT_PROBE_BED_POSITION 170
778
-    #define FRONT_PROBE_BED_POSITION 20
779
-    #define BACK_PROBE_BED_POSITION 170
796
+#elif ENABLED(AUTO_BED_LEVELING_3POINT)
780 797
 
781
-    #define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this.
798
+  // 3 arbitrary points to probe.
799
+  // A simple cross-product is used to estimate the plane of the bed.
800
+  #define ABL_PROBE_PT_1_X 15
801
+  #define ABL_PROBE_PT_1_Y 180
802
+  #define ABL_PROBE_PT_2_X 15
803
+  #define ABL_PROBE_PT_2_Y 20
804
+  #define ABL_PROBE_PT_3_X 170
805
+  #define ABL_PROBE_PT_3_Y 20
782 806
 
783
-    // Set the number of grid points per dimension.
784
-    // You probably don't need more than 3 (squared=9).
785
-    #define ABL_GRID_POINTS_X 3
786
-    #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
787
-
788
-  #else  // !AUTO_BED_LEVELING_GRID
789
-
790
-    // Arbitrary points to probe.
791
-    // A simple cross-product is used to estimate the plane of the bed.
792
-    #define ABL_PROBE_PT_1_X 15
793
-    #define ABL_PROBE_PT_1_Y 180
794
-    #define ABL_PROBE_PT_2_X 15
795
-    #define ABL_PROBE_PT_2_Y 20
796
-    #define ABL_PROBE_PT_3_X 170
797
-    #define ABL_PROBE_PT_3_Y 20
798
-
799
-  #endif // !AUTO_BED_LEVELING_GRID
800
-
801
-  //#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
802
-                                                                             // Useful to retract a deployable Z probe.
803
-
804
-  // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing,
805
-  // it is highly recommended you also enable Z_SAFE_HOMING below!
807
+#endif
806 808
 
807
-#endif // AUTO_BED_LEVELING_FEATURE
809
+/**
810
+ * Commands to execute at the end of G29 probing.
811
+ * Useful to retract or move the Z probe out of the way.
812
+ */
813
+//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"
808 814
 
809 815
 
810 816
 // @section homing

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

@@ -491,7 +491,7 @@
491 491
 // Probes are sensors/switches that are activated / deactivated before/after use.
492 492
 //
493 493
 // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
494
-// You must activate one of these to use AUTO_BED_LEVELING_FEATURE below.
494
+// You must activate one of these to use Auto Bed Leveling below.
495 495
 //
496 496
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
497 497
 //
@@ -713,69 +713,75 @@
713 713
 #endif  // MESH_BED_LEVELING
714 714
 
715 715
 //===========================================================================
716
-//============================ Bed Auto Leveling ============================
716
+//============================ Auto Bed Leveling ============================
717 717
 //===========================================================================
718
-
719 718
 // @section bedlevel
720 719
 
721
-//#define AUTO_BED_LEVELING_FEATURE // Delete the comment to enable (remove // at the start of the line)
720
+/**
721
+ * Select one form of Auto Bed Leveling below.
722
+ *
723
+ *  If you're also using the Probe for Z Homing, it's
724
+ *  highly recommended to enable Z_SAFE_HOMING also!
725
+ *
726
+ * - 3POINT
727
+ *   Probe 3 arbitrary points on the bed (that aren't collinear)
728
+ *   You specify the XY coordinates of all 3 points.
729
+ *   The result is a single tilted plane. Best for a flat bed.
730
+ *
731
+ * - LINEAR
732
+ *   Probe several points in a grid.
733
+ *   You specify the rectangle and the density of sample points.
734
+ *   The result is a single tilted plane. Best for a flat bed.
735
+ *
736
+ * - BILINEAR
737
+ *   Probe several points in a grid.
738
+ *   You specify the rectangle and the density of sample points.
739
+ *   The result is a mesh, best for large or uneven beds.
740
+ */
741
+//#define AUTO_BED_LEVELING_3POINT
742
+//#define AUTO_BED_LEVELING_LINEAR
743
+//#define AUTO_BED_LEVELING_BILINEAR
722 744
 
723
-// Enable this feature to get detailed logging of G28, G29, M48, etc.
724
-// Logging is off by default. Enable this logging feature with 'M111 S32'.
725
-// NOTE: Requires a huge amount of PROGMEM.
745
+/**
746
+ * Enable detailed logging of G28, G29, M48, etc.
747
+ * Turn on with the command 'M111 S32'.
748
+ * NOTE: Requires a lot of PROGMEM!
749
+ */
726 750
 //#define DEBUG_LEVELING_FEATURE
727 751
 
728
-#if ENABLED(AUTO_BED_LEVELING_FEATURE)
752
+#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
729 753
 
730
-  // There are 2 different ways to specify probing locations:
731
-  //
732
-  // - "grid" mode
733
-  //   Probe several points in a rectangular grid.
734
-  //   You specify the rectangle and the density of sample points.
735
-  //   This mode is preferred because there are more measurements.
736
-  //
737
-  // - "3-point" mode
738
-  //   Probe 3 arbitrary points on the bed (that aren't collinear)
739
-  //   You specify the XY coordinates of all 3 points.
754
+  // Set the number of grid points per dimension.
755
+  #define ABL_GRID_POINTS_X 3
756
+  #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
740 757
 
741
-  // Enable this to sample the bed in a grid (least squares solution).
742
-  // Note: this feature generates 10KB extra code size.
743
-  #define AUTO_BED_LEVELING_GRID
758
+  // Set the boundaries for probing (where the probe can reach).
759
+  #define LEFT_PROBE_BED_POSITION 15
760
+  #define RIGHT_PROBE_BED_POSITION 170
761
+  #define FRONT_PROBE_BED_POSITION 20
762
+  #define BACK_PROBE_BED_POSITION 170
744 763
 
745
-  #if ENABLED(AUTO_BED_LEVELING_GRID)
764
+  // The Z probe minimum outer margin (to validate G29 parameters).
765
+  #define MIN_PROBE_EDGE 10
746 766
 
747
-    #define LEFT_PROBE_BED_POSITION 15
748
-    #define RIGHT_PROBE_BED_POSITION 170
749
-    #define FRONT_PROBE_BED_POSITION 20
750
-    #define BACK_PROBE_BED_POSITION 170
767
+#elif ENABLED(AUTO_BED_LEVELING_3POINT)
751 768
 
752
-    #define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this.
769
+  // 3 arbitrary points to probe.
770
+  // A simple cross-product is used to estimate the plane of the bed.
771
+  #define ABL_PROBE_PT_1_X 15
772
+  #define ABL_PROBE_PT_1_Y 180
773
+  #define ABL_PROBE_PT_2_X 15
774
+  #define ABL_PROBE_PT_2_Y 20
775
+  #define ABL_PROBE_PT_3_X 170
776
+  #define ABL_PROBE_PT_3_Y 20
753 777
 
754
-    // Set the number of grid points per dimension.
755
-    // You probably don't need more than 3 (squared=9).
756
-    #define ABL_GRID_POINTS_X 3
757
-    #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
758
-
759
-  #else  // !AUTO_BED_LEVELING_GRID
760
-
761
-    // Arbitrary points to probe.
762
-    // A simple cross-product is used to estimate the plane of the bed.
763
-    #define ABL_PROBE_PT_1_X 15
764
-    #define ABL_PROBE_PT_1_Y 180
765
-    #define ABL_PROBE_PT_2_X 15
766
-    #define ABL_PROBE_PT_2_Y 20
767
-    #define ABL_PROBE_PT_3_X 170
768
-    #define ABL_PROBE_PT_3_Y 20
769
-
770
-  #endif // !AUTO_BED_LEVELING_GRID
771
-
772
-  //#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
773
-                                                                             // Useful to retract a deployable Z probe.
774
-
775
-  // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing,
776
-  // it is highly recommended you also enable Z_SAFE_HOMING below!
778
+#endif
777 779
 
778
-#endif // AUTO_BED_LEVELING_FEATURE
780
+/**
781
+ * Commands to execute at the end of G29 probing.
782
+ * Useful to retract or move the Z probe out of the way.
783
+ */
784
+//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"
779 785
 
780 786
 
781 787
 // @section homing

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

@@ -499,7 +499,7 @@
499 499
 // Probes are sensors/switches that are activated / deactivated before/after use.
500 500
 //
501 501
 // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
502
-// You must activate one of these to use AUTO_BED_LEVELING_FEATURE below.
502
+// You must activate one of these to use Auto Bed Leveling below.
503 503
 //
504 504
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
505 505
 //
@@ -721,69 +721,75 @@
721 721
 #endif  // MESH_BED_LEVELING
722 722
 
723 723
 //===========================================================================
724
-//============================ Bed Auto Leveling ============================
724
+//============================ Auto Bed Leveling ============================
725 725
 //===========================================================================
726
-
727 726
 // @section bedlevel
728 727
 
729
-//#define AUTO_BED_LEVELING_FEATURE // Delete the comment to enable (remove // at the start of the line)
728
+/**
729
+ * Select one form of Auto Bed Leveling below.
730
+ *
731
+ *  If you're also using the Probe for Z Homing, it's
732
+ *  highly recommended to enable Z_SAFE_HOMING also!
733
+ *
734
+ * - 3POINT
735
+ *   Probe 3 arbitrary points on the bed (that aren't collinear)
736
+ *   You specify the XY coordinates of all 3 points.
737
+ *   The result is a single tilted plane. Best for a flat bed.
738
+ *
739
+ * - LINEAR
740
+ *   Probe several points in a grid.
741
+ *   You specify the rectangle and the density of sample points.
742
+ *   The result is a single tilted plane. Best for a flat bed.
743
+ *
744
+ * - BILINEAR
745
+ *   Probe several points in a grid.
746
+ *   You specify the rectangle and the density of sample points.
747
+ *   The result is a mesh, best for large or uneven beds.
748
+ */
749
+//#define AUTO_BED_LEVELING_3POINT
750
+//#define AUTO_BED_LEVELING_LINEAR
751
+//#define AUTO_BED_LEVELING_BILINEAR
730 752
 
731
-// Enable this feature to get detailed logging of G28, G29, M48, etc.
732
-// Logging is off by default. Enable this logging feature with 'M111 S32'.
733
-// NOTE: Requires a huge amount of PROGMEM.
753
+/**
754
+ * Enable detailed logging of G28, G29, M48, etc.
755
+ * Turn on with the command 'M111 S32'.
756
+ * NOTE: Requires a lot of PROGMEM!
757
+ */
734 758
 //#define DEBUG_LEVELING_FEATURE
735 759
 
736
-#if ENABLED(AUTO_BED_LEVELING_FEATURE)
760
+#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
737 761
 
738
-  // There are 2 different ways to specify probing locations:
739
-  //
740
-  // - "grid" mode
741
-  //   Probe several points in a rectangular grid.
742
-  //   You specify the rectangle and the density of sample points.
743
-  //   This mode is preferred because there are more measurements.
744
-  //
745
-  // - "3-point" mode
746
-  //   Probe 3 arbitrary points on the bed (that aren't collinear)
747
-  //   You specify the XY coordinates of all 3 points.
762
+  // Set the number of grid points per dimension.
763
+  #define ABL_GRID_POINTS_X 3
764
+  #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
748 765
 
749
-  // Enable this to sample the bed in a grid (least squares solution).
750
-  // Note: this feature generates 10KB extra code size.
751
-  #define AUTO_BED_LEVELING_GRID
766
+  // Set the boundaries for probing (where the probe can reach).
767
+  #define LEFT_PROBE_BED_POSITION 15
768
+  #define RIGHT_PROBE_BED_POSITION 170
769
+  #define FRONT_PROBE_BED_POSITION 20
770
+  #define BACK_PROBE_BED_POSITION 170
752 771
 
753
-  #if ENABLED(AUTO_BED_LEVELING_GRID)
772
+  // The Z probe minimum outer margin (to validate G29 parameters).
773
+  #define MIN_PROBE_EDGE 10
754 774
 
755
-    #define LEFT_PROBE_BED_POSITION 15
756
-    #define RIGHT_PROBE_BED_POSITION 170
757
-    #define FRONT_PROBE_BED_POSITION 20
758
-    #define BACK_PROBE_BED_POSITION 170
775
+#elif ENABLED(AUTO_BED_LEVELING_3POINT)
759 776
 
760
-    #define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this.
777
+  // 3 arbitrary points to probe.
778
+  // A simple cross-product is used to estimate the plane of the bed.
779
+  #define ABL_PROBE_PT_1_X 15
780
+  #define ABL_PROBE_PT_1_Y 180
781
+  #define ABL_PROBE_PT_2_X 15
782
+  #define ABL_PROBE_PT_2_Y 20
783
+  #define ABL_PROBE_PT_3_X 170
784
+  #define ABL_PROBE_PT_3_Y 20
761 785
 
762
-    // Set the number of grid points per dimension.
763
-    // You probably don't need more than 3 (squared=9).
764
-    #define ABL_GRID_POINTS_X 3
765
-    #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
766
-
767
-  #else  // !AUTO_BED_LEVELING_GRID
768
-
769
-    // Arbitrary points to probe.
770
-    // A simple cross-product is used to estimate the plane of the bed.
771
-    #define ABL_PROBE_PT_1_X 15
772
-    #define ABL_PROBE_PT_1_Y 180
773
-    #define ABL_PROBE_PT_2_X 15
774
-    #define ABL_PROBE_PT_2_Y 20
775
-    #define ABL_PROBE_PT_3_X 170
776
-    #define ABL_PROBE_PT_3_Y 20
777
-
778
-  #endif // !AUTO_BED_LEVELING_GRID
779
-
780
-  //#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
781
-                                                                             // Useful to retract a deployable Z probe.
782
-
783
-  // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing,
784
-  // it is highly recommended you also enable Z_SAFE_HOMING below!
786
+#endif
785 787
 
786
-#endif // AUTO_BED_LEVELING_FEATURE
788
+/**
789
+ * Commands to execute at the end of G29 probing.
790
+ * Useful to retract or move the Z probe out of the way.
791
+ */
792
+//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"
787 793
 
788 794
 
789 795
 // @section homing

+ 66
- 62
Marlin/example_configurations/delta/biv2.5/Configuration.h View File

@@ -542,7 +542,7 @@
542 542
 // Probes are sensors/switches that are activated / deactivated before/after use.
543 543
 //
544 544
 // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
545
-// You must activate one of these to use AUTO_BED_LEVELING_FEATURE below.
545
+// You must activate one of these to use Auto Bed Leveling below.
546 546
 //
547 547
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
548 548
 //
@@ -811,73 +811,77 @@
811 811
 #endif  // MESH_BED_LEVELING
812 812
 
813 813
 //===========================================================================
814
-//============================ Bed Auto Leveling ============================
814
+//============================ Auto Bed Leveling ============================
815 815
 //===========================================================================
816
-
817 816
 // @section bedlevel
818 817
 
819
-//#define AUTO_BED_LEVELING_FEATURE // Delete the comment to enable (remove // at the start of the line)
818
+/**
819
+ * Select one form of Auto Bed Leveling below.
820
+ *
821
+ *  If you're also using the Probe for Z Homing, it's
822
+ *  highly recommended to enable Z_SAFE_HOMING also!
823
+ *
824
+ * - 3POINT
825
+ *   Probe 3 arbitrary points on the bed (that aren't collinear)
826
+ *   You specify the XY coordinates of all 3 points.
827
+ *   The result is a single tilted plane. Best for a flat bed.
828
+ *
829
+ * - LINEAR
830
+ *   Probe several points in a grid.
831
+ *   You specify the rectangle and the density of sample points.
832
+ *   The result is a single tilted plane. Best for a flat bed.
833
+ *
834
+ * - BILINEAR
835
+ *   Probe several points in a grid.
836
+ *   You specify the rectangle and the density of sample points.
837
+ *   The result is a mesh, best for large or uneven beds.
838
+ */
839
+//#define AUTO_BED_LEVELING_3POINT
840
+//#define AUTO_BED_LEVELING_LINEAR
841
+//#define AUTO_BED_LEVELING_BILINEAR
820 842
 
821
-// Enable this feature to get detailed logging of G28, G29, M48, etc.
822
-// Logging is off by default. Enable this logging feature with 'M111 S32'.
823
-// NOTE: Requires a huge amount of PROGMEM.
843
+/**
844
+ * Enable detailed logging of G28, G29, M48, etc.
845
+ * Turn on with the command 'M111 S32'.
846
+ * NOTE: Requires a lot of PROGMEM!
847
+ */
824 848
 //#define DEBUG_LEVELING_FEATURE
825 849
 
826
-#if ENABLED(AUTO_BED_LEVELING_FEATURE)
827
-
828
-  // There are 2 different ways to specify probing locations:
829
-  //
830
-  // - "grid" mode
831
-  //   Probe several points in a rectangular grid.
832
-  //   You specify the rectangle and the density of sample points.
833
-  //   This mode is preferred because there are more measurements.
834
-  //
835
-  // - "3-point" mode
836
-  //   Probe 3 arbitrary points on the bed (that aren't collinear)
837
-  //   You specify the XY coordinates of all 3 points.
838
-
839
-  // Enable this to sample the bed in a grid (least squares solution).
840
-  // Note: this feature generates 10KB extra code size.
841
-  #define AUTO_BED_LEVELING_GRID  // Deltas only support grid mode.
842
-
843
-  #if ENABLED(AUTO_BED_LEVELING_GRID)
844
-
845
-    // Set the rectangle in which to probe.
846
-    #define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10)
847
-    #define LEFT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS)
848
-    #define RIGHT_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS
849
-    #define FRONT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS)
850
-    #define BACK_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS
851
-
852
-    #define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this.
853
-
854
-    // Non-linear bed leveling will be used.
855
-    // Compensate by interpolating between the nearest four Z probe values for each point.
856
-    // Useful for deltas where the print surface may appear like a bowl or dome shape.
857
-    // Works best with 5 or more points in each dimension.
858
-    #define ABL_GRID_POINTS_X 9
859
-    #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
860
-
861
-  #else  // !AUTO_BED_LEVELING_GRID
862
-
863
-    // Arbitrary points to probe.
864
-    // A simple cross-product is used to estimate the plane of the bed.
865
-    #define ABL_PROBE_PT_1_X 15
866
-    #define ABL_PROBE_PT_1_Y 180
867
-    #define ABL_PROBE_PT_2_X 15
868
-    #define ABL_PROBE_PT_2_Y 20
869
-    #define ABL_PROBE_PT_3_X 170
870
-    #define ABL_PROBE_PT_3_Y 20
871
-
872
-  #endif // !AUTO_BED_LEVELING_GRID
873
-
874
-  //#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
875
-                                                                             // Useful to retract a deployable Z probe.
876
-
877
-  // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing,
878
-  // it is highly recommended you also enable Z_SAFE_HOMING below!
879
-
880
-#endif // AUTO_BED_LEVELING_FEATURE
850
+#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
851
+
852
+  // Set the number of grid points per dimension.
853
+  // Works best with 5 or more points in each dimension.
854
+  #define ABL_GRID_POINTS_X 9
855
+  #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
856
+
857
+  // Set the boundaries for probing (where the probe can reach).
858
+  #define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10)
859
+  #define LEFT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS)
860
+  #define RIGHT_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS
861
+  #define FRONT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS)
862
+  #define BACK_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS
863
+
864
+  // The Z probe minimum outer margin (to validate G29 parameters).
865
+  #define MIN_PROBE_EDGE 10
866
+
867
+#elif ENABLED(AUTO_BED_LEVELING_3POINT)
868
+
869
+  // 3 arbitrary points to probe.
870
+  // A simple cross-product is used to estimate the plane of the bed.
871
+  #define ABL_PROBE_PT_1_X 15
872
+  #define ABL_PROBE_PT_1_Y 180
873
+  #define ABL_PROBE_PT_2_X 15
874
+  #define ABL_PROBE_PT_2_Y 20
875
+  #define ABL_PROBE_PT_3_X 170
876
+  #define ABL_PROBE_PT_3_Y 20
877
+
878
+#endif
879
+
880
+/**
881
+ * Commands to execute at the end of G29 probing.
882
+ * Useful to retract or move the Z probe out of the way.
883
+ */
884
+//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"
881 885
 
882 886
 
883 887
 // @section homing

+ 66
- 62
Marlin/example_configurations/delta/generic/Configuration.h View File

@@ -542,7 +542,7 @@
542 542
 // Probes are sensors/switches that are activated / deactivated before/after use.
543 543
 //
544 544
 // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
545
-// You must activate one of these to use AUTO_BED_LEVELING_FEATURE below.
545
+// You must activate one of these to use Auto Bed Leveling below.
546 546
 //
547 547
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
548 548
 //
@@ -805,73 +805,77 @@
805 805
 #endif  // MESH_BED_LEVELING
806 806
 
807 807
 //===========================================================================
808
-//============================ Bed Auto Leveling ============================
808
+//============================ Auto Bed Leveling ============================
809 809
 //===========================================================================
810
-
811 810
 // @section bedlevel
812 811
 
813
-//#define AUTO_BED_LEVELING_FEATURE // Delete the comment to enable (remove // at the start of the line)
812
+/**
813
+ * Select one form of Auto Bed Leveling below.
814
+ *
815
+ *  If you're also using the Probe for Z Homing, it's
816
+ *  highly recommended to enable Z_SAFE_HOMING also!
817
+ *
818
+ * - 3POINT
819
+ *   Probe 3 arbitrary points on the bed (that aren't collinear)
820
+ *   You specify the XY coordinates of all 3 points.
821
+ *   The result is a single tilted plane. Best for a flat bed.
822
+ *
823
+ * - LINEAR
824
+ *   Probe several points in a grid.
825
+ *   You specify the rectangle and the density of sample points.
826
+ *   The result is a single tilted plane. Best for a flat bed.
827
+ *
828
+ * - BILINEAR
829
+ *   Probe several points in a grid.
830
+ *   You specify the rectangle and the density of sample points.
831
+ *   The result is a mesh, best for large or uneven beds.
832
+ */
833
+//#define AUTO_BED_LEVELING_3POINT
834
+//#define AUTO_BED_LEVELING_LINEAR
835
+//#define AUTO_BED_LEVELING_BILINEAR
814 836
 
815
-// Enable this feature to get detailed logging of G28, G29, M48, etc.
816
-// Logging is off by default. Enable this logging feature with 'M111 S32'.
817
-// NOTE: Requires a huge amount of PROGMEM.
837
+/**
838
+ * Enable detailed logging of G28, G29, M48, etc.
839
+ * Turn on with the command 'M111 S32'.
840
+ * NOTE: Requires a lot of PROGMEM!
841
+ */
818 842
 //#define DEBUG_LEVELING_FEATURE
819 843
 
820
-#if ENABLED(AUTO_BED_LEVELING_FEATURE)
821
-
822
-  // There are 2 different ways to specify probing locations:
823
-  //
824
-  // - "grid" mode
825
-  //   Probe several points in a rectangular grid.
826
-  //   You specify the rectangle and the density of sample points.
827
-  //   This mode is preferred because there are more measurements.
828
-  //
829
-  // - "3-point" mode
830
-  //   Probe 3 arbitrary points on the bed (that aren't collinear)
831
-  //   You specify the XY coordinates of all 3 points.
832
-
833
-  // Enable this to sample the bed in a grid (least squares solution).
834
-  // Note: this feature generates 10KB extra code size.
835
-  #define AUTO_BED_LEVELING_GRID  // Deltas only support grid mode.
836
-
837
-  #if ENABLED(AUTO_BED_LEVELING_GRID)
838
-
839
-    // Set the rectangle in which to probe
840
-    #define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10)
841
-    #define LEFT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS)
842
-    #define RIGHT_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS
843
-    #define FRONT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS)
844
-    #define BACK_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS
845
-
846
-    #define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this.
847
-
848
-    // Non-linear bed leveling will be used.
849
-    // Compensate by interpolating between the nearest four Z probe values for each point.
850
-    // Useful for deltas where the print surface may appear like a bowl or dome shape.
851
-    // Works best with 5 or more points in each dimension.
852
-    #define ABL_GRID_POINTS_X 9
853
-    #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
854
-
855
-  #else  // !AUTO_BED_LEVELING_GRID
856
-
857
-    // Arbitrary points to probe.
858
-    // A simple cross-product is used to estimate the plane of the bed.
859
-    #define ABL_PROBE_PT_1_X 15
860
-    #define ABL_PROBE_PT_1_Y 180
861
-    #define ABL_PROBE_PT_2_X 15
862
-    #define ABL_PROBE_PT_2_Y 20
863
-    #define ABL_PROBE_PT_3_X 170
864
-    #define ABL_PROBE_PT_3_Y 20
865
-
866
-  #endif // !AUTO_BED_LEVELING_GRID
867
-
868
-  //#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
869
-                                                                             // Useful to retract a deployable Z probe.
870
-
871
-  // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing,
872
-  // it is highly recommended you also enable Z_SAFE_HOMING below!
873
-
874
-#endif // AUTO_BED_LEVELING_FEATURE
844
+#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
845
+
846
+  // Set the number of grid points per dimension.
847
+  // Works best with 5 or more points in each dimension.
848
+  #define ABL_GRID_POINTS_X 9
849
+  #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
850
+
851
+  // Set the boundaries for probing (where the probe can reach).
852
+  #define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10)
853
+  #define LEFT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS)
854
+  #define RIGHT_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS
855
+  #define FRONT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS)
856
+  #define BACK_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS
857
+
858
+  // The Z probe minimum outer margin (to validate G29 parameters).
859
+  #define MIN_PROBE_EDGE 10
860
+
861
+#elif ENABLED(AUTO_BED_LEVELING_3POINT)
862
+
863
+  // 3 arbitrary points to probe.
864
+  // A simple cross-product is used to estimate the plane of the bed.
865
+  #define ABL_PROBE_PT_1_X 15
866
+  #define ABL_PROBE_PT_1_Y 180
867
+  #define ABL_PROBE_PT_2_X 15
868
+  #define ABL_PROBE_PT_2_Y 20
869
+  #define ABL_PROBE_PT_3_X 170
870
+  #define ABL_PROBE_PT_3_Y 20
871
+
872
+#endif
873
+
874
+/**
875
+ * Commands to execute at the end of G29 probing.
876
+ * Useful to retract or move the Z probe out of the way.
877
+ */
878
+//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"
875 879
 
876 880
 
877 881
 // @section homing

+ 66
- 62
Marlin/example_configurations/delta/kossel_mini/Configuration.h View File

@@ -542,7 +542,7 @@
542 542
 // Probes are sensors/switches that are activated / deactivated before/after use.
543 543
 //
544 544
 // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
545
-// You must activate one of these to use AUTO_BED_LEVELING_FEATURE below.
545
+// You must activate one of these to use Auto Bed Leveling below.
546 546
 //
547 547
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
548 548
 //
@@ -808,73 +808,77 @@
808 808
 #endif  // MESH_BED_LEVELING
809 809
 
810 810
 //===========================================================================
811
-//============================ Bed Auto Leveling ============================
811
+//============================ Auto Bed Leveling ============================
812 812
 //===========================================================================
813
-
814 813
 // @section bedlevel
815 814
 
816
-//#define AUTO_BED_LEVELING_FEATURE // Delete the comment to enable (remove // at the start of the line)
815
+/**
816
+ * Select one form of Auto Bed Leveling below.
817
+ *
818
+ *  If you're also using the Probe for Z Homing, it's
819
+ *  highly recommended to enable Z_SAFE_HOMING also!
820
+ *
821
+ * - 3POINT
822
+ *   Probe 3 arbitrary points on the bed (that aren't collinear)
823
+ *   You specify the XY coordinates of all 3 points.
824
+ *   The result is a single tilted plane. Best for a flat bed.
825
+ *
826
+ * - LINEAR
827
+ *   Probe several points in a grid.
828
+ *   You specify the rectangle and the density of sample points.
829
+ *   The result is a single tilted plane. Best for a flat bed.
830
+ *
831
+ * - BILINEAR
832
+ *   Probe several points in a grid.
833
+ *   You specify the rectangle and the density of sample points.
834
+ *   The result is a mesh, best for large or uneven beds.
835
+ */
836
+//#define AUTO_BED_LEVELING_3POINT
837
+//#define AUTO_BED_LEVELING_LINEAR
838
+//#define AUTO_BED_LEVELING_BILINEAR
817 839
 
818
-// Enable this feature to get detailed logging of G28, G29, M48, etc.
819
-// Logging is off by default. Enable this logging feature with 'M111 S32'.
820
-// NOTE: Requires a huge amount of PROGMEM.
840
+/**
841
+ * Enable detailed logging of G28, G29, M48, etc.
842
+ * Turn on with the command 'M111 S32'.
843
+ * NOTE: Requires a lot of PROGMEM!
844
+ */
821 845
 //#define DEBUG_LEVELING_FEATURE
822 846
 
823
-#if ENABLED(AUTO_BED_LEVELING_FEATURE)
824
-
825
-  // There are 2 different ways to specify probing locations:
826
-  //
827
-  // - "grid" mode
828
-  //   Probe several points in a rectangular grid.
829
-  //   You specify the rectangle and the density of sample points.
830
-  //   This mode is preferred because there are more measurements.
831
-  //
832
-  // - "3-point" mode
833
-  //   Probe 3 arbitrary points on the bed (that aren't collinear)
834
-  //   You specify the XY coordinates of all 3 points.
835
-
836
-  // Enable this to sample the bed in a grid (least squares solution).
837
-  // Note: this feature generates 10KB extra code size.
838
-  #define AUTO_BED_LEVELING_GRID  // Deltas only support grid mode.
839
-
840
-  #if ENABLED(AUTO_BED_LEVELING_GRID)
841
-
842
-    // Set the rectangle in which to probe
843
-    #define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10)
844
-    #define LEFT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS)
845
-    #define RIGHT_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS
846
-    #define FRONT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS)
847
-    #define BACK_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS
848
-
849
-    #define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this.
850
-
851
-    // Non-linear bed leveling will be used.
852
-    // Compensate by interpolating between the nearest four Z probe values for each point.
853
-    // Useful for deltas where the print surface may appear like a bowl or dome shape.
854
-    // Works best with 5 or more points in each dimension.
855
-    #define ABL_GRID_POINTS_X 9
856
-    #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
857
-
858
-  #else  // !AUTO_BED_LEVELING_GRID
859
-
860
-    // Arbitrary points to probe.
861
-    // A simple cross-product is used to estimate the plane of the bed.
862
-    #define ABL_PROBE_PT_1_X 15
863
-    #define ABL_PROBE_PT_1_Y 180
864
-    #define ABL_PROBE_PT_2_X 15
865
-    #define ABL_PROBE_PT_2_Y 20
866
-    #define ABL_PROBE_PT_3_X 170
867
-    #define ABL_PROBE_PT_3_Y 20
868
-
869
-  #endif // !AUTO_BED_LEVELING_GRID
870
-
871
-  //#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
872
-                                                                             // Useful to retract a deployable Z probe.
873
-
874
-  // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing,
875
-  // it is highly recommended you also enable Z_SAFE_HOMING below!
876
-
877
-#endif // AUTO_BED_LEVELING_FEATURE
847
+#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
848
+
849
+  // Set the number of grid points per dimension.
850
+  // Works best with 5 or more points in each dimension.
851
+  #define ABL_GRID_POINTS_X 9
852
+  #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
853
+
854
+  // Set the boundaries for probing (where the probe can reach).
855
+  #define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10)
856
+  #define LEFT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS)
857
+  #define RIGHT_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS
858
+  #define FRONT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS)
859
+  #define BACK_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS
860
+
861
+  // The Z probe minimum outer margin (to validate G29 parameters).
862
+  #define MIN_PROBE_EDGE 10
863
+
864
+#elif ENABLED(AUTO_BED_LEVELING_3POINT)
865
+
866
+  // 3 arbitrary points to probe.
867
+  // A simple cross-product is used to estimate the plane of the bed.
868
+  #define ABL_PROBE_PT_1_X 15
869
+  #define ABL_PROBE_PT_1_Y 180
870
+  #define ABL_PROBE_PT_2_X 15
871
+  #define ABL_PROBE_PT_2_Y 20
872
+  #define ABL_PROBE_PT_3_X 170
873
+  #define ABL_PROBE_PT_3_Y 20
874
+
875
+#endif
876
+
877
+/**
878
+ * Commands to execute at the end of G29 probing.
879
+ * Useful to retract or move the Z probe out of the way.
880
+ */
881
+//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"
878 882
 
879 883
 
880 884
 // @section homing

+ 66
- 62
Marlin/example_configurations/delta/kossel_pro/Configuration.h View File

@@ -538,7 +538,7 @@
538 538
 // Probes are sensors/switches that are activated / deactivated before/after use.
539 539
 //
540 540
 // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
541
-// You must activate one of these to use AUTO_BED_LEVELING_FEATURE below.
541
+// You must activate one of these to use Auto Bed Leveling below.
542 542
 //
543 543
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
544 544
 //
@@ -809,73 +809,77 @@
809 809
 #endif  // MESH_BED_LEVELING
810 810
 
811 811
 //===========================================================================
812
-//============================ Bed Auto Leveling ============================
812
+//============================ Auto Bed Leveling ============================
813 813
 //===========================================================================
814
-
815 814
 // @section bedlevel
816 815
 
817
-#define AUTO_BED_LEVELING_FEATURE // Delete the comment to enable (remove // at the start of the line)
816
+/**
817
+ * Select one form of Auto Bed Leveling below.
818
+ *
819
+ *  If you're also using the Probe for Z Homing, it's
820
+ *  highly recommended to enable Z_SAFE_HOMING also!
821
+ *
822
+ * - 3POINT
823
+ *   Probe 3 arbitrary points on the bed (that aren't collinear)
824
+ *   You specify the XY coordinates of all 3 points.
825
+ *   The result is a single tilted plane. Best for a flat bed.
826
+ *
827
+ * - LINEAR
828
+ *   Probe several points in a grid.
829
+ *   You specify the rectangle and the density of sample points.
830
+ *   The result is a single tilted plane. Best for a flat bed.
831
+ *
832
+ * - BILINEAR
833
+ *   Probe several points in a grid.
834
+ *   You specify the rectangle and the density of sample points.
835
+ *   The result is a mesh, best for large or uneven beds.
836
+ */
837
+//#define AUTO_BED_LEVELING_3POINT
838
+//#define AUTO_BED_LEVELING_LINEAR
839
+#define AUTO_BED_LEVELING_BILINEAR
818 840
 
819
-// Enable this feature to get detailed logging of G28, G29, M48, etc.
820
-// Logging is off by default. Enable this logging feature with 'M111 S32'.
821
-// NOTE: Requires a huge amount of PROGMEM.
841
+/**
842
+ * Enable detailed logging of G28, G29, M48, etc.
843
+ * Turn on with the command 'M111 S32'.
844
+ * NOTE: Requires a lot of PROGMEM!
845
+ */
822 846
 //#define DEBUG_LEVELING_FEATURE
823 847
 
824
-#if ENABLED(AUTO_BED_LEVELING_FEATURE)
825
-
826
-  // There are 2 different ways to specify probing locations:
827
-  //
828
-  // - "grid" mode
829
-  //   Probe several points in a rectangular grid.
830
-  //   You specify the rectangle and the density of sample points.
831
-  //   This mode is preferred because there are more measurements.
832
-  //
833
-  // - "3-point" mode
834
-  //   Probe 3 arbitrary points on the bed (that aren't collinear)
835
-  //   You specify the XY coordinates of all 3 points.
836
-
837
-  // Enable this to sample the bed in a grid (least squares solution).
838
-  // Note: this feature generates 10KB extra code size.
839
-  #define AUTO_BED_LEVELING_GRID  // Deltas only support grid mode.
840
-
841
-  #if ENABLED(AUTO_BED_LEVELING_GRID)
842
-
843
-    // Set the rectangle in which to probe
844
-    #define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS-25)
845
-    #define LEFT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS)
846
-    #define RIGHT_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS
847
-    #define FRONT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS)
848
-    #define BACK_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS
849
-
850
-    #define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this.
851
-
852
-    // Non-linear bed leveling will be used.
853
-    // Compensate by interpolating between the nearest four Z probe values for each point.
854
-    // Useful for deltas where the print surface may appear like a bowl or dome shape.
855
-    // Works best with 5 or more points in each dimension.
856
-    #define ABL_GRID_POINTS_X 7
857
-    #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
858
-
859
-  #else  // !AUTO_BED_LEVELING_GRID
860
-
861
-    // Arbitrary points to probe.
862
-    // A simple cross-product is used to estimate the plane of the bed.
863
-    #define ABL_PROBE_PT_1_X 15
864
-    #define ABL_PROBE_PT_1_Y 180
865
-    #define ABL_PROBE_PT_2_X 15
866
-    #define ABL_PROBE_PT_2_Y 20
867
-    #define ABL_PROBE_PT_3_X 170
868
-    #define ABL_PROBE_PT_3_Y 20
869
-
870
-  #endif // !AUTO_BED_LEVELING_GRID
871
-
872
-  //#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
873
-                                                                             // Useful to retract a deployable Z probe.
874
-
875
-  // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing,
876
-  // it is highly recommended you also enable Z_SAFE_HOMING below!
877
-
878
-#endif // AUTO_BED_LEVELING_FEATURE
848
+#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
849
+
850
+  // Set the number of grid points per dimension.
851
+  // Works best with 5 or more points in each dimension.
852
+  #define ABL_GRID_POINTS_X 7
853
+  #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
854
+
855
+  // Set the boundaries for probing (where the probe can reach).
856
+  #define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS-25)
857
+  #define LEFT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS)
858
+  #define RIGHT_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS
859
+  #define FRONT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS)
860
+  #define BACK_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS
861
+
862
+  // The Z probe minimum outer margin (to validate G29 parameters).
863
+  #define MIN_PROBE_EDGE 10
864
+
865
+#elif ENABLED(AUTO_BED_LEVELING_3POINT)
866
+
867
+  // 3 arbitrary points to probe.
868
+  // A simple cross-product is used to estimate the plane of the bed.
869
+  #define ABL_PROBE_PT_1_X 15
870
+  #define ABL_PROBE_PT_1_Y 180
871
+  #define ABL_PROBE_PT_2_X 15
872
+  #define ABL_PROBE_PT_2_Y 20
873
+  #define ABL_PROBE_PT_3_X 170
874
+  #define ABL_PROBE_PT_3_Y 20
875
+
876
+#endif
877
+
878
+/**
879
+ * Commands to execute at the end of G29 probing.
880
+ * Useful to retract or move the Z probe out of the way.
881
+ */
882
+//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"
879 883
 
880 884
 
881 885
 // @section homing

+ 66
- 62
Marlin/example_configurations/delta/kossel_xl/Configuration.h View File

@@ -548,7 +548,7 @@
548 548
 // Probes are sensors/switches that are activated / deactivated before/after use.
549 549
 //
550 550
 // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
551
-// You must activate one of these to use AUTO_BED_LEVELING_FEATURE below.
551
+// You must activate one of these to use Auto Bed Leveling below.
552 552
 //
553 553
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
554 554
 //
@@ -811,73 +811,77 @@
811 811
 #endif  // MESH_BED_LEVELING
812 812
 
813 813
 //===========================================================================
814
-//============================ Bed Auto Leveling ============================
814
+//============================ Auto Bed Leveling ============================
815 815
 //===========================================================================
816
-
817 816
 // @section bedlevel
818 817
 
819
-#define AUTO_BED_LEVELING_FEATURE // Delete the comment to enable (remove // at the start of the line)
818
+/**
819
+ * Select one form of Auto Bed Leveling below.
820
+ *
821
+ *  If you're also using the Probe for Z Homing, it's
822
+ *  highly recommended to enable Z_SAFE_HOMING also!
823
+ *
824
+ * - 3POINT
825
+ *   Probe 3 arbitrary points on the bed (that aren't collinear)
826
+ *   You specify the XY coordinates of all 3 points.
827
+ *   The result is a single tilted plane. Best for a flat bed.
828
+ *
829
+ * - LINEAR
830
+ *   Probe several points in a grid.
831
+ *   You specify the rectangle and the density of sample points.
832
+ *   The result is a single tilted plane. Best for a flat bed.
833
+ *
834
+ * - BILINEAR
835
+ *   Probe several points in a grid.
836
+ *   You specify the rectangle and the density of sample points.
837
+ *   The result is a mesh, best for large or uneven beds.
838
+ */
839
+//#define AUTO_BED_LEVELING_3POINT
840
+//#define AUTO_BED_LEVELING_LINEAR
841
+#define AUTO_BED_LEVELING_BILINEAR
820 842
 
821
-// Enable this feature to get detailed logging of G28, G29, M48, etc.
822
-// Logging is off by default. Enable this logging feature with 'M111 S32'.
823
-// NOTE: Requires a huge amount of PROGMEM.
843
+/**
844
+ * Enable detailed logging of G28, G29, M48, etc.
845
+ * Turn on with the command 'M111 S32'.
846
+ * NOTE: Requires a lot of PROGMEM!
847
+ */
824 848
 //#define DEBUG_LEVELING_FEATURE
825 849
 
826
-#if ENABLED(AUTO_BED_LEVELING_FEATURE)
827
-
828
-  // There are 2 different ways to specify probing locations:
829
-  //
830
-  // - "grid" mode
831
-  //   Probe several points in a rectangular grid.
832
-  //   You specify the rectangle and the density of sample points.
833
-  //   This mode is preferred because there are more measurements.
834
-  //
835
-  // - "3-point" mode
836
-  //   Probe 3 arbitrary points on the bed (that aren't collinear)
837
-  //   You specify the XY coordinates of all 3 points.
838
-
839
-  // Enable this to sample the bed in a grid (least squares solution).
840
-  // Note: this feature generates 10KB extra code size.
841
-  #define AUTO_BED_LEVELING_GRID  // Deltas only support grid mode.
842
-
843
-  #if ENABLED(AUTO_BED_LEVELING_GRID)
844
-
845
-    // Set the rectangle in which to probe
846
-    #define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10)
847
-    #define LEFT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS)
848
-    #define RIGHT_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS
849
-    #define FRONT_PROBE_BED_POSITION - (DELTA_PROBEABLE_RADIUS - 20)
850
-    #define BACK_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS - 40
851
-
852
-    #define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this.
853
-
854
-    // Non-linear bed leveling will be used.
855
-    // Compensate by interpolating between the nearest four Z probe values for each point.
856
-    // Useful for deltas where the print surface may appear like a bowl or dome shape.
857
-    // Works best with 5 or more points in each dimension.
858
-    #define ABL_GRID_POINTS_X 5
859
-    #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
860
-
861
-  #else  // !AUTO_BED_LEVELING_GRID
862
-
863
-    // Arbitrary points to probe.
864
-    // A simple cross-product is used to estimate the plane of the bed.
865
-    #define ABL_PROBE_PT_1_X 15
866
-    #define ABL_PROBE_PT_1_Y 180
867
-    #define ABL_PROBE_PT_2_X 15
868
-    #define ABL_PROBE_PT_2_Y 20
869
-    #define ABL_PROBE_PT_3_X 170
870
-    #define ABL_PROBE_PT_3_Y 20
871
-
872
-  #endif // !AUTO_BED_LEVELING_GRID
873
-
874
-  //#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
875
-                                                                             // Useful to retract a deployable Z probe.
876
-
877
-  // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing,
878
-  // it is highly recommended you also enable Z_SAFE_HOMING below!
879
-
880
-#endif // AUTO_BED_LEVELING_FEATURE
850
+#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
851
+
852
+  // Set the number of grid points per dimension.
853
+  // Works best with 5 or more points in each dimension.
854
+  #define ABL_GRID_POINTS_X 5
855
+  #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
856
+
857
+  // Set the boundaries for probing (where the probe can reach).
858
+  #define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10)
859
+  #define LEFT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS)
860
+  #define RIGHT_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS
861
+  #define FRONT_PROBE_BED_POSITION - (DELTA_PROBEABLE_RADIUS - 20)
862
+  #define BACK_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS - 40
863
+
864
+  // The Z probe minimum outer margin (to validate G29 parameters).
865
+  #define MIN_PROBE_EDGE 10
866
+
867
+#elif ENABLED(AUTO_BED_LEVELING_3POINT)
868
+
869
+  // 3 arbitrary points to probe.
870
+  // A simple cross-product is used to estimate the plane of the bed.
871
+  #define ABL_PROBE_PT_1_X 15
872
+  #define ABL_PROBE_PT_1_Y 180
873
+  #define ABL_PROBE_PT_2_X 15
874
+  #define ABL_PROBE_PT_2_Y 20
875
+  #define ABL_PROBE_PT_3_X 170
876
+  #define ABL_PROBE_PT_3_Y 20
877
+
878
+#endif
879
+
880
+/**
881
+ * Commands to execute at the end of G29 probing.
882
+ * Useful to retract or move the Z probe out of the way.
883
+ */
884
+//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"
881 885
 
882 886
 
883 887
 // @section homing

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

@@ -502,7 +502,7 @@
502 502
 // Probes are sensors/switches that are activated / deactivated before/after use.
503 503
 //
504 504
 // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
505
-// You must activate one of these to use AUTO_BED_LEVELING_FEATURE below.
505
+// You must activate one of these to use Auto Bed Leveling below.
506 506
 //
507 507
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
508 508
 //
@@ -724,69 +724,75 @@
724 724
 #endif  // MESH_BED_LEVELING
725 725
 
726 726
 //===========================================================================
727
-//============================ Bed Auto Leveling ============================
727
+//============================ Auto Bed Leveling ============================
728 728
 //===========================================================================
729
-
730 729
 // @section bedlevel
731 730
 
732
-//#define AUTO_BED_LEVELING_FEATURE // Delete the comment to enable (remove // at the start of the line)
731
+/**
732
+ * Select one form of Auto Bed Leveling below.
733
+ *
734
+ *  If you're also using the Probe for Z Homing, it's
735
+ *  highly recommended to enable Z_SAFE_HOMING also!
736
+ *
737
+ * - 3POINT
738
+ *   Probe 3 arbitrary points on the bed (that aren't collinear)
739
+ *   You specify the XY coordinates of all 3 points.
740
+ *   The result is a single tilted plane. Best for a flat bed.
741
+ *
742
+ * - LINEAR
743
+ *   Probe several points in a grid.
744
+ *   You specify the rectangle and the density of sample points.
745
+ *   The result is a single tilted plane. Best for a flat bed.
746
+ *
747
+ * - BILINEAR
748
+ *   Probe several points in a grid.
749
+ *   You specify the rectangle and the density of sample points.
750
+ *   The result is a mesh, best for large or uneven beds.
751
+ */
752
+//#define AUTO_BED_LEVELING_3POINT
753
+//#define AUTO_BED_LEVELING_LINEAR
754
+//#define AUTO_BED_LEVELING_BILINEAR
733 755
 
734
-// Enable this feature to get detailed logging of G28, G29, M48, etc.
735
-// Logging is off by default. Enable this logging feature with 'M111 S32'.
736
-// NOTE: Requires a huge amount of PROGMEM.
756
+/**
757
+ * Enable detailed logging of G28, G29, M48, etc.
758
+ * Turn on with the command 'M111 S32'.
759
+ * NOTE: Requires a lot of PROGMEM!
760
+ */
737 761
 //#define DEBUG_LEVELING_FEATURE
738 762
 
739
-#if ENABLED(AUTO_BED_LEVELING_FEATURE)
763
+#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
740 764
 
741
-  // There are 2 different ways to specify probing locations:
742
-  //
743
-  // - "grid" mode
744
-  //   Probe several points in a rectangular grid.
745
-  //   You specify the rectangle and the density of sample points.
746
-  //   This mode is preferred because there are more measurements.
747
-  //
748
-  // - "3-point" mode
749
-  //   Probe 3 arbitrary points on the bed (that aren't collinear)
750
-  //   You specify the XY coordinates of all 3 points.
765
+  // Set the number of grid points per dimension.
766
+  #define ABL_GRID_POINTS_X 3
767
+  #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
751 768
 
752
-  // Enable this to sample the bed in a grid (least squares solution).
753
-  // Note: this feature generates 10KB extra code size.
754
-  #define AUTO_BED_LEVELING_GRID
769
+  // Set the boundaries for probing (where the probe can reach).
770
+  #define LEFT_PROBE_BED_POSITION 15
771
+  #define RIGHT_PROBE_BED_POSITION 170
772
+  #define FRONT_PROBE_BED_POSITION 20
773
+  #define BACK_PROBE_BED_POSITION 170
755 774
 
756
-  #if ENABLED(AUTO_BED_LEVELING_GRID)
775
+  // The Z probe minimum outer margin (to validate G29 parameters).
776
+  #define MIN_PROBE_EDGE 10
757 777
 
758
-    #define LEFT_PROBE_BED_POSITION 15
759
-    #define RIGHT_PROBE_BED_POSITION 170
760
-    #define FRONT_PROBE_BED_POSITION 20
761
-    #define BACK_PROBE_BED_POSITION 170
778
+#elif ENABLED(AUTO_BED_LEVELING_3POINT)
762 779
 
763
-    #define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this.
780
+  // 3 arbitrary points to probe.
781
+  // A simple cross-product is used to estimate the plane of the bed.
782
+  #define ABL_PROBE_PT_1_X 15
783
+  #define ABL_PROBE_PT_1_Y 180
784
+  #define ABL_PROBE_PT_2_X 15
785
+  #define ABL_PROBE_PT_2_Y 20
786
+  #define ABL_PROBE_PT_3_X 170
787
+  #define ABL_PROBE_PT_3_Y 20
764 788
 
765
-    // Set the number of grid points per dimension.
766
-    // You probably don't need more than 3 (squared=9).
767
-    #define ABL_GRID_POINTS_X 3
768
-    #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
769
-
770
-  #else  // !AUTO_BED_LEVELING_GRID
771
-
772
-    // Arbitrary points to probe.
773
-    // A simple cross-product is used to estimate the plane of the bed.
774
-    #define ABL_PROBE_PT_1_X 15
775
-    #define ABL_PROBE_PT_1_Y 180
776
-    #define ABL_PROBE_PT_2_X 15
777
-    #define ABL_PROBE_PT_2_Y 20
778
-    #define ABL_PROBE_PT_3_X 170
779
-    #define ABL_PROBE_PT_3_Y 20
780
-
781
-  #endif // !AUTO_BED_LEVELING_GRID
782
-
783
-  //#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
784
-                                                                             // Useful to retract a deployable Z probe.
785
-
786
-  // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing,
787
-  // it is highly recommended you also enable Z_SAFE_HOMING below!
789
+#endif
788 790
 
789
-#endif // AUTO_BED_LEVELING_FEATURE
791
+/**
792
+ * Commands to execute at the end of G29 probing.
793
+ * Useful to retract or move the Z probe out of the way.
794
+ */
795
+//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"
790 796
 
791 797
 
792 798
 // @section homing

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

@@ -495,7 +495,7 @@
495 495
 // Probes are sensors/switches that are activated / deactivated before/after use.
496 496
 //
497 497
 // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
498
-// You must activate one of these to use AUTO_BED_LEVELING_FEATURE below.
498
+// You must activate one of these to use Auto Bed Leveling below.
499 499
 //
500 500
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
501 501
 //
@@ -717,69 +717,75 @@
717 717
 #endif  // MESH_BED_LEVELING
718 718
 
719 719
 //===========================================================================
720
-//============================ Bed Auto Leveling ============================
720
+//============================ Auto Bed Leveling ============================
721 721
 //===========================================================================
722
-
723 722
 // @section bedlevel
724 723
 
725
-//#define AUTO_BED_LEVELING_FEATURE // Delete the comment to enable (remove // at the start of the line)
724
+/**
725
+ * Select one form of Auto Bed Leveling below.
726
+ *
727
+ *  If you're also using the Probe for Z Homing, it's
728
+ *  highly recommended to enable Z_SAFE_HOMING also!
729
+ *
730
+ * - 3POINT
731
+ *   Probe 3 arbitrary points on the bed (that aren't collinear)
732
+ *   You specify the XY coordinates of all 3 points.
733
+ *   The result is a single tilted plane. Best for a flat bed.
734
+ *
735
+ * - LINEAR
736
+ *   Probe several points in a grid.
737
+ *   You specify the rectangle and the density of sample points.
738
+ *   The result is a single tilted plane. Best for a flat bed.
739
+ *
740
+ * - BILINEAR
741
+ *   Probe several points in a grid.
742
+ *   You specify the rectangle and the density of sample points.
743
+ *   The result is a mesh, best for large or uneven beds.
744
+ */
745
+//#define AUTO_BED_LEVELING_3POINT
746
+//#define AUTO_BED_LEVELING_LINEAR
747
+//#define AUTO_BED_LEVELING_BILINEAR
726 748
 
727
-// Enable this feature to get detailed logging of G28, G29, M48, etc.
728
-// Logging is off by default. Enable this logging feature with 'M111 S32'.
729
-// NOTE: Requires a huge amount of PROGMEM.
749
+/**
750
+ * Enable detailed logging of G28, G29, M48, etc.
751
+ * Turn on with the command 'M111 S32'.
752
+ * NOTE: Requires a lot of PROGMEM!
753
+ */
730 754
 //#define DEBUG_LEVELING_FEATURE
731 755
 
732
-#if ENABLED(AUTO_BED_LEVELING_FEATURE)
756
+#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
733 757
 
734
-  // There are 2 different ways to specify probing locations:
735
-  //
736
-  // - "grid" mode
737
-  //   Probe several points in a rectangular grid.
738
-  //   You specify the rectangle and the density of sample points.
739
-  //   This mode is preferred because there are more measurements.
740
-  //
741
-  // - "3-point" mode
742
-  //   Probe 3 arbitrary points on the bed (that aren't collinear)
743
-  //   You specify the XY coordinates of all 3 points.
758
+  // Set the number of grid points per dimension.
759
+  #define ABL_GRID_POINTS_X 3
760
+  #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
744 761
 
745
-  // Enable this to sample the bed in a grid (least squares solution).
746
-  // Note: this feature generates 10KB extra code size.
747
-  #define AUTO_BED_LEVELING_GRID
762
+  // Set the boundaries for probing (where the probe can reach).
763
+  #define LEFT_PROBE_BED_POSITION 15
764
+  #define RIGHT_PROBE_BED_POSITION 170
765
+  #define FRONT_PROBE_BED_POSITION 20
766
+  #define BACK_PROBE_BED_POSITION 170
748 767
 
749
-  #if ENABLED(AUTO_BED_LEVELING_GRID)
768
+  // The Z probe minimum outer margin (to validate G29 parameters).
769
+  #define MIN_PROBE_EDGE 10
750 770
 
751
-    #define LEFT_PROBE_BED_POSITION 15
752
-    #define RIGHT_PROBE_BED_POSITION 170
753
-    #define FRONT_PROBE_BED_POSITION 20
754
-    #define BACK_PROBE_BED_POSITION 170
771
+#elif ENABLED(AUTO_BED_LEVELING_3POINT)
755 772
 
756
-    #define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this.
773
+  // 3 arbitrary points to probe.
774
+  // A simple cross-product is used to estimate the plane of the bed.
775
+  #define ABL_PROBE_PT_1_X 15
776
+  #define ABL_PROBE_PT_1_Y 180
777
+  #define ABL_PROBE_PT_2_X 15
778
+  #define ABL_PROBE_PT_2_Y 20
779
+  #define ABL_PROBE_PT_3_X 170
780
+  #define ABL_PROBE_PT_3_Y 20
757 781
 
758
-    // Set the number of grid points per dimension.
759
-    // You probably don't need more than 3 (squared=9).
760
-    #define ABL_GRID_POINTS_X 3
761
-    #define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
762
-
763
-  #else  // !AUTO_BED_LEVELING_GRID
764
-
765
-    // Arbitrary points to probe.
766
-    // A simple cross-product is used to estimate the plane of the bed.
767
-    #define ABL_PROBE_PT_1_X 15
768
-    #define ABL_PROBE_PT_1_Y 180
769
-    #define ABL_PROBE_PT_2_X 15
770
-    #define ABL_PROBE_PT_2_Y 20
771
-    #define ABL_PROBE_PT_3_X 170
772
-    #define ABL_PROBE_PT_3_Y 20
773
-
774
-  #endif // !AUTO_BED_LEVELING_GRID
775
-
776
-  //#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
777
-                                                                             // Useful to retract a deployable Z probe.
778
-
779
-  // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing,
780
-  // it is highly recommended you also enable Z_SAFE_HOMING below!
782
+#endif
781 783
 
782
-#endif // AUTO_BED_LEVELING_FEATURE
784
+/**
785
+ * Commands to execute at the end of G29 probing.
786
+ * Useful to retract or move the Z probe out of the way.
787
+ */
788
+//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"
783 789
 
784 790
 
785 791
 // @section homing

+ 12
- 12
Marlin/planner.cpp View File

@@ -98,11 +98,11 @@ float Planner::min_feedrate_mm_s,
98 98
       Planner::max_e_jerk,
99 99
       Planner::min_travel_feedrate_mm_s;
100 100
 
101
-#if ENABLED(AUTO_BED_LEVELING_FEATURE)
101
+#if HAS_ABL
102 102
   bool Planner::abl_enabled = false; // Flag that auto bed leveling is enabled
103 103
 #endif
104 104
 
105
-#if ENABLED(AUTO_BED_LEVELING_LINEAR)
105
+#if ABL_PLANAR
106 106
   matrix_3x3 Planner::bed_level_matrix; // Transform to compensate for bed level
107 107
 #endif
108 108
 
@@ -142,7 +142,7 @@ void Planner::init() {
142 142
   memset(position, 0, sizeof(position));
143 143
   memset(previous_speed, 0, sizeof(previous_speed));
144 144
   previous_nominal_speed = 0.0;
145
-  #if ENABLED(AUTO_BED_LEVELING_LINEAR)
145
+  #if ABL_PLANAR
146 146
     bed_level_matrix.set_to_identity();
147 147
   #endif
148 148
 }
@@ -529,7 +529,7 @@ void Planner::check_axes_activity() {
529 529
 
530 530
   void Planner::apply_leveling(float &lx, float &ly, float &lz) {
531 531
 
532
-    #if ENABLED(AUTO_BED_LEVELING_FEATURE)
532
+    #if HAS_ABL
533 533
       if (!abl_enabled) return;
534 534
     #endif
535 535
 
@@ -538,7 +538,7 @@ void Planner::check_axes_activity() {
538 538
       if (mbl.active())
539 539
         lz += mbl.get_z(RAW_X_POSITION(lx), RAW_Y_POSITION(ly));
540 540
 
541
-    #elif ENABLED(AUTO_BED_LEVELING_LINEAR)
541
+    #elif ABL_PLANAR
542 542
 
543 543
       float dx = RAW_X_POSITION(lx) - (X_TILT_FULCRUM),
544 544
             dy = RAW_Y_POSITION(ly) - (Y_TILT_FULCRUM),
@@ -550,20 +550,20 @@ void Planner::check_axes_activity() {
550 550
       ly = LOGICAL_Y_POSITION(dy + Y_TILT_FULCRUM);
551 551
       lz = LOGICAL_Z_POSITION(dz);
552 552
 
553
-    #elif ENABLED(AUTO_BED_LEVELING_NONLINEAR)
553
+    #elif ENABLED(AUTO_BED_LEVELING_BILINEAR)
554 554
 
555 555
       float tmp[XYZ] = { lx, ly, 0 };
556 556
 
557 557
       #if ENABLED(DELTA)
558 558
 
559
-        float offset = nonlinear_z_offset(tmp);
559
+        float offset = bilinear_z_offset(tmp);
560 560
         lx += offset;
561 561
         ly += offset;
562 562
         lz += offset;
563 563
 
564 564
       #else
565 565
 
566
-        lz += nonlinear_z_offset(tmp);
566
+        lz += bilinear_z_offset(tmp);
567 567
 
568 568
       #endif
569 569
 
@@ -572,7 +572,7 @@ void Planner::check_axes_activity() {
572 572
 
573 573
   void Planner::unapply_leveling(float logical[XYZ]) {
574 574
 
575
-    #if ENABLED(AUTO_BED_LEVELING_FEATURE)
575
+    #if HAS_ABL
576 576
       if (!abl_enabled) return;
577 577
     #endif
578 578
 
@@ -581,7 +581,7 @@ void Planner::check_axes_activity() {
581 581
       if (mbl.active())
582 582
         logical[Z_AXIS] -= mbl.get_z(RAW_X_POSITION(logical[X_AXIS]), RAW_Y_POSITION(logical[Y_AXIS]));
583 583
 
584
-    #elif ENABLED(AUTO_BED_LEVELING_LINEAR)
584
+    #elif ABL_PLANAR
585 585
 
586 586
       matrix_3x3 inverse = matrix_3x3::transpose(bed_level_matrix);
587 587
 
@@ -595,9 +595,9 @@ void Planner::check_axes_activity() {
595 595
       logical[Y_AXIS] = LOGICAL_Y_POSITION(dy + Y_TILT_FULCRUM);
596 596
       logical[Z_AXIS] = LOGICAL_Z_POSITION(dz);
597 597
 
598
-    #elif ENABLED(AUTO_BED_LEVELING_NONLINEAR)
598
+    #elif ENABLED(AUTO_BED_LEVELING_BILINEAR)
599 599
 
600
-      logical[Z_AXIS] -= nonlinear_z_offset(logical);
600
+      logical[Z_AXIS] -= bilinear_z_offset(logical);
601 601
 
602 602
     #endif
603 603
   }

+ 3
- 3
Marlin/planner.h View File

@@ -35,7 +35,7 @@
35 35
 #include "types.h"
36 36
 #include "MarlinConfig.h"
37 37
 
38
-#if ENABLED(AUTO_BED_LEVELING_FEATURE)
38
+#if HAS_ABL
39 39
   #include "vector_3.h"
40 40
 #endif
41 41
 
@@ -136,7 +136,7 @@ class Planner {
136 136
     static float max_e_jerk;
137 137
     static float min_travel_feedrate_mm_s;
138 138
 
139
-    #if ENABLED(AUTO_BED_LEVELING_FEATURE)
139
+    #if HAS_ABL
140 140
       static bool abl_enabled;            // Flag that bed leveling is enabled
141 141
       static matrix_3x3 bed_level_matrix; // Transform to compensate for bed level
142 142
     #endif
@@ -202,7 +202,7 @@ class Planner {
202 202
 
203 203
     static bool is_full() { return (block_buffer_tail == BLOCK_MOD(block_buffer_head + 1)); }
204 204
 
205
-    #if ENABLED(AUTO_BED_LEVELING_FEATURE) || ENABLED(MESH_BED_LEVELING)
205
+    #if HAS_ABL || ENABLED(MESH_BED_LEVELING)
206 206
       #define ARG_X float lx
207 207
       #define ARG_Y float ly
208 208
       #define ARG_Z float lz

+ 1
- 1
Marlin/qr_solve.cpp View File

@@ -22,7 +22,7 @@
22 22
 
23 23
 #include "qr_solve.h"
24 24
 
25
-#if ENABLED(AUTO_BED_LEVELING_LINEAR_GRID)
25
+#if ENABLED(AUTO_BED_LEVELING_LINEAR)
26 26
 
27 27
 #include <stdlib.h>
28 28
 #include <math.h>

+ 1
- 1
Marlin/qr_solve.h View File

@@ -22,7 +22,7 @@
22 22
 
23 23
 #include "MarlinConfig.h"
24 24
 
25
-#if ENABLED(AUTO_BED_LEVELING_GRID)
25
+#if ENABLED(AUTO_BED_LEVELING_LINEAR)
26 26
 
27 27
 void daxpy(int n, float da, float dx[], int incx, float dy[], int incy);
28 28
 float ddot(int n, float dx[], int incx, float dy[], int incy);

+ 1
- 1
Marlin/ultralcd.cpp View File

@@ -1212,7 +1212,7 @@ void kill_screen(const char* lcd_msg) {
1212 1212
     //
1213 1213
     // Level Bed
1214 1214
     //
1215
-    #if ENABLED(AUTO_BED_LEVELING_FEATURE)
1215
+    #if HAS_ABL
1216 1216
       MENU_ITEM(gcode, MSG_LEVEL_BED,
1217 1217
         axis_homed[X_AXIS] && axis_homed[Y_AXIS] ? PSTR("G29") : PSTR("G28\nG29")
1218 1218
       );

+ 2
- 2
Marlin/vector_3.cpp View File

@@ -41,7 +41,7 @@
41 41
 #include <math.h>
42 42
 #include "Marlin.h"
43 43
 
44
-#if ENABLED(AUTO_BED_LEVELING_FEATURE)
44
+#if HAS_ABL
45 45
 #include "vector_3.h"
46 46
 
47 47
 vector_3::vector_3() : x(0), y(0), z(0) { }
@@ -156,5 +156,5 @@ void matrix_3x3::debug(const char title[]) {
156 156
   }
157 157
 }
158 158
 
159
-#endif // AUTO_BED_LEVELING_FEATURE
159
+#endif // HAS_ABL
160 160
 

+ 2
- 2
Marlin/vector_3.h View File

@@ -41,7 +41,7 @@
41 41
 #ifndef VECTOR_3_H
42 42
 #define VECTOR_3_H
43 43
 
44
-#if ENABLED(AUTO_BED_LEVELING_FEATURE)
44
+#if HAS_ABL
45 45
 class matrix_3x3;
46 46
 
47 47
 struct vector_3 {
@@ -77,6 +77,6 @@ struct matrix_3x3 {
77 77
 
78 78
 
79 79
 void apply_rotation_xyz(matrix_3x3 rotationMatrix, float& x, float& y, float& z);
80
-#endif // AUTO_BED_LEVELING_FEATURE
80
+#endif // HAS_ABL
81 81
 
82 82
 #endif // VECTOR_3_H

Loading…
Cancel
Save