Browse Source

Bring Malyan M200 config up to date

Scott Lahteine 7 years ago
parent
commit
2b7db90340

+ 201
- 92
Marlin/src/config/examples/Malyan/M200/Configuration.h View File

91
 // example configuration folder.
91
 // example configuration folder.
92
 //
92
 //
93
 //#define SHOW_CUSTOM_BOOTSCREEN
93
 //#define SHOW_CUSTOM_BOOTSCREEN
94
-
95
 // @section machine
94
 // @section machine
96
 
95
 
97
 /**
96
 /**
98
- * Select which serial port on the board will be used for communication with the host.
97
+ * Select the serial port on the board to use for communication with the host.
99
  * This allows the connection of wireless adapters (for instance) to non-default port pins.
98
  * This allows the connection of wireless adapters (for instance) to non-default port pins.
100
- * Serial port 0 is always used by the Arduino bootloader regardless of this setting.
99
+ * Note: The first serial port (-1 or 0) will always be used by the Arduino bootloader.
101
  *
100
  *
102
- * :[0, 1, 2, 3, 4, 5, 6, 7]
101
+ * :[-1, 0, 1, 2, 3, 4, 5, 6, 7]
103
  */
102
  */
104
 #define SERIAL_PORT 0
103
 #define SERIAL_PORT 0
105
 
104
 
137
 // :[1, 2, 3, 4, 5]
136
 // :[1, 2, 3, 4, 5]
138
 #define EXTRUDERS 1
137
 #define EXTRUDERS 1
139
 
138
 
139
+// Generally expected filament diameter (1.75, 2.85, 3.0, ...). Used for Volumetric, Filament Width Sensor, etc.
140
+#define DEFAULT_NOMINAL_FILAMENT_DIA 3.0
141
+
140
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
142
 // For Cyclops or any "multi-extruder" that shares a single nozzle.
141
 //#define SINGLENOZZLE
143
 //#define SINGLENOZZLE
142
 
144
 
337
 
339
 
338
 // Comment the following line to disable PID and enable bang-bang.
340
 // Comment the following line to disable PID and enable bang-bang.
339
 #define PIDTEMP
341
 #define PIDTEMP
340
-#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
341
-#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
342
+#define BANG_MAX 255     // Limits current to nozzle while in bang-bang mode; 255=full current
343
+#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
344
+#define PID_K1 0.95      // Smoothing factor within any PID loop
342
 #if ENABLED(PIDTEMP)
345
 #if ENABLED(PIDTEMP)
343
   //#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
346
   //#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
344
   //#define PID_DEBUG // Sends debug data to the serial port.
347
   //#define PID_DEBUG // Sends debug data to the serial port.
348
                                   // Set/get with gcode: M301 E[extruder number, 0-2]
351
                                   // Set/get with gcode: M301 E[extruder number, 0-2]
349
   #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
352
   #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
350
                                   // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
353
                                   // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
351
-  #define K1 0.95 //smoothing factor within the PID
352
 
354
 
353
   // If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it
355
   // If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it
354
 
356
 
428
 //===========================================================================
430
 //===========================================================================
429
 
431
 
430
 /**
432
 /**
431
- * Thermal Protection protects your printer from damage and fire if a
432
- * thermistor falls out or temperature sensors fail in any way.
433
+ * Thermal Protection provides additional protection to your printer from damage
434
+ * and fire. Marlin always includes safe min and max temperature ranges which
435
+ * protect against a broken or disconnected thermistor wire.
433
  *
436
  *
434
- * The issue: If a thermistor falls out or a temperature sensor fails,
435
- * Marlin can no longer sense the actual temperature. Since a disconnected
436
- * thermistor reads as a low temperature, the firmware will keep the heater on.
437
+ * The issue: If a thermistor falls out, it will report the much lower
438
+ * temperature of the air in the room, and the the firmware will keep
439
+ * the heater on.
437
  *
440
  *
438
  * If you get "Thermal Runaway" or "Heating failed" errors the
441
  * If you get "Thermal Runaway" or "Heating failed" errors the
439
  * details can be tuned in Configuration_adv.h
442
  * details can be tuned in Configuration_adv.h
573
 // @section probes
576
 // @section probes
574
 
577
 
575
 //
578
 //
576
-// See http://marlinfw.org/configuration/probes.html
579
+// See http://marlinfw.org/docs/configuration/probes.html
577
 //
580
 //
578
 
581
 
579
 /**
582
 /**
622
  * A Fix-Mounted Probe either doesn't deploy or needs manual deployment.
625
  * A Fix-Mounted Probe either doesn't deploy or needs manual deployment.
623
  *   (e.g., an inductive probe or a nozzle-based probe-switch.)
626
  *   (e.g., an inductive probe or a nozzle-based probe-switch.)
624
  */
627
  */
625
-// #define FIX_MOUNTED_PROBE
628
+//#define FIX_MOUNTED_PROBE
626
 
629
 
627
 /**
630
 /**
628
  * Z Servo Probe, such as an endstop switch on a rotating arm.
631
  * Z Servo Probe, such as an endstop switch on a rotating arm.
686
 // X and Y axis travel speed (mm/m) between probes
689
 // X and Y axis travel speed (mm/m) between probes
687
 #define XY_PROBE_SPEED 8000
690
 #define XY_PROBE_SPEED 8000
688
 
691
 
689
-// Speed for the first approach when double-probing (with PROBE_DOUBLE_TOUCH)
692
+// Speed for the first approach when double-probing (MULTIPLE_PROBING == 2)
690
 #define Z_PROBE_SPEED_FAST HOMING_FEEDRATE_Z
693
 #define Z_PROBE_SPEED_FAST HOMING_FEEDRATE_Z
691
 
694
 
692
 // Speed for the "accurate" probe of each point
695
 // Speed for the "accurate" probe of each point
693
 #define Z_PROBE_SPEED_SLOW (Z_PROBE_SPEED_FAST / 2)
696
 #define Z_PROBE_SPEED_SLOW (Z_PROBE_SPEED_FAST / 2)
694
 
697
 
695
-// Use double touch for probing
696
-//#define PROBE_DOUBLE_TOUCH
698
+// The number of probes to perform at each point.
699
+//   Set to 2 for a fast/slow probe, using the second probe result.
700
+//   Set to 3 or more for slow probes, averaging the results.
701
+//#define MULTIPLE_PROBING 2
697
 
702
 
698
 /**
703
 /**
699
  * Z probes require clearance when deploying, stowing, and moving between
704
  * Z probes require clearance when deploying, stowing, and moving between
785
 #define Y_MAX_POS Y_BED_SIZE
790
 #define Y_MAX_POS Y_BED_SIZE
786
 #define Z_MAX_POS 200
791
 #define Z_MAX_POS 200
787
 
792
 
788
-// If enabled, axes won't move below MIN_POS in response to movement commands.
793
+/**
794
+ * Software Endstops
795
+ *
796
+ * - Prevent moves outside the set machine bounds.
797
+ * - Individual axes can be disabled, if desired.
798
+ * - X and Y only apply to Cartesian robots.
799
+ * - Use 'M211' to set software endstops on/off or report current state
800
+ */
801
+
802
+// Min software endstops constrain movement within minimum coordinate bounds
789
 #define MIN_SOFTWARE_ENDSTOPS
803
 #define MIN_SOFTWARE_ENDSTOPS
790
-// If enabled, axes won't move above MAX_POS in response to movement commands.
804
+#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
805
+  #define MIN_SOFTWARE_ENDSTOP_X
806
+  #define MIN_SOFTWARE_ENDSTOP_Y
807
+  #define MIN_SOFTWARE_ENDSTOP_Z
808
+#endif
809
+
810
+// Max software endstops constrain movement within maximum coordinate bounds
791
 #define MAX_SOFTWARE_ENDSTOPS
811
 #define MAX_SOFTWARE_ENDSTOPS
812
+#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
813
+  #define MAX_SOFTWARE_ENDSTOP_X
814
+  #define MAX_SOFTWARE_ENDSTOP_Y
815
+  #define MAX_SOFTWARE_ENDSTOP_Z
816
+#endif
792
 
