Browse Source

Univeral Bed Leveling - configuration

Scott Lahteine 8 years ago
parent
commit
cf94688925
31 changed files with 9070 additions and 797 deletions
  1. 1
    1
      Marlin/Conditionals_post.h
  2. 59
    36
      Marlin/Configuration.h
  3. 8
    1
      Marlin/Configuration_adv.h
  4. 40
    16
      Marlin/SanityCheck.h
  5. 58
    35
      Marlin/example_configurations/Cartesio/Configuration.h
  6. 22
    34
      Marlin/example_configurations/Felix/Configuration.h
  7. 58
    35
      Marlin/example_configurations/Felix/DUAL/Configuration.h
  8. 58
    35
      Marlin/example_configurations/Hephestos/Configuration.h
  9. 59
    36
      Marlin/example_configurations/Hephestos_2/Configuration.h
  10. 58
    35
      Marlin/example_configurations/K8200/Configuration.h
  11. 58
    35
      Marlin/example_configurations/K8400/Configuration.h
  12. 58
    35
      Marlin/example_configurations/K8400/Dual-head/Configuration.h
  13. 58
    35
      Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h
  14. 59
    36
      Marlin/example_configurations/RigidBot/Configuration.h
  15. 1503
    0
      Marlin/example_configurations/Roxys_printers/Folger_Tech_i3_2020/Configuration.h
  16. 1091
    0
      Marlin/example_configurations/Roxys_printers/Folger_Tech_i3_2020/Configuration_adv.h
  17. 1500
    0
      Marlin/example_configurations/Roxys_printers/gMax_1.5+/Configuration.h
  18. 1085
    0
      Marlin/example_configurations/Roxys_printers/gMax_1.5+/Configuration_adv.h
  19. 1505
    0
      Marlin/example_configurations/Roxys_printers/original_release_files/Configuration.h
  20. 1085
    0
      Marlin/example_configurations/Roxys_printers/original_release_files/Configuration_adv.h
  21. 58
    35
      Marlin/example_configurations/SCARA/Configuration.h
  22. 58
    35
      Marlin/example_configurations/TAZ4/Configuration.h
  23. 58
    35
      Marlin/example_configurations/WITBOX/Configuration.h
  24. 58
    35
      Marlin/example_configurations/adafruit/ST7565/Configuration.h
  25. 58
    38
      Marlin/example_configurations/delta/flsun_kossel_mini/Configuration.h
  26. 58
    36
      Marlin/example_configurations/delta/generic/Configuration.h
  27. 58
    35
      Marlin/example_configurations/delta/kossel_mini/Configuration.h
  28. 59
    36
      Marlin/example_configurations/delta/kossel_pro/Configuration.h
  29. 66
    37
      Marlin/example_configurations/delta/kossel_xl/Configuration.h
  30. 58
    35
      Marlin/example_configurations/makibox/Configuration.h
  31. 58
    35
      Marlin/example_configurations/tvrrug/Round2/Configuration.h

+ 1
- 1
Marlin/Conditionals_post.h View File

667
    */
667
    */
668
   #define ABL_PLANAR (ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_3POINT))
668
   #define ABL_PLANAR (ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_3POINT))
669
   #define ABL_GRID   (ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR))
669
   #define ABL_GRID   (ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR))
670
-  #define HAS_ABL    (ABL_PLANAR || ABL_GRID)
670
+  #define HAS_ABL    (ABL_PLANAR || ABL_GRID || ENABLED(AUTO_BED_LEVELING_UBL))
671
 
671
 
672
   #define PLANNER_LEVELING      (HAS_ABL || ENABLED(MESH_BED_LEVELING))
672
   #define PLANNER_LEVELING      (HAS_ABL || ENABLED(MESH_BED_LEVELING))
673
   #define HAS_PROBING_PROCEDURE (HAS_ABL || ENABLED(Z_MIN_PROBE_REPEATABILITY_TEST))
673
   #define HAS_PROBING_PROCEDURE (HAS_ABL || ENABLED(Z_MIN_PROBE_REPEATABILITY_TEST))

+ 59
- 36
Marlin/Configuration.h View File

231
  *    60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
231
  *    60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
232
  *    66 : 4.7M High Temperature thermistor from Dyze Design
232
  *    66 : 4.7M High Temperature thermistor from Dyze Design
233
  *    70 : the 100K thermistor found in the bq Hephestos 2
233
  *    70 : the 100K thermistor found in the bq Hephestos 2
234
+ *    75 : 100k Generic Silicon Heat Pad with NTC 100K MGB18-104F39050L32 thermistor
234
  *
235
  *
235
  *       1k ohm pullup tables - This is atypical, and requires changing out the 4.7k pullup for 1k.
236
  *       1k ohm pullup tables - This is atypical, and requires changing out the 4.7k pullup for 1k.
236
  *                              (but gives greater accuracy and more stable PID)
237
  *                              (but gives greater accuracy and more stable PID)
603
 //
604
 //
604
 // To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
605
 // To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
605
 //
606
 //
606
-// For a servo-based Z probe, you must set up servo support below, including
607
-// NUM_SERVOS, Z_ENDSTOP_SERVO_NR and Z_SERVO_ANGLES.
607
+// For a servo-based Z probe, just set Z_ENDSTOP_SERVO_NR and Z_SERVO_ANGLES above.
608
 //
608
 //
609
 // - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
609
 // - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
610
 // - Use 5V for powered (usu. inductive) sensors.
610
 // - Use 5V for powered (usu. inductive) sensors.
742
 #endif
742
 #endif
743
 
743
 
744
 //===========================================================================
744
 //===========================================================================
745
-//============================ Mesh Bed Leveling ============================
746
-//===========================================================================
747
-
748
-//#define MESH_BED_LEVELING    // Enable mesh bed leveling.
749
-
750
-#if ENABLED(MESH_BED_LEVELING)
751
-  #define MESH_INSET 10        // Mesh inset margin on print area
752
-  #define MESH_NUM_X_POINTS 3  // Don't use more than 7 points per axis, implementation limited.
753
-  #define MESH_NUM_Y_POINTS 3
754
-  #define MANUAL_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
755
-
756
-  //#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS
757
-
758
-  //#define MANUAL_BED_LEVELING  // Add display menu option for bed leveling.
759
-
760
-  #if ENABLED(MANUAL_BED_LEVELING)
761
-    #define MBL_Z_STEP 0.025  // Step size while manually probing Z axis.
762
-  #endif  // MANUAL_BED_LEVELING
763
-
764
-  // Gradually reduce leveling correction until a set height is reached,
765
-  // at which point movement will be level to the machine's XY plane.
766
-  // The height can be set with M420 Z<height>
767
-  #define ENABLE_LEVELING_FADE_HEIGHT
768
-
769
-#endif  // MESH_BED_LEVELING
770
-
771
-//===========================================================================
772
-//============================ Auto Bed Leveling ============================
745
+//=============================== Bed Leveling ==============================
773
 //===========================================================================
746
 //===========================================================================
774
 // @section bedlevel
747
 // @section bedlevel
775
 
748
 
793
  *   Probe several points in a grid.
766
  *   Probe several points in a grid.
794
  *   You specify the rectangle and the density of sample points.
767
  *   You specify the rectangle and the density of sample points.
795
  *   The result is a mesh, best for large or uneven beds.
768
  *   The result is a mesh, best for large or uneven beds.
769
+ *
770
+ * - UBL Unified Bed Leveling
771
+ *   A comprehensive bed leveling system that combines features and benefits from previous
772
+ *   bed leveling system.  The UBL Bed Leveling System also includes an integrated and easy to use
773
+ *   Mesh Generation, Mesh Validation and Mesh Editing system.
774
+ *     - Currently, the UBL Bed Leveling System is only checked out for Cartesian Printers.  But with
775
+ *       that said, it was primarily designed to handle poor quality Delta Printers.  If you feel
776
+ *       adventurous and have a Delta, please post an issue if something doesn't work correctly.
777
+ *       Initially, you will need to reduce your declared bed size so you have a rectangular area to
778
+ *       test on.
796
  */
779
  */
797
 //#define AUTO_BED_LEVELING_3POINT
780
 //#define AUTO_BED_LEVELING_3POINT
798
 //#define AUTO_BED_LEVELING_LINEAR
781
 //#define AUTO_BED_LEVELING_LINEAR
799
 //#define AUTO_BED_LEVELING_BILINEAR
782
 //#define AUTO_BED_LEVELING_BILINEAR
783
+//#define MESH_BED_LEVELING
784
+//#define AUTO_BED_LEVELING_UBL
785
+
800
 
786
 
801
 /**
787
 /**
802
  * Enable detailed logging of G28, G29, M48, etc.
788
  * Enable detailed logging of G28, G29, M48, etc.
805
  */
791
  */
806
 //#define DEBUG_LEVELING_FEATURE
792
 //#define DEBUG_LEVELING_FEATURE
807
 
793
 
794
+#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_BILINEAR) || ENABLED(AUTO_BED_LEVELING_UBL)
795
+  // Gradually reduce leveling correction until a set height is reached,
796
+  // at which point movement will be level to the machine's XY plane.
797
+  // The height can be set with M420 Z<height>
798
+  #define ENABLE_LEVELING_FADE_HEIGHT
799
+#endif
800
+
808
 #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
801
 #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
809
 
802
 
810
   // Set the number of grid points per dimension.
803
   // Set the number of grid points per dimension.
825
 
818
 
826
   #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
819
   #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
827
 
820
 
828
-    // Gradually reduce leveling correction until a set height is reached,
829
-    // at which point movement will be level to the machine's XY plane.
830
-    // The height can be set with M420 Z<height>
831
-    #define ENABLE_LEVELING_FADE_HEIGHT
832
-
833
     //
821
     //
834
     // Experimental Subdivision of the grid by Catmull-Rom method.
822
     // Experimental Subdivision of the grid by Catmull-Rom method.
835
     // Synthesizes intermediate points to produce a more detailed mesh.
823
     // Synthesizes intermediate points to produce a more detailed mesh.
853
   #define ABL_PROBE_PT_3_X 170
841
   #define ABL_PROBE_PT_3_X 170
854
   #define ABL_PROBE_PT_3_Y 20
842
   #define ABL_PROBE_PT_3_Y 20
855
 
843
 
856
-#endif
844
+#elif ENABLED(MESH_BED_LEVELING)
845
+
846
+//===========================================================================
847
+//=================================== Mesh ==================================
848
+//===========================================================================
849
+
850
+  #define MANUAL_PROBE_Z_RANGE 4 // Z after Home, bed somewhere below but above 0.0.
851
+  #define MESH_INSET 10          // Mesh inset margin on print area
852
+  #define MESH_NUM_X_POINTS 3    // Don't use more than 7 points per axis, implementation limited.
853
+  #define MESH_NUM_Y_POINTS 3
854
+
855
+  //#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest at origin [0,0,0]
856
+
857
+  //#define MANUAL_BED_LEVELING  // Add display menu option for bed leveling.
858
+
859
+  #if ENABLED(MANUAL_BED_LEVELING)
860
+    #define MBL_Z_STEP 0.025     // Step size while manually probing Z axis.
861
+  #endif  // MANUAL_BED_LEVELING
862
+
863
+#elif ENABLED(AUTO_BED_LEVELING_UBL)
864
+
865
+//===========================================================================
866
+//========================= Unified Bed Leveling ============================
867
+//===========================================================================
868
+
869
+  #define UBL_MESH_INSET 1          // Mesh inset margin on print area
870
+  #define UBL_MESH_NUM_X_POINTS 10  // Don't use more than 15 points per axis, implementation limited.
871
+  #define UBL_MESH_NUM_Y_POINTS 10
872
+  #define UBL_PROBE_PT_1_X 39       // These set the probe locations for when UBL does a 3-Point leveling
873
+  #define UBL_PROBE_PT_1_Y 180      // of the mesh.
874
+  #define UBL_PROBE_PT_2_X 39
875
+  #define UBL_PROBE_PT_2_Y 20
876
+  #define UBL_PROBE_PT_3_X 180
877
+  #define UBL_PROBE_PT_3_Y 20
878
+
879
+#endif  // BED_LEVELING
857
 
880
 
858
 /**
881
 /**
859
  * Commands to execute at the end of G29 probing.
882
  * Commands to execute at the end of G29 probing.

+ 8
- 1
Marlin/Configuration_adv.h View File

631
   #define MESH_MAX_Y (Y_MAX_POS - (MESH_INSET))
631
   #define MESH_MAX_Y (Y_MAX_POS - (MESH_INSET))
632
 #endif
632
 #endif
633
 
633
 
634
+#if ENABLED(AUTO_BED_LEVELING_UBL)
635
+  #define UBL_MESH_MIN_X (X_MIN_POS + UBL_MESH_INSET)
636
+  #define UBL_MESH_MAX_X (X_MAX_POS - (UBL_MESH_INSET))
637
+  #define UBL_MESH_MIN_Y (Y_MIN_POS + UBL_MESH_INSET)
638
+  #define UBL_MESH_MAX_Y (Y_MAX_POS - (UBL_MESH_INSET))
639
+#endif
640
+
634
 // @section extras
641
 // @section extras
635
 
642
 
636
 // Arc interpretation settings:
643
 // Arc interpretation settings:
1036
 #define I2C_SLAVE_ADDRESS  0 // Set a value from 8 to 127 to act as a slave
1043
 #define I2C_SLAVE_ADDRESS  0 // Set a value from 8 to 127 to act as a slave
1037
 
1044
 
1038
 /**
1045
 /**
1039
- * Add M43 command for pins info and testing
1046
+ * Add M43, M44 and M45 commands for pins info and testing
1040
  */
1047
  */
1041
 //#define PINS_DEBUGGING
1048
 //#define PINS_DEBUGGING
1042
 
1049
 

+ 40
- 16
Marlin/SanityCheck.h View File

388
   #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
388
   #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
389
     + 1
389
     + 1
390
   #endif
390
   #endif
391
+  #if ENABLED(AUTO_BED_LEVELING_UBL)
392
+    + 1
393
+  #endif
391
   #if ENABLED(MESH_BED_LEVELING)
394
   #if ENABLED(MESH_BED_LEVELING)
392
     + 1
395
     + 1
393
   #endif
396
   #endif
394
-  , "Select only one of: MESH_BED_LEVELING, AUTO_BED_LEVELING_LINEAR, AUTO_BED_LEVELING_3POINT, or AUTO_BED_LEVELING_BILINEAR."
397
+  , "Select only one of: MESH_BED_LEVELING, AUTO_BED_LEVELING_LINEAR, AUTO_BED_LEVELING_3POINT, AUTO_BED_LEVELING_BILINEAR or AUTO_BED_LEVELING_UBL."
395
 );
398
 );
396
 
399
 
397
 /**
400
 /**
403
   #elif MESH_NUM_X_POINTS > 9 || MESH_NUM_Y_POINTS > 9
406
   #elif MESH_NUM_X_POINTS > 9 || MESH_NUM_Y_POINTS > 9
404
     #error "MESH_NUM_X_POINTS and MESH_NUM_Y_POINTS must be less than 10."
407
     #error "MESH_NUM_X_POINTS and MESH_NUM_Y_POINTS must be less than 10."
405
   #endif
408
   #endif
409
+#elif ENABLED(MANUAL_BED_LEVELING)
410
+  #error "MANUAL_BED_LEVELING only applies to MESH_BED_LEVELING."
411
+#endif
412
+
413
+/**
414
+ * Unified Bed Leveling
415
+ */
416
+#if ENABLED(AUTO_BED_LEVELING_UBL)
417
+  #if ENABLED(DELTA)
418
+    #error "AUTO_BED_LEVELING_UBL does not yet support DELTA printers."
419
+  #elif DISABLED(NEWPANEL)
420
+    #error "AUTO_BED_LEVELING_UBL requires an LCD controller."
421
+  #elif UBL_MESH_NUM_X_POINTS > 15 || UBL_MESH_NUM_Y_POINTS > 15
422
+    #error "UBL_MESH_NUM_X_POINTS and UBL_MESH_NUM_Y_POINTS must be less than 16."
423
+  #endif
406
 #endif
424
 #endif
407
 
425
 
408
 /**
426
 /**
434
   , "Please enable only one probe: PROBE_MANUALLY, FIX_MOUNTED_PROBE, Z Servo, BLTOUCH, Z_PROBE_ALLEN_KEY, or Z_PROBE_SLED."
452
   , "Please enable only one probe: PROBE_MANUALLY, FIX_MOUNTED_PROBE, Z Servo, BLTOUCH, Z_PROBE_ALLEN_KEY, or Z_PROBE_SLED."
435
 );
453
 );
436
 
454
 
455
+
437
 #if PROBE_SELECTED
456
 #if PROBE_SELECTED
438
 
457
 
439
   /**
458
   /**
577
       #endif
596
       #endif
578
     #endif
597
     #endif
579
   #else // !ABL_GRID
598
   #else // !ABL_GRID
580
-
581
-    // Check the triangulation points
582
-    #if ABL_PROBE_PT_1_X < MIN_PROBE_X || ABL_PROBE_PT_1_X > MAX_PROBE_X
583
-      #error "The given ABL_PROBE_PT_1_X can't be reached by the Z probe."
584
-    #elif ABL_PROBE_PT_2_X < MIN_PROBE_X || ABL_PROBE_PT_2_X > MAX_PROBE_X
585
-      #error "The given ABL_PROBE_PT_2_X can't be reached by the Z probe."
586
-    #elif ABL_PROBE_PT_3_X < MIN_PROBE_X || ABL_PROBE_PT_3_X > MAX_PROBE_X
587
-      #error "The given ABL_PROBE_PT_3_X can't be reached by the Z probe."
588
-    #elif ABL_PROBE_PT_1_Y < MIN_PROBE_Y || ABL_PROBE_PT_1_Y > MAX_PROBE_Y
589
-      #error "The given ABL_PROBE_PT_1_Y can't be reached by the Z probe."
590
-    #elif ABL_PROBE_PT_2_Y < MIN_PROBE_Y || ABL_PROBE_PT_2_Y > MAX_PROBE_Y
591
-      #error "The given ABL_PROBE_PT_2_Y can't be reached by the Z probe."
592
-    #elif ABL_PROBE_PT_3_Y < MIN_PROBE_Y || ABL_PROBE_PT_3_Y > MAX_PROBE_Y
593
-      #error "The given ABL_PROBE_PT_3_Y can't be reached by the Z probe."
594
-    #endif
599
+    #if ENABLED(AUTO_BED_LEVELING_UBL)
600
+      #ifndef EEPROM_SETTINGS
601
+        #error "AUTO_BED_LEVELING_UBL requires EEPROM_SETTINGS. Please update your configuration."
602
+      #endif
603
+    #else // !UBL
604
+      // Check the triangulation points
605
+      #if ABL_PROBE_PT_1_X < MIN_PROBE_X || ABL_PROBE_PT_1_X > MAX_PROBE_X
606
+        #error "The given ABL_PROBE_PT_1_X can't be reached by the Z probe."
607
+      #elif ABL_PROBE_PT_2_X < MIN_PROBE_X || ABL_PROBE_PT_2_X > MAX_PROBE_X
608
+        #error "The given ABL_PROBE_PT_2_X can't be reached by the Z probe."
609
+      #elif ABL_PROBE_PT_3_X < MIN_PROBE_X || ABL_PROBE_PT_3_X > MAX_PROBE_X
610
+        #error "The given ABL_PROBE_PT_3_X can't be reached by the Z probe."
611
+      #elif ABL_PROBE_PT_1_Y < MIN_PROBE_Y || ABL_PROBE_PT_1_Y > MAX_PROBE_Y
612
+        #error "The given ABL_PROBE_PT_1_Y can't be reached by the Z probe."
613
+      #elif ABL_PROBE_PT_2_Y < MIN_PROBE_Y || ABL_PROBE_PT_2_Y > MAX_PROBE_Y
614
+        #error "The given ABL_PROBE_PT_2_Y can't be reached by the Z probe."
615
+      #elif ABL_PROBE_PT_3_Y < MIN_PROBE_Y || ABL_PROBE_PT_3_Y > MAX_PROBE_Y
616
+        #error "The given ABL_PROBE_PT_3_Y can't be reached by the Z probe."
617
+      #endif
618
+    #endif // !AUTO_BED_LEVEING_UBL
595
 
619
 
596
   #endif // !ABL_GRID
620
   #endif // !ABL_GRID
597
 
621
 

+ 58
- 35
Marlin/example_configurations/Cartesio/Configuration.h View File

232
  *    60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
232
  *    60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
233
  *    66 : 4.7M High Temperature thermistor from Dyze Design
233
  *    66 : 4.7M High Temperature thermistor from Dyze Design
234
  *    70 : the 100K thermistor found in the bq Hephestos 2
234
  *    70 : the 100K thermistor found in the bq Hephestos 2
235
+ *    75 : 100k Generic Silicon Heat Pad typically a NTC 100K MGB18-104F39050L32 thermistor
235
  *
236
  *
236
  *       1k ohm pullup tables - This is atypical, and requires changing out the 4.7k pullup for 1k.
237
  *       1k ohm pullup tables - This is atypical, and requires changing out the 4.7k pullup for 1k.
237
  *                              (but gives greater accuracy and more stable PID)
238
  *                              (but gives greater accuracy and more stable PID)
603
 //
604
 //
604
 // To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
605
 // To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
605
 //
606
 //
606
-// For a servo-based Z probe, you must set up servo support below, including
607
-// NUM_SERVOS, Z_ENDSTOP_SERVO_NR and Z_SERVO_ANGLES.
607
+// For a servo-based Z probe, just set Z_ENDSTOP_SERVO_NR and Z_SERVO_ANGLES above.
608
 //
608
 //
609
 // - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
609
 // - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
610
 // - Use 5V for powered (usu. inductive) sensors.
610
 // - Use 5V for powered (usu. inductive) sensors.
741
   #define FILAMENT_RUNOUT_SCRIPT "M600"
741
   #define FILAMENT_RUNOUT_SCRIPT "M600"
742
 #endif
742
 #endif
743
 
743
 
744
-//===========================================================================
745
-//============================ Mesh Bed Leveling ============================
746
-//===========================================================================
747
-
748
-//#define MESH_BED_LEVELING    // Enable mesh bed leveling.
749
-
750
-#if ENABLED(MESH_BED_LEVELING)
751
-  #define MESH_INSET 10        // Mesh inset margin on print area
752
-  #define MESH_NUM_X_POINTS 3  // Don't use more than 7 points per axis, implementation limited.
753
-  #define MESH_NUM_Y_POINTS 3
754
-  #define MANUAL_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
755
-
756
-  //#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS
757
-
758
-  //#define MANUAL_BED_LEVELING  // Add display menu option for bed leveling.
759
-
760
-  #if ENABLED(MANUAL_BED_LEVELING)
761
-    #define MBL_Z_STEP 0.025  // Step size while manually probing Z axis.
762
-  #endif  // MANUAL_BED_LEVELING
763
-
764
-  // Gradually reduce leveling correction until a set height is reached,
765
-  // at which point movement will be level to the machine's XY plane.
766
-  // The height can be set with M420 Z<height>
767
-  #define ENABLE_LEVELING_FADE_HEIGHT
768
-
769
-#endif  // MESH_BED_LEVELING
770
 
744
 
771
 //===========================================================================
745
 //===========================================================================
772
-//============================ Auto Bed Leveling ============================
746
+//=============================== Bed Leveling ==============================
773
 //===========================================================================
747
 //===========================================================================
774
 // @section bedlevel
748
 // @section bedlevel
775
 
749
 
793
  *   Probe several points in a grid.
767
  *   Probe several points in a grid.
794
  *   You specify the rectangle and the density of sample points.
768
  *   You specify the rectangle and the density of sample points.
795
  *   The result is a mesh, best for large or uneven beds.
769
  *   The result is a mesh, best for large or uneven beds.
770
+ *
771
+ * - UBL Unified Bed Leveling
772
+ *   A comprehensive bed leveling system that combines features and benefits from previous
773
+ *   bed leveling system.  The UBL Bed Leveling System also includes an integrated and easy to use
774
+ *   Mesh Generation, Mesh Validation and Mesh Editing system.
775
+ *     - Currently, the UBL Bed Leveling System is only checked out for Cartesian Printers.  But with
776
+ *       that said, it was primarily designed to handle poor quality Delta Printers.  If you feel
777
+ *       adventurous and have a Delta, please post an issue if something doesn't work correctly.
778
+ *       Initially, you will need to reduce your declared bed size so you have a rectangular area to
779
+ *       test on.
796
  */
780
  */
797
 //#define AUTO_BED_LEVELING_3POINT
781
 //#define AUTO_BED_LEVELING_3POINT
798
 //#define AUTO_BED_LEVELING_LINEAR
782
 //#define AUTO_BED_LEVELING_LINEAR
