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
   - opt_enable FIX_MOUNTED_PROBE Z_SAFE_HOMING
106
   - opt_enable FIX_MOUNTED_PROBE Z_SAFE_HOMING
107
   - build_marlin
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
   - opt_set ABL_GRID_POINTS_X 16
112
   - opt_set ABL_GRID_POINTS_X 16
113
   - opt_set ABL_GRID_POINTS_Y 16
113
   - opt_set ABL_GRID_POINTS_Y 16
114
   - build_marlin
114
   - build_marlin
119
   - opt_enable Z_PROBE_SLED
119
   - opt_enable Z_PROBE_SLED
120
   - build_marlin
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
   - build_marlin
125
   - build_marlin
126
   #
126
   #
127
   # Test a Servo Probe
127
   # Test a Servo Probe
130
   - opt_enable NUM_SERVOS Z_ENDSTOP_SERVO_NR Z_SERVO_ANGLES DEACTIVATE_SERVOS_AFTER_MOVE
130
   - opt_enable NUM_SERVOS Z_ENDSTOP_SERVO_NR Z_SERVO_ANGLES DEACTIVATE_SERVOS_AFTER_MOVE
131
   - build_marlin
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
   - build_marlin
136
   - build_marlin
137
   #
137
   #
138
   # Test MESH_BED_LEVELING feature, with LCD
138
   # Test MESH_BED_LEVELING feature, with LCD
360
   #
360
   #
361
   - use_example_configs delta/generic
361
   - use_example_configs delta/generic
362
   - opt_disable DISABLE_MIN_ENDSTOPS
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
   - build_marlin
364
   - build_marlin
365
   #
365
   #
366
   # Delta Config (Mini Kossel)
366
   # Delta Config (Mini Kossel)
376
   # SCARA Config
376
   # SCARA Config
377
   #
377
   #
378
   - use_example_configs SCARA
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
   - build_marlin
380
   - build_marlin
381
   #
381
   #
382
   # tvrrug Config need to check board type for sanguino atmega644p
382
   # tvrrug Config need to check board type for sanguino atmega644p

+ 6
- 19
Marlin/Conditionals_post.h View File