817
 
793
 /**
818
 /**
794
  * Filament Runout Sensor
819
  * Filament Runout Sensor
808
 //===========================================================================
833
 //===========================================================================
809
 //=============================== Bed Leveling ==============================
834
 //=============================== Bed Leveling ==============================
810
 //===========================================================================
835
 //===========================================================================
811
-// @section bedlevel
836
+// @section calibrate
812
 
837
 
813
 /**
838
 /**
814
  * Choose one of the options below to enable G29 Bed Leveling. The parameters
839
  * Choose one of the options below to enable G29 Bed Leveling. The parameters
834
  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling)
859
  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling)
835
  *   A comprehensive bed leveling system combining the features and benefits
860
  *   A comprehensive bed leveling system combining the features and benefits
836
  *   of other systems. UBL also includes integrated Mesh Generation, Mesh
861
  *   of other systems. UBL also includes integrated Mesh Generation, Mesh
837
- *   Validation and Mesh Editing systems. Currently, UBL is only checked out
838
- *   for Cartesian Printers. That said, it was primarily designed to correct
839
- *   poor quality Delta Printers. If you feel adventurous and have a Delta,
840
- *   please post an issue if something doesn't work correctly. Initially,
841
- *   you will need to set a reduced bed size so you have a rectangular area
842
- *   to test on.
862
+ *   Validation and Mesh Editing systems.
843
  *
863
  *
844
  * - MESH_BED_LEVELING
864
  * - MESH_BED_LEVELING
845
  *   Probe a grid manually
865
  *   Probe a grid manually
859
  * Turn on with the command 'M111 S32'.
879
  * Turn on with the command 'M111 S32'.
860
  * NOTE: Requires a lot of PROGMEM!
880
  * NOTE: Requires a lot of PROGMEM!
861
  */
881
  */
862
-#define DEBUG_LEVELING_FEATURE
882
+//#define DEBUG_LEVELING_FEATURE
863
 
883
 
864
 #if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_BILINEAR) || ENABLED(AUTO_BED_LEVELING_UBL)
884
 #if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_BILINEAR) || ENABLED(AUTO_BED_LEVELING_UBL)
865
   // Gradually reduce leveling correction until a set height is reached,
885
   // Gradually reduce leveling correction until a set height is reached,
866
   // at which point movement will be level to the machine's XY plane.
886
   // at which point movement will be level to the machine's XY plane.
867
   // The height can be set with M420 Z<height>
887
   // The height can be set with M420 Z<height>
868
   #define ENABLE_LEVELING_FADE_HEIGHT
888
   #define ENABLE_LEVELING_FADE_HEIGHT
889
+
890
+  // For Cartesian machines, instead of dividing moves on mesh boundaries,
891
+  // split up moves into short segments like a Delta. This follows the
892
+  // contours of the bed more closely than edge-to-edge straight moves.
893
+  #define SEGMENT_LEVELED_MOVES
894
+  #define LEVELED_SEGMENT_LENGTH 5.0 // (mm) Length of all segments (except the last one)
895
+
896
+  /**
897
+   * Enable the G26 Mesh Validation Pattern tool.
898
+   */
899
+  //#define G26_MESH_VALIDATION
900
+  #if ENABLED(G26_MESH_VALIDATION)
901
+    #define MESH_TEST_NOZZLE_SIZE    0.4  // (mm) Diameter of primary nozzle.
902
+    #define MESH_TEST_LAYER_HEIGHT   0.2  // (mm) Default layer height for the G26 Mesh Validation Tool.
903
+    #define MESH_TEST_HOTEND_TEMP  205.0  // (°C) Default nozzle temperature for the G26 Mesh Validation Tool.
904
+    #define MESH_TEST_BED_TEMP      60.0  // (°C) Default bed temperature for the G26 Mesh Validation Tool.
905
+  #endif
906
+
869
 #endif
907
 #endif
870
 
908
 
871
 #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
909
 #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
921
   //========================= Unified Bed Leveling ============================
959
   //========================= Unified Bed Leveling ============================
922
   //===========================================================================
960
   //===========================================================================
923
 
961
 
924
-  #define UBL_MESH_INSET 1          // Mesh inset margin on print area
962
+  //#define MESH_EDIT_GFX_OVERLAY   // Display a graphics overlay while editing the mesh
963
+
964
+  #define MESH_INSET 1              // Mesh inset margin on print area
925
   #define GRID_MAX_POINTS_X 10      // Don't use more than 15 points per axis, implementation limited.
965
   #define GRID_MAX_POINTS_X 10      // Don't use more than 15 points per axis, implementation limited.
926
   #define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
966
   #define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
927
 
967
 
932
   #define UBL_PROBE_PT_3_X 180
972
   #define UBL_PROBE_PT_3_X 180
933
   #define UBL_PROBE_PT_3_Y 20
973
   #define UBL_PROBE_PT_3_Y 20
934
 
974
 
935
-  //#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
936
   #define UBL_MESH_EDIT_MOVES_Z     // Sophisticated users prefer no movement of nozzle
975
   #define UBL_MESH_EDIT_MOVES_Z     // Sophisticated users prefer no movement of nozzle
976
+  #define UBL_SAVE_ACTIVE_ON_M500   // Save the currently active mesh in the current slot on M500
937
 
977
 
938
 #elif ENABLED(MESH_BED_LEVELING)
978
 #elif ENABLED(MESH_BED_LEVELING)
939
 
979
 
993
 //#define Z_SAFE_HOMING
1033
 //#define Z_SAFE_HOMING
994
 
1034
 
995
 #if ENABLED(Z_SAFE_HOMING)
1035
 #if ENABLED(Z_SAFE_HOMING)
996
-  #define Z_SAFE_HOMING_X_POINT ((X_BED_SIZE) / 2)    // X point for Z homing when homing all axis (G28).
997
-  #define Z_SAFE_HOMING_Y_POINT ((Y_BED_SIZE) / 2)    // Y point for Z homing when homing all axis (G28).
1036
+  #define Z_SAFE_HOMING_X_POINT ((X_BED_SIZE) / 2)    // X point for Z homing when homing all axes (G28).
1037
+  #define Z_SAFE_HOMING_Y_POINT ((Y_BED_SIZE) / 2)    // Y point for Z homing when homing all axes (G28).
998
 #endif
1038
 #endif
999
 
1039
 
1000
 // Homing speeds (mm/m)
1040
 // Homing speeds (mm/m)
1001
 #define HOMING_FEEDRATE_XY (50*60)
1041
 #define HOMING_FEEDRATE_XY (50*60)
1002
 #define HOMING_FEEDRATE_Z  (4*60)
1042
 #define HOMING_FEEDRATE_Z  (4*60)
1003
 
1043
 