799
 //#define AUTO_BED_LEVELING_BILINEAR
783
 //#define AUTO_BED_LEVELING_BILINEAR
784
+//#define MESH_BED_LEVELING
785
+//#define AUTO_BED_LEVELING_UBL
800
 
786
 
801
 /**
787
 /**
802
  * Enable detailed logging of G28, G29, M48, etc.
788
  * Enable detailed logging of G28, G29, M48, etc.
805
  */
791
  */
806
 //#define DEBUG_LEVELING_FEATURE
792
 //#define DEBUG_LEVELING_FEATURE
807
 
793
 
794
+#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_BILINEAR) || ENABLED(AUTO_BED_LEVELING_UBL)
795
+  // Gradually reduce leveling correction until a set height is reached,
796
+  // at which point movement will be level to the machine's XY plane.
797
+  // The height can be set with M420 Z<height>
798
+  #define ENABLE_LEVELING_FADE_HEIGHT
799
+#endif
800
+
808
 #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
801
 #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
809
 
802
 
810
   // Set the number of grid points per dimension.
803
   // Set the number of grid points per dimension.
825
 
818
 
826
   #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
819
   #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
827
 
820
 
828
-    // Gradually reduce leveling correction until a set height is reached,
829
-    // at which point movement will be level to the machine's XY plane.
830
-    // The height can be set with M420 Z<height>
831
-    #define ENABLE_LEVELING_FADE_HEIGHT
832
-
833
     //
821
     //
834
     // Experimental Subdivision of the grid by Catmull-Rom method.
822
     // Experimental Subdivision of the grid by Catmull-Rom method.
835
     // Synthesizes intermediate points to produce a more detailed mesh.
823
     // Synthesizes intermediate points to produce a more detailed mesh.
853
   #define ABL_PROBE_PT_3_X 170
841
   #define ABL_PROBE_PT_3_X 170
854
   #define ABL_PROBE_PT_3_Y 20
842
   #define ABL_PROBE_PT_3_Y 20
855
 
843
 
856
-#endif
844
+#elif ENABLED(MESH_BED_LEVELING)
845
+
846
+//===========================================================================
847
+//=================================== Mesh ==================================
848
+//===========================================================================
849
+
850
+  #define MANUAL_PROBE_Z_RANGE 4 // Z after Home, bed somewhere below but above 0.0.
851
+  #define MESH_INSET 10          // Mesh inset margin on print area
852
+  #define MESH_NUM_X_POINTS 3    // Don't use more than 7 points per axis, implementation limited.
853
+  #define MESH_NUM_Y_POINTS 3
854
+
855
+  //#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest at origin [0,0,0]
856
+
857
+  //#define MANUAL_BED_LEVELING  // Add display menu option for bed leveling.
858
+
859
+  #if ENABLED(MANUAL_BED_LEVELING)
860
+    #define MBL_Z_STEP 0.025     // Step size while manually probing Z axis.
861
+  #endif  // MANUAL_BED_LEVELING
862
+
863
+#elif ENABLED(AUTO_BED_LEVELING_UBL)
864
+
865
+//===========================================================================
866
+//========================= Unified Bed Leveling ============================
867
+//===========================================================================
868
+
869
+  #define UBL_MESH_INSET 1          // Mesh inset margin on print area
870
+  #define UBL_MESH_NUM_X_POINTS 10  // Don't use more than 15 points per axis, implementation limited.
871
+  #define UBL_MESH_NUM_Y_POINTS 10
872
+  #define UBL_PROBE_PT_1_X 39       // These set the probe locations for when UBL does a 3-Point leveling
873
+  #define UBL_PROBE_PT_1_Y 180      // of the mesh.
874
+  #define UBL_PROBE_PT_2_X 39
875
+  #define UBL_PROBE_PT_2_Y 20
876
+  #define UBL_PROBE_PT_3_X 180
877
+  #define UBL_PROBE_PT_3_Y 20
878
+
879
+#endif  // BED_LEVELING
857
 
880
 
858
 /**
881
 /**
859
  * Commands to execute at the end of G29 probing.
882
  * Commands to execute at the end of G29 probing.

+ 22
- 34
Marlin/example_configurations/Felix/Configuration.h View File

231
  *    60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
231
  *    60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
232
  *    66 : 4.7M High Temperature thermistor from Dyze Design
232
  *    66 : 4.7M High Temperature thermistor from Dyze Design
233
  *    70 : the 100K thermistor found in the bq Hephestos 2
233
  *    70 : the 100K thermistor found in the bq Hephestos 2
234
+ *    75 : 100k Generic Silicon Heat Pad typically a NTC 100K MGB18-104F39050L32 thermistor
234
  *
235
  *
235
  *       1k ohm pullup tables - This is atypical, and requires changing out the 4.7k pullup for 1k.
236
  *       1k ohm pullup tables - This is atypical, and requires changing out the 4.7k pullup for 1k.
236
  *                              (but gives greater accuracy and more stable PID)
237
  *                              (but gives greater accuracy and more stable PID)
586
 //
587
 //
587
 // To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
588
 // To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
588
 //
589
 //
589
-// For a servo-based Z probe, you must set up servo support below, including
590
-// NUM_SERVOS, Z_ENDSTOP_SERVO_NR and Z_SERVO_ANGLES.
590
+// For a servo-based Z probe, just set Z_ENDSTOP_SERVO_NR and Z_SERVO_ANGLES above.
591
 //
591
 //
592
 // - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
592
 // - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
593
 // - Use 5V for powered (usu. inductive) sensors.
593
 // - Use 5V for powered (usu. inductive) sensors.
724
   #define FILAMENT_RUNOUT_SCRIPT "M600"
724
   #define FILAMENT_RUNOUT_SCRIPT "M600"
725
 #endif
725
 #endif
726
 
726
 
727
-//===========================================================================
728
-//============================ Mesh Bed Leveling ============================
729
-//===========================================================================
730
-
731
-//#define MESH_BED_LEVELING    // Enable mesh bed leveling.
732
-
733
-#if ENABLED(MESH_BED_LEVELING)
734
-  #define MESH_INSET 10        // Mesh inset margin on print area
735
-  #define MESH_NUM_X_POINTS 3  // Don't use more than 7 points per axis, implementation limited.
736
-  #define MESH_NUM_Y_POINTS 3
737
-  #define MANUAL_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
738
-
739
-  //#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS
740
-
741
-  //#define MANUAL_BED_LEVELING  // Add display menu option for bed leveling.
742
-
743
-  #if ENABLED(MANUAL_BED_LEVELING)
744
-    #define MBL_Z_STEP 0.025  // Step size while manually probing Z axis.
745
-  #endif  // MANUAL_BED_LEVELING
746
-
747
-  // Gradually reduce leveling correction until a set height is reached,
748
-  // at which point movement will be level to the machine's XY plane.
749
-  // The height can be set with M420 Z<height>
750
-  #define ENABLE_LEVELING_FADE_HEIGHT
751
-
752
-#endif  // MESH_BED_LEVELING
753
 
727
 
754
 //===========================================================================
728
 //===========================================================================
755
-//============================ Auto Bed Leveling ============================
729
+//=============================== Bed Leveling ==============================
756
 //===========================================================================
730
 //===========================================================================
757
 // @section bedlevel
731
 // @section bedlevel
758
 
732
 
776
  *   Probe several points in a grid.
750
  *   Probe several points in a grid.
777
  *   You specify the rectangle and the density of sample points.
751
  *   You specify the rectangle and the density of sample points.
778
  *   The result is a mesh, best for large or uneven beds.
752
  *   The result is a mesh, best for large or uneven beds.
753
+ *
754
+ * - UBL Unified Bed Leveling
755
+ *   A comprehensive bed leveling system that combines features and benefits from previous
756
+ *   bed leveling system.  The UBL Bed Leveling System also includes an integrated and easy to use
757
+ *   Mesh Generation, Mesh Validation and Mesh Editing system.
758
+ *     - Currently, the UBL Bed Leveling System is only checked out for Cartesian Printers.  But with
759
+ *       that said, it was primarily designed to handle poor quality Delta Printers.  If you feel
760
+ *       adventurous and have a Delta, please post an issue if something doesn't work correctly.
761
+ *       Initially, you will need to reduce your declared bed size so you have a rectangular area to
762
+ *       test on.
779
  */
763
  */
780
 //#define AUTO_BED_LEVELING_3POINT
764
 //#define AUTO_BED_LEVELING_3POINT
781
 //#define AUTO_BED_LEVELING_LINEAR
765
 //#define AUTO_BED_LEVELING_LINEAR
782
 //#define AUTO_BED_LEVELING_BILINEAR
766
 //#define AUTO_BED_LEVELING_BILINEAR
767
+//#define MESH_BED_LEVELING
768
+//#define AUTO_BED_LEVELING_UBL
783
 
769
 
784
 /**
770
 /**
785
  * Enable detailed logging of G28, G29, M48, etc.
771
  * Enable detailed logging of G28, G29, M48, etc.
788
  */
774
  */
789
 //#define DEBUG_LEVELING_FEATURE
775
 //#define DEBUG_LEVELING_FEATURE
790
 
776
 
777
+#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_BILINEAR) || ENABLED(AUTO_BED_LEVELING_UBL)
778
+  // Gradually reduce leveling correction until a set height is reached,
779
+  // at which point movement will be level to the machine's XY plane.
780
+  // The height can be set with M420 Z<height>
781
+  #define ENABLE_LEVELING_FADE_HEIGHT
782
+#endif
783
+
791
 #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
784
 #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
792
 
785
 
793
   // Set the number of grid points per dimension.
786
   // Set the number of grid points per dimension.
808
 
801
 
809
   #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
802
   #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
810
 
803
 
811
-    // Gradually reduce leveling correction until a set height is reached,
812
-    // at which point movement will be level to the machine's XY plane.
813
-    // The height can be set with M420 Z<height>
814
-    #define ENABLE_LEVELING_FADE_HEIGHT
815
-
816
     //
804
     //
817
     // Experimental Subdivision of the grid by Catmull-Rom method.
805
     // Experimental Subdivision of the grid by Catmull-Rom method.
818
     // Synthesizes intermediate points to produce a more detailed mesh.
806
     // Synthesizes intermediate points to produce a more detailed mesh.

+ 58
- 35
Marlin/example_configurations/Felix/DUAL/Configuration.h View File

231
  *    60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
231
  *    60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
232
  *    66 : 4.7M High Temperature thermistor from Dyze Design
232
  *    66 : 4.7M High Temperature thermistor from Dyze Design
233
  *    70 : the 100K thermistor found in the bq Hephestos 2
233
  *    70 : the 100K thermistor found in the bq Hephestos 2
234
+ *    75 : 100k Generic Silicon Heat Pad typically a NTC 100K MGB18-104F39050L32 thermistor
234
  *
235
  *
235
  *       1k ohm pullup tables - This is atypical, and requires changing out the 4.7k pullup for 1k.
236
  *       1k ohm pullup tables - This is atypical, and requires changing out the 4.7k pullup for 1k.
236
  *                              (but gives greater accuracy and more stable PID)
237
  *                              (but gives greater accuracy and more stable PID)
586
 //
587
 //
587
 // To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
588
 // To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
588
 //
589
 //
589
-// For a servo-based Z probe, you must set up servo support below, including
590
-// NUM_SERVOS, Z_ENDSTOP_SERVO_NR and Z_SERVO_ANGLES.
590
+// For a servo-based Z probe, just set Z_ENDSTOP_SERVO_NR and Z_SERVO_ANGLES above.
591
 //
591
 //
592
 // - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
592
 // - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
593
 // - Use 5V for powered (usu. inductive) sensors.
593
 // - Use 5V for powered (usu. inductive) sensors.
724
   #define FILAMENT_RUNOUT_SCRIPT "M600"
724
   #define FILAMENT_RUNOUT_SCRIPT "M600"
725
 #endif
725
 #endif
726
 
726
 
727
-//===========================================================================
728
-//============================ Mesh Bed Leveling ============================
729
-//===========================================================================
730
-
731
-//#define MESH_BED_LEVELING    // Enable mesh bed leveling.
732
-
733
-#if ENABLED(MESH_BED_LEVELING)
734
-  #define MESH_INSET 10        // Mesh inset margin on print area
735
-  #define MESH_NUM_X_POINTS 3  // Don't use more than 7 points per axis, implementation limited.
736
-  #define MESH_NUM_Y_POINTS 3
737
-  #define MANUAL_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
738
-
739
-  //#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS
740
-
741
-  //#define MANUAL_BED_LEVELING  // Add display menu option for bed leveling.
742
-
743
-  #if ENABLED(MANUAL_BED_LEVELING)
744
-    #define MBL_Z_STEP 0.025  // Step size while manually probing Z axis.
745
-  #endif  // MANUAL_BED_LEVELING
746
-
747
-  // Gradually reduce leveling correction until a set height is reached,
748
-  // at which point movement will be level to the machine's XY plane.
749
-  // The height can be set with M420 Z<height>
750
-  #define ENABLE_LEVELING_FADE_HEIGHT
751
-
752
-#endif  // MESH_BED_LEVELING
753
 
727
 
754
 //===========================================================================
728
 //===========================================================================
755
-//============================ Auto Bed Leveling ============================
729
+//=============================== Bed Leveling ==============================
756
 //===========================================================================
730
 //===========================================================================
757
 // @section bedlevel
731
 // @section bedlevel
758
 
732
 
776
  *   Probe several points in a grid.
750
  *   Probe several points in a grid.
777
  *   You specify the rectangle and the density of sample points.
751
  *   You specify the rectangle and the density of sample points.
778
  *   The result is a mesh, best for large or uneven beds.
752
  *   The result is a mesh, best for large or uneven beds.
753
+ *
754
+ * - UBL Unified Bed Leveling
755
+ *   A comprehensive bed leveling system that combines features and benefits from previous
756
+ *   bed leveling system.  The UBL Bed Leveling System also includes an integrated and easy to use
757
+ *   Mesh Generation, Mesh Validation and Mesh Editing system.
758
+ *     - Currently, the UBL Bed Leveling System is only checked out for Cartesian Printers.  But with
759
+ *       that said, it was primarily designed to handle poor quality Delta Printers.  If you feel
760
+ *       adventurous and have a Delta, please post an issue if something doesn't work correctly.
761
+ *       Initially, you will need to reduce your declared bed size so you have a rectangular area to
762
+ *       test on.
779
  */
763
  */
780
 //#define AUTO_BED_LEVELING_3POINT
764
 //#define AUTO_BED_LEVELING_3POINT
781
 //#define AUTO_BED_LEVELING_LINEAR
765
 //#define AUTO_BED_LEVELING_LINEAR
782
 //#define AUTO_BED_LEVELING_BILINEAR
766
 //#define AUTO_BED_LEVELING_BILINEAR
767
+//#define MESH_BED_LEVELING
768
+//#define AUTO_BED_LEVELING_UBL
783
 
769
 
784
 /**
770
 /**
785
  * Enable detailed logging of G28, G29, M48, etc.
771
  * Enable detailed logging of G28, G29, M48, etc.
788
  */
774
  */
789
 //#define DEBUG_LEVELING_FEATURE
775
 //#define DEBUG_LEVELING_FEATURE
790
 
776
 
777
+#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_BILINEAR) || ENABLED(AUTO_BED_LEVELING_UBL)
778
+  // Gradually reduce leveling correction until a set height is reached,
779
+  // at which point movement will be level to the machine's XY plane.
780
+  // The height can be set with M420 Z<height>
781
+  #define ENABLE_LEVELING_FADE_HEIGHT
782
+#endif
783
+
791
 #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
784
 #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
792
 
785
 
793
   // Set the number of grid points per dimension.
786
   // Set the number of grid points per dimension.
808
 
801
 
809
   #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
802
   #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
810
 
803
 
811
-    // Gradually reduce leveling correction until a set height is reached,
812
-    // at which point movement will be level to the machine's XY plane.
813
-    // The height can be set with M420 Z<height>
814
-    #define ENABLE_LEVELING_FADE_HEIGHT
815
-
816
     //
804
     //
817
     // Experimental Subdivision of the grid by Catmull-Rom method.
805
     // Experimental Subdivision of the grid by Catmull-Rom method.
818
     // Synthesizes intermediate points to produce a more detailed mesh.
806
     // Synthesizes intermediate points to produce a more detailed mesh.
836
   #define ABL_PROBE_PT_3_X 170
824
   #define ABL_PROBE_PT_3_X 170
837
   #define ABL_PROBE_PT_3_Y 20
825
   #define ABL_PROBE_PT_3_Y 20
838
 
826
 
839
-#endif
827
+#elif ENABLED(MESH_BED_LEVELING)
828
+
829
+//===========================================================================
830
+//=================================== Mesh ==================================
831
+//===========================================================================
832
+
833
+  #define MANUAL_PROBE_Z_RANGE 4 // Z after Home, bed somewhere below but above 0.0.
834
+  #define MESH_INSET 10          // Mesh inset margin on print area
835
+  #define MESH_NUM_X_POINTS 3    // Don't use more than 7 points per axis, implementation limited.
836
+  #define MESH_NUM_Y_POINTS 3
837
+
838
+  //#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest at origin [0,0,0]
839
+
840
+  //#define MANUAL_BED_LEVELING  // Add display menu option for bed leveling.
841
+
842
+  #if ENABLED(MANUAL_BED_LEVELING)
843
+    #define MBL_Z_STEP 0.025     // Step size while manually probing Z axis.
844
+  #endif  // MANUAL_BED_LEVELING
845
+
846
+#elif ENABLED(AUTO_BED_LEVELING_UBL)
847
+
848
+//===========================================================================
849
+//========================= Unified Bed Leveling ============================
850
+//===========================================================================
851
+
852
+  #define UBL_MESH_INSET 1          // Mesh inset margin on print area
853
+  #define UBL_MESH_NUM_X_POINTS 10  // Don't use more than 15 points per axis, implementation limited.
854
+  #define UBL_MESH_NUM_Y_POINTS 10
855
+  #define UBL_PROBE_PT_1_X 39       // These set the probe locations for when UBL does a 3-Point leveling
856
+  #define UBL_PROBE_PT_1_Y 180      // of the mesh.
857
+  #define UBL_PROBE_PT_2_X 39
858
+  #define UBL_PROBE_PT_2_Y 20
859
+  #define UBL_PROBE_PT_3_X 180
860
+  #define UBL_PROBE_PT_3_Y 20
861
+
862
+#endif  // BED_LEVELING
840
 
863
 
841
 /**
864
 /**
842
  * Commands to execute at the end of G29 probing.
865
  * Commands to execute at the end of G29 probing.

+ 58
- 35
Marlin/example_configurations/Hephestos/Configuration.h View File

234
  *    60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
234
  *    60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
235
  *    66 : 4.7M High Temperature thermistor from Dyze Design
235
  *    66 : 4.7M High Temperature thermistor from Dyze Design
236
  *    70 : the 100K thermistor found in the bq Hephestos 2
236
  *    70 : the 100K thermistor found in the bq Hephestos 2
237
+ *    75 : 100k Generic Silicon Heat Pad typically a NTC 100K MGB18-104F39050L32 thermistor
237
  *
238
  *
238
  *       1k ohm pullup tables - This is atypical, and requires changing out the 4.7k pullup for 1k.
239
  *       1k ohm pullup tables - This is atypical, and requires changing out the 4.7k pullup for 1k.
239
  *                              (but gives greater accuracy and more stable PID)
240
  *                              (but gives greater accuracy and more stable PID)
595
 //
596
 //
596
 // To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
597
 // To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
597
 //
598
 //
598
-// For a servo-based Z probe, you must set up servo support below, including
599
-// NUM_SERVOS, Z_ENDSTOP_SERVO_NR and Z_SERVO_ANGLES.
599
+// For a servo-based Z probe, just set Z_ENDSTOP_SERVO_NR and Z_SERVO_ANGLES above.
600
 //
600
 //
601
 // - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
601
 // - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
602
 // - Use 5V for powered (usu. inductive) sensors.
602
 // - Use 5V for powered (usu. inductive) sensors.
733
   #define FILAMENT_RUNOUT_SCRIPT "M600"
733
   #define FILAMENT_RUNOUT_SCRIPT "M600"
734
 #endif
734
 #endif
735
 
735
 
736
-//===========================================================================
737
-//============================ Mesh Bed Leveling ============================
738
-//===========================================================================
739
-
740
-//#define MESH_BED_LEVELING    // Enable mesh bed leveling.
741
-
742
-#if ENABLED(MESH_BED_LEVELING)
743
-  #define MESH_INSET 10        // Mesh inset margin on print area
744
-  #define MESH_NUM_X_POINTS 3  // Don't use more than 7 points per axis, implementation limited.
745
-  #define MESH_NUM_Y_POINTS 3
746
-  #define MANUAL_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
747
-
748
-  //#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS
749
-
750
-  //#define MANUAL_BED_LEVELING  // Add display menu option for bed leveling.
751
-
752
-  #if ENABLED(MANUAL_BED_LEVELING)
753
-    #define MBL_Z_STEP 0.025  // Step size while manually probing Z axis.
754
-  #endif  // MANUAL_BED_LEVELING
755
-
756
-  // Gradually reduce leveling correction until a set height is reached,
757
-  // at which point movement will be level to the machine's XY plane.
758
-  // The height can be set with M420 Z<height>
759
-  #define ENABLE_LEVELING_FADE_HEIGHT
760
-
761
-#endif  // MESH_BED_LEVELING
762
 
736
 
763
 //===========================================================================
737
 //===========================================================================
764
-//============================ Auto Bed Leveling ============================
738
+//=============================== Bed Leveling ==============================
765
 //===========================================================================
739
 //===========================================================================
766
 // @section bedlevel
740
 // @section bedlevel
767
 
741
 
785
  *   Probe several points in a grid.
759
  *   Probe several points in a grid.
786
  *   You specify the rectangle and the density of sample points.
760
  *   You specify the rectangle and the density of sample points.
787
  *   The result is a mesh, best for large or uneven beds.
761
  *   The result is a mesh, best for large or uneven beds.
762
+ *
763
+ * - UBL Unified Bed Leveling
764
+ *   A comprehensive bed leveling system that combines features and benefits from previous
765
+ *   bed leveling system.  The UBL Bed Leveling System also includes an integrated and easy to use
766
+ *   Mesh Generation, Mesh Validation and Mesh Editing system.
767
+ *     - Currently, the UBL Bed Leveling System is only checked out for Cartesian Printers.  But with
768
+ *       that said, it was primarily designed to handle poor quality Delta Printers.  If you feel
769
+ *       adventurous and have a Delta, please post an issue if something doesn't work correctly.
770
+ *       Initially, you will need to reduce your declared bed size so you have a rectangular area to
771
+ *       test on.
788
  */
772
  */
789
 //#define AUTO_BED_LEVELING_3POINT
773
 //#define AUTO_BED_LEVELING_3POINT
790
 //#define AUTO_BED_LEVELING_LINEAR
774
 //#define AUTO_BED_LEVELING_LINEAR
791
 //#define AUTO_BED_LEVELING_BILINEAR
775
 //#define AUTO_BED_LEVELING_BILINEAR
776
+//#define MESH_BED_LEVELING
777
+//#define AUTO_BED_LEVELING_UBL
792
 
778
 
793
 /**
779
 /**
794
  * Enable detailed logging of G28, G29, M48, etc.
780
  * Enable detailed logging of G28, G29, M48, etc.
797
  */
783
  */
798
 //#define DEBUG_LEVELING_FEATURE
784
 //#define DEBUG_LEVELING_FEATURE
799
 
785
 
786
+#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_BILINEAR) || ENABLED(AUTO_BED_LEVELING_UBL)
787
+  // Gradually reduce leveling correction until a set height is reached,
788
+  // at which point movement will be level to the machine's XY plane.
789
+  // The height can be set with M420 Z<height>
790
+  #define ENABLE_LEVELING_FADE_HEIGHT
791
+#endif
792
+
800
 #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
793
 #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
801
 
794
 
802
   // Set the number of grid points per dimension.
795
   // Set the number of grid points per dimension.
817
 
810
 
818
   #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
811
   #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
819
 
812
 
820
-    // Gradually reduce leveling correction until a set height is reached,
821
-    // at which point movement will be level to the machine's XY plane.
822
-    // The height can be set with M420 Z<height>
823
-    #define ENABLE_LEVELING_FADE_HEIGHT
824
-
825
     //
813
     //
826
     // Experimental Subdivision of the grid by Catmull-Rom method.
814
     // Experimental Subdivision of the grid by Catmull-Rom method.
827
     // Synthesizes intermediate points to produce a more detailed mesh.
815
     // Synthesizes intermediate points to produce a more detailed mesh.
845
   #define ABL_PROBE_PT_3_X 170
833
   #define ABL_PROBE_PT_3_X 170