117
   /**
117
   /**
118
    * Auto Bed Leveling and Z Probe Repeatability Test
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
   #define HOMING_Z_WITH_PROBE (HAS_BED_PROBE && Z_HOME_DIR < 0 && ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN))
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
   #endif
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
    * Buzzer/Speaker
655
    * Buzzer/Speaker

+ 119
- 46
Marlin/Configuration.h View File

516
 // Probes are sensors/switches that are activated / deactivated before/after use.
516
 // Probes are sensors/switches that are activated / deactivated before/after use.
517
 //
517
 //
518
 // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
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
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
521
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
522
 //
522
 //
738
 #endif  // MESH_BED_LEVELING
738
 #endif  // MESH_BED_LEVELING
739
 
739
 
740
 //===========================================================================
740
 //===========================================================================
741
-//============================ Bed Auto Leveling ============================
741
+//============================ Auto Bed Leveling ============================
742
 //===========================================================================
742
 //===========================================================================
743
-
744
 // @section bedlevel
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
 //#define DEBUG_LEVELING_FEATURE
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
 // @section homing
879
 // @section homing

+ 3
- 3
Marlin/Marlin.h View File

319
   void forward_kinematics_SCARA(const float &a, const float &b);
319
   void forward_kinematics_SCARA(const float &a, const float &b);
320
 #endif
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
 #endif
325
 #endif
326
 
326
 
327
 #if ENABLED(Z_DUAL_ENDSTOPS)
327
 #if ENABLED(Z_DUAL_ENDSTOPS)

+ 48
- 49
Marlin/Marlin_main.cpp View File

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

+ 53
- 20
Marlin/SanityCheck.h View File

69
   #error "CUSTOM_MENDEL_NAME is now CUSTOM_MACHINE_NAME. Please update your configuration."
69
   #error "CUSTOM_MENDEL_NAME is now CUSTOM_MACHINE_NAME. Please update your configuration."
70
 #elif defined(HAS_AUTOMATIC_VERSIONING)
70
 #elif defined(HAS_AUTOMATIC_VERSIONING)
71
   #error "HAS_AUTOMATIC_VERSIONING is now USE_AUTOMATIC_VERSIONING. Please update your configuration."
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
 #elif defined(SDSLOW)
72
 #elif defined(SDSLOW)
75
   #error "SDSLOW deprecated. Set SPI_SPEED to SPI_HALF_SPEED instead."
73
   #error "SDSLOW deprecated. Set SPI_SPEED to SPI_HALF_SPEED instead."
76
 #elif defined(SDEXTRASLOW)
74
 #elif defined(SDEXTRASLOW)
137
   #error "PREVENT_DANGEROUS_EXTRUDE is now PREVENT_COLD_EXTRUSION. Please update your configuration."
135
   #error "PREVENT_DANGEROUS_EXTRUDE is now PREVENT_COLD_EXTRUSION. Please update your configuration."
138
 #elif defined(SCARA)
136
 #elif defined(SCARA)
139
   #error "SCARA is now MORGAN_SCARA. Please update your configuration."
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
 #elif defined(BEEPER)
144
 #elif defined(BEEPER)
143
   #error "BEEPER is now BEEPER_PIN. Please update your pins definitions."
145
   #error "BEEPER is now BEEPER_PIN. Please update your pins definitions."
144
 #elif defined(SDCARDDETECT)
146
 #elif defined(SDCARDDETECT)
205
   #if DISABLED(USE_XMAX_PLUG) && DISABLED(USE_YMAX_PLUG) && DISABLED(USE_ZMAX_PLUG)
207
   #if DISABLED(USE_XMAX_PLUG) && DISABLED(USE_YMAX_PLUG) && DISABLED(USE_ZMAX_PLUG)
206
     #error "You probably want to use Max Endstops for DELTA!"
208
     #error "You probably want to use Max Endstops for DELTA!"
207
   #endif
209
   #endif
208
-  #if ENABLED(AUTO_BED_LEVELING_GRID)
210
+  #if ABL_GRID
209
     #if (ABL_GRID_POINTS_X & 1) == 0 || (ABL_GRID_POINTS_Y & 1) == 0
211
     #if (ABL_GRID_POINTS_X & 1) == 0 || (ABL_GRID_POINTS_Y & 1) == 0
210
       #error "DELTA requires ABL_GRID_POINTS_X and ABL_GRID_POINTS_Y to be odd numbers."
212
       #error "DELTA requires ABL_GRID_POINTS_X and ABL_GRID_POINTS_Y to be odd numbers."
211
     #elif ABL_GRID_POINTS_X < 3
213
     #elif ABL_GRID_POINTS_X < 3
340
 #endif
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
  * Mesh Bed Leveling
375
  * Mesh Bed Leveling
344
  */
376
  */
345
 #if ENABLED(MESH_BED_LEVELING)
377
 #if ENABLED(MESH_BED_LEVELING)
346
   #if ENABLED(DELTA)
378
   #if ENABLED(DELTA)
347
     #error "MESH_BED_LEVELING does not yet support DELTA printers."
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
   #elif MESH_NUM_X_POINTS > 9 || MESH_NUM_Y_POINTS > 9
380
   #elif MESH_NUM_X_POINTS > 9 || MESH_NUM_Y_POINTS > 9
351
     #error "MESH_NUM_X_POINTS and MESH_NUM_Y_POINTS must be less than 10."
381
     #error "MESH_NUM_X_POINTS and MESH_NUM_Y_POINTS must be less than 10."
352
   #endif
382
   #endif
353
 #elif ENABLED(MANUAL_BED_LEVELING)
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
 #endif
385
 #endif
356
 
386
 
357
 /**
387
 /**
358
  * Probes
388
  * Probes
359
  */
389
  */