1044
+// @section calibrate
1045
+
1046
+/**
1047
+ * Bed Skew Compensation
1048
+ *
1049
+ * This feature corrects for misalignment in the XYZ axes.
1050
+ *
1051
+ * Take the following steps to get the bed skew in the XY plane:
1052
+ *  1. Print a test square (e.g., https://www.thingiverse.com/thing:2563185)
1053
+ *  2. For XY_DIAG_AC measure the diagonal A to C
1054
+ *  3. For XY_DIAG_BD measure the diagonal B to D
1055
+ *  4. For XY_SIDE_AD measure the edge A to D
1056
+ *
1057
+ * Marlin automatically computes skew factors from these measurements.
1058
+ * Skew factors may also be computed and set manually:
1059
+ *
1060
+ *  - Compute AB     : SQRT(2*AC*AC+2*BD*BD-4*AD*AD)/2
1061
+ *  - XY_SKEW_FACTOR : TAN(PI/2-ACOS((AC*AC-AB*AB-AD*AD)/(2*AB*AD)))
1062
+ *
1063
+ * If desired, follow the same procedure for XZ and YZ.
1064
+ * Use these diagrams for reference:
1065
+ *
1066
+ *    Y                     Z                     Z
1067
+ *    ^     B-------C       ^     B-------C       ^     B-------C
1068
+ *    |    /       /        |    /       /        |    /       /
1069
+ *    |   /       /         |   /       /         |   /       /
1070
+ *    |  A-------D          |  A-------D          |  A-------D
1071
+ *    +-------------->X     +-------------->X     +-------------->Y
1072
+ *     XY_SKEW_FACTOR        XZ_SKEW_FACTOR        YZ_SKEW_FACTOR
1073
+ */
1074
+//#define SKEW_CORRECTION
1075
+
1076
+#if ENABLED(SKEW_CORRECTION)
1077
+  // Input all length measurements here:
1078
+  #define XY_DIAG_AC 282.8427124746
1079
+  #define XY_DIAG_BD 282.8427124746
1080
+  #define XY_SIDE_AD 200
1081
+
1082
+  // Or, set the default skew factors directly here
1083
+  // to override the above measurements:
1084
+  #define XY_SKEW_FACTOR 0.0
1085
+
1086
+  //#define SKEW_CORRECTION_FOR_Z
1087
+  #if ENABLED(SKEW_CORRECTION_FOR_Z)
1088
+    #define XZ_DIAG_AC 282.8427124746
1089
+    #define XZ_DIAG_BD 282.8427124746
1090
+    #define YZ_DIAG_AC 282.8427124746
1091
+    #define YZ_DIAG_BD 282.8427124746
1092
+    #define YZ_SIDE_AD 200
1093
+    #define XZ_SKEW_FACTOR 0.0
1094
+    #define YZ_SKEW_FACTOR 0.0
1095
+  #endif
1096
+
1097
+  // Enable this option for M852 to set skew at runtime
1098
+  //#define SKEW_CORRECTION_GCODE
1099
+#endif
1100
+
1004
 //=============================================================================
1101
 //=============================================================================
1005
 //============================= Additional Features ===========================
1102
 //============================= Additional Features ===========================
1006
 //=============================================================================
1103
 //=============================================================================
1032
 //
1129
 //
1033
 // M100 Free Memory Watcher
1130
 // M100 Free Memory Watcher
1034
 //
1131
 //
1035
-//#define M100_FREE_MEMORY_WATCHER // uncomment to add the M100 Free Memory Watcher for debug purpose
1132
+//#define M100_FREE_MEMORY_WATCHER    // Add M100 (Free Memory Watcher) to debug memory usage
1036
 
1133
 
1037
 //
1134
 //
1038
 // G20/G21 Inch mode support
1135
 // G20/G21 Inch mode support
1177
  *
1274
  *
1178
  * Select the language to display on the LCD. These languages are available:
1275
  * Select the language to display on the LCD. These languages are available:
1179
  *
1276
  *
1180
- *    en, an, bg, ca, cn, cz, cz_utf8, de, el, el-gr, es, eu, fi, fr, gl, hr,
1181
- *    it, kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, sk_utf8,
1277
+ *    en, an, bg, ca, cn, cz, cz_utf8, de, el, el-gr, es, eu, fi, fr, fr_utf8, gl,
1278
+ *    hr, it, kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, sk_utf8,
1182
  *    tr, uk, zh_CN, zh_TW, test
1279
  *    tr, uk, zh_CN, zh_TW, test
1183
  *
1280
  *
1184
- * :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'cz_utf8':'Czech (UTF8)', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'sk_utf8':'Slovak (UTF8)', 'tr':'Turkish', 'uk':'Ukrainian', 'zh_CN':'Chinese (Simplified)', 'zh_TW':'Chinese (Taiwan)', test':'TEST' }
1281
+ * :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'cz_utf8':'Czech (UTF8)', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'fr_utf8':'French (UTF8)', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'sk_utf8':'Slovak (UTF8)', 'tr':'Turkish', 'uk':'Ukrainian', 'zh_CN':'Chinese (Simplified)', 'zh_TW':'Chinese (Taiwan)', test':'TEST' }
1185
  */
1282
  */
1186
 #define LCD_LANGUAGE en
1283
 #define LCD_LANGUAGE en
1187
 
1284
 
1235
  * SD CARD: SPI SPEED
1332
  * SD CARD: SPI SPEED
1236
  *
1333
  *
1237
  * Enable one of the following items for a slower SPI transfer speed.
1334
  * Enable one of the following items for a slower SPI transfer speed.
1238
- * This may be required to resolve "volume init" errors or LCD issues.
1335
+ * This may be required to resolve "volume init" errors.
1239
  */
1336
  */
1240
-
1241
 //#define SPI_SPEED SPI_HALF_SPEED
1337
 //#define SPI_SPEED SPI_HALF_SPEED
1242
 //#define SPI_SPEED SPI_QUARTER_SPEED
1338
 //#define SPI_SPEED SPI_QUARTER_SPEED
1243
 #define SPI_SPEED SPI_EIGHTH_SPEED
1339
 #define SPI_SPEED SPI_EIGHTH_SPEED
1310
 // Note: Test audio output with the G-Code:
1406
 // Note: Test audio output with the G-Code:
1311
 //  M300 S<frequency Hz> P<duration ms>
1407
 //  M300 S<frequency Hz> P<duration ms>
1312
 //
1408
 //
1313
-//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100
1314
-//#define LCD_FEEDBACK_FREQUENCY_HZ 1000
1409
+//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 2
1410
+//#define LCD_FEEDBACK_FREQUENCY_HZ 5000
1315
 
1411
 
1316
 //
1412
 //
1317
 // CONTROLLER TYPE: Standard
1413
 // CONTROLLER TYPE: Standard
1504
 //
1600
 //
1505
 //#define OLED_PANEL_TINYBOY2
1601
 //#define OLED_PANEL_TINYBOY2
1506
 
1602
 
1603
+//
1604
+// Makeboard 3D Printer Parts 3D Printer Mini Display 1602 Mini Controller
1605
+// https://www.aliexpress.com/item/Micromake-Makeboard-3D-Printer-Parts-3D-Printer-Mini-Display-1602-Mini-Controller-Compatible-with-Ramps-1/32765887917.html
1606
+//
1607
+//#define MAKEBOARD_MINI_2_LINE_DISPLAY_1602
1608
+
1609
+//
1610
+// MKS MINI12864 with graphic controller and SD support
1611
+// http://reprap.org/wiki/MKS_MINI_12864
1612
+//
1613
+//#define MKS_MINI_12864
1614
+
1615
+//
1616
+// Factory display for Creality CR-10
1617
+// https://www.aliexpress.com/item/Universal-LCD-12864-3D-Printer-Display-Screen-With-Encoder-For-CR-10-CR-7-Model/32833148327.html
1618
+//
1619
+// This is RAMPS-compatible using a single 10-pin connector.
1620
+// (For CR-10 owners who want to replace the Melzi Creality board but retain the display)
1621
+//
1622
+//#define CR10_STOCKDISPLAY
1623
+
1624
+//
1625
+// MKS OLED 1.3" 128 × 64 FULL GRAPHICS CONTROLLER
1626
+// http://reprap.org/wiki/MKS_12864OLED
1627
+//
1628
+// Tiny, but very sharp OLED display
1629
+//
1630
+//#define MKS_12864OLED
1631
+
1632
+//
1633
+// AZSMZ 12864 LCD with SD
1634
+// https://www.aliexpress.com/store/product/3D-printer-smart-controller-SMART-RAMPS-OR-RAMPS-1-4-LCD-12864-LCD-control-panel-green/2179173_32213636460.html
1635
+//
1636
+//#define AZSMZ_12864
1637
+
1638
+// Silvergate GLCD controller
1639
+// http://github.com/android444/Silvergate
1640
+//
1641
+//#define SILVER_GATE_GLCD_CONTROLLER
1642
+
1507
 //=============================================================================
1643
 //=============================================================================
1508
 //=============================== Extra Features ==============================
1644
 //=============================== Extra Features ==============================
1509
 //=============================================================================
1645
 //=============================================================================