846
   #define ABL_PROBE_PT_3_Y 20
834
   #define ABL_PROBE_PT_3_Y 20
847
 
835
 
848
-#endif
836
+#elif ENABLED(MESH_BED_LEVELING)
837
+
838
+//===========================================================================
839
+//=================================== Mesh ==================================
840
+//===========================================================================
841
+
842
+  #define MANUAL_PROBE_Z_RANGE 4 // Z after Home, bed somewhere below but above 0.0.
843
+  #define MESH_INSET 10          // Mesh inset margin on print area
844
+  #define MESH_NUM_X_POINTS 3    // Don't use more than 7 points per axis, implementation limited.
845
+  #define MESH_NUM_Y_POINTS 3
846
+
847
+  //#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest at origin [0,0,0]
848
+
849
+  //#define MANUAL_BED_LEVELING  // Add display menu option for bed leveling.
850
+
851
+  #if ENABLED(MANUAL_BED_LEVELING)
852
+    #define MBL_Z_STEP 0.025     // Step size while manually probing Z axis.
853
+  #endif  // MANUAL_BED_LEVELING
854
+
855
+#elif ENABLED(AUTO_BED_LEVELING_UBL)
856
+
857
+//===========================================================================
858
+//========================= Unified Bed Leveling ============================
859
+//===========================================================================
860
+
861
+  #define UBL_MESH_INSET 1          // Mesh inset margin on print area
862
+  #define UBL_MESH_NUM_X_POINTS 10  // Don't use more than 15 points per axis, implementation limited.
863
+  #define UBL_MESH_NUM_Y_POINTS 10
864
+  #define UBL_PROBE_PT_1_X 39       // These set the probe locations for when UBL does a 3-Point leveling
865
+  #define UBL_PROBE_PT_1_Y 180      // of the mesh.
866
+  #define UBL_PROBE_PT_2_X 39
867
+  #define UBL_PROBE_PT_2_Y 20
868
+  #define UBL_PROBE_PT_3_X 180
869
+  #define UBL_PROBE_PT_3_Y 20
870
+
871
+#endif  // BED_LEVELING
849
 
872
 
850
 /**
873
 /**
851
  * Commands to execute at the end of G29 probing.
874
  * Commands to execute at the end of G29 probing.

+ 59
- 36
Marlin/example_configurations/Hephestos_2/Configuration.h View File

231
  *    60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
231
  *    60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
232
  *    66 : 4.7M High Temperature thermistor from Dyze Design
232
  *    66 : 4.7M High Temperature thermistor from Dyze Design
233
  *    70 : the 100K thermistor found in the bq Hephestos 2
233
  *    70 : the 100K thermistor found in the bq Hephestos 2
234
+ *    75 : 100k Generic Silicon Heat Pad typically a NTC 100K MGB18-104F39050L32 thermistor
234
  *
235
  *
235
  *       1k ohm pullup tables - This is atypical, and requires changing out the 4.7k pullup for 1k.
236
  *       1k ohm pullup tables - This is atypical, and requires changing out the 4.7k pullup for 1k.
236
  *                              (but gives greater accuracy and more stable PID)
237
  *                              (but gives greater accuracy and more stable PID)
597
 //
598
 //
598
 // To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
599
 // To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
599
 //
600
 //
600
-// For a servo-based Z probe, you must set up servo support below, including
601
-// NUM_SERVOS, Z_ENDSTOP_SERVO_NR and Z_SERVO_ANGLES.
601
+// For a servo-based Z probe, just set Z_ENDSTOP_SERVO_NR and Z_SERVO_ANGLES above.
602
 //
602
 //
603
 // - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
603
 // - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
604
 // - Use 5V for powered (usu. inductive) sensors.
604
 // - Use 5V for powered (usu. inductive) sensors.
735
   #define FILAMENT_RUNOUT_SCRIPT "M600"
735
   #define FILAMENT_RUNOUT_SCRIPT "M600"
736
 #endif
736
 #endif
737
 
737
 
738
-//===========================================================================
739
-//============================ Mesh Bed Leveling ============================
740
-//===========================================================================
741
-
742
-//#define MESH_BED_LEVELING    // Enable mesh bed leveling.
743
-
744
-#if ENABLED(MESH_BED_LEVELING)
745
-  #define MESH_INSET 10        // Mesh inset margin on print area
746
-  #define MESH_NUM_X_POINTS 3  // Don't use more than 7 points per axis, implementation limited.
747
-  #define MESH_NUM_Y_POINTS 3
748
-  #define MANUAL_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
749
-
750
-  //#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS
751
-
752
-  //#define MANUAL_BED_LEVELING  // Add display menu option for bed leveling.
753
-
754
-  #if ENABLED(MANUAL_BED_LEVELING)
755
-    #define MBL_Z_STEP 0.025  // Step size while manually probing Z axis.
756
-  #endif  // MANUAL_BED_LEVELING
757
-
758
-  // Gradually reduce leveling correction until a set height is reached,
759
-  // at which point movement will be level to the machine's XY plane.
760
-  // The height can be set with M420 Z<height>
761
-  #define ENABLE_LEVELING_FADE_HEIGHT
762
-
763
-#endif  // MESH_BED_LEVELING
764
 
738
 
765
 //===========================================================================
739
 //===========================================================================
766
-//============================ Auto Bed Leveling ============================
740
+//=============================== Bed Leveling ==============================
767
 //===========================================================================
741
 //===========================================================================
768
 // @section bedlevel
742
 // @section bedlevel
769
 
743
 
787
  *   Probe several points in a grid.
761
  *   Probe several points in a grid.
788
  *   You specify the rectangle and the density of sample points.
762
  *   You specify the rectangle and the density of sample points.
789
  *   The result is a mesh, best for large or uneven beds.
763
  *   The result is a mesh, best for large or uneven beds.
764
+ *
765
+ * - UBL Unified Bed Leveling
766
+ *   A comprehensive bed leveling system that combines features and benefits from previous
767
+ *   bed leveling system.  The UBL Bed Leveling System also includes an integrated and easy to use
768
+ *   Mesh Generation, Mesh Validation and Mesh Editing system.
769
+ *     - Currently, the UBL Bed Leveling System is only checked out for Cartesian Printers.  But with
770
+ *       that said, it was primarily designed to handle poor quality Delta Printers.  If you feel
771
+ *       adventurous and have a Delta, please post an issue if something doesn't work correctly.
772
+ *       Initially, you will need to reduce your declared bed size so you have a rectangular area to
773
+ *       test on.
790
  */
774
  */
791
 //#define AUTO_BED_LEVELING_3POINT
775
 //#define AUTO_BED_LEVELING_3POINT
792
-#define AUTO_BED_LEVELING_LINEAR
776
+//#define AUTO_BED_LEVELING_LINEAR
793
 //#define AUTO_BED_LEVELING_BILINEAR
777
 //#define AUTO_BED_LEVELING_BILINEAR
778
+//#define MESH_BED_LEVELING
779
+//#define AUTO_BED_LEVELING_UBL
794
 
780
 
795
 /**
781
 /**
796
  * Enable detailed logging of G28, G29, M48, etc.
782
  * Enable detailed logging of G28, G29, M48, etc.
799
  */
785
  */
800
 //#define DEBUG_LEVELING_FEATURE
786
 //#define DEBUG_LEVELING_FEATURE
801
 
787
 
788
+#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_BILINEAR) || ENABLED(AUTO_BED_LEVELING_UBL)
789
+  // Gradually reduce leveling correction until a set height is reached,
790
+  // at which point movement will be level to the machine's XY plane.
791
+  // The height can be set with M420 Z<height>
792
+  #define ENABLE_LEVELING_FADE_HEIGHT
793
+#endif
794
+
802
 #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
795
 #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
803
 
796
 
804
   // Set the number of grid points per dimension.
797
   // Set the number of grid points per dimension.
819
 
812
 
820
   #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
813
   #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
821
 
814
 
822
-    // Gradually reduce leveling correction until a set height is reached,
823
-    // at which point movement will be level to the machine's XY plane.
824
-    // The height can be set with M420 Z<height>
825
-    #define ENABLE_LEVELING_FADE_HEIGHT
826
-
827
     //
815
     //
828
     // Experimental Subdivision of the grid by Catmull-Rom method.
816
     // Experimental Subdivision of the grid by Catmull-Rom method.
829
     // Synthesizes intermediate points to produce a more detailed mesh.
817
     // Synthesizes intermediate points to produce a more detailed mesh.
847
   #define ABL_PROBE_PT_3_X ((X_MIN_POS + X_MAX_POS) / 2)
835
   #define ABL_PROBE_PT_3_X ((X_MIN_POS + X_MAX_POS) / 2)
848
   #define ABL_PROBE_PT_3_Y Y_MAX_POS - (Y_PROBE_OFFSET_FROM_EXTRUDER)
836
   #define ABL_PROBE_PT_3_Y Y_MAX_POS - (Y_PROBE_OFFSET_FROM_EXTRUDER)
849
 
837
 
850
-#endif
838
+#elif ENABLED(MESH_BED_LEVELING)
839
+
840
+//===========================================================================
841
+//=================================== Mesh ==================================
842
+//===========================================================================
843
+
844
+  #define MANUAL_PROBE_Z_RANGE 4 // Z after Home, bed somewhere below but above 0.0.
845
+  #define MESH_INSET 10          // Mesh inset margin on print area
846
+  #define MESH_NUM_X_POINTS 3    // Don't use more than 7 points per axis, implementation limited.
847
+  #define MESH_NUM_Y_POINTS 3
848
+
849
+  //#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest at origin [0,0,0]
850
+
851
+  //#define MANUAL_BED_LEVELING  // Add display menu option for bed leveling.
852
+
853
+  #if ENABLED(MANUAL_BED_LEVELING)
854
+    #define MBL_Z_STEP 0.025     // Step size while manually probing Z axis.
855
+  #endif  // MANUAL_BED_LEVELING
856
+
857
+#elif ENABLED(AUTO_BED_LEVELING_UBL)
858
+
859
+//===========================================================================
860
+//========================= Unified Bed Leveling ============================
861
+//===========================================================================
862
+
863
+  #define UBL_MESH_INSET 1          // Mesh inset margin on print area
864
+  #define UBL_MESH_NUM_X_POINTS 10  // Don't use more than 15 points per axis, implementation limited.
865
+  #define UBL_MESH_NUM_Y_POINTS 10
866
+  #define UBL_PROBE_PT_1_X 39       // These set the probe locations for when UBL does a 3-Point leveling
867
+  #define UBL_PROBE_PT_1_Y 180      // of the mesh.
868
+  #define UBL_PROBE_PT_2_X 39
869
+  #define UBL_PROBE_PT_2_Y 20
870
+  #define UBL_PROBE_PT_3_X 180
871
+  #define UBL_PROBE_PT_3_Y 20
872
+
873
+#endif  // BED_LEVELING
851
 
874
 
852
 /**
875
 /**
853
  * Commands to execute at the end of G29 probing.
876
  * Commands to execute at the end of G29 probing.

+ 58
- 35
Marlin/example_configurations/K8200/Configuration.h View File

251
  *    60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
251
  *    60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
252
  *    66 : 4.7M High Temperature thermistor from Dyze Design
252
  *    66 : 4.7M High Temperature thermistor from Dyze Design
253
  *    70 : the 100K thermistor found in the bq Hephestos 2
253
  *    70 : the 100K thermistor found in the bq Hephestos 2
254
+ *    75 : 100k Generic Silicon Heat Pad typically a NTC 100K MGB18-104F39050L32 thermistor
254
  *
255
  *
255
  *       1k ohm pullup tables - This is atypical, and requires changing out the 4.7k pullup for 1k.
256
  *       1k ohm pullup tables - This is atypical, and requires changing out the 4.7k pullup for 1k.
256
  *                              (but gives greater accuracy and more stable PID)
257
  *                              (but gives greater accuracy and more stable PID)
632
 //
633
 //
633
 // To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
634
 // To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
634
 //
635
 //
635
-// For a servo-based Z probe, you must set up servo support below, including
636
-// NUM_SERVOS, Z_ENDSTOP_SERVO_NR and Z_SERVO_ANGLES.
636
+// For a servo-based Z probe, just set Z_ENDSTOP_SERVO_NR and Z_SERVO_ANGLES above.
637
 //
637
 //
638
 // - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
638
 // - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
639
 // - Use 5V for powered (usu. inductive) sensors.
639
 // - Use 5V for powered (usu. inductive) sensors.
770
   #define FILAMENT_RUNOUT_SCRIPT "M600"
770
   #define FILAMENT_RUNOUT_SCRIPT "M600"
771
 #endif
771
 #endif
772
 
772
 
773
-//===========================================================================
774
-//============================ Mesh Bed Leveling ============================
775
-//===========================================================================
776
-
777
-//#define MESH_BED_LEVELING    // Enable mesh bed leveling.
778
-
779
-#if ENABLED(MESH_BED_LEVELING)
780
-  #define MESH_INSET 10        // Mesh inset margin on print area
781
-  #define MESH_NUM_X_POINTS 3  // Don't use more than 7 points per axis, implementation limited.
782
-  #define MESH_NUM_Y_POINTS 3
783
-  #define MANUAL_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
784
-
785
-  //#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS
786
-
787
-  //#define MANUAL_BED_LEVELING  // Add display menu option for bed leveling.
788
-
789
-  #if ENABLED(MANUAL_BED_LEVELING)
790
-    #define MBL_Z_STEP 0.025  // Step size while manually probing Z axis.
791
-  #endif  // MANUAL_BED_LEVELING
792
-
793
-  // Gradually reduce leveling correction until a set height is reached,
794
-  // at which point movement will be level to the machine's XY plane.
795
-  // The height can be set with M420 Z<height>
796
-  #define ENABLE_LEVELING_FADE_HEIGHT
797
-
798
-#endif  // MESH_BED_LEVELING
799
 
773
 
800
 //===========================================================================
774
 //===========================================================================
801
-//============================ Auto Bed Leveling ============================
775
+//=============================== Bed Leveling ==============================
802
 //===========================================================================
776
 //===========================================================================
803
 // @section bedlevel
777
 // @section bedlevel
804
 
778
 
822
  *   Probe several points in a grid.
796
  *   Probe several points in a grid.
823
  *   You specify the rectangle and the density of sample points.
797
  *   You specify the rectangle and the density of sample points.
824
  *   The result is a mesh, best for large or uneven beds.
798
  *   The result is a mesh, best for large or uneven beds.
799
+ *
800
+ * - UBL Unified Bed Leveling
801
+ *   A comprehensive bed leveling system that combines features and benefits from previous
802
+ *   bed leveling system.  The UBL Bed Leveling System also includes an integrated and easy to use
803
+ *   Mesh Generation, Mesh Validation and Mesh Editing system.
804
+ *     - Currently, the UBL Bed Leveling System is only checked out for Cartesian Printers.  But with
805
+ *       that said, it was primarily designed to handle poor quality Delta Printers.  If you feel
806
+ *       adventurous and have a Delta, please post an issue if something doesn't work correctly.
807
+ *       Initially, you will need to reduce your declared bed size so you have a rectangular area to
808
+ *       test on.
825
  */
809
  */
826
 //#define AUTO_BED_LEVELING_3POINT
810
 //#define AUTO_BED_LEVELING_3POINT
827
 //#define AUTO_BED_LEVELING_LINEAR
811
 //#define AUTO_BED_LEVELING_LINEAR
828
 //#define AUTO_BED_LEVELING_BILINEAR
812
 //#define AUTO_BED_LEVELING_BILINEAR
813
+//#define MESH_BED_LEVELING
814
+//#define AUTO_BED_LEVELING_UBL
829
 
815
 
830
 /**
816
 /**
831
  * Enable detailed logging of G28, G29, M48, etc.
817
  * Enable detailed logging of G28, G29, M48, etc.
834
  */
820
  */
835
 //#define DEBUG_LEVELING_FEATURE
821
 //#define DEBUG_LEVELING_FEATURE
836
 
822
 
823
+#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_BILINEAR) || ENABLED(AUTO_BED_LEVELING_UBL)
824
+  // Gradually reduce leveling correction until a set height is reached,
825
+  // at which point movement will be level to the machine's XY plane.
826
+  // The height can be set with M420 Z<height>
827
+  #define ENABLE_LEVELING_FADE_HEIGHT
828
+#endif
829
+
837
 #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
830
 #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
838
 
831
 
839
   // Set the number of grid points per dimension.
832
   // Set the number of grid points per dimension.
854
 
847
 
855
   #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
848
   #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
856
 
849
 
857
-    // Gradually reduce leveling correction until a set height is reached,
858
-    // at which point movement will be level to the machine's XY plane.
859
-    // The height can be set with M420 Z<height>
860
-    #define ENABLE_LEVELING_FADE_HEIGHT
861
-
862
     //
850
     //
863
     // Experimental Subdivision of the grid by Catmull-Rom method.
851
     // Experimental Subdivision of the grid by Catmull-Rom method.
864
     // Synthesizes intermediate points to produce a more detailed mesh.
852
     // Synthesizes intermediate points to produce a more detailed mesh.
882
   #define ABL_PROBE_PT_3_X 170
870
   #define ABL_PROBE_PT_3_X 170
883
   #define ABL_PROBE_PT_3_Y 20
871
   #define ABL_PROBE_PT_3_Y 20
884
 
872
 
885
-#endif
873
+#elif ENABLED(MESH_BED_LEVELING)
874
+
875
+//===========================================================================
876
+//=================================== Mesh ==================================
877
+//===========================================================================
878
+
879
+  #define MANUAL_PROBE_Z_RANGE 4 // Z after Home, bed somewhere below but above 0.0.
880
+  #define MESH_INSET 10          // Mesh inset margin on print area
881
+  #define MESH_NUM_X_POINTS 3    // Don't use more than 7 points per axis, implementation limited.
882
+  #define MESH_NUM_Y_POINTS 3
883
+
884
+  //#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest at origin [0,0,0]
885
+
886
+  //#define MANUAL_BED_LEVELING  // Add display menu option for bed leveling.
887
+
888
+  #if ENABLED(MANUAL_BED_LEVELING)
889
+    #define MBL_Z_STEP 0.025     // Step size while manually probing Z axis.
890
+  #endif  // MANUAL_BED_LEVELING
891
+
892
+#elif ENABLED(AUTO_BED_LEVELING_UBL)
893
+
894
+//===========================================================================
895
+//========================= Unified Bed Leveling ============================
896
+//===========================================================================
897
+
898
+  #define UBL_MESH_INSET 1          // Mesh inset margin on print area
899
+  #define UBL_MESH_NUM_X_POINTS 10  // Don't use more than 15 points per axis, implementation limited.
900
+  #define UBL_MESH_NUM_Y_POINTS 10
901
+  #define UBL_PROBE_PT_1_X 39       // These set the probe locations for when UBL does a 3-Point leveling
902
+  #define UBL_PROBE_PT_1_Y 180      // of the mesh.
903
+  #define UBL_PROBE_PT_2_X 39
904
+  #define UBL_PROBE_PT_2_Y 20
905
+  #define UBL_PROBE_PT_3_X 180
906
+  #define UBL_PROBE_PT_3_Y 20
907
+
908
+#endif  // BED_LEVELING
886
 
909
 
887
 /**
910
 /**
888
  * Commands to execute at the end of G29 probing.
911
  * Commands to execute at the end of G29 probing.

+ 58
- 35
Marlin/example_configurations/K8400/Configuration.h View File

231
  *    60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
231
  *    60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
232
  *    66 : 4.7M High Temperature thermistor from Dyze Design
232
  *    66 : 4.7M High Temperature thermistor from Dyze Design
233
  *    70 : the 100K thermistor found in the bq Hephestos 2
233
  *    70 : the 100K thermistor found in the bq Hephestos 2
234
+ *    75 : 100k Generic Silicon Heat Pad typically a NTC 100K MGB18-104F39050L32 thermistor
234
  *
235
  *
235
  *       1k ohm pullup tables - This is atypical, and requires changing out the 4.7k pullup for 1k.
236
  *       1k ohm pullup tables - This is atypical, and requires changing out the 4.7k pullup for 1k.
236
  *                              (but gives greater accuracy and more stable PID)
237
  *                              (but gives greater accuracy and more stable PID)
603
 //
604
 //
604
 // To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
605
 // To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
605
 //
606
 //
606
-// For a servo-based Z probe, you must set up servo support below, including
607
-// NUM_SERVOS, Z_ENDSTOP_SERVO_NR and Z_SERVO_ANGLES.
607
+// For a servo-based Z probe, just set Z_ENDSTOP_SERVO_NR and Z_SERVO_ANGLES above.
608
 //
608
 //
609
 // - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
609
 // - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
610
 // - Use 5V for powered (usu. inductive) sensors.
610
 // - Use 5V for powered (usu. inductive) sensors.
741
   #define FILAMENT_RUNOUT_SCRIPT "M600"
741
   #define FILAMENT_RUNOUT_SCRIPT "M600"
742
 #endif
742
 #endif
743
 
743
 
744
-//===========================================================================
745
-//============================ Mesh Bed Leveling ============================
746
-//===========================================================================
747
-
748
-//#define MESH_BED_LEVELING    // Enable mesh bed leveling.
749
-
750
-#if ENABLED(MESH_BED_LEVELING)
751
-  #define MESH_INSET 10        // Mesh inset margin on print area
752
-  #define MESH_NUM_X_POINTS 3  // Don't use more than 7 points per axis, implementation limited.
753
-  #define MESH_NUM_Y_POINTS 3
754
-  #define MANUAL_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
755
-
756
-  //#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS
757
-
758
-  //#define MANUAL_BED_LEVELING  // Add display menu option for bed leveling.
759
-
760
-  #if ENABLED(MANUAL_BED_LEVELING)
761
-    #define MBL_Z_STEP 0.025  // Step size while manually probing Z axis.
762
-  #endif  // MANUAL_BED_LEVELING
763
-
764
-  // Gradually reduce leveling correction until a set height is reached,
765
-  // at which point movement will be level to the machine's XY plane.
766
-  // The height can be set with M420 Z<height>
767
-  #define ENABLE_LEVELING_FADE_HEIGHT
768
-
769
-#endif  // MESH_BED_LEVELING
770
 
744
 
771
 //===========================================================================
745
 //===========================================================================
772
-//============================ Auto Bed Leveling ============================
746
+//=============================== Bed Leveling ==============================
773
 //===========================================================================
747
 //===========================================================================
774
 // @section bedlevel
748
 // @section bedlevel
775
 
749
 
793
  *   Probe several points in a grid.
767
  *   Probe several points in a grid.
794
  *   You specify the rectangle and the density of sample points.
768
  *   You specify the rectangle and the density of sample points.
795
  *   The result is a mesh, best for large or uneven beds.
769
  *   The result is a mesh, best for large or uneven beds.
770
+ *
771
+ * - UBL Unified Bed Leveling
772
+ *   A comprehensive bed leveling system that combines features and benefits from previous
773
+ *   bed leveling system.  The UBL Bed Leveling System also includes an integrated and easy to use
774
+ *   Mesh Generation, Mesh Validation and Mesh Editing system.
775
+ *     - Currently, the UBL Bed Leveling System is only checked out for Cartesian Printers.  But with
776
+ *       that said, it was primarily designed to handle poor quality Delta Printers.  If you feel
777
+ *       adventurous and have a Delta, please post an issue if something doesn't work correctly.
778
+ *       Initially, you will need to reduce your declared bed size so you have a rectangular area to
779
+ *       test on.
796
  */
780
  */
797
 //#define AUTO_BED_LEVELING_3POINT
781
 //#define AUTO_BED_LEVELING_3POINT
798
 //#define AUTO_BED_LEVELING_LINEAR
782
 //#define AUTO_BED_LEVELING_LINEAR
799
 //#define AUTO_BED_LEVELING_BILINEAR
783
 //#define AUTO_BED_LEVELING_BILINEAR
784
+//#define MESH_BED_LEVELING
785
+//#define AUTO_BED_LEVELING_UBL
800
 
786
 
801
 /**
787
 /**
802
  * Enable detailed logging of G28, G29, M48, etc.
788
  * Enable detailed logging of G28, G29, M48, etc.
805
  */
791
  */
806
 //#define DEBUG_LEVELING_FEATURE
792
 //#define DEBUG_LEVELING_FEATURE
807
 
793
 
794
+#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_BILINEAR) || ENABLED(AUTO_BED_LEVELING_UBL)
795
+  // Gradually reduce leveling correction until a set height is reached,
796
+  // at which point movement will be level to the machine's XY plane.
797
+  // The height can be set with M420 Z<height>
798
+  #define ENABLE_LEVELING_FADE_HEIGHT
799
+#endif
800
+
808
 #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
801
 #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
809
 
802
 
810
   // Set the number of grid points per dimension.
803
   // Set the number of grid points per dimension.