360
-
361
 #if PROBE_SELECTED
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
   #define COUNT_PROBE_1 0
395
   #define COUNT_PROBE_1 0
367
   #if ENABLED(FIX_MOUNTED_PROBE)
396
   #if ENABLED(FIX_MOUNTED_PROBE)
448
   /**
477
   /**
449
    * Require some kind of probe for bed leveling and probe testing
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
   #elif ENABLED(Z_MIN_PROBE_REPEATABILITY_TEST)
482
   #elif ENABLED(Z_MIN_PROBE_REPEATABILITY_TEST)
454
     #error "Z_MIN_PROBE_REPEATABILITY_TEST requires a probe! Define a Z Servo, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or FIX_MOUNTED_PROBE."
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
   #endif
484
   #endif
485
 /**
514
 /**
486
  * Auto Bed Leveling
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
   #endif
528
   #endif
496
 
529
 
497
   /**
530
   /**
498
    * Check if Probe_Offset * Grid Points is greater than Probing Range
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
     #ifndef DELTA_PROBEABLE_RADIUS
534
     #ifndef DELTA_PROBEABLE_RADIUS
502
       // Be sure points are in the right order
535
       // Be sure points are in the right order
503
       #if LEFT_PROBE_BED_POSITION > RIGHT_PROBE_BED_POSITION
536
       #if LEFT_PROBE_BED_POSITION > RIGHT_PROBE_BED_POSITION
516
         #error "The given BACK_PROBE_BED_POSITION can't be reached by the Z probe."
549
         #error "The given BACK_PROBE_BED_POSITION can't be reached by the Z probe."
517
       #endif
550
       #endif
518
     #endif
551
     #endif
519
-  #else // !AUTO_BED_LEVELING_GRID
552
+  #else // !ABL_GRID
520
 
553
 
521
     // Check the triangulation points
554
     // Check the triangulation points
522
     #if ABL_PROBE_PT_1_X < MIN_PROBE_X || ABL_PROBE_PT_1_X > MAX_PROBE_X
555
     #if ABL_PROBE_PT_1_X < MIN_PROBE_X || ABL_PROBE_PT_1_X > MAX_PROBE_X
533
       #error "The given ABL_PROBE_PT_3_Y can't be reached by the Z probe."
566
       #error "The given ABL_PROBE_PT_3_Y can't be reached by the Z probe."
534
     #endif
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
  * Advance Extrusion
574
  * Advance Extrusion

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

499
 // Probes are sensors/switches that are activated / deactivated before/after use.
499
 // Probes are sensors/switches that are activated / deactivated before/after use.
500
 //
500
 //
501
 // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
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
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
504
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
505
 //
505
 //
721
 #endif  // MESH_BED_LEVELING
721
 #endif  // MESH_BED_LEVELING
722
 
722
 
723
 //===========================================================================
723
 //===========================================================================
724
-//============================ Bed Auto Leveling ============================
724
+//============================ Auto Bed Leveling ============================
725
 //===========================================================================
725
 //===========================================================================
726
-
727
 // @section bedlevel
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
 //#define DEBUG_LEVELING_FEATURE
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
 // @section homing
795
 // @section homing

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

482
 // Probes are sensors/switches that are activated / deactivated before/after use.
482
 // Probes are sensors/switches that are activated / deactivated before/after use.
483
 //
483
 //
484
 // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
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
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
487
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
488
 //
488
 //
704
 #endif  // MESH_BED_LEVELING
704
 #endif  // MESH_BED_LEVELING
705
 
705
 
706
 //===========================================================================
706
 //===========================================================================
707
-//============================ Bed Auto Leveling ============================
707
+//============================ Auto Bed Leveling ============================
708
 //===========================================================================
708
 //===========================================================================
709
-
710
 // @section bedlevel
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
 //#define DEBUG_LEVELING_FEATURE
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
 // @section homing
778
 // @section homing

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

480
 // Probes are sensors/switches that are activated / deactivated before/after use.
480
 // Probes are sensors/switches that are activated / deactivated before/after use.
481
 //
481
 //
482
 // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
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
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
485
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
486
 //
486
 //
702
 #endif  // MESH_BED_LEVELING
702
 #endif  // MESH_BED_LEVELING
703
 
703
 
704
 //===========================================================================
704
 //===========================================================================
705
-//============================ Bed Auto Leveling ============================
705
+//============================ Auto Bed Leveling ============================
706
 //===========================================================================
706
 //===========================================================================
707
-
708
 // @section bedlevel
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
 //#define DEBUG_LEVELING_FEATURE
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
 // @section homing
776
 // @section homing

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

491
 // Probes are sensors/switches that are activated / deactivated before/after use.
491
 // Probes are sensors/switches that are activated / deactivated before/after use.
492
 //
492
 //
493
 // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
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
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
496
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
497
 //
497
 //
713
 #endif  // MESH_BED_LEVELING
713
 #endif  // MESH_BED_LEVELING
714
 
714
 
715
 //===========================================================================
715
 //===========================================================================
716
-//============================ Bed Auto Leveling ============================
716
+//============================ Auto Bed Leveling ============================
717
 //===========================================================================
717
 //===========================================================================
718
-
719
 // @section bedlevel
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
 //#define DEBUG_LEVELING_FEATURE
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
 // @section homing
787
 // @section homing

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

493
 // Probes are sensors/switches that are activated / deactivated before/after use.
493
 // Probes are sensors/switches that are activated / deactivated before/after use.
494
 //
494
 //
495
 // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
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
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
498
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
499
 //
499
 //
715
 #endif  // MESH_BED_LEVELING
715
 #endif  // MESH_BED_LEVELING
716
 
716
 
717
 //===========================================================================
717
 //===========================================================================
718
-//============================ Bed Auto Leveling ============================
718
+//============================ Auto Bed Leveling ============================
719
 //===========================================================================
719
 //===========================================================================
720
-
721
 // @section bedlevel
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
 //#define DEBUG_LEVELING_FEATURE
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
 // @section homing
789
 // @section homing

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

516
 // Probes are sensors/switches that are activated / deactivated before/after use.
516
 // Probes are sensors/switches that are activated / deactivated before/after use.
517
 //
517
 //
518
 // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
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
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
521
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
522
 //
522
 //
738
 #endif  // MESH_BED_LEVELING
738
 #endif  // MESH_BED_LEVELING
739
 
739
 
740
 //===========================================================================
740
 //===========================================================================
741
-//============================ Bed Auto Leveling ============================
741
+//============================ Auto Bed Leveling ============================
742
 //===========================================================================
742
 //===========================================================================
743
-
744
 // @section bedlevel
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
 //#define DEBUG_LEVELING_FEATURE
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
 // @section homing
812
 // @section homing

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

499
 // Probes are sensors/switches that are activated / deactivated before/after use.
499
 // Probes are sensors/switches that are activated / deactivated before/after use.
500
 //
500
 //
501
 // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
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
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
504
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
505
 //
505
 //
721
 #endif  // MESH_BED_LEVELING
721
 #endif  // MESH_BED_LEVELING
722
 
722
 
723
 //===========================================================================
723
 //===========================================================================
724
-//============================ Bed Auto Leveling ============================
724
+//============================ Auto Bed Leveling ============================
725
 //===========================================================================
725
 //===========================================================================
726
-
727
 // @section bedlevel
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
 //#define DEBUG_LEVELING_FEATURE
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
 // @section homing
795
 // @section homing

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

499
 // Probes are sensors/switches that are activated / deactivated before/after use.
499
 // Probes are sensors/switches that are activated / deactivated before/after use.
500
 //
500
 //
501
 // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
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
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
504
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
505
 //
505
 //
721
 #endif  // MESH_BED_LEVELING
721
 #endif  // MESH_BED_LEVELING
722
 
722
 
723
 //===========================================================================
723
 //===========================================================================
724
-//============================ Bed Auto Leveling ============================
724
+//============================ Auto Bed Leveling ============================
725
 //===========================================================================
725
 //===========================================================================
726
-
727
 // @section bedlevel
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
 //#define DEBUG_LEVELING_FEATURE
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
 // @section homing
795
 // @section homing

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

499
 // Probes are sensors/switches that are activated / deactivated before/after use.
499
 // Probes are sensors/switches that are activated / deactivated before/after use.
500
 //
500
 //
501
 // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
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
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
504
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
505
 //
505
 //
721
 #endif  // MESH_BED_LEVELING
721
 #endif  // MESH_BED_LEVELING
722
 
722
 
723
 //===========================================================================
723
 //===========================================================================
724
-//============================ Bed Auto Leveling ============================
724
+//============================ Auto Bed Leveling ============================
725
 //===========================================================================
725
 //===========================================================================
726
-
727
 // @section bedlevel
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
 //#define DEBUG_LEVELING_FEATURE
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
 // @section homing
795
 // @section homing

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

497
 // Probes are sensors/switches that are activated / deactivated before/after use.
497
 // Probes are sensors/switches that are activated / deactivated before/after use.
498
 //
498
 //
499
 // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
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
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
502
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
503
 //
503
 //
719
 #endif  // MESH_BED_LEVELING
719
 #endif  // MESH_BED_LEVELING
720
 
720
 
721
 //===========================================================================
721
 //===========================================================================
722
-//============================ Bed Auto Leveling ============================
722
+//============================ Auto Bed Leveling ============================
723
 //===========================================================================
723
 //===========================================================================
724
-
725
 // @section bedlevel
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
 //#define DEBUG_LEVELING_FEATURE
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
 // @section homing
793
 // @section homing

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

514
 // Probes are sensors/switches that are activated / deactivated before/after use.
514
 // Probes are sensors/switches that are activated / deactivated before/after use.
515
 //
515
 //
516
 // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
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
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
519
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
520
 //
520
 //
736
 #endif  // MESH_BED_LEVELING
736
 #endif  // MESH_BED_LEVELING
737
 
737
 
738
 //===========================================================================
738
 //===========================================================================
739
-//============================ Bed Auto Leveling ============================
739
+//============================ Auto Bed Leveling ============================
740
 //===========================================================================
740
 //===========================================================================
741
-
742
 // @section bedlevel
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
 //#define DEBUG_LEVELING_FEATURE
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
 // @section homing
810
 // @section homing

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

520
 // Probes are sensors/switches that are activated / deactivated before/after use.
520
 // Probes are sensors/switches that are activated / deactivated before/after use.
521
 //
521
 //
522
 // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
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
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
525
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
526
 //
526
 //
742
 #endif  // MESH_BED_LEVELING
742
 #endif  // MESH_BED_LEVELING
743
 
743
 
744
 //===========================================================================
744
 //===========================================================================
745
-//============================ Bed Auto Leveling ============================
745
+//============================ Auto Bed Leveling ============================
746
 //===========================================================================
746
 //===========================================================================
747
-
748
 // @section bedlevel
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
 //#define DEBUG_LEVELING_FEATURE
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
 // @section homing
816
 // @section homing

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

491
 // Probes are sensors/switches that are activated / deactivated before/after use.
491
 // Probes are sensors/switches that are activated / deactivated before/after use.
492
 //
492
 //
493
 // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
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
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
496
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
497
 //
497
 //
713
 #endif  // MESH_BED_LEVELING
713
 #endif  // MESH_BED_LEVELING
714
 
714
 
715
 //===========================================================================
715
 //===========================================================================
716
-//============================ Bed Auto Leveling ============================
716
+//============================ Auto Bed Leveling ============================
717
 //===========================================================================
717
 //===========================================================================
718
-
719
 // @section bedlevel
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
 //#define DEBUG_LEVELING_FEATURE
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
 // @section homing
787
 // @section homing

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

499
 // Probes are sensors/switches that are activated / deactivated before/after use.
499
 // Probes are sensors/switches that are activated / deactivated before/after use.
500
 //
500
 //
501
 // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
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
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
504
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
505
 //
505
 //
721
 #endif  // MESH_BED_LEVELING
721
 #endif  // MESH_BED_LEVELING
722
 
722
 
723
 //===========================================================================
723
 //===========================================================================
724
-//============================ Bed Auto Leveling ============================
724
+//============================ Auto Bed Leveling ============================
725
 //===========================================================================
725
 //===========================================================================
726
-
727
 // @section bedlevel
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
 //#define DEBUG_LEVELING_FEATURE
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
 // @section homing
795
 // @section homing

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

542
 // Probes are sensors/switches that are activated / deactivated before/after use.
542
 // Probes are sensors/switches that are activated / deactivated before/after use.
543
 //
543
 //
544
 // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
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
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
547
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
548
 //
548
 //
811
 #endif  // MESH_BED_LEVELING
811
 #endif  // MESH_BED_LEVELING
812
 
812
 
813
 //===========================================================================
813
 //===========================================================================
814
-//============================ Bed Auto Leveling ============================
814
+//============================ Auto Bed Leveling ============================
815
 //===========================================================================
815
 //===========================================================================
816
-
817
 // @section bedlevel
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
 //#define DEBUG_LEVELING_FEATURE
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
 // @section homing
887
 // @section homing

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

542
 // Probes are sensors/switches that are activated / deactivated before/after use.
542
 // Probes are sensors/switches that are activated / deactivated before/after use.
543
 //
543
 //
544
 // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
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
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
547
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
548
 //
548
 //
805
 #endif  // MESH_BED_LEVELING
805
 #endif  // MESH_BED_LEVELING
806
 
806
 
807
 //===========================================================================
807
 //===========================================================================
808
-//============================ Bed Auto Leveling ============================
808
+//============================ Auto Bed Leveling ============================
809
 //===========================================================================
809
 //===========================================================================
810
-
811
 // @section bedlevel
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
 //#define DEBUG_LEVELING_FEATURE
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
 // @section homing
881
 // @section homing

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

542
 // Probes are sensors/switches that are activated / deactivated before/after use.
542
 // Probes are sensors/switches that are activated / deactivated before/after use.
543
 //
543
 //
544
 // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
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
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
547
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
548
 //
548
 //
808
 #endif  // MESH_BED_LEVELING
808
 #endif  // MESH_BED_LEVELING
809
 
809
 
810
 //===========================================================================
810
 //===========================================================================
811
-//============================ Bed Auto Leveling ============================
811
+//============================ Auto Bed Leveling ============================
812
 //===========================================================================
812
 //===========================================================================
813
-
814
 // @section bedlevel
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
 //#define DEBUG_LEVELING_FEATURE
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
 // @section homing
884
 // @section homing

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

538
 // Probes are sensors/switches that are activated / deactivated before/after use.
538
 // Probes are sensors/switches that are activated / deactivated before/after use.
539
 //
539
 //
540
 // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
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
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
543
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
544
 //
544
 //
809
 #endif  // MESH_BED_LEVELING
809
 #endif  // MESH_BED_LEVELING
810
 
810
 
811
 //===========================================================================
811
 //===========================================================================
812
-//============================ Bed Auto Leveling ============================
812
+//============================ Auto Bed Leveling ============================
813
 //===========================================================================
813
 //===========================================================================
814
-
815
 // @section bedlevel
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
 //#define DEBUG_LEVELING_FEATURE
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
 // @section homing
885
 // @section homing

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

548
 // Probes are sensors/switches that are activated / deactivated before/after use.
548
 // Probes are sensors/switches that are activated / deactivated before/after use.
549
 //
549
 //
550
 // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
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
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
553
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
554
 //
554
 //
811
 #endif  // MESH_BED_LEVELING
811
 #endif  // MESH_BED_LEVELING
812
 
812
 
813
 //===========================================================================
813
 //===========================================================================
814
-//============================ Bed Auto Leveling ============================
814
+//============================ Auto Bed Leveling ============================
815
 //===========================================================================
815
 //===========================================================================
816
-
817
 // @section bedlevel
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
 //#define DEBUG_LEVELING_FEATURE
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
 // @section homing
887
 // @section homing

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

502
 // Probes are sensors/switches that are activated / deactivated before/after use.
502
 // Probes are sensors/switches that are activated / deactivated before/after use.
503
 //
503
 //
504
 // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
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
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
507
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
508
 //
508
 //
724
 #endif  // MESH_BED_LEVELING
724
 #endif  // MESH_BED_LEVELING
725
 
725
 
726
 //===========================================================================
726
 //===========================================================================
727
-//============================ Bed Auto Leveling ============================
727
+//============================ Auto Bed Leveling ============================
728
 //===========================================================================
728
 //===========================================================================
729
-
730
 // @section bedlevel
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
 //#define DEBUG_LEVELING_FEATURE
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
 // @section homing
798
 // @section homing

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

495
 // Probes are sensors/switches that are activated / deactivated before/after use.
495
 // Probes are sensors/switches that are activated / deactivated before/after use.
496
 //
496
 //
497
 // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
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
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
500
 // Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
501
 //
501
 //
717
 #endif  // MESH_BED_LEVELING
717
 #endif  // MESH_BED_LEVELING
718
 
718
 
719
 //===========================================================================
719
 //===========================================================================
720
-//============================ Bed Auto Leveling ============================
720
+//============================ Auto Bed Leveling ============================
721
 //===========================================================================
721
 //===========================================================================
722
-
723
 // @section bedlevel
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
 //#define DEBUG_LEVELING_FEATURE
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
 // @section homing
791
 // @section homing

+ 12
- 12
Marlin/planner.cpp View File

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

+ 3
- 3
Marlin/planner.h View File

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

+ 1
- 1
Marlin/qr_solve.cpp View File

22
 
22
 
23
 #include "qr_solve.h"
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
 #include <stdlib.h>
27
 #include <stdlib.h>
28
 #include <math.h>
28
 #include <math.h>

+ 1
- 1
Marlin/qr_solve.h View File

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

+ 1
- 1
Marlin/ultralcd.cpp View File

1212
     //
1212
     //
1213
     // Level Bed
1213
     // Level Bed
1214
     //
1214
     //
1215
-    #if ENABLED(AUTO_BED_LEVELING_FEATURE)
1215
+    #if HAS_ABL
1216
       MENU_ITEM(gcode, MSG_LEVEL_BED,
1216
       MENU_ITEM(gcode, MSG_LEVEL_BED,
1217
         axis_homed[X_AXIS] && axis_homed[Y_AXIS] ? PSTR("G29") : PSTR("G28\nG29")
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
 #include <math.h>
41
 #include <math.h>
42
 #include "Marlin.h"
42
 #include "Marlin.h"
43
 
43
 
44
-#if ENABLED(AUTO_BED_LEVELING_FEATURE)
44
+#if HAS_ABL
45
 #include "vector_3.h"
45
 #include "vector_3.h"
46
 
46
 
47
 vector_3::vector_3() : x(0), y(0), z(0) { }
47
 vector_3::vector_3() : x(0), y(0), z(0) { }
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
 #ifndef VECTOR_3_H
41
 #ifndef VECTOR_3_H
42
 #define VECTOR_3_H
42
 #define VECTOR_3_H
43
 
43
 
44
-#if ENABLED(AUTO_BED_LEVELING_FEATURE)
44
+#if HAS_ABL
45
 class matrix_3x3;
45
 class matrix_3x3;
46
 
46
 
47
 struct vector_3 {
47
 struct vector_3 {
77
 
77
 
78
 
78
 
79
 void apply_rotation_xyz(matrix_3x3 rotationMatrix, float& x, float& y, float& z);
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
 #endif // VECTOR_3_H
82
 #endif // VECTOR_3_H

Loading…
Cancel
Save