1560
  * Adds the M150 command to set the LED (or LED strip) color.
1696
  * Adds the M150 command to set the LED (or LED strip) color.
1561
  * If pins are PWM capable (e.g., 4, 5, 6, 11) then a range of
1697
  * If pins are PWM capable (e.g., 4, 5, 6, 11) then a range of
1562
  * luminance values can be set from 0 to 255.
1698
  * luminance values can be set from 0 to 255.
1699
+ * For Neopixel LED an overall brightness parameter is also available.
1563
  *
1700
  *
1564
  * *** CAUTION ***
1701
  * *** CAUTION ***
1565
  *  LED Strips require a MOFSET Chip between PWM lines and LEDs,
1702
  *  LED Strips require a MOFSET Chip between PWM lines and LEDs,
1566
  *  as the Arduino cannot handle the current the LEDs will require.
1703
  *  as the Arduino cannot handle the current the LEDs will require.
1567
  *  Failure to follow this precaution can destroy your Arduino!
1704
  *  Failure to follow this precaution can destroy your Arduino!
1705
+ *  NOTE: A separate 5V power supply is required! The Neopixel LED needs
1706
+ *  more current than the Arduino 5V linear regulator can produce.
1568
  * *** CAUTION ***
1707
  * *** CAUTION ***
1569
  *
1708
  *
1709
+ * LED Type. Enable only one of the following two options.
1710
+ *
1570
  */
1711
  */
1712
+
1571
 //#define RGB_LED
1713
 //#define RGB_LED
1572
 //#define RGBW_LED
1714
 //#define RGBW_LED
1573
 #if ENABLED(RGB_LED) || ENABLED(RGBW_LED)
1715
 #if ENABLED(RGB_LED) || ENABLED(RGBW_LED)
1578
 #endif
1720
 #endif
1579
 
1721
 
1580
 // Support for Adafruit Neopixel LED driver
1722
 // Support for Adafruit Neopixel LED driver
1581
-//#define NEOPIXEL_RGBW_LED
1582
-#if ENABLED(NEOPIXEL_RGBW_LED)
1583
-  #define NEOPIXEL_PIN    4       // D4 (EXP2-5 on Printrboard)
1584
-  #define NEOPIXEL_PIXELS 3
1585
-  //#define NEOPIXEL_STARTUP_TEST // Cycle through colors at startup
1723
+//#define NEOPIXEL_LED
1724
+#if ENABLED(NEOPIXEL_LED)
1725
+  #define NEOPIXEL_TYPE   NEO_GRB  // NEO_GRBW / NEO_GRB - four/three channel driver type (defined in Adafruit_NeoPixel.h)
1726
+  #define NEOPIXEL_PIN    4        // LED driving pin on motherboard 4 => D4 (EXP2-5 on Printrboard) / 30 => PC7 (EXP3-13 on Rumba)
1727
+  #define NEOPIXEL_PIXELS 30       // Number of LEDs in the strip
1728
+  #define NEOPIXEL_IS_SEQUENTIAL   // Sequential display for temperature change - LED by LED. Disable to change all LEDs at once.
1729
+  #define NEOPIXEL_BRIGHTNESS 255  // Initial brightness 0-255
1730
+  //#define NEOPIXEL_STARTUP_TEST  // Cycle through colors at startup
1586
 #endif
1731
 #endif
1587
 
1732
 
1588
 /**
1733
 /**
1596
  *  - Change to green once print has finished
1741
  *  - Change to green once print has finished
1597
  *  - Turn off after the print has finished and the user has pushed a button
1742
  *  - Turn off after the print has finished and the user has pushed a button
1598
  */
1743
  */
1599
-#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED) || ENABLED(PCA9632) || ENABLED(NEOPIXEL_RGBW_LED)
1744
+#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED) || ENABLED(PCA9632) || ENABLED(NEOPIXEL_LED)
1600
   #define PRINTER_EVENT_LEDS
1745
   #define PRINTER_EVENT_LEDS
1601
 #endif
1746
 #endif
1602
 
1747
 
1603
-/*********************************************************************\
1604
-* R/C SERVO support
1605
-* Sponsored by TrinityLabs, Reworked by codexmas
1606
-**********************************************************************/
1748
+/**
1749
+ * R/C SERVO support
1750
+ * Sponsored by TrinityLabs, Reworked by codexmas
1751
+ */
1607
 
1752
 
1608
-// Number of servos
1609
-//
1610
-// If you select a configuration below, this will receive a default value and does not need to be set manually
1611
-// set it manually if you have more servos than extruders and wish to manually control some
1612
-// leaving it undefined or defining as 0 will disable the servo subsystem
1613
-// If unsure, leave commented / disabled
1614
-//
1753
+/**
1754
+ * Number of servos
1755
+ *
1756
+ * For some servo-related options NUM_SERVOS will be set automatically.
1757
+ * Set this manually if there are extra servos needing manual control.
1758
+ * Leave undefined or set to 0 to entirely disable the servo subsystem.
1759
+ */
1615
 //#define NUM_SERVOS 3 // Servo index starts with 0 for M280 command
1760
 //#define NUM_SERVOS 3 // Servo index starts with 0 for M280 command
1616
 
1761
 
1617
 // Delay (in milliseconds) before the next move will start, to give the servo time to reach its target angle.
1762
 // Delay (in milliseconds) before the next move will start, to give the servo time to reach its target angle.
1624
 // With this option servos are powered only during movement, then turned off to prevent jitter.
1769
 // With this option servos are powered only during movement, then turned off to prevent jitter.
1625
 //#define DEACTIVATE_SERVOS_AFTER_MOVE
1770
 //#define DEACTIVATE_SERVOS_AFTER_MOVE
1626
 
1771
 
1627
-/**
1628
- * Filament Width Sensor
1629
- *
1630
- * Measures the filament width in real-time and adjusts
1631
- * flow rate to compensate for any irregularities.
1632
- *
1633
- * Also allows the measured filament diameter to set the
1634
- * extrusion rate, so the slicer only has to specify the
1635
- * volume.
1636
- *
1637
- * Only a single extruder is supported at this time.
1638
- *
1639
- *  34 RAMPS_14    : Analog input 5 on the AUX2 connector
1640
- *  81 PRINTRBOARD : Analog input 2 on the Exp1 connector (version B,C,D,E)
1641
- * 301 RAMBO       : Analog input 3
1642
- *
1643
- * Note: May require analog pins to be defined for other boards.
1644
- */
1645
-//#define FILAMENT_WIDTH_SENSOR
1646
-
1647
-#define DEFAULT_NOMINAL_FILAMENT_DIA 3.00   // (mm) Diameter of the filament generally used (3.0 or 1.75mm), also used in the slicer. Used to validate sensor reading.
1648
-
1649
-#if ENABLED(FILAMENT_WIDTH_SENSOR)
1650
-  #define FILAMENT_SENSOR_EXTRUDER_NUM 0    // Index of the extruder that has the filament sensor (0,1,2,3)
1651
-  #define MEASUREMENT_DELAY_CM        14    // (cm) The distance from the filament sensor to the melting chamber
1652
-
1653
-  #define MEASURED_UPPER_LIMIT         3.30 // (mm) Upper limit used to validate sensor reading
1654
-  #define MEASURED_LOWER_LIMIT         1.90 // (mm) Lower limit used to validate sensor reading
1655
-  #define MAX_MEASUREMENT_DELAY       20    // (bytes) Buffer size for stored measurements (1 byte per cm). Must be larger than MEASUREMENT_DELAY_CM.
1656
-
1657
-  #define DEFAULT_MEASURED_FILAMENT_DIA DEFAULT_NOMINAL_FILAMENT_DIA // Set measured to nominal initially
1658
-
1659
-  // Display filament width on the LCD status line. Status messages will expire after 5 seconds.
1660
-  //#define FILAMENT_LCD_DISPLAY
1661
-#endif
1662
-
1663
 #endif // CONFIGURATION_H
1772
 #endif // CONFIGURATION_H