825
 
818
 
826
   #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
819
   #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
827
 
820
 
828
-    // Gradually reduce leveling correction until a set height is reached,
829
-    // at which point movement will be level to the machine's XY plane.
830
-    // The height can be set with M420 Z<height>
831
-    #define ENABLE_LEVELING_FADE_HEIGHT
832
-
833
     //
821
     //
834
     // Experimental Subdivision of the grid by Catmull-Rom method.
822
     // Experimental Subdivision of the grid by Catmull-Rom method.
835
     // Synthesizes intermediate points to produce a more detailed mesh.
823
     // Synthesizes intermediate points to produce a more detailed mesh.
853
   #define ABL_PROBE_PT_3_X 170
841
   #define ABL_PROBE_PT_3_X 170
854
   #define ABL_PROBE_PT_3_Y 20
842
   #define ABL_PROBE_PT_3_Y 20
855
 
843
 
856
-#endif
844
+#elif ENABLED(MESH_BED_LEVELING)
845
+
846
+//===========================================================================
847
+//=================================== Mesh ==================================
848
+//===========================================================================
849
+
850
+  #define MANUAL_PROBE_Z_RANGE 4 // Z after Home, bed somewhere below but above 0.0.
851
+  #define MESH_INSET 10          // Mesh inset margin on print area
852
+  #define MESH_NUM_X_POINTS 3    // Don't use more than 7 points per axis, implementation limited.
853
+  #define MESH_NUM_Y_POINTS 3
854
+
855
+  //#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest at origin [0,0,0]
856
+
857
+  //#define MANUAL_BED_LEVELING  // Add display menu option for bed leveling.
858
+
859
+  #if ENABLED(MANUAL_BED_LEVELING)
860
+    #define MBL_Z_STEP 0.025     // Step size while manually probing Z axis.
861
+  #endif  // MANUAL_BED_LEVELING
862
+
863
+#elif ENABLED(AUTO_BED_LEVELING_UBL)
864
+
865
+//===========================================================================
866
+//========================= Unified Bed Leveling ============================
867
+//===========================================================================
868
+
869
+  #define UBL_MESH_INSET 1          // Mesh inset margin on print area
870
+  #define UBL_MESH_NUM_X_POINTS 10  // Don't use more than 15 points per axis, implementation limited.
871
+  #define UBL_MESH_NUM_Y_POINTS 10
872
+  #define UBL_PROBE_PT_1_X 39       // These set the probe locations for when UBL does a 3-Point leveling
873
+  #define UBL_PROBE_PT_1_Y 180      // of the mesh.
874
+  #define UBL_PROBE_PT_2_X 39
875
+  #define UBL_PROBE_PT_2_Y 20
876
+  #define UBL_PROBE_PT_3_X 180
877
+  #define UBL_PROBE_PT_3_Y 20
878
+
879
+#endif  // BED_LEVELING
857
 
880
 
858
 /**
881
 /**
859
  * Commands to execute at the end of G29 probing.
882
  * Commands to execute at the end of G29 probing.

+ 58
- 35
Marlin/example_configurations/K8400/Dual-head/Configuration.h View File

231
  *    60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
231
  *    60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
232
  *    66 : 4.7M High Temperature thermistor from Dyze Design
232
  *    66 : 4.7M High Temperature thermistor from Dyze Design
233
  *    70 : the 100K thermistor found in the bq Hephestos 2
233
  *    70 : the 100K thermistor found in the bq Hephestos 2
234
+ *    75 : 100k Generic Silicon Heat Pad typically a NTC 100K MGB18-104F39050L32 thermistor
234
  *
235
  *
235
  *       1k ohm pullup tables - This is atypical, and requires changing out the 4.7k pullup for 1k.
236
  *       1k ohm pullup tables - This is atypical, and requires changing out the 4.7k pullup for 1k.
236
  *                              (but gives greater accuracy and more stable PID)
237
  *                              (but gives greater accuracy and more stable PID)
603
 //
604
 //
604
 // To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
605
 // To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
605
 //
606
 //
606
-// For a servo-based Z probe, you must set up servo support below, including
607
-// NUM_SERVOS, Z_ENDSTOP_SERVO_NR and Z_SERVO_ANGLES.
607
+// For a servo-based Z probe, just set Z_ENDSTOP_SERVO_NR and Z_SERVO_ANGLES above.
608
 //
608
 //
609
 // - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
609
 // - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
610
 // - Use 5V for powered (usu. inductive) sensors.
610
 // - Use 5V for powered (usu. inductive) sensors.
741
   #define FILAMENT_RUNOUT_SCRIPT "M600"
741
   #define FILAMENT_RUNOUT_SCRIPT "M600"
742
 #endif
742
 #endif
743
 
743
 
744
-//===========================================================================
745
-//============================ Mesh Bed Leveling ============================
746
-//===========================================================================
747
-
748
-//#define MESH_BED_LEVELING    // Enable mesh bed leveling.
749
-
750
-#if ENABLED(MESH_BED_LEVELING)
751
-  #define MESH_INSET 10        // Mesh inset margin on print area
752
-  #define MESH_NUM_X_POINTS 3  // Don't use more than 7 points per axis, implementation limited.
753
-  #define MESH_NUM_Y_POINTS 3
754
-  #define MANUAL_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
755
-
756
-  //#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS
757
-
758
-  //#define MANUAL_BED_LEVELING  // Add display menu option for bed leveling.
759
-
760
-  #if ENABLED(MANUAL_BED_LEVELING)
761
-    #define MBL_Z_STEP 0.025  // Step size while manually probing Z axis.
762
-  #endif  // MANUAL_BED_LEVELING
763
-
764
-  // Gradually reduce leveling correction until a set height is reached,
765
-  // at which point movement will be level to the machine's XY plane.
766
-  // The height can be set with M420 Z<height>
767
-  #define ENABLE_LEVELING_FADE_HEIGHT
768
-
769
-#endif  // MESH_BED_LEVELING
770
 
744
 
771
 //===========================================================================
745
 //===========================================================================
772
-//============================ Auto Bed Leveling ============================
746
+//=============================== Bed Leveling ==============================
773
 //===========================================================================
747
 //===========================================================================
774
 // @section bedlevel
748
 // @section bedlevel
775
 
749
 
793
  *   Probe several points in a grid.
767
  *   Probe several points in a grid.
794
  *   You specify the rectangle and the density of sample points.
768
  *   You specify the rectangle and the density of sample points.
795
  *   The result is a mesh, best for large or uneven beds.
769
  *   The result is a mesh, best for large or uneven beds.
770
+ *
771
+ * - UBL Unified Bed Leveling
772
+ *   A comprehensive bed leveling system that combines features and benefits from previous
773
+ *   bed leveling system.  The UBL Bed Leveling System also includes an integrated and easy to use
774
+ *   Mesh Generation, Mesh Validation and Mesh Editing system.
775
+ *     - Currently, the UBL Bed Leveling System is only checked out for Cartesian Printers.  But with
776
+ *       that said, it was primarily designed to handle poor quality Delta Printers.  If you feel
777
+ *       adventurous and have a Delta, please post an issue if something doesn't work correctly.
778
+ *       Initially, you will need to reduce your declared bed size so you have a rectangular area to
779
+ *       test on.
796
  */
780
  */
797
 //#define AUTO_BED_LEVELING_3POINT
781
 //#define AUTO_BED_LEVELING_3POINT
798
 //#define AUTO_BED_LEVELING_LINEAR
782
 //#define AUTO_BED_LEVELING_LINEAR
799
 //#define AUTO_BED_LEVELING_BILINEAR
783
 //#define AUTO_BED_LEVELING_BILINEAR
784
+//#define MESH_BED_LEVELING
785
+//#define AUTO_BED_LEVELING_UBL
800
 
786
 
801
 /**
787
 /**
802
  * Enable detailed logging of G28, G29, M48, etc.
788
  * Enable detailed logging of G28, G29, M48, etc.
805
  */
791
  */
806
 //#define DEBUG_LEVELING_FEATURE
792
 //#define DEBUG_LEVELING_FEATURE
807
 
793
 
794
+#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_BILINEAR) || ENABLED(AUTO_BED_LEVELING_UBL)
795
+  // Gradually reduce leveling correction until a set height is reached,
796
+  // at which point movement will be level to the machine's XY plane.
797
+  // The height can be set with M420 Z<height>
798
+  #define ENABLE_LEVELING_FADE_HEIGHT
799
+#endif
800
+
808
 #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
801
 #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
809
 
802
 
810
   // Set the number of grid points per dimension.
803
   // Set the number of grid points per dimension.
825
 
818
 
826
   #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
819
   #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
827
 
820
 
828
-    // Gradually reduce leveling correction until a set height is reached,
829
-    // at which point movement will be level to the machine's XY plane.
830
-    // The height can be set with M420 Z<height>
831
-    #define ENABLE_LEVELING_FADE_HEIGHT
832
-
833
     //
821
     //
834
     // Experimental Subdivision of the grid by Catmull-Rom method.
822
     // Experimental Subdivision of the grid by Catmull-Rom method.
835
     // Synthesizes intermediate points to produce a more detailed mesh.
823
     // Synthesizes intermediate points to produce a more detailed mesh.
853
   #define ABL_PROBE_PT_3_X 170
841
   #define ABL_PROBE_PT_3_X 170
854
   #define ABL_PROBE_PT_3_Y 20
842
   #define ABL_PROBE_PT_3_Y 20
855
 
843
 
856
-#endif
844
+#elif ENABLED(MESH_BED_LEVELING)
845
+
846
+//===========================================================================
847
+//=================================== Mesh ==================================
848
+//===========================================================================
849
+
850
+  #define MANUAL_PROBE_Z_RANGE 4 // Z after Home, bed somewhere below but above 0.0.
851
+  #define MESH_INSET 10          // Mesh inset margin on print area
852
+  #define MESH_NUM_X_POINTS 3    // Don't use more than 7 points per axis, implementation limited.
853
+  #define MESH_NUM_Y_POINTS 3
854
+
855
+  //#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest at origin [0,0,0]
856
+
857
+  //#define MANUAL_BED_LEVELING  // Add display menu option for bed leveling.
858
+
859
+  #if ENABLED(MANUAL_BED_LEVELING)
860
+    #define MBL_Z_STEP 0.025     // Step size while manually probing Z axis.
861
+  #endif  // MANUAL_BED_LEVELING
862
+
863
+#elif ENABLED(AUTO_BED_LEVELING_UBL)
864
+
865
+//===========================================================================
866
+//========================= Unified Bed Leveling ============================
867
+//===========================================================================
868
+
869
+  #define UBL_MESH_INSET 1          // Mesh inset margin on print area
870
+  #define UBL_MESH_NUM_X_POINTS 10  // Don't use more than 15 points per axis, implementation limited.
871
+  #define UBL_MESH_NUM_Y_POINTS 10
872
+  #define UBL_PROBE_PT_1_X 39       // These set the probe locations for when UBL does a 3-Point leveling
873
+  #define UBL_PROBE_PT_1_Y 180      // of the mesh.
874
+  #define UBL_PROBE_PT_2_X 39
875
+  #define UBL_PROBE_PT_2_Y 20
876
+  #define UBL_PROBE_PT_3_X 180
877
+  #define UBL_PROBE_PT_3_Y 20
878
+
879
+#endif  // BED_LEVELING
857
 
880
 
858
 /**
881
 /**
859
  * Commands to execute at the end of G29 probing.
882
  * Commands to execute at the end of G29 probing.

+ 58
- 35
Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h View File

231
  *    60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
231
  *    60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
232
  *    66 : 4.7M High Temperature thermistor from Dyze Design
232
  *    66 : 4.7M High Temperature thermistor from Dyze Design
233
  *    70 : the 100K thermistor found in the bq Hephestos 2
233
  *    70 : the 100K thermistor found in the bq Hephestos 2
234
+ *    75 : 100k Generic Silicon Heat Pad typically a NTC 100K MGB18-104F39050L32 thermistor
234
  *
235
  *
235
  *       1k ohm pullup tables - This is atypical, and requires changing out the 4.7k pullup for 1k.
236
  *       1k ohm pullup tables - This is atypical, and requires changing out the 4.7k pullup for 1k.
236
  *                              (but gives greater accuracy and more stable PID)
237
  *                              (but gives greater accuracy and more stable PID)
603
 //
604
 //
604
 // To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
605
 // To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
605
 //
606
 //
606
-// For a servo-based Z probe, you must set up servo support below, including
607
-// NUM_SERVOS, Z_ENDSTOP_SERVO_NR and Z_SERVO_ANGLES.
607
+// For a servo-based Z probe, just set Z_ENDSTOP_SERVO_NR and Z_SERVO_ANGLES above.
608
 //
608
 //
609
 // - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
609
 // - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
610
 // - Use 5V for powered (usu. inductive) sensors.
610
 // - Use 5V for powered (usu. inductive) sensors.
741
   #define FILAMENT_RUNOUT_SCRIPT "M600"
741
   #define FILAMENT_RUNOUT_SCRIPT "M600"
742
 #endif
742
 #endif
743
 
743
 
744
-//===========================================================================
745
-//============================ Mesh Bed Leveling ============================
746
-//===========================================================================
747
-
748
-//#define MESH_BED_LEVELING    // Enable mesh bed leveling.
749
-
750
-#if ENABLED(MESH_BED_LEVELING)
751
-  #define MESH_INSET 10        // Mesh inset margin on print area
752
-  #define MESH_NUM_X_POINTS 3  // Don't use more than 7 points per axis, implementation limited.
753
-  #define MESH_NUM_Y_POINTS 3
754
-  #define MANUAL_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
755
-
756
-  //#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS
757
-
758
-  //#define MANUAL_BED_LEVELING  // Add display menu option for bed leveling.
759
-
760
-  #if ENABLED(MANUAL_BED_LEVELING)
761
-    #define MBL_Z_STEP 0.025  // Step size while manually probing Z axis.
762
-  #endif  // MANUAL_BED_LEVELING
763
-
764
-  // Gradually reduce leveling correction until a set height is reached,
765
-  // at which point movement will be level to the machine's XY plane.
766
-  // The height can be set with M420 Z<height>
767
-  #define ENABLE_LEVELING_FADE_HEIGHT
768
-
769
-#endif  // MESH_BED_LEVELING
770
 
744
 
771
 //===========================================================================
745
 //===========================================================================
772
-//============================ Auto Bed Leveling ============================
746
+//=============================== Bed Leveling ==============================
773
 //===========================================================================
747
 //===========================================================================
774
 // @section bedlevel
748
 // @section bedlevel
775
 
749
 
793
  *   Probe several points in a grid.
767
  *   Probe several points in a grid.
794
  *   You specify the rectangle and the density of sample points.
768
  *   You specify the rectangle and the density of sample points.
795
  *   The result is a mesh, best for large or uneven beds.
769
  *   The result is a mesh, best for large or uneven beds.
770
+ *
771
+ * - UBL Unified Bed Leveling
772
+ *   A comprehensive bed leveling system that combines features and benefits from previous
773
+ *   bed leveling system.  The UBL Bed Leveling System also includes an integrated and easy to use
774
+ *   Mesh Generation, Mesh Validation and Mesh Editing system.
775
+ *     - Currently, the UBL Bed Leveling System is only checked out for Cartesian Printers.  But with
776
+ *       that said, it was primarily designed to handle poor quality Delta Printers.  If you feel
777
+ *       adventurous and have a Delta, please post an issue if something doesn't work correctly.
778
+ *       Initially, you will need to reduce your declared bed size so you have a rectangular area to
779
+ *       test on.
796
  */
780
  */
797
 //#define AUTO_BED_LEVELING_3POINT
781
 //#define AUTO_BED_LEVELING_3POINT
798
 //#define AUTO_BED_LEVELING_LINEAR
782
 //#define AUTO_BED_LEVELING_LINEAR
799
 //#define AUTO_BED_LEVELING_BILINEAR
783
 //#define AUTO_BED_LEVELING_BILINEAR
784
+//#define MESH_BED_LEVELING
785
+//#define AUTO_BED_LEVELING_UBL
800
 
786
 
801
 /**
787
 /**
802
  * Enable detailed logging of G28, G29, M48, etc.
788
  * Enable detailed logging of G28, G29, M48, etc.
805
  */
791
  */
806
 //#define DEBUG_LEVELING_FEATURE
792
 //#define DEBUG_LEVELING_FEATURE
807
 
793
 
794
+#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_BILINEAR) || ENABLED(AUTO_BED_LEVELING_UBL)
795
+  // Gradually reduce leveling correction until a set height is reached,
796
+  // at which point movement will be level to the machine's XY plane.
797
+  // The height can be set with M420 Z<height>
798
+  #define ENABLE_LEVELING_FADE_HEIGHT
799
+#endif
800
+
808
 #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
801
 #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
809
 
802
 
810
   // Set the number of grid points per dimension.
803
   // Set the number of grid points per dimension.
825
 
818
 
826
   #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
819
   #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
827
 
820
 
828
-    // Gradually reduce leveling correction until a set height is reached,
829
-    // at which point movement will be level to the machine's XY plane.
830
-    // The height can be set with M420 Z<height>
831
-    #define ENABLE_LEVELING_FADE_HEIGHT
832
-
833
     //
821
     //
834
     // Experimental Subdivision of the grid by Catmull-Rom method.
822
     // Experimental Subdivision of the grid by Catmull-Rom method.
835
     // Synthesizes intermediate points to produce a more detailed mesh.
823
     // Synthesizes intermediate points to produce a more detailed mesh.
853
   #define ABL_PROBE_PT_3_X 170
841
   #define ABL_PROBE_PT_3_X 170
854
   #define ABL_PROBE_PT_3_Y 20
842
   #define ABL_PROBE_PT_3_Y 20
855
 
843
 
856
-#endif
844
+#elif ENABLED(MESH_BED_LEVELING)
845
+
846
+//===========================================================================
847
+//=================================== Mesh ==================================
848
+//===========================================================================
849
+
850
+  #define MANUAL_PROBE_Z_RANGE 4 // Z after Home, bed somewhere below but above 0.0.
851
+  #define MESH_INSET 10          // Mesh inset margin on print area
852
+  #define MESH_NUM_X_POINTS 3    // Don't use more than 7 points per axis, implementation limited.
853
+  #define MESH_NUM_Y_POINTS 3
854
+
855
+  //#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest at origin [0,0,0]
856
+
857
+  //#define MANUAL_BED_LEVELING  // Add display menu option for bed leveling.
858
+
859
+  #if ENABLED(MANUAL_BED_LEVELING)
860
+    #define MBL_Z_STEP 0.025     // Step size while manually probing Z axis.
861
+  #endif  // MANUAL_BED_LEVELING
862
+
863
+#elif ENABLED(AUTO_BED_LEVELING_UBL)
864
+
865
+//===========================================================================
866
+//========================= Unified Bed Leveling ============================
867
+//===========================================================================
868
+
869
+  #define UBL_MESH_INSET 1          // Mesh inset margin on print area
870
+  #define UBL_MESH_NUM_X_POINTS 10  // Don't use more than 15 points per axis, implementation limited.
871
+  #define UBL_MESH_NUM_Y_POINTS 10
872
+  #define UBL_PROBE_PT_1_X 39       // These set the probe locations for when UBL does a 3-Point leveling
873
+  #define UBL_PROBE_PT_1_Y 180      // of the mesh.
874
+  #define UBL_PROBE_PT_2_X 39
875
+  #define UBL_PROBE_PT_2_Y 20
876
+  #define UBL_PROBE_PT_3_X 180
877
+  #define UBL_PROBE_PT_3_Y 20
878
+
879
+#endif  // BED_LEVELING
857
 
880
 
858
 /**
881
 /**
859
  * Commands to execute at the end of G29 probing.
882
  * Commands to execute at the end of G29 probing.

+ 59
- 36
Marlin/example_configurations/RigidBot/Configuration.h View File

234
  *    60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
234
  *    60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
235
  *    66 : 4.7M High Temperature thermistor from Dyze Design
235
  *    66 : 4.7M High Temperature thermistor from Dyze Design
236
  *    70 : the 100K thermistor found in the bq Hephestos 2
236
  *    70 : the 100K thermistor found in the bq Hephestos 2
237
+ *    75 : 100k Generic Silicon Heat Pad typically a NTC 100K MGB18-104F39050L32 thermistor
237
  *
238
  *
238
  *       1k ohm pullup tables - This is atypical, and requires changing out the 4.7k pullup for 1k.
239
  *       1k ohm pullup tables - This is atypical, and requires changing out the 4.7k pullup for 1k.
239
  *                              (but gives greater accuracy and more stable PID)
240
  *                              (but gives greater accuracy and more stable PID)
602
 //
603
 //
603
 // To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
604
 // To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
604
 //
605
 //
605
-// For a servo-based Z probe, you must set up servo support below, including
606
-// NUM_SERVOS, Z_ENDSTOP_SERVO_NR and Z_SERVO_ANGLES.
606
+// For a servo-based Z probe, just set Z_ENDSTOP_SERVO_NR and Z_SERVO_ANGLES above.
607
 //
607
 //
608
 // - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
608
 // - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
609
 // - Use 5V for powered (usu. inductive) sensors.
609
 // - Use 5V for powered (usu. inductive) sensors.
740
   #define FILAMENT_RUNOUT_SCRIPT "M600"
740
   #define FILAMENT_RUNOUT_SCRIPT "M600"
741
 #endif
741
 #endif
742
 
742
 
743
-//===========================================================================
744
-//============================ Mesh Bed Leveling ============================
745
-//===========================================================================
746
-
747
-//#define MESH_BED_LEVELING    // Enable mesh bed leveling.
748
-
749
-#if ENABLED(MESH_BED_LEVELING)
750
-  #define MESH_INSET 10        // Mesh inset margin on print area
751
-  #define MESH_NUM_X_POINTS 3  // Don't use more than 7 points per axis, implementation limited.
752
-  #define MESH_NUM_Y_POINTS 3
753
-  #define MANUAL_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
754
-
755
-  //#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS
756
-
757
-  //#define MANUAL_BED_LEVELING  // Add display menu option for bed leveling.
758
-
759
-  #if ENABLED(MANUAL_BED_LEVELING)
760
-    #define MBL_Z_STEP 0.025  // Step size while manually probing Z axis.
761
-  #endif  // MANUAL_BED_LEVELING
762
-
763
-  // Gradually reduce leveling correction until a set height is reached,
764
-  // at which point movement will be level to the machine's XY plane.
765
-  // The height can be set with M420 Z<height>
766
-  #define ENABLE_LEVELING_FADE_HEIGHT
767
-
768
-#endif  // MESH_BED_LEVELING
769
 
743
 
770
 //===========================================================================
744
 //===========================================================================
771
-//============================ Auto Bed Leveling ============================
745
+//=============================== Bed Leveling ==============================
772
 //===========================================================================
746
 //===========================================================================
773
 // @section bedlevel
747
 // @section bedlevel
774
 
748
 
792
  *   Probe several points in a grid.
766
  *   Probe several points in a grid.
793
  *   You specify the rectangle and the density of sample points.
767
  *   You specify the rectangle and the density of sample points.
794
  *   The result is a mesh, best for large or uneven beds.
768
  *   The result is a mesh, best for large or uneven beds.
769
+ *
770
+ * - UBL Unified Bed Leveling
771
+ *   A comprehensive bed leveling system that combines features and benefits from previous
772
+ *   bed leveling system.  The UBL Bed Leveling System also includes an integrated and easy to use
773
+ *   Mesh Generation, Mesh Validation and Mesh Editing system.
774
+ *     - Currently, the UBL Bed Leveling System is only checked out for Cartesian Printers.  But with
775
+ *       that said, it was primarily designed to handle poor quality Delta Printers.  If you feel
776
+ *       adventurous and have a Delta, please post an issue if something doesn't work correctly.
777
+ *       Initially, you will need to reduce your declared bed size so you have a rectangular area to
778
+ *       test on.
795
  */
779
  */
796
 //#define AUTO_BED_LEVELING_3POINT
780
 //#define AUTO_BED_LEVELING_3POINT
797
 //#define AUTO_BED_LEVELING_LINEAR
781
 //#define AUTO_BED_LEVELING_LINEAR
798
 //#define AUTO_BED_LEVELING_BILINEAR
782
 //#define AUTO_BED_LEVELING_BILINEAR
783
+//#define MESH_BED_LEVELING
784
+//#define AUTO_BED_LEVELING_UBL
799
 
785
 
800
 /**
786
 /**
801
  * Enable detailed logging of G28, G29, M48, etc.
787
  * Enable detailed logging of G28, G29, M48, etc.
804
  */
790
  */
805
 //#define DEBUG_LEVELING_FEATURE
791
 //#define DEBUG_LEVELING_FEATURE
806
 
792
 