+ 190
- 103
Marlin/src/config/examples/Malyan/M200/Configuration_adv.h View File

48
 #endif
48
 #endif
49
 
49
 
50
 /**
50
 /**
51
- * Thermal Protection protects your printer from damage and fire if a
52
- * thermistor falls out or temperature sensors fail in any way.
51
+ * Thermal Protection provides additional protection to your printer from damage
52
+ * and fire. Marlin always includes safe min and max temperature ranges which
53
+ * protect against a broken or disconnected thermistor wire.
53
  *
54
  *
54
- * The issue: If a thermistor falls out or a temperature sensor fails,
55
- * Marlin can no longer sense the actual temperature. Since a disconnected
56
- * thermistor reads as a low temperature, the firmware will keep the heater on.
55
+ * The issue: If a thermistor falls out, it will report the much lower
56
+ * temperature of the air in the room, and the the firmware will keep
57
+ * the heater on.
57
  *
58
  *
58
  * The solution: Once the temperature reaches the target, start observing.
59
  * The solution: Once the temperature reaches the target, start observing.
59
- * If the temperature stays too far below the target (hysteresis) for too long (period),
60
- * the firmware will halt the machine as a safety precaution.
60
+ * If the temperature stays too far below the target (hysteresis) for too
61
+ * long (period), the firmware will halt the machine as a safety precaution.
61
  *
62
  *
62
- * If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
63
+ * If you get false positives for "Thermal Runaway", increase
64
+ * THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
63
  */
65
  */
64
 #if ENABLED(THERMAL_PROTECTION_HOTENDS)
66
 #if ENABLED(THERMAL_PROTECTION_HOTENDS)
65
   #define THERMAL_PROTECTION_PERIOD 40        // Seconds
67
   #define THERMAL_PROTECTION_PERIOD 40        // Seconds
66
   #define THERMAL_PROTECTION_HYSTERESIS 4     // Degrees Celsius
68
   #define THERMAL_PROTECTION_HYSTERESIS 4     // Degrees Celsius
67
 
69
 
68
   /**
70
   /**
69
-   * Whenever an M104 or M109 increases the target temperature the firmware will wait for the
70
-   * WATCH_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_TEMP_INCREASE
71
-   * degrees, the machine is halted, requiring a hard reset. This test restarts with any M104/M109,
72
-   * but only if the current temperature is far enough below the target for a reliable test.
71
+   * Whenever an M104, M109, or M303 increases the target temperature, the
72
+   * firmware will wait for the WATCH_TEMP_PERIOD to expire. If the temperature
73
+   * hasn't increased by WATCH_TEMP_INCREASE degrees, the machine is halted and
74
+   * requires a hard reset. This test restarts with any M104/M109/M303, but only
75
+   * if the current temperature is far enough below the target for a reliable
76
+   * test.
73
    *
77
    *
74
-   * If you get false positives for "Heating failed" increase WATCH_TEMP_PERIOD and/or decrease WATCH_TEMP_INCREASE
75
-   * WATCH_TEMP_INCREASE should not be below 2.
78
+   * If you get false positives for "Heating failed", increase WATCH_TEMP_PERIOD
79
+   * and/or decrease WATCH_TEMP_INCREASE. WATCH_TEMP_INCREASE should not be set
80
+   * below 2.
76
    */
81
    */
77
   #define WATCH_TEMP_PERIOD 20                // Seconds
82
   #define WATCH_TEMP_PERIOD 20                // Seconds
78
   #define WATCH_TEMP_INCREASE 2               // Degrees Celsius
83
   #define WATCH_TEMP_INCREASE 2               // Degrees Celsius
86
   #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
91
   #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
87
 
92
 
88
   /**
93
   /**
89
-   * Whenever an M140 or M190 increases the target temperature the firmware will wait for the
90
-   * WATCH_BED_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_BED_TEMP_INCREASE
91
-   * degrees, the machine is halted, requiring a hard reset. This test restarts with any M140/M190,
92
-   * but only if the current temperature is far enough below the target for a reliable test.
93
-   *
94
-   * If you get too many "Heating failed" errors, increase WATCH_BED_TEMP_PERIOD and/or decrease
95
-   * WATCH_BED_TEMP_INCREASE. (WATCH_BED_TEMP_INCREASE should not be below 2.)
94
+   * As described above, except for the bed (M140/M190/M303).
96
    */
95
    */
97
   #define WATCH_BED_TEMP_PERIOD 60                // Seconds
96
   #define WATCH_BED_TEMP_PERIOD 60                // Seconds
98
   #define WATCH_BED_TEMP_INCREASE 2               // Degrees Celsius
97
   #define WATCH_BED_TEMP_INCREASE 2               // Degrees Celsius
123
   #define AUTOTEMP_OLDWEIGHT 0.98
122
   #define AUTOTEMP_OLDWEIGHT 0.98
124
 #endif
123
 #endif
125
 
124
 
125
+// Show extra position information in M114
126
+//#define M114_DETAIL
127
+
126
 // Show Temperature ADC value
128
 // Show Temperature ADC value
127
 // Enable for M105 to include ADC values read from temperature sensors.
129
 // Enable for M105 to include ADC values read from temperature sensors.
128
 //#define SHOW_TEMP_ADC_VALUES
130
 //#define SHOW_TEMP_ADC_VALUES
257
 
259
 
258
 #define Z_LATE_ENABLE // Enable Z the last moment. Needed if your Z driver overheats.
260
 #define Z_LATE_ENABLE // Enable Z the last moment. Needed if your Z driver overheats.
259
 
261
 
260
-// Dual X Steppers
261
-// Uncomment this option to drive two X axis motors.
262
-// The next unused E driver will be assigned to the second X stepper.
262
+/**
263
+ * Dual Steppers / Dual Endstops
264
+ *
265
+ * This section will allow you to use extra E drivers to drive a second motor for X, Y, or Z axes.
266
+ *
267
+ * For example, set X_DUAL_STEPPER_DRIVERS setting to use a second motor. If the motors need to
268
+ * spin in opposite directions set INVERT_X2_VS_X_DIR. If the second motor needs its own endstop
269
+ * set X_DUAL_ENDSTOPS. This can adjust for "racking." Use X2_USE_ENDSTOP to set the endstop plug
270
+ * that should be used for the second endstop. Extra endstops will appear in the output of 'M119'.
271
+ *
272
+ * Use X_DUAL_ENDSTOP_ADJUSTMENT to adjust for mechanical imperfection. After homing both motors
273
+ * this offset is applied to the X2 motor. To find the offset home the X axis, and measure the error
274
+ * in X2. Dual endstop offsets can be set at runtime with 'M666 X<offset> Y<offset> Z<offset>'.
275
+ */
276
+
263
 //#define X_DUAL_STEPPER_DRIVERS
277
 //#define X_DUAL_STEPPER_DRIVERS
264
 #if ENABLED(X_DUAL_STEPPER_DRIVERS)
278
 #if ENABLED(X_DUAL_STEPPER_DRIVERS)
265
-  // Set true if the two X motors need to rotate in opposite directions
266
-  #define INVERT_X2_VS_X_DIR true
279
+  #define INVERT_X2_VS_X_DIR true   // Set 'true' if X motors should rotate in opposite directions
280
+  //#define X_DUAL_ENDSTOPS
281
+  #if ENABLED(X_DUAL_ENDSTOPS)
282
+    #define X2_USE_ENDSTOP _XMAX_
283
+    #define X_DUAL_ENDSTOPS_ADJUSTMENT  0
284
+  #endif
267
 #endif
285
 #endif
268
 
286
 
269
-// Dual Y Steppers
270
-// Uncomment this option to drive two Y axis motors.
271
-// The next unused E driver will be assigned to the second Y stepper.
272
 //#define Y_DUAL_STEPPER_DRIVERS
287
 //#define Y_DUAL_STEPPER_DRIVERS
273
 #if ENABLED(Y_DUAL_STEPPER_DRIVERS)
288
 #if ENABLED(Y_DUAL_STEPPER_DRIVERS)