793
+#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_BILINEAR) || ENABLED(AUTO_BED_LEVELING_UBL)
794
+  // Gradually reduce leveling correction until a set height is reached,
795
+  // at which point movement will be level to the machine's XY plane.
796
+  // The height can be set with M420 Z<height>
797
+  #define ENABLE_LEVELING_FADE_HEIGHT
798
+#endif
799
+
807
 #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
800
 #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
808
 
801
 
809
   // Set the number of grid points per dimension.
802
   // Set the number of grid points per dimension.
824
 
817
 
825
   #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
818
   #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
826
 
819
 
827
-    // Gradually reduce leveling correction until a set height is reached,
828
-    // at which point movement will be level to the machine's XY plane.
829
-    // The height can be set with M420 Z<height>
830
-    #define ENABLE_LEVELING_FADE_HEIGHT
831
-
832
     //
820
     //
833
     // Experimental Subdivision of the grid by Catmull-Rom method.
821
     // Experimental Subdivision of the grid by Catmull-Rom method.
834
     // Synthesizes intermediate points to produce a more detailed mesh.
822
     // Synthesizes intermediate points to produce a more detailed mesh.
852
   #define ABL_PROBE_PT_3_X 170
840
   #define ABL_PROBE_PT_3_X 170
853
   #define ABL_PROBE_PT_3_Y 20
841
   #define ABL_PROBE_PT_3_Y 20
854
 
842
 
855
-#endif
843
+#elif ENABLED(MESH_BED_LEVELING)
844
+
845
+//===========================================================================
846
+//=================================== Mesh ==================================
847
+//===========================================================================
848
+
849
+  #define MANUAL_PROBE_Z_RANGE 4 // Z after Home, bed somewhere below but above 0.0.
850
+  #define MESH_INSET 10          // Mesh inset margin on print area
851
+  #define MESH_NUM_X_POINTS 3    // Don't use more than 7 points per axis, implementation limited.
852
+  #define MESH_NUM_Y_POINTS 3
853
+
854
+  //#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest at origin [0,0,0]
855
+
856
+  //#define MANUAL_BED_LEVELING  // Add display menu option for bed leveling.
857
+
858
+  #if ENABLED(MANUAL_BED_LEVELING)
859
+    #define MBL_Z_STEP 0.025     // Step size while manually probing Z axis.
860
+  #endif  // MANUAL_BED_LEVELING
861
+
862
+#elif ENABLED(AUTO_BED_LEVELING_UBL)
863
+
864
+//===========================================================================
865
+//========================= Unified Bed Leveling ============================
866
+//===========================================================================
867
+
868
+  #define UBL_MESH_INSET 1          // Mesh inset margin on print area
869
+  #define UBL_MESH_NUM_X_POINTS 10  // Don't use more than 15 points per axis, implementation limited.
870
+  #define UBL_MESH_NUM_Y_POINTS 10
871
+  #define UBL_PROBE_PT_1_X 39       // These set the probe locations for when UBL does a 3-Point leveling
872
+  #define UBL_PROBE_PT_1_Y 180      // of the mesh.
873
+  #define UBL_PROBE_PT_2_X 39
874
+  #define UBL_PROBE_PT_2_Y 20
875
+  #define UBL_PROBE_PT_3_X 180
876
+  #define UBL_PROBE_PT_3_Y 20
877
+
878
+#endif  // BED_LEVELING
856
 
879
 
857
 /**
880
 /**
858
  * Commands to execute at the end of G29 probing.
881
  * Commands to execute at the end of G29 probing.
1434
 // leaving it undefined or defining as 0 will disable the servo subsystem
1457
 // leaving it undefined or defining as 0 will disable the servo subsystem
1435
 // If unsure, leave commented / disabled
1458
 // If unsure, leave commented / disabled
1436
 //
1459
 //
1437
-#define NUM_SERVOS 0 // DGlass3D - Servo index starts with 0 for M280 command
1460
+//#define NUM_SERVOS 3 // Servo index starts with 0 for M280 command
1438
 
1461
 
1439
 // Delay (in milliseconds) before the next move will start, to give the servo time to reach its target angle.
1462
 // Delay (in milliseconds) before the next move will start, to give the servo time to reach its target angle.
1440
 // 300ms is a good value but you can try less delay.
1463
 // 300ms is a good value but you can try less delay.

+ 1503
- 0
Marlin/example_configurations/Roxys_printers/Folger_Tech_i3_2020/Configuration.h
File diff suppressed because it is too large
View File


+ 1091
- 0
Marlin/example_configurations/Roxys_printers/Folger_Tech_i3_2020/Configuration_adv.h
File diff suppressed because it is too large
View File


+ 1500
- 0
Marlin/example_configurations/Roxys_printers/gMax_1.5+/Configuration.h
File diff suppressed because it is too large
View File


+ 1085
- 0
Marlin/example_configurations/Roxys_printers/gMax_1.5+/Configuration_adv.h
File diff suppressed because it is too large
View File


+ 1505
- 0
Marlin/example_configurations/Roxys_printers/original_release_files/Configuration.h
File diff suppressed because it is too large
View File


+ 1085
- 0
Marlin/example_configurations/Roxys_printers/original_release_files/Configuration_adv.h
File diff suppressed because it is too large
View File


+ 58
- 35
Marlin/example_configurations/SCARA/Configuration.h View File

263
  *    60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
263
  *    60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
264
  *    66 : 4.7M High Temperature thermistor from Dyze Design
264
  *    66 : 4.7M High Temperature thermistor from Dyze Design
265
  *    70 : the 100K thermistor found in the bq Hephestos 2
265
  *    70 : the 100K thermistor found in the bq Hephestos 2
266
+ *    75 : 100k Generic Silicon Heat Pad typically a NTC 100K MGB18-104F39050L32 thermistor
266
  *
267
  *
267
  *       1k ohm pullup tables - This is atypical, and requires changing out the 4.7k pullup for 1k.
268
  *       1k ohm pullup tables - This is atypical, and requires changing out the 4.7k pullup for 1k.
268
  *                              (but gives greater accuracy and more stable PID)
269
  *                              (but gives greater accuracy and more stable PID)
618
 //
619
 //
619
 // To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
620
 // To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
620
 //
621
 //
621
-// For a servo-based Z probe, you must set up servo support below, including
622
-// NUM_SERVOS, Z_ENDSTOP_SERVO_NR and Z_SERVO_ANGLES.
622
+// For a servo-based Z probe, just set Z_ENDSTOP_SERVO_NR and Z_SERVO_ANGLES above.
623
 //
623
 //
624
 // - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
624
 // - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
625
 // - Use 5V for powered (usu. inductive) sensors.
625
 // - Use 5V for powered (usu. inductive) sensors.
756
   #define FILAMENT_RUNOUT_SCRIPT "M600"
756
   #define FILAMENT_RUNOUT_SCRIPT "M600"
757
 #endif
757
 #endif
758
 
758
 
759
-//===========================================================================
760
-//============================ Mesh Bed Leveling ============================
761
-//===========================================================================
762
-
763
-//#define MESH_BED_LEVELING    // Enable mesh bed leveling.
764
-
765
-#if ENABLED(MESH_BED_LEVELING)
766
-  #define MESH_INSET 10        // Mesh inset margin on print area
767
-  #define MESH_NUM_X_POINTS 3  // Don't use more than 7 points per axis, implementation limited.
768
-  #define MESH_NUM_Y_POINTS 3
769
-  #define MANUAL_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
770
-
771
-  //#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS
772
-
773
-  //#define MANUAL_BED_LEVELING  // Add display menu option for bed leveling.
774
-
775
-  #if ENABLED(MANUAL_BED_LEVELING)
776
-    #define MBL_Z_STEP 0.025  // Step size while manually probing Z axis.
777
-  #endif  // MANUAL_BED_LEVELING
778
-
779
-  // Gradually reduce leveling correction until a set height is reached,
780
-  // at which point movement will be level to the machine's XY plane.
781
-  // The height can be set with M420 Z<height>
782
-  #define ENABLE_LEVELING_FADE_HEIGHT
783
-
784
-#endif  // MESH_BED_LEVELING
785
 
759
 
786
 //===========================================================================
760
 //===========================================================================
787
-//============================ Auto Bed Leveling ============================
761
+//=============================== Bed Leveling ==============================
788
 //===========================================================================
762
 //===========================================================================
789
 // @section bedlevel
763
 // @section bedlevel
790
 
764
 
808
  *   Probe several points in a grid.
782
  *   Probe several points in a grid.
809
  *   You specify the rectangle and the density of sample points.
783
  *   You specify the rectangle and the density of sample points.
810
  *   The result is a mesh, best for large or uneven beds.
784
  *   The result is a mesh, best for large or uneven beds.
785
+ *
786
+ * - UBL Unified Bed Leveling
787
+ *   A comprehensive bed leveling system that combines features and benefits from previous
788
+ *   bed leveling system.  The UBL Bed Leveling System also includes an integrated and easy to use
789
+ *   Mesh Generation, Mesh Validation and Mesh Editing system.
790
+ *     - Currently, the UBL Bed Leveling System is only checked out for Cartesian Printers.  But with
791
+ *       that said, it was primarily designed to handle poor quality Delta Printers.  If you feel
792
+ *       adventurous and have a Delta, please post an issue if something doesn't work correctly.
793
+ *       Initially, you will need to reduce your declared bed size so you have a rectangular area to
794
+ *       test on.
811
  */
795
  */
812
 //#define AUTO_BED_LEVELING_3POINT
796
 //#define AUTO_BED_LEVELING_3POINT
813
 //#define AUTO_BED_LEVELING_LINEAR
797
 //#define AUTO_BED_LEVELING_LINEAR
814
 //#define AUTO_BED_LEVELING_BILINEAR
798
 //#define AUTO_BED_LEVELING_BILINEAR
799
+//#define MESH_BED_LEVELING
800
+//#define AUTO_BED_LEVELING_UBL
815
 
801
 
816
 /**
802
 /**
817
  * Enable detailed logging of G28, G29, M48, etc.
803
  * Enable detailed logging of G28, G29, M48, etc.
820
  */
806
  */
821
 //#define DEBUG_LEVELING_FEATURE
807
 //#define DEBUG_LEVELING_FEATURE
822
 
808
 
809
+#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_BILINEAR) || ENABLED(AUTO_BED_LEVELING_UBL)
810
+  // Gradually reduce leveling correction until a set height is reached,
811
+  // at which point movement will be level to the machine's XY plane.
812
+  // The height can be set with M420 Z<height>
813
+  #define ENABLE_LEVELING_FADE_HEIGHT
814
+#endif
815
+
823
 #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
816
 #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
824
 
817
 
825
   // Set the number of grid points per dimension.
818
   // Set the number of grid points per dimension.
840
 
833
 
841
   #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
834
   #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
842
 
835
 
843
-    // Gradually reduce leveling correction until a set height is reached,
844
-    // at which point movement will be level to the machine's XY plane.
845
-    // The height can be set with M420 Z<height>
846
-    #define ENABLE_LEVELING_FADE_HEIGHT
847
-
848
     //
836
     //
849
     // Experimental Subdivision of the grid by Catmull-Rom method.
837
     // Experimental Subdivision of the grid by Catmull-Rom method.
850
     // Synthesizes intermediate points to produce a more detailed mesh.
838
     // Synthesizes intermediate points to produce a more detailed mesh.
868
   #define ABL_PROBE_PT_3_X 170
856
   #define ABL_PROBE_PT_3_X 170
869
   #define ABL_PROBE_PT_3_Y 20
857
   #define ABL_PROBE_PT_3_Y 20
870
 
858
 
871
-#endif
859
+#elif ENABLED(MESH_BED_LEVELING)
860
+
861
+//===========================================================================
862
+//=================================== Mesh ==================================
863
+//===========================================================================
864
+
865
+  #define MANUAL_PROBE_Z_RANGE 4 // Z after Home, bed somewhere below but above 0.0.
866
+  #define MESH_INSET 10          // Mesh inset margin on print area
867
+  #define MESH_NUM_X_POINTS 3    // Don't use more than 7 points per axis, implementation limited.
868
+  #define MESH_NUM_Y_POINTS 3
869
+
870
+  //#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest at origin [0,0,0]
871
+
872
+  //#define MANUAL_BED_LEVELING  // Add display menu option for bed leveling.
873
+
874
+  #if ENABLED(MANUAL_BED_LEVELING)
875
+    #define MBL_Z_STEP 0.025     // Step size while manually probing Z axis.
876
+  #endif  // MANUAL_BED_LEVELING
877
+
878
+#elif ENABLED(AUTO_BED_LEVELING_UBL)
879
+
880
+//===========================================================================
881
+//========================= Unified Bed Leveling ============================
882
+//===========================================================================
883
+
884
+  #define UBL_MESH_INSET 1          // Mesh inset margin on print area
885
+  #define UBL_MESH_NUM_X_POINTS 10  // Don't use more than 15 points per axis, implementation limited.
886
+  #define UBL_MESH_NUM_Y_POINTS 10
887
+  #define UBL_PROBE_PT_1_X 39       // These set the probe locations for when UBL does a 3-Point leveling
888
+  #define UBL_PROBE_PT_1_Y 180      // of the mesh.
889
+  #define UBL_PROBE_PT_2_X 39
890
+  #define UBL_PROBE_PT_2_Y 20
891
+  #define UBL_PROBE_PT_3_X 180
892
+  #define UBL_PROBE_PT_3_Y 20
893
+
894
+#endif  // BED_LEVELING
872
 
895
 
873
 /**
896
 /**
874
  * Commands to execute at the end of G29 probing.
897
  * Commands to execute at the end of G29 probing.

+ 58
- 35
Marlin/example_configurations/TAZ4/Configuration.h View File

231
  *    60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
231
  *    60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
232
  *    66 : 4.7M High Temperature thermistor from Dyze Design
232
  *    66 : 4.7M High Temperature thermistor from Dyze Design
233
  *    70 : the 100K thermistor found in the bq Hephestos 2
233
  *    70 : the 100K thermistor found in the bq Hephestos 2
234
+ *    75 : 100k Generic Silicon Heat Pad typically a NTC 100K MGB18-104F39050L32 thermistor
234
  *
235
  *
235
  *       1k ohm pullup tables - This is atypical, and requires changing out the 4.7k pullup for 1k.
236
  *       1k ohm pullup tables - This is atypical, and requires changing out the 4.7k pullup for 1k.
236
  *                              (but gives greater accuracy and more stable PID)
237
  *                              (but gives greater accuracy and more stable PID)
624
 //
625
 //
625
 // To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
626
 // To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
626
 //
627
 //
627
-// For a servo-based Z probe, you must set up servo support below, including
628
-// NUM_SERVOS, Z_ENDSTOP_SERVO_NR and Z_SERVO_ANGLES.
628
+// For a servo-based Z probe, just set Z_ENDSTOP_SERVO_NR and Z_SERVO_ANGLES above.
629
 //
629
 //
630
 // - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
630
 // - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
631
 // - Use 5V for powered (usu. inductive) sensors.
631
 // - Use 5V for powered (usu. inductive) sensors.
762
   #define FILAMENT_RUNOUT_SCRIPT "M600"
762
   #define FILAMENT_RUNOUT_SCRIPT "M600"
763
 #endif
763
 #endif
764
 
764
 
765
-//===========================================================================
766
-//============================ Mesh Bed Leveling ============================
767
-//===========================================================================
768
-
769
-//#define MESH_BED_LEVELING    // Enable mesh bed leveling.
770
-
771
-#if ENABLED(MESH_BED_LEVELING)
772
-  #define MESH_INSET 10        // Mesh inset margin on print area
773
-  #define MESH_NUM_X_POINTS 3  // Don't use more than 7 points per axis, implementation limited.
774
-  #define MESH_NUM_Y_POINTS 3
775
-  #define MANUAL_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
776
-
777
-  //#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS
778
-
779
-  //#define MANUAL_BED_LEVELING  // Add display menu option for bed leveling.
780
-
781
-  #if ENABLED(MANUAL_BED_LEVELING)
782
-    #define MBL_Z_STEP 0.025  // Step size while manually probing Z axis.
783
-  #endif  // MANUAL_BED_LEVELING
784
-
785
-  // Gradually reduce leveling correction until a set height is reached,
786
-  // at which point movement will be level to the machine's XY plane.
787
-  // The height can be set with M420 Z<height>
788
-  #define ENABLE_LEVELING_FADE_HEIGHT
789
-
790
-#endif  // MESH_BED_LEVELING
791
 
765
 
792
 //===========================================================================
766
 //===========================================================================
793
-//============================ Auto Bed Leveling ============================
767
+//=============================== Bed Leveling ==============================
794
 //===========================================================================
768
 //===========================================================================
795
 // @section bedlevel
769
 // @section bedlevel
796
 
770
 
814
  *   Probe several points in a grid.
788
  *   Probe several points in a grid.
815
  *   You specify the rectangle and the density of sample points.
789
  *   You specify the rectangle and the density of sample points.
816
  *   The result is a mesh, best for large or uneven beds.
790
  *   The result is a mesh, best for large or uneven beds.
791
+ *
792
+ * - UBL Unified Bed Leveling
793
+ *   A comprehensive bed leveling system that combines features and benefits from previous
794
+ *   bed leveling system.  The UBL Bed Leveling System also includes an integrated and easy to use
795
+ *   Mesh Generation, Mesh Validation and Mesh Editing system.
796
+ *     - Currently, the UBL Bed Leveling System is only checked out for Cartesian Printers.  But with
797
+ *       that said, it was primarily designed to handle poor quality Delta Printers.  If you feel
798
+ *       adventurous and have a Delta, please post an issue if something doesn't work correctly.
799
+ *       Initially, you will need to reduce your declared bed size so you have a rectangular area to
800
+ *       test on.
817
  */
801
  */
818
 //#define AUTO_BED_LEVELING_3POINT
802
 //#define AUTO_BED_LEVELING_3POINT
819
 //#define AUTO_BED_LEVELING_LINEAR
803
 //#define AUTO_BED_LEVELING_LINEAR
820
 //#define AUTO_BED_LEVELING_BILINEAR
804
 //#define AUTO_BED_LEVELING_BILINEAR
805
+//#define MESH_BED_LEVELING
806
+//#define AUTO_BED_LEVELING_UBL
821
 
807
 
822
 /**
808
 /**
823
  * Enable detailed logging of G28, G29, M48, etc.
809
  * Enable detailed logging of G28, G29, M48, etc.
826
  */
812
  */
827
 //#define DEBUG_LEVELING_FEATURE
813
 //#define DEBUG_LEVELING_FEATURE
828
 
814
 
815
+#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_BILINEAR) || ENABLED(AUTO_BED_LEVELING_UBL)
816
+  // Gradually reduce leveling correction until a set height is reached,
817
+  // at which point movement will be level to the machine's XY plane.
818
+  // The height can be set with M420 Z<height>
819
+  #define ENABLE_LEVELING_FADE_HEIGHT
820
+#endif
821
+
829
 #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
822
 #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
830
 
823
 
831
   // Set the number of grid points per dimension.
824
   // Set the number of grid points per dimension.
846
 
839
 
847
   #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
840
   #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
848
 
841
 
849
-    // Gradually reduce leveling correction until a set height is reached,
850
-    // at which point movement will be level to the machine's XY plane.
851
-    // The height can be set with M420 Z<height>
852
-    #define ENABLE_LEVELING_FADE_HEIGHT
853
-
854
     //
842
     //
855
     // Experimental Subdivision of the grid by Catmull-Rom method.
843
     // Experimental Subdivision of the grid by Catmull-Rom method.
856
     // Synthesizes intermediate points to produce a more detailed mesh.
844
     // Synthesizes intermediate points to produce a more detailed mesh.
874
   #define ABL_PROBE_PT_3_X 170
862
   #define ABL_PROBE_PT_3_X 170
875
   #define ABL_PROBE_PT_3_Y 20
863
   #define ABL_PROBE_PT_3_Y 20
876
 
864
 
877
-#endif
865
+#elif ENABLED(MESH_BED_LEVELING)
866
+
867
+//===========================================================================
868
+//=================================== Mesh ==================================
869
+//===========================================================================
870
+
871
+  #define MANUAL_PROBE_Z_RANGE 4 // Z after Home, bed somewhere below but above 0.0.
872
+  #define MESH_INSET 10          // Mesh inset margin on print area
873
+  #define MESH_NUM_X_POINTS 3    // Don't use more than 7 points per axis, implementation limited.
874
+  #define MESH_NUM_Y_POINTS 3
875
+
876
+  //#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest at origin [0,0,0]
877
+
878
+  //#define MANUAL_BED_LEVELING  // Add display menu option for bed leveling.
879
+
880
+  #if ENABLED(MANUAL_BED_LEVELING)
881
+    #define MBL_Z_STEP 0.025     // Step size while manually probing Z axis.
882
+  #endif  // MANUAL_BED_LEVELING
883
+
884
+#elif ENABLED(AUTO_BED_LEVELING_UBL)
885
+
886
+//===========================================================================
887
+//========================= Unified Bed Leveling ============================
888
+//===========================================================================
889
+
890
+  #define UBL_MESH_INSET 1          // Mesh inset margin on print area
891
+  #define UBL_MESH_NUM_X_POINTS 10  // Don't use more than 15 points per axis, implementation limited.
892
+  #define UBL_MESH_NUM_Y_POINTS 10
893
+  #define UBL_PROBE_PT_1_X 39       // These set the probe locations for when UBL does a 3-Point leveling
894
+  #define UBL_PROBE_PT_1_Y 180      // of the mesh.
895
+  #define UBL_PROBE_PT_2_X 39
896
+  #define UBL_PROBE_PT_2_Y 20
897
+  #define UBL_PROBE_PT_3_X 180
898
+  #define UBL_PROBE_PT_3_Y 20
899
+
900
+#endif  // BED_LEVELING
878
 
901
 
879
 /**
902
 /**
880
  * Commands to execute at the end of G29 probing.
903
  * Commands to execute at the end of G29 probing.

+ 58
- 35
Marlin/example_configurations/WITBOX/Configuration.h View File

234
  *    60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
234
  *    60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
235
  *    66 : 4.7M High Temperature thermistor from Dyze Design
235
  *    66 : 4.7M High Temperature thermistor from Dyze Design
236
  *    70 : the 100K thermistor found in the bq Hephestos 2
236
  *    70 : the 100K thermistor found in the bq Hephestos 2
237
+ *    75 : 100k Generic Silicon Heat Pad typically a NTC 100K MGB18-104F39050L32 thermistor
237
  *
238
  *
238
  *       1k ohm pullup tables - This is atypical, and requires changing out the 4.7k pullup for 1k.
239
  *       1k ohm pullup tables - This is atypical, and requires changing out the 4.7k pullup for 1k.
239
  *                              (but gives greater accuracy and more stable PID)
240
  *                              (but gives greater accuracy and more stable PID)
595
 //
596
 //
596
 // To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
597
 // To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
597
 //
598
 //
598
-// For a servo-based Z probe, you must set up servo support below, including
599
-// NUM_SERVOS, Z_ENDSTOP_SERVO_NR and Z_SERVO_ANGLES.
599
+// For a servo-based Z probe, just set Z_ENDSTOP_SERVO_NR and Z_SERVO_ANGLES above.
600
 //
600
 //
601
 // - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
601
 // - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
602
 // - Use 5V for powered (usu. inductive) sensors.
602
 // - Use 5V for powered (usu. inductive) sensors.
733
   #define FILAMENT_RUNOUT_SCRIPT "M600"
733
   #define FILAMENT_RUNOUT_SCRIPT "M600"
734
 #endif
734
 #endif
735
 
735
 
736
-//===========================================================================
737
-//============================ Mesh Bed Leveling ============================
738
-//===========================================================================
739
-
740
-//#define MESH_BED_LEVELING    // Enable mesh bed leveling.
741
-
742
-#if ENABLED(MESH_BED_LEVELING)
743
-  #define MESH_INSET 10        // Mesh inset margin on print area
744
-  #define MESH_NUM_X_POINTS 3  // Don't use more than 7 points per axis, implementation limited.
745
-  #define MESH_NUM_Y_POINTS 3
746
-  #define MANUAL_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
747
-
748
-  //#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS
749
-
750
-  //#define MANUAL_BED_LEVELING  // Add display menu option for bed leveling.
751
-
752
-  #if ENABLED(MANUAL_BED_LEVELING)
753
-    #define MBL_Z_STEP 0.025  // Step size while manually probing Z axis.
754
-  #endif  // MANUAL_BED_LEVELING
755
-
756
-  // Gradually reduce leveling correction until a set height is reached,
757
-  // at which point movement will be level to the machine's XY plane.
758
-  // The height can be set with M420 Z<height>
759
-  #define ENABLE_LEVELING_FADE_HEIGHT
760
-
761
-#endif  // MESH_BED_LEVELING
762
 
736
 
763
 //===========================================================================
737
 //===========================================================================
764
-//============================ Auto Bed Leveling ============================
738
+//=============================== Bed Leveling ==============================
765
 //===========================================================================
739
 //===========================================================================
766
 // @section bedlevel
740
 // @section bedlevel
767
 
741
 
785
  *   Probe several points in a grid.
759
  *   Probe several points in a grid.
786
  *   You specify the rectangle and the density of sample points.
760
  *   You specify the rectangle and the density of sample points.
787
  *   The result is a mesh, best for large or uneven beds.
761
  *   The result is a mesh, best for large or uneven beds.
762
+ *
763
+ * - UBL Unified Bed Leveling
764
+ *   A comprehensive bed leveling system that combines features and benefits from previous
765
+ *   bed leveling system.  The UBL Bed Leveling System also includes an integrated and easy to use
766
+ *   Mesh Generation, Mesh Validation and Mesh Editing system.
767
+ *     - Currently, the UBL Bed Leveling System is only checked out for Cartesian Printers.  But with
768
+ *       that said, it was primarily designed to handle poor quality Delta Printers.  If you feel
769
+ *       adventurous and have a Delta, please post an issue if something doesn't work correctly.
770
+ *       Initially, you will need to reduce your declared bed size so you have a rectangular area to
771
+ *       test on.
788
  */
772
  */
789
 //#define AUTO_BED_LEVELING_3POINT
773
 //#define AUTO_BED_LEVELING_3POINT
790
 //#define AUTO_BED_LEVELING_LINEAR
774
 //#define AUTO_BED_LEVELING_LINEAR
791
 //#define AUTO_BED_LEVELING_BILINEAR
775
 //#define AUTO_BED_LEVELING_BILINEAR
776
+//#define MESH_BED_LEVELING
777
+//#define AUTO_BED_LEVELING_UBL
792
 
778
 
793
 /**
779
 /**
794
  * Enable detailed logging of G28, G29, M48, etc.
780
  * Enable detailed logging of G28, G29, M48, etc.
797
  */
783
  */
798
 //#define DEBUG_LEVELING_FEATURE
784
 //#define DEBUG_LEVELING_FEATURE
799
 
785
 
786
+#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_BILINEAR) || ENABLED(AUTO_BED_LEVELING_UBL)
787
+  // Gradually reduce leveling correction until a set height is reached,
788
+  // at which point movement will be level to the machine's XY plane.
789
+  // The height can be set with M420 Z<height>
790
+  #define ENABLE_LEVELING_FADE_HEIGHT
791
+#endif
792
+
800
 #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
793
 #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
801
 
794
 
802
   // Set the number of grid points per dimension.
795
   // Set the number of grid points per dimension.
817
 
810
 
818
   #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
811
   #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
819
 
812
 
820
-    // Gradually reduce leveling correction until a set height is reached,
821
-    // at which point movement will be level to the machine's XY plane.
822
-    // The height can be set with M420 Z<height>
823
-    #define ENABLE_LEVELING_FADE_HEIGHT
824
-
825
     //
813
     //
826
     // Experimental Subdivision of the grid by Catmull-Rom method.
814
     // Experimental Subdivision of the grid by Catmull-Rom method.
827
     // Synthesizes intermediate points to produce a more detailed mesh.
815
     // Synthesizes intermediate points to produce a more detailed mesh.
845
   #define ABL_PROBE_PT_3_X 170
833
   #define ABL_PROBE_PT_3_X 170
846
   #define ABL_PROBE_PT_3_Y 20
834
   #define ABL_PROBE_PT_3_Y 20
847
 
835
 
848
-#endif
836
+#elif ENABLED(MESH_BED_LEVELING)
837
+
838
+//===========================================================================
839
+//=================================== Mesh ==================================
840
+//===========================================================================
841
+
842
+  #define MANUAL_PROBE_Z_RANGE 4 // Z after Home, bed somewhere below but above 0.0.
843
+  #define MESH_INSET 10          // Mesh inset margin on print area
844
+  #define MESH_NUM_X_POINTS 3    // Don't use more than 7 points per axis, implementation limited.
845
+  #define MESH_NUM_Y_POINTS 3
846
+
847
+  //#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest at origin [0,0,0]
848
+
849
+  //#define MANUAL_BED_LEVELING  // Add display menu option for bed leveling.
850
+
851
+  #if ENABLED(MANUAL_BED_LEVELING)
852
+    #define MBL_Z_STEP 0.025     // Step size while manually probing Z axis.
853
+  #endif  // MANUAL_BED_LEVELING
854
+
855
+#elif ENABLED(AUTO_BED_LEVELING_UBL)
856
+
857
+//===========================================================================
858
+//========================= Unified Bed Leveling ============================
859
+//===========================================================================
860
+
861
+  #define UBL_MESH_INSET 1          // Mesh inset margin on print area
862
+  #define UBL_MESH_NUM_X_POINTS 10  // Don't use more than 15 points per axis, implementation limited.
863
+  #define UBL_MESH_NUM_Y_POINTS 10
864
+  #define UBL_PROBE_PT_1_X 39       // These set the probe locations for when UBL does a 3-Point leveling
865
+  #define UBL_PROBE_PT_1_Y 180      // of the mesh.
866
+  #define UBL_PROBE_PT_2_X 39
867
+  #define UBL_PROBE_PT_2_Y 20
868
+  #define UBL_PROBE_PT_3_X 180
869
+  #define UBL_PROBE_PT_3_Y 20
870
+
871
+#endif  // BED_LEVELING
849
 
872
 
850
 /**
873
 /**
851
  * Commands to execute at the end of G29 probing.
874
  * Commands to execute at the end of G29 probing.

+ 58
- 35
Marlin/example_configurations/adafruit/ST7565/Configuration.h View File

231
  *    60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
231
  *    60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
232
  *    66 : 4.7M High Temperature thermistor from Dyze Design
232
  *    66 : 4.7M High Temperature thermistor from Dyze Design
233
  *    70 : the 100K thermistor found in the bq Hephestos 2
233
  *    70 : the 100K thermistor found in the bq Hephestos 2
234
+ *    75 : 100k Generic Silicon Heat Pad typically a NTC 100K MGB18-104F39050L32 thermistor
234
  *
235
  *
235
  *       1k ohm pullup tables - This is atypical, and requires changing out the 4.7k pullup for 1k.
236
  *       1k ohm pullup tables - This is atypical, and requires changing out the 4.7k pullup for 1k.
236
  *                              (but gives greater accuracy and more stable PID)
237
  *                              (but gives greater accuracy and more stable PID)
603
 //
604
 //
604
 // To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
605
 // To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
605
 //
606
 //
606
-// For a servo-based Z probe, you must set up servo support below, including
607
-// NUM_SERVOS, Z_ENDSTOP_SERVO_NR and Z_SERVO_ANGLES.
607
+// For a servo-based Z probe, just set Z_ENDSTOP_SERVO_NR and Z_SERVO_ANGLES above.
608
 //
608
 //
609
 // - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
609
 // - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
610
 // - Use 5V for powered (usu. inductive) sensors.
610
 // - Use 5V for powered (usu. inductive) sensors.
741
   #define FILAMENT_RUNOUT_SCRIPT "M600"
741
   #define FILAMENT_RUNOUT_SCRIPT "M600"
742
 #endif
742
 #endif
743
 
743
 
744
-//===========================================================================
745
-//============================ Mesh Bed Leveling ============================
746
-//===========================================================================
747
-
748
-//#define MESH_BED_LEVELING    // Enable mesh bed leveling.
749
-
750
-#if ENABLED(MESH_BED_LEVELING)
751
-  #define MESH_INSET 10        // Mesh inset margin on print area
752
-  #define MESH_NUM_X_POINTS 3  // Don't use more than 7 points per axis, implementation limited.
753
-  #define MESH_NUM_Y_POINTS 3
754
-  #define MANUAL_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
755
-
756
-  //#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS
757
-
758
-  //#define MANUAL_BED_LEVELING  // Add display menu option for bed leveling.
759
-
760
-  #if ENABLED(MANUAL_BED_LEVELING)
761
-    #define MBL_Z_STEP 0.025  // Step size while manually probing Z axis.
762
-  #endif  // MANUAL_BED_LEVELING
763
-
764
-  // Gradually reduce leveling correction until a set height is reached,
765
-  // at which point movement will be level to the machine's XY plane.
766
-  // The height can be set with M420 Z<height>
767
-  #define ENABLE_LEVELING_FADE_HEIGHT
768
-
769
-#endif  // MESH_BED_LEVELING
770
 
744
 
771
 //===========================================================================
745
 //===========================================================================
772
-//============================ Auto Bed Leveling ============================
746
+//=============================== Bed Leveling ==============================
773
 //===========================================================================
747
 //===========================================================================
774
 // @section bedlevel
748
 // @section bedlevel
775
 
749
 
793
  *   Probe several points in a grid.
767
  *   Probe several points in a grid.
794
  *   You specify the rectangle and the density of sample points.
768
  *   You specify the rectangle and the density of sample points.
795
  *   The result is a mesh, best for large or uneven beds.
769
  *   The result is a mesh, best for large or uneven beds.
770
+ *
771
+ * - UBL Unified Bed Leveling
772
+ *   A comprehensive bed leveling system that combines features and benefits from previous
773
+ *   bed leveling system.  The UBL Bed Leveling System also includes an integrated and easy to use
774
+ *   Mesh Generation, Mesh Validation and Mesh Editing system.
775
+ *     - Currently, the UBL Bed Leveling System is only checked out for Cartesian Printers.  But with
776
+ *       that said, it was primarily designed to handle poor quality Delta Printers.  If you feel
777
+ *       adventurous and have a Delta, please post an issue if something doesn't work correctly.
778
+ *       Initially, you will need to reduce your declared bed size so you have a rectangular area to
779
+ *       test on.
796
  */
780
  */
797
 //#define AUTO_BED_LEVELING_3POINT
781
 //#define AUTO_BED_LEVELING_3POINT
798
 //#define AUTO_BED_LEVELING_LINEAR
782
 //#define AUTO_BED_LEVELING_LINEAR
799
 //#define AUTO_BED_LEVELING_BILINEAR
783
 //#define AUTO_BED_LEVELING_BILINEAR
784
+//#define MESH_BED_LEVELING
785
+//#define AUTO_BED_LEVELING_UBL
800
 
786
 
801
 /**
787
 /**
802
  * Enable detailed logging of G28, G29, M48, etc.
788
  * Enable detailed logging of G28, G29, M48, etc.
805
  */
791
  */
806
 //#define DEBUG_LEVELING_FEATURE
792
 //#define DEBUG_LEVELING_FEATURE
807
 
793
 
794
+#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_BILINEAR) || ENABLED(AUTO_BED_LEVELING_UBL)
795
+  // Gradually reduce leveling correction until a set height is reached,
796
+  // at which point movement will be level to the machine's XY plane.
797
+  // The height can be set with M420 Z<height>
798
+  #define ENABLE_LEVELING_FADE_HEIGHT
799
+#endif
800
+
808
 #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
801
 #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
809
 
802
 
810
   // Set the number of grid points per dimension.
803
   // Set the number of grid points per dimension.
825
 
818
 
826
   #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
819
   #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
827
 
820
 
828
-    // Gradually reduce leveling correction until a set height is reached,
829
-    // at which point movement will be level to the machine's XY plane.
830
-    // The height can be set with M420 Z<height>
831
-    #define ENABLE_LEVELING_FADE_HEIGHT
832
-
833
     //
821
     //
834
     // Experimental Subdivision of the grid by Catmull-Rom method.
822
     // Experimental Subdivision of the grid by Catmull-Rom method.
835
     // Synthesizes intermediate points to produce a more detailed mesh.
823
     // Synthesizes intermediate points to produce a more detailed mesh.
853
   #define ABL_PROBE_PT_3_X 170
841
   #define ABL_PROBE_PT_3_X 170
854
   #define ABL_PROBE_PT_3_Y 20
842
   #define ABL_PROBE_PT_3_Y 20
855
 
843
 
856
-#endif
844
+#elif ENABLED(MESH_BED_LEVELING)
845
+
846
+//===========================================================================
847
+//=================================== Mesh ==================================
848
+//===========================================================================
849
+
850
+  #define MANUAL_PROBE_Z_RANGE 4 // Z after Home, bed somewhere below but above 0.0.
851
+  #define MESH_INSET 10          // Mesh inset margin on print area
852
+  #define MESH_NUM_X_POINTS 3    // Don't use more than 7 points per axis, implementation limited.
853
+  #define MESH_NUM_Y_POINTS 3
854
+
855
+  //#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest at origin [0,0,0]
856
+
857
+  //#define MANUAL_BED_LEVELING  // Add display menu option for bed leveling.
858
+
859
+  #if ENABLED(MANUAL_BED_LEVELING)
860
+    #define MBL_Z_STEP 0.025     // Step size while manually probing Z axis.
861
+  #endif  // MANUAL_BED_LEVELING
862
+
863
+#elif ENABLED(AUTO_BED_LEVELING_UBL)
864
+
865
+//===========================================================================
866
+//========================= Unified Bed Leveling ============================
867
+//===========================================================================
868
+
869
+  #define UBL_MESH_INSET 1          // Mesh inset margin on print area
870
+  #define UBL_MESH_NUM_X_POINTS 10  // Don't use more than 15 points per axis, implementation limited.
871
+  #define UBL_MESH_NUM_Y_POINTS 10
872
+  #define UBL_PROBE_PT_1_X 39       // These set the probe locations for when UBL does a 3-Point leveling
873
+  #define UBL_PROBE_PT_1_Y 180      // of the mesh.
874
+  #define UBL_PROBE_PT_2_X 39
875
+  #define UBL_PROBE_PT_2_Y 20
876
+  #define UBL_PROBE_PT_3_X 180
877
+  #define UBL_PROBE_PT_3_Y 20
878
+
879
+#endif  // BED_LEVELING
857
 
880
 
858
 /**
881
 /**
859
  * Commands to execute at the end of G29 probing.
882
  * Commands to execute at the end of G29 probing.

+ 58
- 38
Marlin/example_configurations/delta/flsun_kossel_mini/Configuration.h View File

231
  *    60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
231
  *    60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
232
  *    66 : 4.7M High Temperature thermistor from Dyze Design
232
  *    66 : 4.7M High Temperature thermistor from Dyze Design
233
  *    70 : the 100K thermistor found in the bq Hephestos 2
233
  *    70 : the 100K thermistor found in the bq Hephestos 2
234
+ *    75 : 100k Generic Silicon Heat Pad typically a NTC 100K MGB18-104F39050L32 thermistor
234
  *
235
  *
235
  *       1k ohm pullup tables - This is atypical, and requires changing out the 4.7k pullup for 1k.
236
  *       1k ohm pullup tables - This is atypical, and requires changing out the 4.7k pullup for 1k.
236
  *                              (but gives greater accuracy and more stable PID)
237
  *                              (but gives greater accuracy and more stable PID)
705
 //
706
 //
706
 // To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
707
 // To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
707
 //
708
 //
708
-// For a servo-based Z probe, you must set up servo support below, including
709
-// NUM_SERVOS, Z_ENDSTOP_SERVO_NR and Z_SERVO_ANGLES.
709
+// For a servo-based Z probe, just set Z_ENDSTOP_SERVO_NR and Z_SERVO_ANGLES above.
710
 //
710
 //
711
 // - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
711
 // - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
712
 // - Use 5V for powered (usu. inductive) sensors.
712
 // - Use 5V for powered (usu. inductive) sensors.
844
 #endif
844
 #endif
845
 
845
 
846
 //===========================================================================
846
 //===========================================================================
847
-//============================ Mesh Bed Leveling ============================
848
-//===========================================================================
849
-//
850
-// MESH_BED_LEVELING does not yet support DELTA printers.
851
-//#define MESH_BED_LEVELING    // Enable mesh bed leveling.
852
-
853
-#if ENABLED(MESH_BED_LEVELING)
854
-  #define MESH_INSET 10        // Mesh inset margin on print area
855
-  #define MESH_NUM_X_POINTS 3  // Don't use more than 7 points per axis, implementation limited.
856
-  #define MESH_NUM_Y_POINTS 3
857
-  #define MANUAL_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
858
-
859
-  //#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS
860
-
861
-  //#define MANUAL_BED_LEVELING  // Add display menu option for bed leveling.
862
-
863
-  #if ENABLED(MANUAL_BED_LEVELING)
864
-    #define MBL_Z_STEP 0.025  // Step size while manually probing Z axis.
865
-  #endif  // MANUAL_BED_LEVELING
866
-
867
-  // Gradually reduce leveling correction until a set height is reached,
868
-  // at which point movement will be level to the machine's XY plane.
869
-  // The height can be set with M420 Z<height>
870
-  #define ENABLE_LEVELING_FADE_HEIGHT
871
-
872
-#endif  // MESH_BED_LEVELING
873
-
874
-//===========================================================================
875
-//============================ Auto Bed Leveling ============================
847
+//=============================== Bed Leveling ==============================
876
 //===========================================================================
848
 //===========================================================================
877
 // @section bedlevel
849
 // @section bedlevel
878
 
850
 
896
  *   Probe several points in a grid.
868
  *   Probe several points in a grid.
897
  *   You specify the rectangle and the density of sample points.
869
  *   You specify the rectangle and the density of sample points.
898
  *   The result is a mesh, best for large or uneven beds.
870
  *   The result is a mesh, best for large or uneven beds.
871
+ *
872
+ * - UBL Unified Bed Leveling
873
+ *   A comprehensive bed leveling system that combines features and benefits from previous
874
+ *   bed leveling system.  The UBL Bed Leveling System also includes an integrated and easy to use
875
+ *   Mesh Generation, Mesh Validation and Mesh Editing system.
876
+ *     - Currently, the UBL Bed Leveling System is only checked out for Cartesian Printers.  But with
877
+ *       that said, it was primarily designed to handle poor quality Delta Printers.  If you feel
878
+ *       adventurous and have a Delta, please post an issue if something doesn't work correctly.
879
+ *       Initially, you will need to reduce your declared bed size so you have a rectangular area to
880
+ *       test on.
899
  */
881
  */
900
 //#define AUTO_BED_LEVELING_3POINT // Only AUTO_BED_LEVELING_BILINEAR is supported for DELTA bed leveling.
882
 //#define AUTO_BED_LEVELING_3POINT // Only AUTO_BED_LEVELING_BILINEAR is supported for DELTA bed leveling.
901
 //#define AUTO_BED_LEVELING_LINEAR // Only AUTO_BED_LEVELING_BILINEAR is supported for DELTA bed leveling.
883
 //#define AUTO_BED_LEVELING_LINEAR // Only AUTO_BED_LEVELING_BILINEAR is supported for DELTA bed leveling.
902
 #define AUTO_BED_LEVELING_BILINEAR // Only AUTO_BED_LEVELING_BILINEAR is supported for DELTA bed leveling.
884
 #define AUTO_BED_LEVELING_BILINEAR // Only AUTO_BED_LEVELING_BILINEAR is supported for DELTA bed leveling.
885
+//#define MESH_BED_LEVELING
886
+//#define AUTO_BED_LEVELING_UBL
903
 
887
 
904
 /**
888
 /**
905
  * Enable detailed logging of G28, G29, M48, etc.
889
  * Enable detailed logging of G28, G29, M48, etc.
908
  */
892
  */
909
 //#define DEBUG_LEVELING_FEATURE
893
 //#define DEBUG_LEVELING_FEATURE
910
 
894
 
895
+#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_BILINEAR) || ENABLED(AUTO_BED_LEVELING_UBL)
896
+  // Gradually reduce leveling correction until a set height is reached,
897
+  // at which point movement will be level to the machine's XY plane.
898
+  // The height can be set with M420 Z<height>
899
+  //#define ENABLE_LEVELING_FADE_HEIGHT
900
+#endif
901
+
911
 #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
902
 #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
912
 
903
 
913
   // Set the number of grid points per dimension.
904
   // Set the number of grid points per dimension.
928
   //#define PROBE_Y_FIRST
919
   //#define PROBE_Y_FIRST
929
 
920
 
930
   #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
921
   #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
931
-
932
-    // Gradually reduce leveling correction until a set height is reached,
933
-    // at which point movement will be level to the machine's XY plane.
934
-    // The height can be set with M420 Z<height>
935
-    //#define ENABLE_LEVELING_FADE_HEIGHT
936
-
937
     //
922
     //
938
     // Experimental Subdivision of the grid by Catmull-Rom method.
923
     // Experimental Subdivision of the grid by Catmull-Rom method.
939
     // Synthesizes intermediate points to produce a more detailed mesh.
924
     // Synthesizes intermediate points to produce a more detailed mesh.
957
   #define ABL_PROBE_PT_3_X 170
942
   #define ABL_PROBE_PT_3_X 170
958
   #define ABL_PROBE_PT_3_Y 20
943
   #define ABL_PROBE_PT_3_Y 20
959
 
944
 
960
-#endif
945
+#elif ENABLED(MESH_BED_LEVELING)
946
+
947
+//===========================================================================
948
+//=================================== Mesh ==================================
949
+//===========================================================================
950
+
951
+  #define MANUAL_PROBE_Z_RANGE 4 // Z after Home, bed somewhere below but above 0.0.
952
+  #define MESH_INSET 10          // Mesh inset margin on print area
953
+  #define MESH_NUM_X_POINTS 3    // Don't use more than 7 points per axis, implementation limited.
954
+  #define MESH_NUM_Y_POINTS 3
955
+
956
+  //#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest at origin [0,0,0]
957
+
958
+  //#define MANUAL_BED_LEVELING  // Add display menu option for bed leveling.
959
+
960
+  #if ENABLED(MANUAL_BED_LEVELING)
961
+    #define MBL_Z_STEP 0.025     // Step size while manually probing Z axis.
962
+  #endif  // MANUAL_BED_LEVELING
963
+
964
+#elif ENABLED(AUTO_BED_LEVELING_UBL)
965
+
966
+//===========================================================================
967
+//========================= Unified Bed Leveling ============================
968
+//===========================================================================
969
+
970
+  #define UBL_MESH_INSET 1          // Mesh inset margin on print area
971
+  #define UBL_MESH_NUM_X_POINTS 10  // Don't use more than 15 points per axis, implementation limited.
972
+  #define UBL_MESH_NUM_Y_POINTS 10
973
+  #define UBL_PROBE_PT_1_X 39       // These set the probe locations for when UBL does a 3-Point leveling
974
+  #define UBL_PROBE_PT_1_Y 180      // of the mesh.
975
+  #define UBL_PROBE_PT_2_X 39
976
+  #define UBL_PROBE_PT_2_Y 20
977
+  #define UBL_PROBE_PT_3_X 180
978
+  #define UBL_PROBE_PT_3_Y 20
979
+
980
+#endif  // BED_LEVELING
961
 
981
 