274
-  // Set true if the two Y motors need to rotate in opposite directions
275
-  #define INVERT_Y2_VS_Y_DIR true
289
+  #define INVERT_Y2_VS_Y_DIR true   // Set 'true' if Y motors should rotate in opposite directions
290
+  //#define Y_DUAL_ENDSTOPS
291
+  #if ENABLED(Y_DUAL_ENDSTOPS)
292
+    #define Y2_USE_ENDSTOP _YMAX_
293
+    #define Y_DUAL_ENDSTOPS_ADJUSTMENT  0
294
+  #endif
276
 #endif
295
 #endif
277
 
296
 
278
-// A single Z stepper driver is usually used to drive 2 stepper motors.
279
-// Uncomment this option to use a separate stepper driver for each Z axis motor.
280
-// The next unused E driver will be assigned to the second Z stepper.
281
 //#define Z_DUAL_STEPPER_DRIVERS
297
 //#define Z_DUAL_STEPPER_DRIVERS
282
-
283
 #if ENABLED(Z_DUAL_STEPPER_DRIVERS)
298
 #if ENABLED(Z_DUAL_STEPPER_DRIVERS)
284
-
285
-  // Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
286
-  // That way the machine is capable to align the bed during home, since both Z steppers are homed.
287
-  // There is also an implementation of M666 (software endstops adjustment) to this feature.
288
-  // After Z homing, this adjustment is applied to just one of the steppers in order to align the bed.
289
-  // One just need to home the Z axis and measure the distance difference between both Z axis and apply the math: Z adjust = Z - Z2.
290
-  // If the Z stepper axis is closer to the bed, the measure Z > Z2 (yes, it is.. think about it) and the Z adjust would be positive.
291
-  // Play a little bit with small adjustments (0.5mm) and check the behaviour.
292
-  // The M119 (endstops report) will start reporting the Z2 Endstop as well.
293
-
294
   //#define Z_DUAL_ENDSTOPS
299
   //#define Z_DUAL_ENDSTOPS
295
-
296
   #if ENABLED(Z_DUAL_ENDSTOPS)
300
   #if ENABLED(Z_DUAL_ENDSTOPS)
297
     #define Z2_USE_ENDSTOP _XMAX_
301
     #define Z2_USE_ENDSTOP _XMAX_
298
-    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0  // Use M666 to determine/test this value
302
+    #define Z_DUAL_ENDSTOPS_ADJUSTMENT  0
299
   #endif
303
   #endif
300
-
301
-#endif // Z_DUAL_STEPPER_DRIVERS
304
+#endif
302
 
305
 
303
 // Enable this for dual x-carriage printers.
306
 // Enable this for dual x-carriage printers.
304
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which
307
 // A dual x-carriage design has the advantage that the inactive extruder can be parked which
345
 
348
 
346
 // @section homing
349
 // @section homing
347
 
350
 
348
-//homing hits the endstop, then retracts by this distance, before it tries to slowly bump again:
351
+// Homing hits each endstop, retracts by these distances, then does a slower bump.
349
 #define X_HOME_BUMP_MM 5
352
 #define X_HOME_BUMP_MM 5
350
 #define Y_HOME_BUMP_MM 5
353
 #define Y_HOME_BUMP_MM 5
351
 #define Z_HOME_BUMP_MM 2
354
 #define Z_HOME_BUMP_MM 2
352
-#define HOMING_BUMP_DIVISOR {2, 2, 4}  // Re-Bump Speed Divisor (Divides the Homing Feedrate)
353
-//#define QUICK_HOME  //if this is defined, if both x and y are to be homed, a diagonal move will be performed initially.
355
+#define HOMING_BUMP_DIVISOR { 2, 2, 4 }  // Re-Bump Speed Divisor (Divides the Homing Feedrate)
356
+//#define QUICK_HOME                     // If homing includes X and Y, do a diagonal move initially
354
 
357
 
355
 // When G28 is called, this option will make Y home before X
358
 // When G28 is called, this option will make Y home before X
356
 //#define HOME_Y_BEFORE_X
359
 //#define HOME_Y_BEFORE_X
434
 //#define DIGIPOT_MOTOR_CURRENT { 135,135,135,135,135 }   // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
437
 //#define DIGIPOT_MOTOR_CURRENT { 135,135,135,135,135 }   // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
435
 //#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 }    // Default drive percent - X, Y, Z, E axis
438
 //#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 }    // Default drive percent - X, Y, Z, E axis
436
 
439
 
437
-// Uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
440
+// Use an I2C based DIGIPOT (e.g., Azteeg X3 Pro)
438
 //#define DIGIPOT_I2C
441
 //#define DIGIPOT_I2C
442
+#if ENABLED(DIGIPOT_I2C) && !defined(DIGIPOT_I2C_ADDRESS_A)
443
+  /**
444
+   * Common slave addresses:
445
+   *
446
+   *                    A   (A shifted)   B   (B shifted)  IC
447
+   * Smoothie          0x2C (0x58)       0x2D (0x5A)       MCP4451
448
+   * AZTEEG_X3_PRO     0x2C (0x58)       0x2E (0x5C)       MCP4451
449
+   * MIGHTYBOARD_REVE  0x2F (0x5E)                         MCP4018
450
+   */
451
+  #define DIGIPOT_I2C_ADDRESS_A 0x2C  // unshifted slave address for first DIGIPOT
452
+  #define DIGIPOT_I2C_ADDRESS_B 0x2D  // unshifted slave address for second DIGIPOT
453
+#endif
454
+
439
 //#define DIGIPOT_MCP4018          // Requires library from https://github.com/stawel/SlowSoftI2CMaster
455
 //#define DIGIPOT_MCP4018          // Requires library from https://github.com/stawel/SlowSoftI2CMaster
440
 #define DIGIPOT_I2C_NUM_CHANNELS 8 // 5DPRINT: 4     AZTEEG_X3_PRO: 8
456
 #define DIGIPOT_I2C_NUM_CHANNELS 8 // 5DPRINT: 4     AZTEEG_X3_PRO: 8
441
 // Actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
457
 // Actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
466
 // The timeout (in ms) to return to the status screen from sub-menus
482
 // The timeout (in ms) to return to the status screen from sub-menus
467
 //#define LCD_TIMEOUT_TO_STATUS 15000
483
 //#define LCD_TIMEOUT_TO_STATUS 15000
468
 
484
 
485
+/**
486
+ * LED Control Menu
487
+ * Enable this feature to add LED Control to the LCD menu
488
+ */
489
+//#define LED_CONTROL_MENU
490
+#if ENABLED(LED_CONTROL_MENU)
491
+  #define LED_COLOR_PRESETS                 // Enable the Preset Color menu option
492
+  #if ENABLED(LED_COLOR_PRESETS)
493
+    #define LED_USER_PRESET_RED        255  // User defined RED value
494
+    #define LED_USER_PRESET_GREEN      128  // User defined GREEN value
495
+    #define LED_USER_PRESET_BLUE         0  // User defined BLUE value
496
+    #define LED_USER_PRESET_WHITE      255  // User defined WHITE value
497
+    #define LED_USER_PRESET_BRIGHTNESS 255  // User defined intensity
498
+    //#define LED_USER_PRESET_STARTUP       // Have the printer display the user preset color on startup
499
+  #endif
500
+#endif // LED_CONTROL_MENU
501
+
469
 #if ENABLED(SDSUPPORT)
502
 #if ENABLED(SDSUPPORT)
470
 
503
 
471
   // Some RAMPS and other boards don't detect when an SD card is inserted. You can work
504
   // Some RAMPS and other boards don't detect when an SD card is inserted. You can work
475
   // Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER).
508
   // Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER).
476
   #define SD_DETECT_INVERTED
509
   #define SD_DETECT_INVERTED
477
 
510
 
478
-  #define SD_FINISHED_STEPPERRELEASE true  //if sd support and the file is finished: disable steppers?
511
+  #define SD_FINISHED_STEPPERRELEASE true          // Disable steppers when SD Print is finished
479
   #define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