962
 /**
982
 /**
963
  * Commands to execute at the end of G29 probing.
983
  * Commands to execute at the end of G29 probing.

+ 58
- 36
Marlin/example_configurations/delta/generic/Configuration.h View File

231
  *    60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
231
  *    60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
232
  *    66 : 4.7M High Temperature thermistor from Dyze Design
232
  *    66 : 4.7M High Temperature thermistor from Dyze Design
233
  *    70 : the 100K thermistor found in the bq Hephestos 2
233
  *    70 : the 100K thermistor found in the bq Hephestos 2
234
+ *    75 : 100k Generic Silicon Heat Pad typically a NTC 100K MGB18-104F39050L32 thermistor
234
  *
235
  *
235
  *       1k ohm pullup tables - This is atypical, and requires changing out the 4.7k pullup for 1k.
236
  *       1k ohm pullup tables - This is atypical, and requires changing out the 4.7k pullup for 1k.
236
  *                              (but gives greater accuracy and more stable PID)
237
  *                              (but gives greater accuracy and more stable PID)
689
 //
690
 //
690
 // To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
691
 // To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
691
 //
692
 //
692
-// For a servo-based Z probe, you must set up servo support below, including
693
-// NUM_SERVOS, Z_ENDSTOP_SERVO_NR and Z_SERVO_ANGLES.
693
+// For a servo-based Z probe, just set Z_ENDSTOP_SERVO_NR and Z_SERVO_ANGLES above.
694
 //
694
 //
695
 // - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
695
 // - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
696
 // - Use 5V for powered (usu. inductive) sensors.
696
 // - Use 5V for powered (usu. inductive) sensors.
827
   #define FILAMENT_RUNOUT_SCRIPT "M600"
827
   #define FILAMENT_RUNOUT_SCRIPT "M600"
828
 #endif
828
 #endif
829
 
829
 
830
-//===========================================================================
831
-//============================ Mesh Bed Leveling ============================
832
-//===========================================================================
833
-
834
-//#define MESH_BED_LEVELING    // Enable mesh bed leveling.
835
-
836
-#if ENABLED(MESH_BED_LEVELING)
837
-  #define MESH_INSET 10        // Mesh inset margin on print area
838
-  #define MESH_NUM_X_POINTS 3  // Don't use more than 7 points per axis, implementation limited.
839
-  #define MESH_NUM_Y_POINTS 3
840
-  #define MANUAL_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
841
-
842
-  //#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS
843
-
844
-  //#define MANUAL_BED_LEVELING  // Add display menu option for bed leveling.
845
-
846
-  #if ENABLED(MANUAL_BED_LEVELING)
847
-    #define MBL_Z_STEP 0.025  // Step size while manually probing Z axis.
848
-  #endif  // MANUAL_BED_LEVELING
849
-
850
-  // Gradually reduce leveling correction until a set height is reached,
851
-  // at which point movement will be level to the machine's XY plane.
852
-  // The height can be set with M420 Z<height>
853
-  #define ENABLE_LEVELING_FADE_HEIGHT
854
-
855
-#endif  // MESH_BED_LEVELING
856
 
830
 
857
 //===========================================================================
831
 //===========================================================================
858
-//============================ Auto Bed Leveling ============================
832
+//=============================== Bed Leveling ==============================
859
 //===========================================================================
833
 //===========================================================================
860
 // @section bedlevel
834
 // @section bedlevel
861
 
835
 
879
  *   Probe several points in a grid.
853
  *   Probe several points in a grid.
880
  *   You specify the rectangle and the density of sample points.
854
  *   You specify the rectangle and the density of sample points.
881
  *   The result is a mesh, best for large or uneven beds.
855
  *   The result is a mesh, best for large or uneven beds.
856
+ *
857
+ * - UBL Unified Bed Leveling
858
+ *   A comprehensive bed leveling system that combines features and benefits from previous
859
+ *   bed leveling system.  The UBL Bed Leveling System also includes an integrated and easy to use
860
+ *   Mesh Generation, Mesh Validation and Mesh Editing system.
861
+ *     - Currently, the UBL Bed Leveling System is only checked out for Cartesian Printers.  But with
862
+ *       that said, it was primarily designed to handle poor quality Delta Printers.  If you feel
863
+ *       adventurous and have a Delta, please post an issue if something doesn't work correctly.
864
+ *       Initially, you will need to reduce your declared bed size so you have a rectangular area to
865
+ *       test on.
882
  */
866
  */
883
 //#define AUTO_BED_LEVELING_3POINT
867
 //#define AUTO_BED_LEVELING_3POINT
884
 //#define AUTO_BED_LEVELING_LINEAR
868
 //#define AUTO_BED_LEVELING_LINEAR
885
 //#define AUTO_BED_LEVELING_BILINEAR
869
 //#define AUTO_BED_LEVELING_BILINEAR
870
+//#define MESH_BED_LEVELING
871
+//#define AUTO_BED_LEVELING_UBL
886
 
872
 
887
 /**
873
 /**
888
  * Enable detailed logging of G28, G29, M48, etc.
874
  * Enable detailed logging of G28, G29, M48, etc.
891
  */
877
  */
892
 //#define DEBUG_LEVELING_FEATURE
878
 //#define DEBUG_LEVELING_FEATURE
893
 
879
 
880
+#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_BILINEAR) || ENABLED(AUTO_BED_LEVELING_UBL)
881
+  // Gradually reduce leveling correction until a set height is reached,
882
+  // at which point movement will be level to the machine's XY plane.
883
+  // The height can be set with M420 Z<height>
884
+  //#define ENABLE_LEVELING_FADE_HEIGHT
885
+#endif
886
+
894
 #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
887
 #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
895
 
888
 
896
   // Set the number of grid points per dimension.
889
   // Set the number of grid points per dimension.
912
   //#define PROBE_Y_FIRST
905
   //#define PROBE_Y_FIRST
913
 
906
 
914
   #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
907
   #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
915
-
916
-    // Gradually reduce leveling correction until a set height is reached,
917
-    // at which point movement will be level to the machine's XY plane.
918
-    // The height can be set with M420 Z<height>
919
-    //#define ENABLE_LEVELING_FADE_HEIGHT
920
-
921
     //
908
     //
922
     // Experimental Subdivision of the grid by Catmull-Rom method.
909
     // Experimental Subdivision of the grid by Catmull-Rom method.
923
     // Synthesizes intermediate points to produce a more detailed mesh.
910
     // Synthesizes intermediate points to produce a more detailed mesh.
941
   #define ABL_PROBE_PT_3_X 170
928
   #define ABL_PROBE_PT_3_X 170
942
   #define ABL_PROBE_PT_3_Y 20
929
   #define ABL_PROBE_PT_3_Y 20
943
 
930
 
944
-#endif
931
+#elif ENABLED(MESH_BED_LEVELING)
932
+
933
+//===========================================================================
934
+//=================================== Mesh ==================================
935
+//===========================================================================
936
+
937
+  #define MANUAL_PROBE_Z_RANGE 4 // Z after Home, bed somewhere below but above 0.0.
938
+  #define MESH_INSET 10          // Mesh inset margin on print area
939
+  #define MESH_NUM_X_POINTS 3    // Don't use more than 7 points per axis, implementation limited.
940
+  #define MESH_NUM_Y_POINTS 3
941
+
942
+  //#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest at origin [0,0,0]
943
+
944
+  //#define MANUAL_BED_LEVELING  // Add display menu option for bed leveling.
945
+
946
+  #if ENABLED(MANUAL_BED_LEVELING)
947
+    #define MBL_Z_STEP 0.025     // Step size while manually probing Z axis.
948
+  #endif  // MANUAL_BED_LEVELING
949
+
950
+#elif ENABLED(AUTO_BED_LEVELING_UBL)
951
+
952
+//===========================================================================
953
+//========================= Unified Bed Leveling ============================
954
+//===========================================================================
955
+
956
+  #define UBL_MESH_INSET 1          // Mesh inset margin on print area
957
+  #define UBL_MESH_NUM_X_POINTS 10  // Don't use more than 15 points per axis, implementation limited.
958
+  #define UBL_MESH_NUM_Y_POINTS 10
959
+  #define UBL_PROBE_PT_1_X 39       // These set the probe locations for when UBL does a 3-Point leveling
960
+  #define UBL_PROBE_PT_1_Y 180      // of the mesh.
961
+  #define UBL_PROBE_PT_2_X 39
962
+  #define UBL_PROBE_PT_2_Y 20
963
+  #define UBL_PROBE_PT_3_X 180
964
+  #define UBL_PROBE_PT_3_Y 20
965
+
966
+#endif  // BED_LEVELING
945
 
967
 
946
 /**
968
 /**
947
  * Commands to execute at the end of G29 probing.
969
  * Commands to execute at the end of G29 probing.

+ 58
- 35
Marlin/example_configurations/delta/kossel_mini/Configuration.h View File

231
  *    60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
231
  *    60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
232
  *    66 : 4.7M High Temperature thermistor from Dyze Design
232
  *    66 : 4.7M High Temperature thermistor from Dyze Design
233
  *    70 : the 100K thermistor found in the bq Hephestos 2
233
  *    70 : the 100K thermistor found in the bq Hephestos 2
234
+ *    75 : 100k Generic Silicon Heat Pad typically a NTC 100K MGB18-104F39050L32 thermistor
234
  *
235
  *
235
  *       1k ohm pullup tables - This is atypical, and requires changing out the 4.7k pullup for 1k.
236
  *       1k ohm pullup tables - This is atypical, and requires changing out the 4.7k pullup for 1k.
236
  *                              (but gives greater accuracy and more stable PID)
237
  *                              (but gives greater accuracy and more stable PID)
692
 //
693
 //
693
 // To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
694
 // To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
694
 //
695
 //
695
-// For a servo-based Z probe, you must set up servo support below, including
696
-// NUM_SERVOS, Z_ENDSTOP_SERVO_NR and Z_SERVO_ANGLES.
696
+// For a servo-based Z probe, just set Z_ENDSTOP_SERVO_NR and Z_SERVO_ANGLES above.
697
 //
697
 //
698
 // - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
698
 // - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
699
 // - Use 5V for powered (usu. inductive) sensors.
699
 // - Use 5V for powered (usu. inductive) sensors.
830
   #define FILAMENT_RUNOUT_SCRIPT "M600"
830
   #define FILAMENT_RUNOUT_SCRIPT "M600"
831
 #endif
831
 #endif
832
 
832
 
833
-//===========================================================================
834
-//============================ Mesh Bed Leveling ============================
835
-//===========================================================================
836
-
837
-//#define MESH_BED_LEVELING    // Enable mesh bed leveling.
838
-
839
-#if ENABLED(MESH_BED_LEVELING)
840
-  #define MESH_INSET 10        // Mesh inset margin on print area
841
-  #define MESH_NUM_X_POINTS 3  // Don't use more than 7 points per axis, implementation limited.
842
-  #define MESH_NUM_Y_POINTS 3
843
-  #define MANUAL_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
844
-
845
-  //#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS
846
-
847
-  //#define MANUAL_BED_LEVELING  // Add display menu option for bed leveling.
848
-
849
-  #if ENABLED(MANUAL_BED_LEVELING)
850
-    #define MBL_Z_STEP 0.025  // Step size while manually probing Z axis.
851
-  #endif  // MANUAL_BED_LEVELING
852
-
853
-  // Gradually reduce leveling correction until a set height is reached,
854
-  // at which point movement will be level to the machine's XY plane.
855
-  // The height can be set with M420 Z<height>
856
-  #define ENABLE_LEVELING_FADE_HEIGHT
857
-
858
-#endif  // MESH_BED_LEVELING
859
 
833
 
860
 //===========================================================================
834
 //===========================================================================
861
-//============================ Auto Bed Leveling ============================
835
+//=============================== Bed Leveling ==============================
862
 //===========================================================================
836
 //===========================================================================
863
 // @section bedlevel
837
 // @section bedlevel
864
 
838
 
882
  *   Probe several points in a grid.
856
  *   Probe several points in a grid.
883
  *   You specify the rectangle and the density of sample points.
857
  *   You specify the rectangle and the density of sample points.
884
  *   The result is a mesh, best for large or uneven beds.
858
  *   The result is a mesh, best for large or uneven beds.
859
+ *
860
+ * - UBL Unified Bed Leveling
861
+ *   A comprehensive bed leveling system that combines features and benefits from previous
862
+ *   bed leveling system.  The UBL Bed Leveling System also includes an integrated and easy to use
863
+ *   Mesh Generation, Mesh Validation and Mesh Editing system.
864
+ *     - Currently, the UBL Bed Leveling System is only checked out for Cartesian Printers.  But with
865
+ *       that said, it was primarily designed to handle poor quality Delta Printers.  If you feel
866
+ *       adventurous and have a Delta, please post an issue if something doesn't work correctly.
867
+ *       Initially, you will need to reduce your declared bed size so you have a rectangular area to
868
+ *       test on.
885
  */
869
  */
886
 //#define AUTO_BED_LEVELING_3POINT
870
 //#define AUTO_BED_LEVELING_3POINT
887
 //#define AUTO_BED_LEVELING_LINEAR
871
 //#define AUTO_BED_LEVELING_LINEAR
888
 //#define AUTO_BED_LEVELING_BILINEAR
872
 //#define AUTO_BED_LEVELING_BILINEAR
873
+//#define MESH_BED_LEVELING
874
+//#define AUTO_BED_LEVELING_UBL
889
 
875
 
890
 /**
876
 /**
891
  * Enable detailed logging of G28, G29, M48, etc.
877
  * Enable detailed logging of G28, G29, M48, etc.
894
  */
880
  */
895
 //#define DEBUG_LEVELING_FEATURE
881
 //#define DEBUG_LEVELING_FEATURE
896
 
882
 
883
+#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_BILINEAR) || ENABLED(AUTO_BED_LEVELING_UBL)
884
+  // Gradually reduce leveling correction until a set height is reached,
885
+  // at which point movement will be level to the machine's XY plane.
886
+  // The height can be set with M420 Z<height>
887
+  //#define ENABLE_LEVELING_FADE_HEIGHT
888
+#endif
889
+
897
 #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
890
 #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
898
 
891
 
899
   // Set the number of grid points per dimension.
892
   // Set the number of grid points per dimension.
916
 
909
 
917
   #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
910
   #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
918
 
911
 
919
-    // Gradually reduce leveling correction until a set height is reached,
920
-    // at which point movement will be level to the machine's XY plane.
921
-    // The height can be set with M420 Z<height>
922
-    #define ENABLE_LEVELING_FADE_HEIGHT
923
-
924
     //
912
     //
925
     // Experimental Subdivision of the grid by Catmull-Rom method.
913
     // Experimental Subdivision of the grid by Catmull-Rom method.
926
     // Synthesizes intermediate points to produce a more detailed mesh.
914
     // Synthesizes intermediate points to produce a more detailed mesh.
944
   #define ABL_PROBE_PT_3_X 170
932
   #define ABL_PROBE_PT_3_X 170
945
   #define ABL_PROBE_PT_3_Y 20
933
   #define ABL_PROBE_PT_3_Y 20
946
 
934
 
947
-#endif
935
+#elif ENABLED(MESH_BED_LEVELING)
936
+
937
+//===========================================================================
938
+//=================================== Mesh ==================================
939
+//===========================================================================
940
+
941
+  #define MANUAL_PROBE_Z_RANGE 4 // Z after Home, bed somewhere below but above 0.0.
942
+  #define MESH_INSET 10          // Mesh inset margin on print area
943
+  #define MESH_NUM_X_POINTS 3    // Don't use more than 7 points per axis, implementation limited.
944
+  #define MESH_NUM_Y_POINTS 3
945
+
946
+  //#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest at origin [0,0,0]
947
+
948
+  //#define MANUAL_BED_LEVELING  // Add display menu option for bed leveling.
949
+
950
+  #if ENABLED(MANUAL_BED_LEVELING)
951
+    #define MBL_Z_STEP 0.025     // Step size while manually probing Z axis.
952
+  #endif  // MANUAL_BED_LEVELING
953
+
954
+#elif ENABLED(AUTO_BED_LEVELING_UBL)
955
+
956
+//===========================================================================
957
+//========================= Unified Bed Leveling ============================
958
+//===========================================================================
959
+
960
+  #define UBL_MESH_INSET 1          // Mesh inset margin on print area
961
+  #define UBL_MESH_NUM_X_POINTS 10  // Don't use more than 15 points per axis, implementation limited.
962
+  #define UBL_MESH_NUM_Y_POINTS 10
963
+  #define UBL_PROBE_PT_1_X 39       // These set the probe locations for when UBL does a 3-Point leveling
964
+  #define UBL_PROBE_PT_1_Y 180      // of the mesh.
965
+  #define UBL_PROBE_PT_2_X 39
966
+  #define UBL_PROBE_PT_2_Y 20
967
+  #define UBL_PROBE_PT_3_X 180
968
+  #define UBL_PROBE_PT_3_Y 20
969
+
970
+#endif  // BED_LEVELING
948
 
971
 
949
 /**
972
 /**
950
  * Commands to execute at the end of G29 probing.
973
  * Commands to execute at the end of G29 probing.

+ 59
- 36
Marlin/example_configurations/delta/kossel_pro/Configuration.h View File

235
  *    60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
235
  *    60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
236
  *    66 : 4.7M High Temperature thermistor from Dyze Design
236
  *    66 : 4.7M High Temperature thermistor from Dyze Design
237
  *    70 : the 100K thermistor found in the bq Hephestos 2
237
  *    70 : the 100K thermistor found in the bq Hephestos 2
238
+ *    75 : 100k Generic Silicon Heat Pad typically a NTC 100K MGB18-104F39050L32 thermistor
238
  *
239
  *
239
  *       1k ohm pullup tables - This is atypical, and requires changing out the 4.7k pullup for 1k.
240
  *       1k ohm pullup tables - This is atypical, and requires changing out the 4.7k pullup for 1k.
240
  *                              (but gives greater accuracy and more stable PID)
241
  *                              (but gives greater accuracy and more stable PID)
691
 //
692
 //
692
 // To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
693
 // To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
693
 //
694
 //
694
-// For a servo-based Z probe, you must set up servo support below, including
695
-// NUM_SERVOS, Z_ENDSTOP_SERVO_NR and Z_SERVO_ANGLES.
695
+// For a servo-based Z probe, just set Z_ENDSTOP_SERVO_NR and Z_SERVO_ANGLES above.
696
 //
696
 //
697
 // - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
697
 // - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
698
 // - Use 5V for powered (usu. inductive) sensors.
698
 // - Use 5V for powered (usu. inductive) sensors.
829
   #define FILAMENT_RUNOUT_SCRIPT "M600"
829
   #define FILAMENT_RUNOUT_SCRIPT "M600"
830
 #endif
830
 #endif
831
 
831
 
832
-//===========================================================================
833
-//============================ Mesh Bed Leveling ============================
834
-//===========================================================================
835
-
836
-//#define MESH_BED_LEVELING    // Enable mesh bed leveling.
837
-
838
-#if ENABLED(MESH_BED_LEVELING)
839
-  #define MESH_INSET 10        // Mesh inset margin on print area
840
-  #define MESH_NUM_X_POINTS 3  // Don't use more than 7 points per axis, implementation limited.
841
-  #define MESH_NUM_Y_POINTS 3
842
-  #define MANUAL_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
843
-
844
-  //#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS
845
-
846
-  //#define MANUAL_BED_LEVELING  // Add display menu option for bed leveling.
847
-
848
-  #if ENABLED(MANUAL_BED_LEVELING)
849
-    #define MBL_Z_STEP 0.025  // Step size while manually probing Z axis.
850
-  #endif  // MANUAL_BED_LEVELING
851
-
852
-  // Gradually reduce leveling correction until a set height is reached,
853
-  // at which point movement will be level to the machine's XY plane.
854
-  // The height can be set with M420 Z<height>
855
-  #define ENABLE_LEVELING_FADE_HEIGHT
856
-
857
-#endif  // MESH_BED_LEVELING
858
 
832
 
859
 //===========================================================================
833
 //===========================================================================
860
-//============================ Auto Bed Leveling ============================
834
+//=============================== Bed Leveling ==============================
861
 //===========================================================================
835
 //===========================================================================
862
 // @section bedlevel
836
 // @section bedlevel
863
 
837
 
881
  *   Probe several points in a grid.
855
  *   Probe several points in a grid.
882
  *   You specify the rectangle and the density of sample points.
856
  *   You specify the rectangle and the density of sample points.
883
  *   The result is a mesh, best for large or uneven beds.
857
  *   The result is a mesh, best for large or uneven beds.
858
+ *
859
+ * - UBL Unified Bed Leveling
860
+ *   A comprehensive bed leveling system that combines features and benefits from previous
861
+ *   bed leveling system.  The UBL Bed Leveling System also includes an integrated and easy to use
862
+ *   Mesh Generation, Mesh Validation and Mesh Editing system.
863
+ *     - Currently, the UBL Bed Leveling System is only checked out for Cartesian Printers.  But with
864
+ *       that said, it was primarily designed to handle poor quality Delta Printers.  If you feel
865
+ *       adventurous and have a Delta, please post an issue if something doesn't work correctly.
866
+ *       Initially, you will need to reduce your declared bed size so you have a rectangular area to
867
+ *       test on.
884
  */
868
  */
885
 //#define AUTO_BED_LEVELING_3POINT
869
 //#define AUTO_BED_LEVELING_3POINT
886
 //#define AUTO_BED_LEVELING_LINEAR
870
 //#define AUTO_BED_LEVELING_LINEAR
887
-#define AUTO_BED_LEVELING_BILINEAR
871
+//#define AUTO_BED_LEVELING_BILINEAR
872
+//#define MESH_BED_LEVELING
873
+//#define AUTO_BED_LEVELING_UBL
888
 
874
 
889
 /**
875
 /**
890
  * Enable detailed logging of G28, G29, M48, etc.
876
  * Enable detailed logging of G28, G29, M48, etc.
893
  */
879
  */
894
 //#define DEBUG_LEVELING_FEATURE
880
 //#define DEBUG_LEVELING_FEATURE
895
 
881
 
882
+#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_BILINEAR) || ENABLED(AUTO_BED_LEVELING_UBL)
883
+  // Gradually reduce leveling correction until a set height is reached,
884
+  // at which point movement will be level to the machine's XY plane.
885
+  // The height can be set with M420 Z<height>
886
+  //#define ENABLE_LEVELING_FADE_HEIGHT
887
+#endif
888
+
896
 #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
889
 #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
897
 
890
 
898
   // Set the number of grid points per dimension.
891
   // Set the number of grid points per dimension.
915
 
908
 
916
   #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
909
   #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
917
 
910
 
918
-    // Gradually reduce leveling correction until a set height is reached,
919
-    // at which point movement will be level to the machine's XY plane.
920
-    // The height can be set with M420 Z<height>
921
-    //#define ENABLE_LEVELING_FADE_HEIGHT
922
-
923
     //
911
     //
924
     // Experimental Subdivision of the grid by Catmull-Rom method.
912
     // Experimental Subdivision of the grid by Catmull-Rom method.
925
     // Synthesizes intermediate points to produce a more detailed mesh.
913
     // Synthesizes intermediate points to produce a more detailed mesh.
943
   #define ABL_PROBE_PT_3_X 170
931
   #define ABL_PROBE_PT_3_X 170
944
   #define ABL_PROBE_PT_3_Y 20
932
   #define ABL_PROBE_PT_3_Y 20
945
 
933
 
946
-#endif
934
+#elif ENABLED(MESH_BED_LEVELING)
935
+
936
+//===========================================================================
937
+//=================================== Mesh ==================================
938
+//===========================================================================
939
+
940
+  #define MANUAL_PROBE_Z_RANGE 4 // Z after Home, bed somewhere below but above 0.0.
941
+  #define MESH_INSET 10          // Mesh inset margin on print area
942
+  #define MESH_NUM_X_POINTS 3    // Don't use more than 7 points per axis, implementation limited.
943
+  #define MESH_NUM_Y_POINTS 3
944
+
945
+  //#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest at origin [0,0,0]
946
+
947
+  //#define MANUAL_BED_LEVELING  // Add display menu option for bed leveling.
948
+
949
+  #if ENABLED(MANUAL_BED_LEVELING)
950
+    #define MBL_Z_STEP 0.025     // Step size while manually probing Z axis.
951
+  #endif  // MANUAL_BED_LEVELING
952
+
953
+#elif ENABLED(AUTO_BED_LEVELING_UBL)
954
+
955
+//===========================================================================
956
+//========================= Unified Bed Leveling ============================
957
+//===========================================================================
958
+
959
+  #define UBL_MESH_INSET 1          // Mesh inset margin on print area
960
+  #define UBL_MESH_NUM_X_POINTS 10  // Don't use more than 15 points per axis, implementation limited.
961
+  #define UBL_MESH_NUM_Y_POINTS 10
962
+  #define UBL_PROBE_PT_1_X 39       // These set the probe locations for when UBL does a 3-Point leveling
963
+  #define UBL_PROBE_PT_1_Y 180      // of the mesh.
964
+  #define UBL_PROBE_PT_2_X 39
965
+  #define UBL_PROBE_PT_2_Y 20
966
+  #define UBL_PROBE_PT_3_X 180
967
+  #define UBL_PROBE_PT_3_Y 20
968
+
969
+#endif  // BED_LEVELING
947
 
970
 
948
 /**
971
 /**
949
  * Commands to execute at the end of G29 probing.
972
  * Commands to execute at the end of G29 probing.

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

74
 // example_configurations/delta directory.
74
 // example_configurations/delta directory.
75
 //
75
 //
76
 
76
 
77
+//===========================================================================
78
+//============================= SCARA Printer ===============================
79
+//===========================================================================
80
+// For a Scara printer replace the configuration files with the files in the
81
+// example_configurations/SCARA directory.
82
+//
83
+
77
 // @section info
84
 // @section info
78
 
85
 
79
 // User-specified version info of this build to display in [Pronterface, etc] terminal window during
86
 // User-specified version info of this build to display in [Pronterface, etc] terminal window during
224
  *    60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
231
  *    60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
225
  *    66 : 4.7M High Temperature thermistor from Dyze Design
232
  *    66 : 4.7M High Temperature thermistor from Dyze Design
226
  *    70 : the 100K thermistor found in the bq Hephestos 2
233
  *    70 : the 100K thermistor found in the bq Hephestos 2
234
+ *    75 : 100k Generic Silicon Heat Pad typically a NTC 100K MGB18-104F39050L32 thermistor
227
  *
235
  *
228
  *       1k ohm pullup tables - This is atypical, and requires changing out the 4.7k pullup for 1k.
236
  *       1k ohm pullup tables - This is atypical, and requires changing out the 4.7k pullup for 1k.
229
  *                              (but gives greater accuracy and more stable PID)
237
  *                              (but gives greater accuracy and more stable PID)
695
 //
703
 //
696
 // To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
704
 // To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
697
 //
705
 //
698
-// For a servo-based Z probe, you must set up servo support below, including
699
-// NUM_SERVOS, Z_ENDSTOP_SERVO_NR and Z_SERVO_ANGLES.
706
+// For a servo-based Z probe, just set Z_ENDSTOP_SERVO_NR and Z_SERVO_ANGLES above.
700
 //
707
 //
701
 // - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
708
 // - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
702
 // - Use 5V for powered (usu. inductive) sensors.
709
 // - Use 5V for powered (usu. inductive) sensors.
833
   #define FILAMENT_RUNOUT_SCRIPT "M600"
840
   #define FILAMENT_RUNOUT_SCRIPT "M600"
834
 #endif
841
 #endif
835
 
842
 
836
-//===========================================================================
837
-//============================ Mesh Bed Leveling ============================
838
-//===========================================================================
839
-
840
-//#define MESH_BED_LEVELING    // Enable mesh bed leveling.
841
-
842
-#if ENABLED(MESH_BED_LEVELING)
843
-  #define MESH_INSET 10        // Mesh inset margin on print area
844
-  #define MESH_NUM_X_POINTS 3  // Don't use more than 7 points per axis, implementation limited.
845
-  #define MESH_NUM_Y_POINTS 3
846
-  #define MANUAL_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
847
-
848
-  //#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS
849
-
850
-  //#define MANUAL_BED_LEVELING  // Add display menu option for bed leveling.
851
-
852
-  #if ENABLED(MANUAL_BED_LEVELING)
853
-    #define MBL_Z_STEP 0.025  // Step size while manually probing Z axis.
854
-  #endif  // MANUAL_BED_LEVELING
855
-
856
-  // Gradually reduce leveling correction until a set height is reached,
857
-  // at which point movement will be level to the machine's XY plane.
858
-  // The height can be set with M420 Z<height>
859
-  #define ENABLE_LEVELING_FADE_HEIGHT
860
-
861
-#endif  // MESH_BED_LEVELING
862
 
843
 
863
 //===========================================================================
844
 //===========================================================================
864
-//============================ Auto Bed Leveling ============================
845
+//=============================== Bed Leveling ==============================
865
 //===========================================================================
846
 //===========================================================================
866
 // @section bedlevel
847
 // @section bedlevel
867
 
848
 
885
  *   Probe several points in a grid.
866
  *   Probe several points in a grid.
886
  *   You specify the rectangle and the density of sample points.
867
  *   You specify the rectangle and the density of sample points.
887
  *   The result is a mesh, best for large or uneven beds.
868
  *   The result is a mesh, best for large or uneven beds.
869
+ *
870
+ * - UBL Unified Bed Leveling
871
+ *   A comprehensive bed leveling system that combines features and benefits from previous
872
+ *   bed leveling system.  The UBL Bed Leveling System also includes an integrated and easy to use
873
+ *   Mesh Generation, Mesh Validation and Mesh Editing system.
874
+ *     - Currently, the UBL Bed Leveling System is only checked out for Cartesian Printers.  But with
875
+ *       that said, it was primarily designed to handle poor quality Delta Printers.  If you feel
876
+ *       adventurous and have a Delta, please post an issue if something doesn't work correctly.
877
+ *       Initially, you will need to reduce your declared bed size so you have a rectangular area to
878
+ *       test on.
888
  */
879
  */
889
 //#define AUTO_BED_LEVELING_3POINT
880
 //#define AUTO_BED_LEVELING_3POINT
890
 //#define AUTO_BED_LEVELING_LINEAR
881
 //#define AUTO_BED_LEVELING_LINEAR
891
-#define AUTO_BED_LEVELING_BILINEAR
882
+//#define AUTO_BED_LEVELING_BILINEAR
883
+//#define MESH_BED_LEVELING
884
+//#define AUTO_BED_LEVELING_UBL
892
 
885
 
893
 /**
886
 /**
894
  * Enable detailed logging of G28, G29, M48, etc.
887
  * Enable detailed logging of G28, G29, M48, etc.
897
  */
890
  */
898
 //#define DEBUG_LEVELING_FEATURE
891
 //#define DEBUG_LEVELING_FEATURE
899
 
892
 
893
+#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_BILINEAR) || ENABLED(AUTO_BED_LEVELING_UBL)
894
+  // Gradually reduce leveling correction until a set height is reached,
895
+  // at which point movement will be level to the machine's XY plane.
896
+  // The height can be set with M420 Z<height>
897
+  //#define ENABLE_LEVELING_FADE_HEIGHT
898
+#endif
899
+
900
 #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
900
 #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
901
 
901
 
902
   // Set the number of grid points per dimension.
902
   // Set the number of grid points per dimension.
918
   //#define PROBE_Y_FIRST
918
   //#define PROBE_Y_FIRST
919
 
919
 
920
   #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
920
   #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
921
-
922
-    // Gradually reduce leveling correction until a set height is reached,
923
-    // at which point movement will be level to the machine's XY plane.
924
-    // The height can be set with M420 Z<height>
925
-    //#define ENABLE_LEVELING_FADE_HEIGHT
926
-
927
     //
921
     //
928
     // Experimental Subdivision of the grid by Catmull-Rom method.
922
     // Experimental Subdivision of the grid by Catmull-Rom method.
929
     // Synthesizes intermediate points to produce a more detailed mesh.
923
     // Synthesizes intermediate points to produce a more detailed mesh.
947
   #define ABL_PROBE_PT_3_X 170
941
   #define ABL_PROBE_PT_3_X 170
948
   #define ABL_PROBE_PT_3_Y 20
942
   #define ABL_PROBE_PT_3_Y 20
949
 
943
 
950
-#endif
944
+#elif ENABLED(MESH_BED_LEVELING)
945
+
946
+//===========================================================================
947
+//=================================== Mesh ==================================
948
+//===========================================================================
949
+
950
+  #define MANUAL_PROBE_Z_RANGE 4 // Z after Home, bed somewhere below but above 0.0.
951
+  #define MESH_INSET 10          // Mesh inset margin on print area
952
+  #define MESH_NUM_X_POINTS 3    // Don't use more than 7 points per axis, implementation limited.
953
+  #define MESH_NUM_Y_POINTS 3
954
+
955
+  //#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest at origin [0,0,0]
956
+
957
+  //#define MANUAL_BED_LEVELING  // Add display menu option for bed leveling.
958
+
959
+  #if ENABLED(MANUAL_BED_LEVELING)
960
+    #define MBL_Z_STEP 0.025     // Step size while manually probing Z axis.
961
+  #endif  // MANUAL_BED_LEVELING
962
+
963
+#elif ENABLED(AUTO_BED_LEVELING_UBL)
964
+
965
+//===========================================================================
966
+//========================= Unified Bed Leveling ============================
967
+//===========================================================================
968
+
969
+  #define UBL_MESH_INSET 1          // Mesh inset margin on print area
970
+  #define UBL_MESH_NUM_X_POINTS 10  // Don't use more than 15 points per axis, implementation limited.
971
+  #define UBL_MESH_NUM_Y_POINTS 10
972
+  #define UBL_PROBE_PT_1_X 39       // These set the probe locations for when UBL does a 3-Point leveling
973
+  #define UBL_PROBE_PT_1_Y 180      // of the mesh.
974
+  #define UBL_PROBE_PT_2_X 39
975
+  #define UBL_PROBE_PT_2_Y 20
976
+  #define UBL_PROBE_PT_3_X 180
977
+  #define UBL_PROBE_PT_3_Y 20
978
+
979
+#endif  // BED_LEVELING
951
 
980
 
952
 /**
981
 /**
953
  * Commands to execute at the end of G29 probing.
982
  * Commands to execute at the end of G29 probing.

+ 58
- 35
Marlin/example_configurations/makibox/Configuration.h View File

231
  *    60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
231
  *    60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
232
  *    66 : 4.7M High Temperature thermistor from Dyze Design
232
  *    66 : 4.7M High Temperature thermistor from Dyze Design
233
  *    70 : the 100K thermistor found in the bq Hephestos 2
233
  *    70 : the 100K thermistor found in the bq Hephestos 2
234
+ *    75 : 100k Generic Silicon Heat Pad typically a NTC 100K MGB18-104F39050L32 thermistor
234
  *
235
  *
235
  *       1k ohm pullup tables - This is atypical, and requires changing out the 4.7k pullup for 1k.
236
  *       1k ohm pullup tables - This is atypical, and requires changing out the 4.7k pullup for 1k.
236
  *                              (but gives greater accuracy and more stable PID)
237
  *                              (but gives greater accuracy and more stable PID)
606
 //
607
 //
607
 // To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
608
 // To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
608
 //
609
 //
609
-// For a servo-based Z probe, you must set up servo support below, including
610
-// NUM_SERVOS, Z_ENDSTOP_SERVO_NR and Z_SERVO_ANGLES.
610
+// For a servo-based Z probe, just set Z_ENDSTOP_SERVO_NR and Z_SERVO_ANGLES above.
611
 //
611
 //
612
 // - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
612
 // - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
613
 // - Use 5V for powered (usu. inductive) sensors.
613
 // - Use 5V for powered (usu. inductive) sensors.
744
   #define FILAMENT_RUNOUT_SCRIPT "M600"
744
   #define FILAMENT_RUNOUT_SCRIPT "M600"
745
 #endif
745
 #endif
746
 
746
 
747
-//===========================================================================
748
-//============================ Mesh Bed Leveling ============================
749
-//===========================================================================
750
-
751
-//#define MESH_BED_LEVELING    // Enable mesh bed leveling.
752
-
753
-#if ENABLED(MESH_BED_LEVELING)
754
-  #define MESH_INSET 10        // Mesh inset margin on print area
755
-  #define MESH_NUM_X_POINTS 3  // Don't use more than 7 points per axis, implementation limited.
756
-  #define MESH_NUM_Y_POINTS 3
757
-  #define MANUAL_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
758
-
759
-  //#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS
760
-
761
-  //#define MANUAL_BED_LEVELING  // Add display menu option for bed leveling.
762
-
763
-  #if ENABLED(MANUAL_BED_LEVELING)
764
-    #define MBL_Z_STEP 0.025  // Step size while manually probing Z axis.
765
-  #endif  // MANUAL_BED_LEVELING
766
-
767
-  // Gradually reduce leveling correction until a set height is reached,
768
-  // at which point movement will be level to the machine's XY plane.
769
-  // The height can be set with M420 Z<height>
770
-  #define ENABLE_LEVELING_FADE_HEIGHT
771
-
772
-#endif  // MESH_BED_LEVELING
773
 
747
 
774
 //===========================================================================
748
 //===========================================================================
775
-//============================ Auto Bed Leveling ============================
749
+//=============================== Bed Leveling ==============================
776
 //===========================================================================
750
 //===========================================================================
777
 // @section bedlevel
751
 // @section bedlevel
778
 
752
 
796
  *   Probe several points in a grid.
770
  *   Probe several points in a grid.
797
  *   You specify the rectangle and the density of sample points.
771
  *   You specify the rectangle and the density of sample points.
798
  *   The result is a mesh, best for large or uneven beds.
772
  *   The result is a mesh, best for large or uneven beds.
773
+ *
774
+ * - UBL Unified Bed Leveling
775
+ *   A comprehensive bed leveling system that combines features and benefits from previous
776
+ *   bed leveling system.  The UBL Bed Leveling System also includes an integrated and easy to use
777
+ *   Mesh Generation, Mesh Validation and Mesh Editing system.
778
+ *     - Currently, the UBL Bed Leveling System is only checked out for Cartesian Printers.  But with
779
+ *       that said, it was primarily designed to handle poor quality Delta Printers.  If you feel
780
+ *       adventurous and have a Delta, please post an issue if something doesn't work correctly.
781
+ *       Initially, you will need to reduce your declared bed size so you have a rectangular area to
782
+ *       test on.
799
  */
783
  */
800
 //#define AUTO_BED_LEVELING_3POINT
784
 //#define AUTO_BED_LEVELING_3POINT
801
 //#define AUTO_BED_LEVELING_LINEAR
785
 //#define AUTO_BED_LEVELING_LINEAR
802
 //#define AUTO_BED_LEVELING_BILINEAR
786
 //#define AUTO_BED_LEVELING_BILINEAR
787
+//#define MESH_BED_LEVELING
788
+//#define AUTO_BED_LEVELING_UBL
803
 
789
 
804
 /**
790
 /**
805
  * Enable detailed logging of G28, G29, M48, etc.
791
  * Enable detailed logging of G28, G29, M48, etc.
808
  */
794
  */
809
 //#define DEBUG_LEVELING_FEATURE
795
 //#define DEBUG_LEVELING_FEATURE
810
 
796
 
797
+#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_BILINEAR) || ENABLED(AUTO_BED_LEVELING_UBL)
798
+  // Gradually reduce leveling correction until a set height is reached,
799
+  // at which point movement will be level to the machine's XY plane.
800
+  // The height can be set with M420 Z<height>
801
+  #define ENABLE_LEVELING_FADE_HEIGHT
802
+#endif
803
+
811
 #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
804
 #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
812
 
805
 
813
   // Set the number of grid points per dimension.
806
   // Set the number of grid points per dimension.
828
 
821
 
829
   #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
822
   #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
830
 
823
 
831
-    // Gradually reduce leveling correction until a set height is reached,
832
-    // at which point movement will be level to the machine's XY plane.
833
-    // The height can be set with M420 Z<height>
834
-    #define ENABLE_LEVELING_FADE_HEIGHT
835
-
836
     //
824
     //
837
     // Experimental Subdivision of the grid by Catmull-Rom method.
825
     // Experimental Subdivision of the grid by Catmull-Rom method.
838
     // Synthesizes intermediate points to produce a more detailed mesh.
826
     // Synthesizes intermediate points to produce a more detailed mesh.
856
   #define ABL_PROBE_PT_3_X 170
844
   #define ABL_PROBE_PT_3_X 170
857
   #define ABL_PROBE_PT_3_Y 20
845
   #define ABL_PROBE_PT_3_Y 20
858
 
846
 
859
-#endif
847
+#elif ENABLED(MESH_BED_LEVELING)
848
+
849
+//===========================================================================
850
+//=================================== Mesh ==================================
851
+//===========================================================================
852
+
853
+  #define MANUAL_PROBE_Z_RANGE 4 // Z after Home, bed somewhere below but above 0.0.
854
+  #define MESH_INSET 10          // Mesh inset margin on print area
855
+  #define MESH_NUM_X_POINTS 3    // Don't use more than 7 points per axis, implementation limited.
856
+  #define MESH_NUM_Y_POINTS 3
857
+
858
+  //#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest at origin [0,0,0]
859
+
860
+  //#define MANUAL_BED_LEVELING  // Add display menu option for bed leveling.
861
+
862
+  #if ENABLED(MANUAL_BED_LEVELING)
863
+    #define MBL_Z_STEP 0.025     // Step size while manually probing Z axis.
864
+  #endif  // MANUAL_BED_LEVELING
865
+
866
+#elif ENABLED(AUTO_BED_LEVELING_UBL)
867
+
868
+//===========================================================================
869
+//========================= Unified Bed Leveling ============================
870
+//===========================================================================
871
+
872
+  #define UBL_MESH_INSET 1          // Mesh inset margin on print area
873
+  #define UBL_MESH_NUM_X_POINTS 10  // Don't use more than 15 points per axis, implementation limited.
874
+  #define UBL_MESH_NUM_Y_POINTS 10
875
+  #define UBL_PROBE_PT_1_X 39       // These set the probe locations for when UBL does a 3-Point leveling
876
+  #define UBL_PROBE_PT_1_Y 180      // of the mesh.
877
+  #define UBL_PROBE_PT_2_X 39
878
+  #define UBL_PROBE_PT_2_Y 20
879
+  #define UBL_PROBE_PT_3_X 180
880
+  #define UBL_PROBE_PT_3_Y 20
881
+
882
+#endif  // BED_LEVELING
860
 
883
 
861
 /**
884
 /**
862
  * Commands to execute at the end of G29 probing.
885
  * Commands to execute at the end of G29 probing.

+ 58
- 35
Marlin/example_configurations/tvrrug/Round2/Configuration.h View File

231
  *    60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
231
  *    60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
232
  *    66 : 4.7M High Temperature thermistor from Dyze Design
232
  *    66 : 4.7M High Temperature thermistor from Dyze Design
233
  *    70 : the 100K thermistor found in the bq Hephestos 2
233
  *    70 : the 100K thermistor found in the bq Hephestos 2
234
+ *    75 : 100k Generic Silicon Heat Pad typically a NTC 100K MGB18-104F39050L32 thermistor
234
  *
235
  *
235
  *       1k ohm pullup tables - This is atypical, and requires changing out the 4.7k pullup for 1k.
236
  *       1k ohm pullup tables - This is atypical, and requires changing out the 4.7k pullup for 1k.
236
  *                              (but gives greater accuracy and more stable PID)
237
  *                              (but gives greater accuracy and more stable PID)
599
 //
600
 //
600
 // To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
601
 // To use a separate Z probe, your board must define a Z_MIN_PROBE_PIN.
601
 //
602
 //
602
-// For a servo-based Z probe, you must set up servo support below, including
603
-// NUM_SERVOS, Z_ENDSTOP_SERVO_NR and Z_SERVO_ANGLES.
603
+// For a servo-based Z probe, just set Z_ENDSTOP_SERVO_NR and Z_SERVO_ANGLES above.
604
 //
604
 //
605
 // - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
605
 // - RAMPS 1.3/1.4 boards may be able to use the 5V, GND, and Aux4->D32 pin.
606
 // - Use 5V for powered (usu. inductive) sensors.
606
 // - Use 5V for powered (usu. inductive) sensors.
737
   #define FILAMENT_RUNOUT_SCRIPT "M600"
737
   #define FILAMENT_RUNOUT_SCRIPT "M600"
738
 #endif
738
 #endif
739
 
739
 
740
-//===========================================================================
741
-//============================ Mesh Bed Leveling ============================
742
-//===========================================================================
743
-
744
-//#define MESH_BED_LEVELING    // Enable mesh bed leveling.
745
-
746
-#if ENABLED(MESH_BED_LEVELING)
747
-  #define MESH_INSET 10        // Mesh inset margin on print area
748
-  #define MESH_NUM_X_POINTS 3  // Don't use more than 7 points per axis, implementation limited.
749
-  #define MESH_NUM_Y_POINTS 3
750
-  #define MANUAL_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
751
-
752
-  //#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS
753
-
754
-  //#define MANUAL_BED_LEVELING  // Add display menu option for bed leveling.
755
-
756
-  #if ENABLED(MANUAL_BED_LEVELING)
757
-    #define MBL_Z_STEP 0.025  // Step size while manually probing Z axis.
758
-  #endif  // MANUAL_BED_LEVELING
759
-
760
-  // Gradually reduce leveling correction until a set height is reached,
761
-  // at which point movement will be level to the machine's XY plane.
762
-  // The height can be set with M420 Z<height>
763
-  #define ENABLE_LEVELING_FADE_HEIGHT
764
-
765
-#endif  // MESH_BED_LEVELING
766
 
740
 
767
 //===========================================================================
741
 //===========================================================================
768
-//============================ Auto Bed Leveling ============================
742
+//=============================== Bed Leveling ==============================
769
 //===========================================================================
743
 //===========================================================================
770
 // @section bedlevel
744
 // @section bedlevel
771
 
745
 
789
  *   Probe several points in a grid.
763
  *   Probe several points in a grid.
790
  *   You specify the rectangle and the density of sample points.
764
  *   You specify the rectangle and the density of sample points.
791
  *   The result is a mesh, best for large or uneven beds.
765
  *   The result is a mesh, best for large or uneven beds.
766
+ *
767
+ * - UBL Unified Bed Leveling
768
+ *   A comprehensive bed leveling system that combines features and benefits from previous
769
+ *   bed leveling system.  The UBL Bed Leveling System also includes an integrated and easy to use
770
+ *   Mesh Generation, Mesh Validation and Mesh Editing system.
771
+ *     - Currently, the UBL Bed Leveling System is only checked out for Cartesian Printers.  But with
772
+ *       that said, it was primarily designed to handle poor quality Delta Printers.  If you feel
773
+ *       adventurous and have a Delta, please post an issue if something doesn't work correctly.
774
+ *       Initially, you will need to reduce your declared bed size so you have a rectangular area to
775
+ *       test on.
792
  */
776
  */
793
 //#define AUTO_BED_LEVELING_3POINT
777
 //#define AUTO_BED_LEVELING_3POINT
794
 //#define AUTO_BED_LEVELING_LINEAR
778
 //#define AUTO_BED_LEVELING_LINEAR
795
 //#define AUTO_BED_LEVELING_BILINEAR
779
 //#define AUTO_BED_LEVELING_BILINEAR
780
+//#define MESH_BED_LEVELING
781
+//#define AUTO_BED_LEVELING_UBL
796
 
782
 
797
 /**
783
 /**
798
  * Enable detailed logging of G28, G29, M48, etc.
784
  * Enable detailed logging of G28, G29, M48, etc.
801
  */
787
  */
802
 //#define DEBUG_LEVELING_FEATURE
788
 //#define DEBUG_LEVELING_FEATURE
803
 
789
 
790
+#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_BILINEAR) || ENABLED(AUTO_BED_LEVELING_UBL)
791
+  // Gradually reduce leveling correction until a set height is reached,
792
+  // at which point movement will be level to the machine's XY plane.
793
+  // The height can be set with M420 Z<height>
794
+  #define ENABLE_LEVELING_FADE_HEIGHT
795
+#endif
796
+
804
 #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
797
 #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
805
 
798
 
806
   // Set the number of grid points per dimension.
799
   // Set the number of grid points per dimension.
821
 
814
 
822
   #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
815
   #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
823
 
816
 
824
-    // Gradually reduce leveling correction until a set height is reached,
825
-    // at which point movement will be level to the machine's XY plane.
826
-    // The height can be set with M420 Z<height>
827
-    #define ENABLE_LEVELING_FADE_HEIGHT
828
-
829
     //
817
     //
830
     // Experimental Subdivision of the grid by Catmull-Rom method.
818
     // Experimental Subdivision of the grid by Catmull-Rom method.
831
     // Synthesizes intermediate points to produce a more detailed mesh.
819
     // Synthesizes intermediate points to produce a more detailed mesh.
849
   #define ABL_PROBE_PT_3_X 170
837
   #define ABL_PROBE_PT_3_X 170
850
   #define ABL_PROBE_PT_3_Y 20
838
   #define ABL_PROBE_PT_3_Y 20
851
 
839
 
852
-#endif
840
+#elif ENABLED(MESH_BED_LEVELING)
841
+
842
+//===========================================================================
843
+//=================================== Mesh ==================================
844
+//===========================================================================
845
+
846
+  #define MANUAL_PROBE_Z_RANGE 4 // Z after Home, bed somewhere below but above 0.0.
847
+  #define MESH_INSET 10          // Mesh inset margin on print area
848
+  #define MESH_NUM_X_POINTS 3    // Don't use more than 7 points per axis, implementation limited.
849
+  #define MESH_NUM_Y_POINTS 3
850
+
851
+  //#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest at origin [0,0,0]
852
+
853
+  //#define MANUAL_BED_LEVELING  // Add display menu option for bed leveling.
854
+
855
+  #if ENABLED(MANUAL_BED_LEVELING)
856
+    #define MBL_Z_STEP 0.025     // Step size while manually probing Z axis.
857
+  #endif  // MANUAL_BED_LEVELING
858
+
859
+#elif ENABLED(AUTO_BED_LEVELING_UBL)
860
+
861
+//===========================================================================
862
+//========================= Unified Bed Leveling ============================
863
+//===========================================================================
864
+
865
+  #define UBL_MESH_INSET 1          // Mesh inset margin on print area
866
+  #define UBL_MESH_NUM_X_POINTS 10  // Don't use more than 15 points per axis, implementation limited.
867
+  #define UBL_MESH_NUM_Y_POINTS 10
868
+  #define UBL_PROBE_PT_1_X 39       // These set the probe locations for when UBL does a 3-Point leveling
869
+  #define UBL_PROBE_PT_1_Y 180      // of the mesh.
870
+  #define UBL_PROBE_PT_2_X 39
871
+  #define UBL_PROBE_PT_2_Y 20
872
+  #define UBL_PROBE_PT_3_X 180
873
+  #define UBL_PROBE_PT_3_Y 20
874
+
875
+#endif  // BED_LEVELING
853
 
876
 
854
 /**
877
 /**
855
  * Commands to execute at the end of G29 probing.
878
  * Commands to execute at the end of G29 probing.

Loading…
Cancel
Save