512
   #define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
480
 
513
 
481
-  #define SDCARD_RATHERRECENTFIRST  //reverse file order of sd card menu display. Its sorted practically after the file system block order.
482
-  // if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that.
483
-  // using:
514
+  // Reverse SD sort to show "more recent" files first, according to the card's FAT.
515
+  // Since the FAT gets out of order with usage, SDCARD_SORT_ALPHA is recommended.
516
+  #define SDCARD_RATHERRECENTFIRST
517
+
518
+  // Add an option in the menu to run all auto#.g files
484
   //#define MENU_ADDAUTOSTART
519
   //#define MENU_ADDAUTOSTART
485
 
520
 
486
   /**
521
   /**
517
     #define SDSORT_USES_STACK  false  // Prefer the stack for pre-sorting to give back some SRAM. (Negated by next 2 options.)
552
     #define SDSORT_USES_STACK  false  // Prefer the stack for pre-sorting to give back some SRAM. (Negated by next 2 options.)
518
     #define SDSORT_CACHE_NAMES false  // Keep sorted items in RAM longer for speedy performance. Most expensive option.
553
     #define SDSORT_CACHE_NAMES false  // Keep sorted items in RAM longer for speedy performance. Most expensive option.
519
     #define SDSORT_DYNAMIC_RAM false  // Use dynamic allocation (within SD menus). Least expensive option. Set SDSORT_LIMIT before use!
554
     #define SDSORT_DYNAMIC_RAM false  // Use dynamic allocation (within SD menus). Least expensive option. Set SDSORT_LIMIT before use!
555
+    #define SDSORT_CACHE_VFATS 2      // Maximum number of 13-byte VFAT entries to use for sorting.
556
+                                      // Note: Only affects SCROLL_LONG_FILENAMES with SDSORT_CACHE_NAMES but not SDSORT_DYNAMIC_RAM.
520
   #endif
557
   #endif
521
 
558
 
522
   // Show a progress bar on HD44780 LCDs for SD printing
559
   // Show a progress bar on HD44780 LCDs for SD printing
535
     //#define LCD_PROGRESS_BAR_TEST
572
     //#define LCD_PROGRESS_BAR_TEST
536
   #endif
573
   #endif
537
 
574
 
575
+  // Add an 'M73' G-code to set the current percentage
576
+  //#define LCD_SET_PROGRESS_MANUALLY
577
+
538
   // This allows hosts to request long names for files and folders with M33
578
   // This allows hosts to request long names for files and folders with M33
539
   #define LONG_FILENAME_HOST_SUPPORT
579
   #define LONG_FILENAME_HOST_SUPPORT
540
 
580
 
541
-  // This option allows you to abort SD printing when any endstop is triggered.
542
-  // This feature must be enabled with "M540 S1" or from the LCD menu.
543
-  // To have any effect, endstops must be enabled during SD printing.
581
+  // Enable this option to scroll long filenames in the SD card menu
582
+  //#define SCROLL_LONG_FILENAMES
583
+
584
+  /**
585
+   * This option allows you to abort SD printing when any endstop is triggered.
586
+   * This feature must be enabled with "M540 S1" or from the LCD menu.
587
+   * To have any effect, endstops must be enabled during SD printing.
588
+   */
544
   //#define ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED
589
   //#define ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED
545
 
590
 
591
+  /**
592
+   * This option makes it easier to print the same SD Card file again.
593
+   * On print completion the LCD Menu will open with the file selected.
594
+   * You can just click to start the print, or navigate elsewhere.
595
+   */
596
+  //#define SD_REPRINT_LAST_SELECTED_FILE
597
+
546
 #endif // SDSUPPORT
598
 #endif // SDSUPPORT
547
 
599
 
548
 /**
600
 /**
576
   // The normal delay is 10µs. Use the lowest value that still gives a reliable display.
628
   // The normal delay is 10µs. Use the lowest value that still gives a reliable display.
577
   //#define DOGM_SPI_DELAY_US 5
629
   //#define DOGM_SPI_DELAY_US 5
578
 
630
 
579
-  // VIKI2 and miniVIKI require DOGLCD_SCK and DOGLCD_MOSI to be defined.
580
-  #if ENABLED(VIKI2) || ENABLED(miniVIKI)
581
-    #define DOGLCD_SCK SCK_PIN
582
-    #define DOGLCD_MOSI MOSI_PIN
583
-  #endif
631
+  // Swap the CW/CCW indicators in the graphics overlay
632
+  //#define OVERLAY_GFX_REVERSE
584
 
633
 
585
 #endif // DOGLCD
634
 #endif // DOGLCD
586
 
635
 
610
 #if ENABLED(BABYSTEPPING)
659
 #if ENABLED(BABYSTEPPING)
611
   //#define BABYSTEP_XY              // Also enable X/Y Babystepping. Not supported on DELTA!
660
   //#define BABYSTEP_XY              // Also enable X/Y Babystepping. Not supported on DELTA!
612
   #define BABYSTEP_INVERT_Z false    // Change if Z babysteps should go the other way
661
   #define BABYSTEP_INVERT_Z false    // Change if Z babysteps should go the other way
613
-  #define BABYSTEP_MULTIPLICATOR 100 // Babysteps are very small. Increase for faster motion.
662
+  #define BABYSTEP_MULTIPLICATOR 1   // Babysteps are very small. Increase for faster motion.
614
   //#define BABYSTEP_ZPROBE_OFFSET   // Enable to combine M851 and Babystepping
663
   //#define BABYSTEP_ZPROBE_OFFSET   // Enable to combine M851 and Babystepping
615
   //#define DOUBLECLICK_FOR_Z_BABYSTEPPING // Double-click on the Status Screen for Z Babystepping.
664
   //#define DOUBLECLICK_FOR_Z_BABYSTEPPING // Double-click on the Status Screen for Z Babystepping.
616
   #define DOUBLECLICK_MAX_INTERVAL 1250 // Maximum interval between clicks, in milliseconds.
665
   #define DOUBLECLICK_MAX_INTERVAL 1250 // Maximum interval between clicks, in milliseconds.
617
                                         // Note: Extra time may be added to mitigate controller latency.
666
                                         // Note: Extra time may be added to mitigate controller latency.
618
   //#define BABYSTEP_ZPROBE_GFX_OVERLAY // Enable graphical overlay on Z-offset editor
667
   //#define BABYSTEP_ZPROBE_GFX_OVERLAY // Enable graphical overlay on Z-offset editor
619
-  //#define BABYSTEP_ZPROBE_GFX_REVERSE // Reverses the direction of the CW/CCW indicators
620
 #endif
668
 #endif
621
 
669
 
622
 // @section extruder
670
 // @section extruder
623
 
671
 
624
-// extruder advance constant (s2/mm3)
625
-//
626
-// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
627
-//
628
-// Hooke's law says:    force = k * distance
629
-// Bernoulli's principle says:  v ^ 2 / 2 + g . h + pressure / density = constant
630
-// so: v ^ 2 is proportional to number of steps we advance the extruder
631
-//#define ADVANCE
632
-
633
-#if ENABLED(ADVANCE)
634
-  #define EXTRUDER_ADVANCE_K .0
635
-  #define D_FILAMENT 2.85
636
-#endif
637
-
638
 /**
672
 /**
639
  * Implementation of linear pressure control
673
  * Implementation of linear pressure control
640
  *
674
  *
677
 
711
 
678
 // @section leveling
712
 // @section leveling
679
 
713
 
680
-// Default mesh area is an area with an inset margin on the print area.
681
-// Below are the macros that are used to define the borders for the mesh area,
682
-// made available here for specialized needs, ie dual extruder setup.
683
-#if ENABLED(MESH_BED_LEVELING)
684
-  #define MESH_MIN_X MESH_INSET
685
-  #define MESH_MAX_X (X_BED_SIZE - (MESH_INSET))
686
-  #define MESH_MIN_Y MESH_INSET
687
-  #define MESH_MAX_Y (Y_BED_SIZE - (MESH_INSET))
688
-#elif ENABLED(AUTO_BED_LEVELING_UBL)
689
-  #define UBL_MESH_MIN_X UBL_MESH_INSET
690
-  #define UBL_MESH_MAX_X (X_BED_SIZE - (UBL_MESH_INSET))
691
-  #define UBL_MESH_MIN_Y UBL_MESH_INSET
692
-  #define UBL_MESH_MAX_Y (Y_BED_SIZE - (UBL_MESH_INSET))
693
-
694
-  // If this is defined, the currently active mesh will be saved in the
695
-  // current slot on M500.
696
-  #define UBL_SAVE_ACTIVE_ON_M500
714
+#if ENABLED(DELTA) && !defined(DELTA_PROBEABLE_RADIUS)
715
+  #define DELTA_PROBEABLE_RADIUS DELTA_PRINTABLE_RADIUS
716
+#elif IS_SCARA && !defined(SCARA_PRINTABLE_RADIUS)
717
+  #define SCARA_PRINTABLE_RADIUS (SCARA_LINKAGE_1 + SCARA_LINKAGE_2)
718
+#endif
719
+
720
+#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_UBL)
721
+  // Override the mesh area if the automatic (max) area is too large
722
+  //#define MESH_MIN_X MESH_INSET
723
+  //#define MESH_MIN_Y MESH_INSET
724
+  //#define MESH_MAX_X X_BED_SIZE - (MESH_INSET)
725
+  //#define MESH_MAX_Y Y_BED_SIZE - (MESH_INSET)
697
 #endif
726
 #endif
698
 
727
 
699
 // @section extras
728
 // @section extras
713
 //#define BEZIER_CURVE_SUPPORT
742
 //#define BEZIER_CURVE_SUPPORT
714
 
743
 
715
 // G38.2 and G38.3 Probe Target
744
 // G38.2 and G38.3 Probe Target
716
-// Enable PROBE_DOUBLE_TOUCH if you want G38 to double touch
745
+// Set MULTIPLE_PROBING if you want G38 to double touch
717
 //#define G38_PROBE_TARGET
746
 //#define G38_PROBE_TARGET
718
 #if ENABLED(G38_PROBE_TARGET)
747
 #if ENABLED(G38_PROBE_TARGET)
719
   #define G38_MINIMUM_MOVE 0.0275 // minimum distance in mm that will produce a move (determined using the print statement in check_move)
748
   #define G38_MINIMUM_MOVE 0.0275 // minimum distance in mm that will produce a move (determined using the print statement in check_move)
738
 // @section hidden
767
 // @section hidden
739
 
768
 
740
 // The number of linear motions that can be in the plan at any give time.
769
 // The number of linear motions that can be in the plan at any give time.
741
-// THE BLOCK_BUFFER_SIZE NEEDS TO BE A POWER OF 2, i.g. 8,16,32 because shifts and ors are used to do the ring-buffering.
770
+// THE BLOCK_BUFFER_SIZE NEEDS TO BE A POWER OF 2 (e.g. 8, 16, 32) because shifts and ors are used to do the ring-buffering.
742
 #if ENABLED(SDSUPPORT)
771
 #if ENABLED(SDSUPPORT)
743
   #define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
772
   #define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
744
 #else
773
 #else
747
 
776
 
748
 // @section serial
777
 // @section serial
749
 
778
 
750
-// Number of seconds to wait for serial attach at startup
751
-#define WAIT_FOR_SERIAL_STARTUP 15
752
-
753
 // The ASCII buffer for serial input
779
 // The ASCII buffer for serial input
754
 #define MAX_CMD_SIZE 96
780
 #define MAX_CMD_SIZE 96
755
 #define BUFSIZE 4
781
 #define BUFSIZE 4
832
 #endif
858
 #endif
833
 
859
 
834
 /**
860
 /**
861
+ * Extra Fan Speed
862
+ * Adds a secondary fan speed for each print-cooling fan.
863
+ *   'M106 P<fan> T3-255' : Set a secondary speed for <fan>
864
+ *   'M106 P<fan> T2'     : Use the set secondary speed
865
+ *   'M106 P<fan> T1'     : Restore the previous fan speed
866
+ */
867
+//#define EXTRA_FAN_SPEED
868
+
869
+/**
835
  * Advanced Pause
870
  * Advanced Pause
836
  * Experimental feature for filament change support and for parking the nozzle when paused.
871
  * Experimental feature for filament change support and for parking the nozzle when paused.
837
  * Adds the GCode M600 for initiating filament change.
872
  * Adds the GCode M600 for initiating filament change.
1273
 #endif
1308
 #endif
1274
 
1309
 
1275
 /**
1310
 /**
1311
+ * Filament Width Sensor
1312
+ *
1313
+ * Measures the filament width in real-time and adjusts
1314
+ * flow rate to compensate for any irregularities.
1315
+ *
1316
+ * Also allows the measured filament diameter to set the
1317
+ * extrusion rate, so the slicer only has to specify the
1318
+ * volume.
1319
+ *
1320
+ * Only a single extruder is supported at this time.
1321
+ *
1322
+ *  34 RAMPS_14    : Analog input 5 on the AUX2 connector
1323
+ *  81 PRINTRBOARD : Analog input 2 on the Exp1 connector (version B,C,D,E)
1324
+ * 301 RAMBO       : Analog input 3
1325
+ *
1326
+ * Note: May require analog pins to be defined for other boards.
1327
+ */
1328
+//#define FILAMENT_WIDTH_SENSOR
1329
+
1330
+#if ENABLED(FILAMENT_WIDTH_SENSOR)
1331
+  #define FILAMENT_SENSOR_EXTRUDER_NUM 0    // Index of the extruder that has the filament sensor. :[0,1,2,3,4]
1332
+  #define MEASUREMENT_DELAY_CM        14    // (cm) The distance from the filament sensor to the melting chamber
1333
+
1334
+  #define MEASURED_UPPER_LIMIT         3.30 // (mm) Upper limit used to validate sensor reading
1335
+  #define MEASURED_LOWER_LIMIT         1.90 // (mm) Lower limit used to validate sensor reading
1336
+  #define MAX_MEASUREMENT_DELAY       20    // (bytes) Buffer size for stored measurements (1 byte per cm). Must be larger than MEASUREMENT_DELAY_CM.
1337
+
1338
+  #define DEFAULT_MEASURED_FILAMENT_DIA DEFAULT_NOMINAL_FILAMENT_DIA // Set measured to nominal initially
1339
+
1340
+  // Display filament width on the LCD status line. Status messages will expire after 5 seconds.
1341
+  //#define FILAMENT_LCD_DISPLAY
1342
+#endif
1343
+
1344
+/**
1345
+ * CNC Coordinate Systems
1346
+ *
1347
+ * Enables G53 and G54-G59.3 commands to select coordinate systems
1348
+ * and G92.1 to reset the workspace to native machine space.
1349
+ */
1350
+//#define CNC_COORDINATE_SYSTEMS
1351
+
1352
+/**
1276
  * M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
1353
  * M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
1277
  */
1354
  */
1278
 //#define PINS_DEBUGGING
1355
 //#define PINS_DEBUGGING
1463
                                          // tweaks made to the configuration are affecting the printer in real-time.
1540
                                          // tweaks made to the configuration are affecting the printer in real-time.
1464
 #endif
1541
 #endif
1465
 
1542
 
1543
+/**
1544
+ * NanoDLP Synch support
1545
+ *
1546
+ * Add support for Synchronized Z moves when using with NanoDLP. G0/G1 axis moves will output "Z_move_comp"
1547
+ * string to enable synchronization with DLP projector exposure. This change will allow to use
1548
+ * [[WaitForDoneMessage]] instead of populating your gcode with M400 commands
1549
+ *
1550
+ */
1551
+ //#define NANODLP_Z_SYNC
1552
+
1466
 #endif // CONFIGURATION_ADV_H
1553
 #endif // CONFIGURATION_ADV_H

Loading…
Cancel
Save