Browse Source

Merge remote-tracking branch 'upstream/bugfix-1.1.x' into 1.1.x

Scott Lahteine 7 years ago
parent
commit
22c968ee32
100 changed files with 5884 additions and 1958 deletions
  1. 10
    5
      .travis.yml
  2. 88
    45
      Marlin/Conditionals_LCD.h
  3. 12
    10
      Marlin/Conditionals_post.h
  4. 53
    10
      Marlin/Configuration.h
  5. 60
    21
      Marlin/Configuration_adv.h
  6. 2
    7
      Marlin/G26_Mesh_Validation_Tool.cpp
  7. 13
    3
      Marlin/Marlin.h
  8. 197
    60
      Marlin/MarlinSerial.cpp
  9. 27
    21
      Marlin/MarlinSerial.h
  10. 251
    174
      Marlin/Marlin_main.cpp
  11. 112
    162
      Marlin/Max7219_Debug_LEDs.cpp
  12. 36
    33
      Marlin/Max7219_Debug_LEDs.h
  13. 52
    34
      Marlin/SanityCheck.h
  14. 1
    1
      Marlin/cardreader.cpp
  15. 2
    2
      Marlin/cardreader.h
  16. 11
    12
      Marlin/configuration_store.cpp
  17. 92
    0
      Marlin/dogm_bitmaps.h
  18. 151
    0
      Marlin/dogm_font_data_ISO10646_SK.h
  19. 51
    8
      Marlin/example_configurations/AlephObjects/TAZ4/Configuration.h
  20. 52
    39
      Marlin/example_configurations/AlephObjects/TAZ4/Configuration_adv.h
  21. 51
    8
      Marlin/example_configurations/AliExpress/CL-260/Configuration.h
  22. 51
    8
      Marlin/example_configurations/Anet/A6/Configuration.h
  23. 52
    39
      Marlin/example_configurations/Anet/A6/Configuration_adv.h
  24. 51
    8
      Marlin/example_configurations/Anet/A8/Configuration.h
  25. 52
    39
      Marlin/example_configurations/Anet/A8/Configuration_adv.h
  26. 51
    8
      Marlin/example_configurations/BQ/Hephestos/Configuration.h
  27. 52
    39
      Marlin/example_configurations/BQ/Hephestos/Configuration_adv.h
  28. 51
    8
      Marlin/example_configurations/BQ/Hephestos_2/Configuration.h
  29. 52
    39
      Marlin/example_configurations/BQ/Hephestos_2/Configuration_adv.h
  30. 51
    8
      Marlin/example_configurations/BQ/WITBOX/Configuration.h
  31. 52
    39
      Marlin/example_configurations/BQ/WITBOX/Configuration_adv.h
  32. 51
    8
      Marlin/example_configurations/Cartesio/Configuration.h
  33. 52
    39
      Marlin/example_configurations/Cartesio/Configuration_adv.h
  34. 65
    24
      Marlin/example_configurations/Creality/CR-10/Configuration.h
  35. 1424
    0
      Marlin/example_configurations/Creality/CR-10/Configuration_adv.h
  36. 100
    0
      Marlin/example_configurations/Creality/CR-10/_Bootscreen.h
  37. 51
    8
      Marlin/example_configurations/Felix/Configuration.h
  38. 52
    39
      Marlin/example_configurations/Felix/Configuration_adv.h
  39. 51
    8
      Marlin/example_configurations/Felix/DUAL/Configuration.h
  40. 51
    8
      Marlin/example_configurations/Folger Tech/i3-2020/Configuration.h
  41. 49
    36
      Marlin/example_configurations/Folger Tech/i3-2020/Configuration_adv.h
  42. 51
    8
      Marlin/example_configurations/Geeetech/GT2560/Configuration.h
  43. 51
    8
      Marlin/example_configurations/Geeetech/I3_Pro_X-GT2560/Configuration.h
  44. 51
    8
      Marlin/example_configurations/Infitary/i3-M508/Configuration.h
  45. 52
    39
      Marlin/example_configurations/Infitary/i3-M508/Configuration_adv.h
  46. 51
    8
      Marlin/example_configurations/Malyan/M150/Configuration.h
  47. 52
    39
      Marlin/example_configurations/Malyan/M150/Configuration_adv.h
  48. 51
    8
      Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h
  49. 51
    8
      Marlin/example_configurations/RigidBot/Configuration.h
  50. 52
    39
      Marlin/example_configurations/RigidBot/Configuration_adv.h
  51. 51
    8
      Marlin/example_configurations/SCARA/Configuration.h
  52. 52
    39
      Marlin/example_configurations/SCARA/Configuration_adv.h
  53. 52
    9
      Marlin/example_configurations/Sanguinololu/Configuration.h
  54. 29
    38
      Marlin/example_configurations/Sanguinololu/Configuration_adv.h
  55. 51
    8
      Marlin/example_configurations/TinyBoy2/Configuration.h
  56. 52
    39
      Marlin/example_configurations/TinyBoy2/Configuration_adv.h
  57. 52
    8
      Marlin/example_configurations/Velleman/K8200/Configuration.h
  58. 52
    39
      Marlin/example_configurations/Velleman/K8200/Configuration_adv.h
  59. 51
    8
      Marlin/example_configurations/Velleman/K8400/Configuration.h
  60. 52
    39
      Marlin/example_configurations/Velleman/K8400/Configuration_adv.h
  61. 51
    8
      Marlin/example_configurations/Velleman/K8400/Dual-head/Configuration.h
  62. 51
    8
      Marlin/example_configurations/adafruit/ST7565/Configuration.h
  63. 51
    8
      Marlin/example_configurations/delta/FLSUN/auto_calibrate/Configuration.h
  64. 48
    35
      Marlin/example_configurations/delta/FLSUN/auto_calibrate/Configuration_adv.h
  65. 51
    8
      Marlin/example_configurations/delta/FLSUN/kossel_mini/Configuration.h
  66. 52
    39
      Marlin/example_configurations/delta/FLSUN/kossel_mini/Configuration_adv.h
  67. 51
    8
      Marlin/example_configurations/delta/generic/Configuration.h
  68. 52
    39
      Marlin/example_configurations/delta/generic/Configuration_adv.h
  69. 51
    8
      Marlin/example_configurations/delta/kossel_mini/Configuration.h
  70. 52
    39
      Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h
  71. 51
    8
      Marlin/example_configurations/delta/kossel_pro/Configuration.h
  72. 52
    39
      Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h
  73. 51
    8
      Marlin/example_configurations/delta/kossel_xl/Configuration.h
  74. 52
    39
      Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h
  75. 51
    8
      Marlin/example_configurations/gCreate/gMax1.5+/Configuration.h
  76. 49
    35
      Marlin/example_configurations/gCreate/gMax1.5+/Configuration_adv.h
  77. 51
    8
      Marlin/example_configurations/makibox/Configuration.h
  78. 52
    39
      Marlin/example_configurations/makibox/Configuration_adv.h
  79. 51
    8
      Marlin/example_configurations/tvrrug/Round2/Configuration.h
  80. 52
    39
      Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h
  81. 51
    8
      Marlin/example_configurations/wt150/Configuration.h
  82. 52
    39
      Marlin/example_configurations/wt150/Configuration_adv.h
  83. 2
    4
      Marlin/language.h
  84. 1
    1
      Marlin/language_an.h
  85. 1
    1
      Marlin/language_bg.h
  86. 1
    1
      Marlin/language_ca.h
  87. 1
    1
      Marlin/language_cn.h
  88. 1
    1
      Marlin/language_cz.h
  89. 1
    1
      Marlin/language_cz_utf8.h
  90. 1
    1
      Marlin/language_da.h
  91. 1
    1
      Marlin/language_de.h
  92. 1
    1
      Marlin/language_el-gr.h
  93. 1
    1
      Marlin/language_el.h
  94. 1
    1
      Marlin/language_en.h
  95. 1
    1
      Marlin/language_es.h
  96. 1
    1
      Marlin/language_eu.h
  97. 1
    1
      Marlin/language_fi.h
  98. 1
    1
      Marlin/language_fr.h
  99. 1
    1
      Marlin/language_gl.h
  100. 0
    0
      Marlin/language_hr.h

+ 10
- 5
.travis.yml View File

@@ -90,19 +90,24 @@ script:
90 90
   - opt_enable REPRAP_DISCOUNT_SMART_CONTROLLER SDSUPPORT EEPROM_SETTINGS
91 91
   - opt_enable BLINKM PCA9632 RGB_LED NEOPIXEL_RGBW_LED
92 92
   - opt_enable AUTO_BED_LEVELING_LINEAR Z_MIN_PROBE_REPEATABILITY_TEST DEBUG_LEVELING_FEATURE
93
-  - opt_enable_adv FWRETRACT
93
+  - opt_enable_adv FWRETRACT MAX7219_DEBUG
94 94
   - opt_set ABL_GRID_POINTS_X 16
95 95
   - opt_set ABL_GRID_POINTS_Y 16
96 96
   - opt_set_adv FANMUX0_PIN 53
97 97
   - build_marlin
98 98
   #
99
-  # Test a simple build of AUTO_BED_LEVELING_UBL
99
+  # Test a probeless build of AUTO_BED_LEVELING_UBL
100 100
   #
101 101
   - restore_configs
102
-  - opt_enable AUTO_BED_LEVELING_UBL UBL_G26_MESH_EDITING ENABLE_LEVELING_FADE_HEIGHT FIX_MOUNTED_PROBE EEPROM_SETTINGS G3D_PANEL
102
+  - opt_enable AUTO_BED_LEVELING_UBL UBL_G26_MESH_EDITING ENABLE_LEVELING_FADE_HEIGHT EEPROM_SETTINGS G3D_PANEL
103 103
   - opt_enable_adv CUSTOM_USER_MENUS I2C_POSITION_ENCODERS BABYSTEPPING
104 104
   - build_marlin
105 105
   #
106
+  # And with a probe...
107
+  #
108
+  - opt_enable FIX_MOUNTED_PROBE
109
+  - build_marlin
110
+  #
106 111
   # Test a Sled Z Probe
107 112
   # ...with AUTO_BED_LEVELING_LINEAR, DEBUG_LEVELING_FEATURE, EEPROM_SETTINGS, and EEPROM_CHITCHAT
108 113
   #
@@ -190,14 +195,14 @@ script:
190 195
   #      ULTIMAKERCONTROLLER, FILAMENT_LCD_DISPLAY, FILAMENT_WIDTH_SENSOR,
191 196
   #      PRINTCOUNTER, NOZZLE_PARK_FEATURE, NOZZLE_CLEAN_FEATURE, PCA9632,
192 197
   #      Z_DUAL_STEPPER_DRIVERS, Z_DUAL_ENDSTOPS, BEZIER_CURVE_SUPPORT, EXPERIMENTAL_I2CBUS,
193
-  #      FILAMENT_CHANGE_FEATURE, PARK_HEAD_ON_PAUSE, LCD_INFO_MENU,
198
+  #      ADVANCED_PAUSE_FEATURE, PARK_HEAD_ON_PAUSE, LCD_INFO_MENU,
194 199
   #
195 200
   - restore_configs
196 201
   - opt_enable ULTIMAKERCONTROLLER FILAMENT_LCD_DISPLAY FILAMENT_WIDTH_SENSOR SDSUPPORT
197 202
   - opt_enable PRINTCOUNTER NOZZLE_PARK_FEATURE NOZZLE_CLEAN_FEATURE PCA9632
198 203
   - opt_enable_adv Z_DUAL_STEPPER_DRIVERS Z_DUAL_ENDSTOPS BEZIER_CURVE_SUPPORT EXPERIMENTAL_I2CBUS
199 204
   - opt_set_adv I2C_SLAVE_ADDRESS 63
200
-  - opt_enable_adv FILAMENT_CHANGE_FEATURE PARK_HEAD_ON_PAUSE LCD_INFO_MENU
205
+  - opt_enable_adv ADVANCED_PAUSE_FEATURE PARK_HEAD_ON_PAUSE LCD_INFO_MENU
201 206
   - pins_set RAMPS X_MAX_PIN -1
202 207
   - opt_set_adv Z2_MAX_PIN 2
203 208
   - build_marlin

+ 88
- 45
Marlin/Conditionals_LCD.h View File

@@ -34,17 +34,13 @@
34 34
 
35 35
     #define DOGLCD
36 36
     #define ULTIPANEL
37
-    #define NEWPANEL
38 37
     #define DEFAULT_LCD_CONTRAST 90
39 38
     #define LCD_CONTRAST_MIN 60
40 39
     #define LCD_CONTRAST_MAX 140
41 40
 
42
-  #elif ENABLED(MAKRPANEL) || ENABLED(MINIPANEL)
41
+  #elif ENABLED(MAKRPANEL)
43 42
 
44
-    #define DOGLCD
45
-    #define ULTIPANEL
46
-    #define NEWPANEL
47
-    #define DEFAULT_LCD_CONTRAST 17
43
+    #define U8GLIB_ST7565_64128N
48 44
 
49 45
   #elif ENABLED(ANET_KEYPAD_LCD)
50 46
 
@@ -53,7 +49,9 @@
53 49
     #define ADC_KEYPAD
54 50
     #define ADC_KEY_NUM 8
55 51
     #define ULTIPANEL
52
+
56 53
     // this helps to implement ADC_KEYPAD menus
54
+    #define ENCODER_PULSES_PER_STEP 1
57 55
     #define ENCODER_STEPS_PER_MENU_ITEM 1
58 56
     #define REVERSE_MENU_DIRECTION
59 57
 
@@ -73,14 +71,18 @@
73 71
     #define ULTIMAKERCONTROLLER //as available from the Ultimaker online store.
74 72
 
75 73
     #if ENABLED(miniVIKI)
76
-      #define LCD_CONTRAST_MIN  75
77
-      #define LCD_CONTRAST_MAX 115
78
-      #define DEFAULT_LCD_CONTRAST 95
74
+      #define LCD_CONTRAST_MIN      75
75
+      #define LCD_CONTRAST_MAX     115
76
+      #define DEFAULT_LCD_CONTRAST  95
77
+      #define U8GLIB_ST7565_64128N
79 78
     #elif ENABLED(VIKI2)
80
-      #define DEFAULT_LCD_CONTRAST 40
79
+      #define LCD_CONTRAST_MIN       0
80
+      #define LCD_CONTRAST_MAX     255
81
+      #define DEFAULT_LCD_CONTRAST 140
82
+      #define U8GLIB_ST7565_64128N
81 83
     #elif ENABLED(ELB_FULL_GRAPHIC_CONTROLLER)
82
-      #define LCD_CONTRAST_MIN  90
83
-      #define LCD_CONTRAST_MAX 130
84
+      #define LCD_CONTRAST_MIN      90
85
+      #define LCD_CONTRAST_MAX     130
84 86
       #define DEFAULT_LCD_CONTRAST 110
85 87
       #define U8GLIB_LM6059_AF
86 88
       #define SD_DETECT_INVERTED
@@ -90,7 +92,6 @@
90 92
 
91 93
     #define U8GLIB_SSD1306
92 94
     #define ULTIPANEL
93
-    #define NEWPANEL
94 95
     #define REVERSE_ENCODER_DIRECTION
95 96
     #define REVERSE_MENU_DIRECTION
96 97
 
@@ -99,17 +100,43 @@
99 100
     #define LCD_I2C_TYPE_PCA8574
100 101
     #define LCD_I2C_ADDRESS 0x27   // I2C Address of the port expander
101 102
     #define ULTIPANEL
102
-    #define NEWPANEL
103 103
 
104 104
   #elif ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
105 105
 
106 106
     #define DOGLCD
107 107
     #define U8GLIB_ST7920
108 108
     #define ULTIPANEL
109
-    #define NEWPANEL
109
+
110
+  #elif ENABLED(CR10_STOCKDISPLAY)
111
+
112
+    #define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
113
+    #ifndef ST7920_DELAY_1
114
+      #define ST7920_DELAY_1 DELAY_2_NOP
115
+    #endif
116
+    #ifndef ST7920_DELAY_2
117
+      #define ST7920_DELAY_2 DELAY_2_NOP
118
+    #endif
119
+    #ifndef ST7920_DELAY_3
120
+      #define ST7920_DELAY_3 DELAY_2_NOP
121
+    #endif
122
+
123
+  #elif ENABLED(MKS_12864OLED)
124
+
125
+    #define REPRAP_DISCOUNT_SMART_CONTROLLER
126
+    #define U8GLIB_SH1106
127
+
128
+  #elif ENABLED(MKS_MINI_12864)
129
+
130
+    #define MINIPANEL
110 131
 
111 132
   #endif
112 133
 
134
+  #if ENABLED(MAKRPANEL) || ENABLED(MINIPANEL)
135
+    #define DOGLCD
136
+    #define ULTIPANEL
137
+    #define DEFAULT_LCD_CONTRAST 17
138
+  #endif
139
+
113 140
   // Generic support for SSD1306 / SH1106 OLED based LCDs.
114 141
   #if ENABLED(U8GLIB_SSD1306) || ENABLED(U8GLIB_SH1106)
115 142
     #define ULTRA_LCD  //general LCD support, also 16x2
@@ -117,7 +144,15 @@
117 144
   #endif
118 145
 
119 146
   #if ENABLED(PANEL_ONE) || ENABLED(U8GLIB_SH1106)
147
+
120 148
     #define ULTIMAKERCONTROLLER
149
+
150
+  #elif ENABLED(MAKEBOARD_MINI_2_LINE_DISPLAY_1602)
151
+
152
+    #define REPRAP_DISCOUNT_SMART_CONTROLLER
153
+    #define LCD_WIDTH 16
154
+    #define LCD_HEIGHT 2
155
+
121 156
   #endif
122 157
 
123 158
   #if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER) || ENABLED(LCD_FOR_MELZI)
@@ -131,7 +166,6 @@
131 166
    || ENABLED(G3D_PANEL)                        \
132 167
    || ENABLED(RIGIDBOT_PANEL)
133 168
     #define ULTIPANEL
134
-    #define NEWPANEL
135 169
   #endif
136 170
 
137 171
   #if ENABLED(REPRAPWORLD_KEYPAD)
@@ -153,7 +187,6 @@
153 187
     #define LCD_I2C_TYPE_PCF8575
154 188
     #define LCD_I2C_ADDRESS 0x27   // I2C Address of the port expander
155 189
     #define ULTIPANEL
156
-    #define NEWPANEL
157 190
 
158 191
   #elif ENABLED(LCD_I2C_PANELOLU2)
159 192
 
@@ -163,7 +196,6 @@
163 196
     #define LCD_I2C_ADDRESS 0x20 // I2C Address of the port expander
164 197
     #define LCD_USE_I2C_BUZZER //comment out to disable buzzer on LCD
165 198
     #define ULTIPANEL
166
-    #define NEWPANEL
167 199
 
168 200
   #elif ENABLED(LCD_I2C_VIKI)
169 201
 
@@ -179,27 +211,41 @@
179 211
     #define LCD_I2C_ADDRESS 0x20 // I2C Address of the port expander
180 212
     #define LCD_USE_I2C_BUZZER //comment out to disable buzzer on LCD (requires LiquidTWI2 v1.2.3 or later)
181 213
     #define ULTIPANEL
182
-    #define NEWPANEL
183 214
 
184 215
     #define ENCODER_FEEDRATE_DEADZONE 4
185 216
 
186
-    #ifndef ENCODER_PULSES_PER_STEP
187
-      #define ENCODER_PULSES_PER_STEP 1
188
-    #endif
189
-    #ifndef ENCODER_STEPS_PER_MENU_ITEM
190
-      #define ENCODER_STEPS_PER_MENU_ITEM 2
191
-    #endif
217
+    #define STD_ENCODER_PULSES_PER_STEP 1
218
+    #define STD_ENCODER_STEPS_PER_MENU_ITEM 2
219
+
220
+  #elif ENABLED(G3D_PANEL)
221
+
222
+    #define STD_ENCODER_PULSES_PER_STEP 2
223
+    #define STD_ENCODER_STEPS_PER_MENU_ITEM 1
224
+
225
+  #elif ENABLED(miniVIKI) || ENABLED(VIKI2) \
226
+     || ENABLED(ELB_FULL_GRAPHIC_CONTROLLER) \
227
+     || ENABLED(OLED_PANEL_TINYBOY2) \
228
+     || ENABLED(BQ_LCD_SMART_CONTROLLER) \
229
+     || ENABLED(LCD_I2C_PANELOLU2) \
230
+     || ENABLED(REPRAP_DISCOUNT_SMART_CONTROLLER)
231
+    #define STD_ENCODER_PULSES_PER_STEP 4
232
+    #define STD_ENCODER_STEPS_PER_MENU_ITEM 1
192 233
   #endif
193 234
 
194
-  // Set encoder detents for well-known controllers
195
-  #if ENABLED(miniVIKI) || ENABLED(VIKI2) || ENABLED(ELB_FULL_GRAPHIC_CONTROLLER) || ENABLED(OLED_PANEL_TINYBOY2) \
196
-   || ENABLED(BQ_LCD_SMART_CONTROLLER) || ENABLED(LCD_I2C_PANELOLU2) || ENABLED(REPRAP_DISCOUNT_SMART_CONTROLLER)
197
-    #ifndef ENCODER_PULSES_PER_STEP
198
-      #define ENCODER_PULSES_PER_STEP 4
199
-    #endif
200
-    #ifndef ENCODER_STEPS_PER_MENU_ITEM
201
-      #define ENCODER_STEPS_PER_MENU_ITEM 1
202
-    #endif
235
+  #ifndef STD_ENCODER_PULSES_PER_STEP
236
+    #define STD_ENCODER_PULSES_PER_STEP 5
237
+  #endif
238
+  #ifndef STD_ENCODER_STEPS_PER_MENU_ITEM
239
+    #define STD_ENCODER_STEPS_PER_MENU_ITEM 1
240
+  #endif
241
+  #ifndef ENCODER_PULSES_PER_STEP
242
+    #define ENCODER_PULSES_PER_STEP STD_ENCODER_PULSES_PER_STEP
243
+  #endif
244
+  #ifndef ENCODER_STEPS_PER_MENU_ITEM
245
+    #define ENCODER_STEPS_PER_MENU_ITEM STD_ENCODER_STEPS_PER_MENU_ITEM
246
+  #endif
247
+  #ifndef ENCODER_FEEDRATE_DEADZONE
248
+    #define ENCODER_FEEDRATE_DEADZONE 6
203 249
   #endif
204 250
 
205 251
   // Shift register panels
@@ -210,7 +256,6 @@
210 256
   #if ENABLED(SAV_3DLCD)
211 257
     #define SR_LCD_2W_NL    // Non latching 2 wire shift register
212 258
     #define ULTIPANEL
213
-    #define NEWPANEL
214 259
   #endif
215 260
 
216 261
   #if ENABLED(DOGLCD) // Change number of lines to match the DOG graphic display
@@ -223,7 +268,7 @@
223 268
   #endif
224 269
 
225 270
   #if ENABLED(ULTIPANEL)
226
-    #define NEWPANEL  //enable this if you have a click-encoder panel
271
+    #define NEWPANEL  // Disable this if you actually have no click-encoder panel
227 272
     #define ULTRA_LCD
228 273
     #ifndef LCD_WIDTH
229 274
       #define LCD_WIDTH 20
@@ -231,14 +276,12 @@
231 276
     #ifndef LCD_HEIGHT
232 277
       #define LCD_HEIGHT 4
233 278
     #endif
234
-  #else // no panel but just LCD
235
-    #if ENABLED(ULTRA_LCD)
236
-      #ifndef LCD_WIDTH
237
-        #define LCD_WIDTH 16
238
-      #endif
239
-      #ifndef LCD_HEIGHT
240
-        #define LCD_HEIGHT 2
241
-      #endif
279
+  #elif ENABLED(ULTRA_LCD)  // no panel but just LCD
280
+    #ifndef LCD_WIDTH
281
+      #define LCD_WIDTH 16
282
+    #endif
283
+    #ifndef LCD_HEIGHT
284
+      #define LCD_HEIGHT 2
242 285
     #endif
243 286
   #endif
244 287
 
@@ -432,6 +475,6 @@
432 475
 
433 476
   #define HAS_SOFTWARE_ENDSTOPS (ENABLED(MIN_SOFTWARE_ENDSTOPS) || ENABLED(MAX_SOFTWARE_ENDSTOPS))
434 477
   #define HAS_RESUME_CONTINUE (ENABLED(NEWPANEL) || ENABLED(EMERGENCY_PARSER))
435
-  #define HAS_COLOR_LEDS (ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED) || ENABLED(PCA9632) || ENABLED(NEOPIXEL_RGBW_LED))
478
+  #define HAS_COLOR_LEDS (ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED) || ENABLED(PCA9632) || ENABLED(NEOPIXEL_LED))
436 479
 
437 480
 #endif // CONDITIONALS_LCD_H

+ 12
- 10
Marlin/Conditionals_post.h View File

@@ -28,6 +28,10 @@
28 28
 #ifndef CONDITIONALS_POST_H
29 29
 #define CONDITIONALS_POST_H
30 30
 
31
+  #define IS_SCARA (ENABLED(MORGAN_SCARA) || ENABLED(MAKERARM_SCARA))
32
+  #define IS_KINEMATIC (ENABLED(DELTA) || IS_SCARA)
33
+  #define IS_CARTESIAN !IS_KINEMATIC
34
+
31 35
   /**
32 36
    * Axis lengths and center
33 37
    */
@@ -43,6 +47,12 @@
43 47
     #define Y_BED_SIZE Y_MAX_LENGTH
44 48
   #endif
45 49
 
50
+  // Require 0,0 bed center for Delta and SCARA
51
+  #if IS_KINEMATIC
52
+    #define BED_CENTER_AT_0_0
53
+  #endif
54
+
55
+  // Define center values for future use
46 56
   #if ENABLED(BED_CENTER_AT_0_0)
47 57
     #define X_CENTER 0
48 58
     #define Y_CENTER 0
@@ -52,6 +62,7 @@
52 62
   #endif
53 63
   #define Z_CENTER ((Z_MIN_POS + Z_MAX_POS) / 2)
54 64
 
65
+  // Get the linear boundaries of the bed
55 66
   #define X_MIN_BED (X_CENTER - (X_BED_SIZE) / 2)
56 67
   #define X_MAX_BED (X_CENTER + (X_BED_SIZE) / 2)
57 68
   #define Y_MIN_BED (Y_CENTER - (Y_BED_SIZE) / 2)
@@ -85,10 +96,6 @@
85 96
     #endif
86 97
   #endif
87 98
 
88
-  #define IS_SCARA (ENABLED(MORGAN_SCARA) || ENABLED(MAKERARM_SCARA))
89
-  #define IS_KINEMATIC (ENABLED(DELTA) || IS_SCARA)
90
-  #define IS_CARTESIAN !IS_KINEMATIC
91
-
92 99
   /**
93 100
    * No adjustable bed on non-cartesians
94 101
    */
@@ -220,13 +227,8 @@
220 227
   #define MICROSTEP16 HIGH,HIGH
221 228
 
222 229
   /**
223
-   * Advance calculated values
230
+   * Override here because this is set in Configuration_adv.h
224 231
    */
225
-  #if ENABLED(ADVANCE)
226
-    #define EXTRUSION_AREA (0.25 * (D_FILAMENT) * (D_FILAMENT) * M_PI)
227
-    #define STEPS_PER_CUBIC_MM_E (axis_steps_per_mm[E_AXIS_N] / (EXTRUSION_AREA))
228
-  #endif
229
-
230 232
   #if ENABLED(ULTIPANEL) && DISABLED(ELB_FULL_GRAPHIC_CONTROLLER)
231 233
     #undef SD_DETECT_INVERTED
232 234
   #endif

+ 53
- 10
Marlin/Configuration.h View File

@@ -107,8 +107,9 @@
107 107
  *
108 108
  * 250000 works in most cases, but you might try a lower speed if
109 109
  * you commonly experience drop-outs during host printing.
110
+ * You may try up to 1000000 to speed up SD file transfer.
110 111
  *
111
- * :[2400, 9600, 19200, 38400, 57600, 115200, 250000]
112
+ * :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000]
112 113
  */
113 114
 #define BAUDRATE 250000
114 115
 
@@ -181,7 +182,7 @@
181 182
  */
182 183
 //#define PARKING_EXTRUDER
183 184
 #if ENABLED(PARKING_EXTRUDER)
184
-  #define PARKING_EXTRUDER_SOLENOIDS_INVERT           // If enabled, the solenoid not magnetized with applied voltage
185
+  #define PARKING_EXTRUDER_SOLENOIDS_INVERT           // If enabled, the solenoid is NOT magnetized with applied voltage
185 186
   #define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW  // LOW or HIGH pin signal energizes the coil
186 187
   #define PARKING_EXTRUDER_SOLENOIDS_DELAY 250        // Delay (ms) for magnetic field. No delay if 0 or not defined.
187 188
   #define PARKING_EXTRUDER_PARKING_X { -78, 184 }     // X positions for parking the extruders
@@ -759,6 +760,8 @@
759 760
 
760 761
 // @section homing
761 762
 
763
+//#define NO_MOTION_BEFORE_HOMING  // Inhibit movement until all axes have been homed
764
+
762 765
 //#define Z_HOMING_HEIGHT 4  // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
763 766
                              // Be sure you have this distance over your Z_MAX_POS in case.
764 767
 
@@ -955,9 +958,11 @@
955 958
 #if ENABLED(LCD_BED_LEVELING)
956 959
   #define MBL_Z_STEP 0.025    // Step size while manually probing Z axis.
957 960
   #define LCD_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
958
-  #define LEVEL_BED_CORNERS   // Add an option to move between corners
959 961
 #endif
960 962
 
963
+// Add a menu item to move between bed corners for manual bed adjustment
964
+//#define LEVEL_BED_CORNERS
965
+
961 966
 /**
962 967
  * Commands to execute at the end of G29 probing.
963 968
  * Useful to retract or move the Z probe out of the way.
@@ -1198,7 +1203,7 @@
1198 1203
  *  - Click the controller to view the LCD menu
1199 1204
  *  - The LCD will display Japanese, Western, or Cyrillic text
1200 1205
  *
1201
- * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
1206
+ * See http://marlinfw.org/docs/development/lcd_language.html
1202 1207
  *
1203 1208
  * :['JAPANESE', 'WESTERN', 'CYRILLIC']
1204 1209
  */
@@ -1498,6 +1503,35 @@
1498 1503
 //
1499 1504
 //#define OLED_PANEL_TINYBOY2
1500 1505
 
1506
+//
1507
+// Makeboard 3D Printer Parts 3D Printer Mini Display 1602 Mini Controller
1508
+// https://www.aliexpress.com/item/Micromake-Makeboard-3D-Printer-Parts-3D-Printer-Mini-Display-1602-Mini-Controller-Compatible-with-Ramps-1/32765887917.html
1509
+//
1510
+//#define MAKEBOARD_MINI_2_LINE_DISPLAY_1602
1511
+
1512
+//
1513
+// MKS MINI12864 with graphic controller and SD support
1514
+// http://reprap.org/wiki/MKS_MINI_12864
1515
+//
1516
+//#define MKS_MINI_12864
1517
+
1518
+//
1519
+// Factory display for Creality CR-10
1520
+// https://www.aliexpress.com/item/Universal-LCD-12864-3D-Printer-Display-Screen-With-Encoder-For-CR-10-CR-7-Model/32833148327.html
1521
+//
1522
+// This is RAMPS-compatible using a single 10-pin connector.
1523
+// (For CR-10 owners who want to replace the Melzi Creality board but retain the display)
1524
+//
1525
+//#define CR10_STOCKDISPLAY
1526
+
1527
+//
1528
+// MKS OLED 1.3" 128 × 64 FULL GRAPHICS CONTROLLER
1529
+// http://reprap.org/wiki/MKS_12864OLED
1530
+//
1531
+// Tiny, but very sharp OLED display
1532
+//
1533
+//#define MKS_12864OLED
1534
+
1501 1535
 //=============================================================================
1502 1536
 //=============================== Extra Features ==============================
1503 1537
 //=============================================================================
@@ -1554,16 +1588,22 @@
1554 1588
  * Adds the M150 command to set the LED (or LED strip) color.
1555 1589
  * If pins are PWM capable (e.g., 4, 5, 6, 11) then a range of
1556 1590
  * luminance values can be set from 0 to 255.
1591
+ * For Neopixel LED overall brightness parameters is also available 
1557 1592
  *
1558 1593
  * *** CAUTION ***
1559 1594
  *  LED Strips require a MOFSET Chip between PWM lines and LEDs,
1560 1595
  *  as the Arduino cannot handle the current the LEDs will require.
1561 1596
  *  Failure to follow this precaution can destroy your Arduino!
1597
+ *  The Neopixel LED is 5V powered, but linear 5V regulator on Arduino
1598
+ *  cannot handle such current, separate 5V power supply must be used
1562 1599
  * *** CAUTION ***
1563 1600
  *
1601
+ * LED type. This options are mutualy exclusive. Uncomment only one.
1602
+ *
1564 1603
  */
1565 1604
 //#define RGB_LED
1566 1605
 //#define RGBW_LED
1606
+
1567 1607
 #if ENABLED(RGB_LED) || ENABLED(RGBW_LED)
1568 1608
   #define RGB_LED_R_PIN 34
1569 1609
   #define RGB_LED_G_PIN 43
@@ -1572,11 +1612,14 @@
1572 1612
 #endif
1573 1613
 
1574 1614
 // Support for Adafruit Neopixel LED driver
1575
-//#define NEOPIXEL_RGBW_LED
1576
-#if ENABLED(NEOPIXEL_RGBW_LED)
1577
-  #define NEOPIXEL_PIN    4       // D4 (EXP2-5 on Printrboard)
1578
-  #define NEOPIXEL_PIXELS 3
1579
-  //#define NEOPIXEL_STARTUP_TEST // Cycle through colors at startup
1615
+//#define NEOPIXEL_LED
1616
+#if ENABLED(NEOPIXEL_LED)
1617
+  #define NEOPIXEL_TYPE   NEO_GRBW // NEO_GRBW / NEO_GRB - four/three channel driver type (definned in Adafruit_NeoPixel.h)
1618
+  #define NEOPIXEL_PIN    4        // LED driving pin on motherboard 4 => D4 (EXP2-5 on Printrboard) / 30 => PC7 (EXP3-13 on Rumba)
1619
+  #define NEOPIXEL_PIXELS 30       // Number of LEDs on strip
1620
+  #define NEOPIXEL_IS_SEQUENTIAL   // Sequent display for temperature change - LED by LED. Comment out for change all LED at time
1621
+  #define NEOPIXEL_BRIGHTNESS 127  // Initial brightness 0-255
1622
+  //#define NEOPIXEL_STARTUP_TEST  // Cycle through colors at startup
1580 1623
 #endif
1581 1624
 
1582 1625
 /**
@@ -1590,7 +1633,7 @@
1590 1633
  *  - Change to green once print has finished
1591 1634
  *  - Turn off after the print has finished and the user has pushed a button
1592 1635
  */
1593
-#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED) || ENABLED(PCA9632) || ENABLED(NEOPIXEL_RGBW_LED)
1636
+#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED) || ENABLED(PCA9632) || ENABLED(NEOPIXEL_LED)
1594 1637
   #define PRINTER_EVENT_LEDS
1595 1638
 #endif
1596 1639
 

+ 60
- 21
Marlin/Configuration_adv.h View File

@@ -222,7 +222,7 @@
222 222
 
223 223
 /**
224 224
  * Part-Cooling Fan Multiplexer
225
- * 
225
+ *
226 226
  * This feature allows you to digitally multiplex the fan output.
227 227
  * The multiplexer is automatically switched at tool-change.
228 228
  * Set FANMUX[012]_PINs below for up to 2, 4, or 8 multiplexed fans.
@@ -510,7 +510,7 @@
510 510
 
511 511
   // SD Card Sorting options
512 512
   #if ENABLED(SDCARD_SORT_ALPHA)
513
-    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256).
513
+    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256). Costs 27 bytes each.
514 514
     #define FOLDER_SORTING     -1     // -1=above  0=none  1=below
515 515
     #define SDSORT_GCODE       false  // Allow turning sorting on/off with LCD and M34 g-code.
516 516
     #define SDSORT_USES_RAM    false  // Pre-allocate a static array for faster pre-sorting.
@@ -601,31 +601,19 @@
601 601
  */
602 602
 //#define BABYSTEPPING
603 603
 #if ENABLED(BABYSTEPPING)
604
-  #define BABYSTEP_XY              // Also enable X/Y Babystepping. Not supported on DELTA!
605
-  #define BABYSTEP_INVERT_Z false  // Change if Z babysteps should go the other way
606
-  #define BABYSTEP_MULTIPLICATOR 1 // Babysteps are very small. Increase for faster motion.
607
-  //#define BABYSTEP_ZPROBE_OFFSET // Enable to combine M851 and Babystepping
604
+  //#define BABYSTEP_XY              // Also enable X/Y Babystepping. Not supported on DELTA!
605
+  #define BABYSTEP_INVERT_Z false    // Change if Z babysteps should go the other way
606
+  #define BABYSTEP_MULTIPLICATOR 100 // Babysteps are very small. Increase for faster motion.
607
+  //#define BABYSTEP_ZPROBE_OFFSET   // Enable to combine M851 and Babystepping
608 608
   //#define DOUBLECLICK_FOR_Z_BABYSTEPPING // Double-click on the Status Screen for Z Babystepping.
609 609
   #define DOUBLECLICK_MAX_INTERVAL 1250 // Maximum interval between clicks, in milliseconds.
610 610
                                         // Note: Extra time may be added to mitigate controller latency.
611
+  //#define BABYSTEP_ZPROBE_GFX_OVERLAY // Enable graphical overlay on Z-offset editor
612
+  //#define BABYSTEP_ZPROBE_GFX_REVERSE // Reverses the direction of the CW/CCW indicators
611 613
 #endif
612 614
 
613 615
 // @section extruder
614 616
 
615
-// extruder advance constant (s2/mm3)
616
-//
617
-// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
618
-//
619
-// Hooke's law says:    force = k * distance
620
-// Bernoulli's principle says:  v ^ 2 / 2 + g . h + pressure / density = constant
621
-// so: v ^ 2 is proportional to number of steps we advance the extruder
622
-//#define ADVANCE
623
-
624
-#if ENABLED(ADVANCE)
625
-  #define EXTRUDER_ADVANCE_K .0
626
-  #define D_FILAMENT 2.85
627
-#endif
628
-
629 617
 /**
630 618
  * Implementation of linear pressure control
631 619
  *
@@ -742,7 +730,7 @@
742 730
 #define MAX_CMD_SIZE 96
743 731
 #define BUFSIZE 4
744 732
 
745
-// Transfer Buffer Size
733
+// Transmission to Host Buffer Size
746 734
 // To save 386 bytes of PROGMEM (and TX_BUFFER_SIZE+3 bytes of RAM) set to 0.
747 735
 // To buffer a simple "ok" you need 4 bytes.
748 736
 // For ADVANCED_OK (M105) you need 32 bytes.
@@ -751,6 +739,28 @@
751 739
 // :[0, 2, 4, 8, 16, 32, 64, 128, 256]
752 740
 #define TX_BUFFER_SIZE 0
753 741
 
742
+// Host Receive Buffer Size
743
+// Without XON/XOFF flow control (see SERIAL_XON_XOFF below) 32 bytes should be enough.
744
+// To use flow control, set this buffer size to at least 1024 bytes.
745
+// :[0, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048]
746
+//#define RX_BUFFER_SIZE 1024
747
+
748
+#if RX_BUFFER_SIZE >= 1024
749
+  // Enable to have the controller send XON/XOFF control characters to
750
+  // the host to signal the RX buffer is becoming full.
751
+  //#define SERIAL_XON_XOFF
752
+#endif
753
+
754
+#if ENABLED(SDSUPPORT)
755
+  // Enable this option to collect and display the maximum
756
+  // RX queue usage after transferring a file to SD.
757
+  //#define SERIAL_STATS_MAX_RX_QUEUED
758
+
759
+  // Enable this option to collect and display the number
760
+  // of dropped bytes after a file transfer to SD.
761
+  //#define SERIAL_STATS_DROPPED_RX
762
+#endif
763
+
754 764
 // Enable an emergency-command parser to intercept certain commands as they
755 765
 // enter the serial receive buffer, so they cannot be blocked.
756 766
 // Currently handles M108, M112, M410
@@ -1274,6 +1284,7 @@
1274 1284
 #if ENABLED(CUSTOM_USER_MENUS)
1275 1285
   #define USER_SCRIPT_DONE "M117 User Script Done"
1276 1286
   #define USER_SCRIPT_AUDIBLE_FEEDBACK
1287
+  //#define USER_SCRIPT_RETURN  // Return to status screen after a script
1277 1288
 
1278 1289
   #define USER_DESC_1 "Home & UBL Info"
1279 1290
   #define USER_GCODE_1 "G28\nG29 W"
@@ -1382,4 +1393,32 @@
1382 1393
 
1383 1394
 #endif // I2C_POSITION_ENCODERS
1384 1395
 
1396
+/**
1397
+ * MAX7219 Debug Matrix
1398
+ *
1399
+ * Add support for a low-cost 8x8 LED Matrix based on the Max7219 chip, which can be used as a status
1400
+ * display. Requires 3 signal wires. Some useful debug options are included to demonstrate its usage.
1401
+ *
1402
+ * Fully assembled MAX7219 boards can be found on the internet for under $2(US).
1403
+ * For example, see https://www.ebay.com/sch/i.html?_nkw=332349290049
1404
+ */
1405
+//#define MAX7219_DEBUG
1406
+#if ENABLED(MAX7219_DEBUG)
1407
+  #define MAX7219_CLK_PIN   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display
1408
+  #define MAX7219_DIN_PIN   57  // 78 on Re-ARM
1409
+  #define MAX7219_LOAD_PIN  44  // 79 on Re-ARM
1410
+
1411
+  /**
1412
+   * Sample debug features
1413
+   * If you add more debug displays, be careful to avoid conflicts!
1414
+   */
1415
+  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix to show that the firmware is functioning
1416
+  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Show the stepper queue head position on this and the next LED matrix row
1417
+  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Show the stepper queue tail position on this and the next LED matrix row
1418
+
1419
+  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Show the current stepper queue depth on this and the next LED matrix row
1420
+                                         // If you experience stuttering, reboots, etc. this option can reveal how
1421
+                                         // tweaks made to the configuration are affecting the printer in real-time.
1422
+#endif
1423
+
1385 1424
 #endif // CONFIGURATION_ADV_H

+ 2
- 7
Marlin/G26_Mesh_Validation_Tool.cpp View File

@@ -136,13 +136,8 @@
136 136
   extern float destination[XYZE];
137 137
   void set_destination_to_current();
138 138
   void prepare_move_to_destination();
139
-  #if AVR_AT90USB1286_FAMILY  // Teensyduino & Printrboard IDE extensions have compile errors without this
140
-    inline void sync_plan_position_e() { planner.set_e_position_mm(current_position[E_AXIS]); }
141
-    inline void set_current_to_destination() { COPY(current_position, destination); }
142
-  #else
143
-    void sync_plan_position_e();
144
-    void set_current_to_destination();
145
-  #endif
139
+  inline void sync_plan_position_e() { planner.set_e_position_mm(current_position[E_AXIS]); }
140
+  inline void set_current_to_destination() { COPY(current_position, destination); }
146 141
   #if ENABLED(NEWPANEL)
147 142
     void lcd_setstatusPGM(const char* const message, const int8_t level);
148 143
     void chirp_at_user();

+ 13
- 3
Marlin/Marlin.h View File

@@ -302,9 +302,9 @@ extern float soft_endstop_min[XYZ], soft_endstop_max[XYZ];
302 302
                delta_diagonal_rod,
303 303
                delta_calibration_radius,
304 304
                delta_segments_per_second,
305
-               delta_tower_angle_trim[2],
305
+               delta_tower_angle_trim[ABC],
306 306
                delta_clip_start_height;
307
-  void recalc_delta_settings(float radius, float diagonal_rod);
307
+  void recalc_delta_settings(float radius, float diagonal_rod, float tower_angle_trim[ABC]);
308 308
 #elif IS_SCARA
309 309
   void forward_kinematics_SCARA(const float &a, const float &b);
310 310
 #endif
@@ -422,7 +422,17 @@ void do_blocking_move_to_x(const float &x, const float &fr_mm_s=0.0);
422 422
 void do_blocking_move_to_z(const float &z, const float &fr_mm_s=0.0);
423 423
 void do_blocking_move_to_xy(const float &x, const float &y, const float &fr_mm_s=0.0);
424 424
 
425
-#if ENABLED(Z_PROBE_ALLEN_KEY) || ENABLED(Z_PROBE_SLED) || HAS_PROBING_PROCEDURE || HOTENDS > 1 || ENABLED(NOZZLE_CLEAN_FEATURE) || ENABLED(NOZZLE_PARK_FEATURE)
425
+#define HAS_AXIS_UNHOMED_ERR (                                                     \
426
+         ENABLED(Z_PROBE_ALLEN_KEY)                                                \
427
+      || ENABLED(Z_PROBE_SLED)                                                     \
428
+      || HAS_PROBING_PROCEDURE                                                     \
429
+      || HOTENDS > 1                                                               \
430
+      || ENABLED(NOZZLE_CLEAN_FEATURE)                                             \
431
+      || ENABLED(NOZZLE_PARK_FEATURE)                                              \
432
+      || (ENABLED(ADVANCED_PAUSE_FEATURE) && ENABLED(HOME_BEFORE_FILAMENT_CHANGE)) \
433
+    ) || ENABLED(NO_MOTION_BEFORE_HOMING)
434
+
435
+#if HAS_AXIS_UNHOMED_ERR
426 436
   bool axis_unhomed_error(const bool x=true, const bool y=true, const bool z=true);
427 437
 #endif
428 438
 

+ 197
- 60
Marlin/MarlinSerial.cpp View File

@@ -27,15 +27,30 @@
27 27
  * Modified 23 November 2006 by David A. Mellis
28 28
  * Modified 28 September 2010 by Mark Sproul
29 29
  * Modified 14 February 2016 by Andreas Hardtung (added tx buffer)
30
+ * Modified 01 October 2017 by Eduardo José Tagle (added XON/XOFF)
30 31
  */
31 32
 
32
-#include "MarlinSerial.h"
33
-#include "Marlin.h"
34
-
35 33
 // Disable HardwareSerial.cpp to support chips without a UART (Attiny, etc.)
36 34
 
35
+#include "MarlinConfig.h"
36
+
37 37
 #if !defined(USBCON) && (defined(UBRRH) || defined(UBRR0H) || defined(UBRR1H) || defined(UBRR2H) || defined(UBRR3H))
38 38
 
39
+  #include "MarlinSerial.h"
40
+  #include "Marlin.h"
41
+
42
+  struct ring_buffer_r {
43
+    unsigned char buffer[RX_BUFFER_SIZE];
44
+    volatile ring_buffer_pos_t head, tail;
45
+  };
46
+
47
+  #if TX_BUFFER_SIZE > 0
48
+    struct ring_buffer_t {
49
+      unsigned char buffer[TX_BUFFER_SIZE];
50
+      volatile uint8_t head, tail;
51
+    };
52
+  #endif
53
+
39 54
   #if UART_PRESENT(SERIAL_PORT)
40 55
     ring_buffer_r rx_buffer = { { 0 }, 0, 0 };
41 56
     #if TX_BUFFER_SIZE > 0
@@ -44,6 +59,23 @@
44 59
     #endif
45 60
   #endif
46 61
 
62
+  #if ENABLED(SERIAL_XON_XOFF)
63
+    constexpr uint8_t XON_XOFF_CHAR_SENT = 0x80;  // XON / XOFF Character was sent
64
+    constexpr uint8_t XON_XOFF_CHAR_MASK = 0x1F;  // XON / XOFF character to send
65
+    // XON / XOFF character definitions
66
+    constexpr uint8_t XON_CHAR  = 17;
67
+    constexpr uint8_t XOFF_CHAR = 19;
68
+    uint8_t xon_xoff_state = XON_XOFF_CHAR_SENT | XON_CHAR;
69
+  #endif
70
+
71
+  #if ENABLED(SERIAL_STATS_DROPPED_RX)
72
+    uint8_t rx_dropped_bytes = 0;
73
+  #endif
74
+
75
+  #if ENABLED(SERIAL_STATS_MAX_RX_QUEUED)
76
+    ring_buffer_pos_t rx_max_enqueued = 0;
77
+  #endif
78
+
47 79
   #if ENABLED(EMERGENCY_PARSER)
48 80
 
49 81
     #include "stepper.h"
@@ -136,20 +168,78 @@
136 168
 
137 169
   #endif // EMERGENCY_PARSER
138 170
 
139
-  FORCE_INLINE void store_char(unsigned char c) {
140
-    CRITICAL_SECTION_START;
141
-      const uint8_t h = rx_buffer.head,
142
-                    i = (uint8_t)(h + 1) & (RX_BUFFER_SIZE - 1);
143
-
144
-      // if we should be storing the received character into the location
145
-      // just before the tail (meaning that the head would advance to the
146
-      // current location of the tail), we're about to overflow the buffer
147
-      // and so we don't write the character or advance the head.
148
-      if (i != rx_buffer.tail) {
149
-        rx_buffer.buffer[h] = c;
150
-        rx_buffer.head = i;
171
+  FORCE_INLINE void store_rxd_char() {
172
+    const ring_buffer_pos_t h = rx_buffer.head,
173
+                            i = (ring_buffer_pos_t)(h + 1) & (ring_buffer_pos_t)(RX_BUFFER_SIZE - 1);
174
+
175
+    // If the character is to be stored at the index just before the tail
176
+    // (such that the head would advance to the current tail), the buffer is
177
+    // critical, so don't write the character or advance the head.
178
+    if (i != rx_buffer.tail) {
179
+      rx_buffer.buffer[h] = M_UDRx;
180
+      rx_buffer.head = i;
181
+    }
182
+    else {
183
+      (void)M_UDRx;
184
+      #if ENABLED(SERIAL_STATS_DROPPED_RX)
185
+        if (!++rx_dropped_bytes) ++rx_dropped_bytes;
186
+      #endif
187
+    }
188
+
189
+    #if ENABLED(SERIAL_STATS_MAX_RX_QUEUED)
190
+      // calculate count of bytes stored into the RX buffer
191
+      ring_buffer_pos_t rx_count = (ring_buffer_pos_t)(rx_buffer.head - rx_buffer.tail) & (ring_buffer_pos_t)(RX_BUFFER_SIZE - 1);
192
+      // Keep track of the maximum count of enqueued bytes
193
+      NOLESS(rx_max_enqueued, rx_count);
194
+    #endif
195
+
196
+    #if ENABLED(SERIAL_XON_XOFF)
197
+
198
+      // for high speed transfers, we can use XON/XOFF protocol to do
199
+      // software handshake and avoid overruns.
200
+      if ((xon_xoff_state & XON_XOFF_CHAR_MASK) == XON_CHAR) {
201
+
202
+        // calculate count of bytes stored into the RX buffer
203
+        ring_buffer_pos_t rx_count = (ring_buffer_pos_t)(rx_buffer.head - rx_buffer.tail) & (ring_buffer_pos_t)(RX_BUFFER_SIZE - 1);
204
+
205
+        // if we are above 12.5% of RX buffer capacity, send XOFF before
206
+        // we run out of RX buffer space .. We need 325 bytes @ 250kbits/s to
207
+        // let the host react and stop sending bytes. This translates to 13mS
208
+        // propagation time.
209
+        if (rx_count >= (RX_BUFFER_SIZE) / 8) {
210
+          // If TX interrupts are disabled and data register is empty,
211
+          // just write the byte to the data register and be done. This
212
+          // shortcut helps significantly improve the effective datarate
213
+          // at high (>500kbit/s) bitrates, where interrupt overhead
214
+          // becomes a slowdown.
215
+          if (!TEST(M_UCSRxB, M_UDRIEx) && TEST(M_UCSRxA, M_UDREx)) {
216
+            // Send an XOFF character
217
+            M_UDRx = XOFF_CHAR;
218
+            // clear the TXC bit -- "can be cleared by writing a one to its bit
219
+            // location". This makes sure flush() won't return until the bytes
220
+            // actually got written
221
+            SBI(M_UCSRxA, M_TXCx);
222
+            // And remember it was sent
223
+            xon_xoff_state = XOFF_CHAR | XON_XOFF_CHAR_SENT;
224
+          }
225
+          else {
226
+            // TX interrupts disabled, but buffer still not empty ... or
227
+            // TX interrupts enabled. Reenable TX ints and schedule XOFF
228
+            // character to be sent
229
+            #if TX_BUFFER_SIZE > 0
230
+              SBI(M_UCSRxB, M_UDRIEx);
231
+              xon_xoff_state = XOFF_CHAR;
232
+            #else
233
+              // We are not using TX interrupts, we will have to send this manually
234
+              while (!TEST(M_UCSRxA, M_UDREx)) {/* nada */}
235
+              M_UDRx = XOFF_CHAR;
236
+              // And remember we already sent it
237
+              xon_xoff_state = XOFF_CHAR | XON_XOFF_CHAR_SENT;
238
+            #endif
239
+          }
240
+        }
151 241
       }
152
-    CRITICAL_SECTION_END;
242
+    #endif // SERIAL_XON_XOFF
153 243
 
154 244
     #if ENABLED(EMERGENCY_PARSER)
155 245
       emergency_parser(c);
@@ -160,37 +250,41 @@
160 250
 
161 251
     FORCE_INLINE void _tx_udr_empty_irq(void) {
162 252
       // If interrupts are enabled, there must be more data in the output
163
-      // buffer. Send the next byte
164
-      const uint8_t t = tx_buffer.tail,
165
-                    c = tx_buffer.buffer[t];
166
-      tx_buffer.tail = (t + 1) & (TX_BUFFER_SIZE - 1);
167
-
168
-      M_UDRx = c;
253
+      // buffer.
254
+
255
+      #if ENABLED(SERIAL_XON_XOFF)
256
+        // Do a priority insertion of an XON/XOFF char, if needed.
257
+        const uint8_t state = xon_xoff_state;
258
+        if (!(state & XON_XOFF_CHAR_SENT)) {
259
+          M_UDRx = state & XON_XOFF_CHAR_MASK;
260
+          xon_xoff_state = state | XON_XOFF_CHAR_SENT;
261
+        }
262
+        else
263
+      #endif
264
+      { // Send the next byte
265
+        const uint8_t t = tx_buffer.tail, c = tx_buffer.buffer[t];
266
+        tx_buffer.tail = (t + 1) & (TX_BUFFER_SIZE - 1);
267
+        M_UDRx = c;
268
+      }
169 269
 
170 270
       // clear the TXC bit -- "can be cleared by writing a one to its bit
171 271
       // location". This makes sure flush() won't return until the bytes
172 272
       // actually got written
173 273
       SBI(M_UCSRxA, M_TXCx);
174 274
 
175
-      if (tx_buffer.head == tx_buffer.tail) {
176
-        // Buffer empty, so disable interrupts
275
+      // Disable interrupts if the buffer is empty
276
+      if (tx_buffer.head == tx_buffer.tail)
177 277
         CBI(M_UCSRxB, M_UDRIEx);
178
-      }
179 278
     }
180 279
 
181 280
     #ifdef M_USARTx_UDRE_vect
182
-      ISR(M_USARTx_UDRE_vect) {
183
-        _tx_udr_empty_irq();
184
-      }
281
+      ISR(M_USARTx_UDRE_vect) { _tx_udr_empty_irq(); }
185 282
     #endif
186 283
 
187 284
   #endif // TX_BUFFER_SIZE
188 285
 
189 286
   #ifdef M_USARTx_RX_vect
190
-    ISR(M_USARTx_RX_vect) {
191
-      const unsigned char c = M_UDRx;
192
-      store_char(c);
193
-    }
287
+    ISR(M_USARTx_RX_vect) { store_rxd_char(); }
194 288
   #endif
195 289
 
196 290
   // Public Methods
@@ -200,9 +294,9 @@
200 294
     bool useU2X = true;
201 295
 
202 296
     #if F_CPU == 16000000UL && SERIAL_PORT == 0
203
-      // hard-coded exception for compatibility with the bootloader shipped
204
-      // with the Duemilanove and previous boards and the firmware on the 8U2
205
-      // on the Uno and Mega 2560.
297
+      // Hard-coded exception for compatibility with the bootloader shipped
298
+      // with the Duemilanove and previous boards, and the firmware on the
299
+      // 8U2 on the Uno and Mega 2560.
206 300
       if (baud == 57600) useU2X = false;
207 301
     #endif
208 302
 
@@ -237,8 +331,9 @@
237 331
 
238 332
   void MarlinSerial::checkRx(void) {
239 333
     if (TEST(M_UCSRxA, M_RXCx)) {
240
-      const uint8_t c = M_UDRx;
241
-      store_char(c);
334
+      CRITICAL_SECTION_START;
335
+        store_rxd_char();
336
+      CRITICAL_SECTION_END;
242 337
     }
243 338
   }
244 339
 
@@ -252,51 +347,81 @@
252 347
   int MarlinSerial::read(void) {
253 348
     int v;
254 349
     CRITICAL_SECTION_START;
255
-      const uint8_t t = rx_buffer.tail;
350
+      const ring_buffer_pos_t t = rx_buffer.tail;
256 351
       if (rx_buffer.head == t)
257 352
         v = -1;
258 353
       else {
259 354
         v = rx_buffer.buffer[t];
260
-        rx_buffer.tail = (uint8_t)(t + 1) & (RX_BUFFER_SIZE - 1);
355
+        rx_buffer.tail = (ring_buffer_pos_t)(t + 1) & (RX_BUFFER_SIZE - 1);
356
+
357
+        #if ENABLED(SERIAL_XON_XOFF)
358
+          if ((xon_xoff_state & XON_XOFF_CHAR_MASK) == XOFF_CHAR) {
359
+            // Get count of bytes in the RX buffer
360
+            ring_buffer_pos_t rx_count = (ring_buffer_pos_t)(rx_buffer.head - rx_buffer.tail) & (ring_buffer_pos_t)(RX_BUFFER_SIZE - 1);
361
+            // When below 10% of RX buffer capacity, send XON before
362
+            // running out of RX buffer bytes
363
+            if (rx_count < (RX_BUFFER_SIZE) / 10) {
364
+              xon_xoff_state = XON_CHAR | XON_XOFF_CHAR_SENT;
365
+              CRITICAL_SECTION_END;       // End critical section before returning!
366
+              writeNoHandshake(XON_CHAR);
367
+              return v;
368
+            }
369
+          }
370
+        #endif
261 371
       }
262 372
     CRITICAL_SECTION_END;
263 373
     return v;
264 374
   }
265 375
 
266
-  uint8_t MarlinSerial::available(void) {
376
+  ring_buffer_pos_t MarlinSerial::available(void) {
267 377
     CRITICAL_SECTION_START;
268
-      const uint8_t h = rx_buffer.head,
269
-                    t = rx_buffer.tail;
378
+      const ring_buffer_pos_t h = rx_buffer.head, t = rx_buffer.tail;
270 379
     CRITICAL_SECTION_END;
271
-    return (uint8_t)(RX_BUFFER_SIZE + h - t) & (RX_BUFFER_SIZE - 1);
380
+    return (ring_buffer_pos_t)(RX_BUFFER_SIZE + h - t) & (RX_BUFFER_SIZE - 1);
272 381
   }
273 382
 
274 383
   void MarlinSerial::flush(void) {
275
-    // RX
276
-    // don't reverse this or there may be problems if the RX interrupt
277
-    // occurs after reading the value of rx_buffer_head but before writing
278
-    // the value to rx_buffer_tail; the previous value of rx_buffer_head
279
-    // may be written to rx_buffer_tail, making it appear as if the buffer
280
-    // were full, not empty.
384
+    // Don't change this order of operations. If the RX interrupt occurs between
385
+    // reading rx_buffer_head and updating rx_buffer_tail, the previous rx_buffer_head
386
+    // may be written to rx_buffer_tail, making the buffer appear full rather than empty.
281 387
     CRITICAL_SECTION_START;
282 388
       rx_buffer.head = rx_buffer.tail;
283 389
     CRITICAL_SECTION_END;
390
+
391
+    #if ENABLED(SERIAL_XON_XOFF)
392
+      if ((xon_xoff_state & XON_XOFF_CHAR_MASK) == XOFF_CHAR) {
393
+        xon_xoff_state = XON_CHAR | XON_XOFF_CHAR_SENT;
394
+        writeNoHandshake(XON_CHAR);
395
+      }
396
+    #endif
284 397
   }
285 398
 
286 399
   #if TX_BUFFER_SIZE > 0
287 400
     uint8_t MarlinSerial::availableForWrite(void) {
288 401
       CRITICAL_SECTION_START;
289
-        const uint8_t h = tx_buffer.head,
290
-                      t = tx_buffer.tail;
402
+        const uint8_t h = tx_buffer.head, t = tx_buffer.tail;
291 403
       CRITICAL_SECTION_END;
292 404
       return (uint8_t)(TX_BUFFER_SIZE + h - t) & (TX_BUFFER_SIZE - 1);
293 405
     }
294 406
 
295 407
     void MarlinSerial::write(const uint8_t c) {
408
+      #if ENABLED(SERIAL_XON_XOFF)
409
+        const uint8_t state = xon_xoff_state;
410
+        if (!(state & XON_XOFF_CHAR_SENT)) {
411
+          // Send 2 chars: XON/XOFF, then a user-specified char
412
+          writeNoHandshake(state & XON_XOFF_CHAR_MASK);
413
+          xon_xoff_state = state | XON_XOFF_CHAR_SENT;
414
+        }
415
+      #endif
416
+      writeNoHandshake(c);
417
+    }
418
+
419
+    void MarlinSerial::writeNoHandshake(const uint8_t c) {
296 420
       _written = true;
297 421
       CRITICAL_SECTION_START;
298 422
         bool emty = (tx_buffer.head == tx_buffer.tail);
299 423
       CRITICAL_SECTION_END;
424
+
300 425
       // If the buffer and the data register is empty, just write the byte
301 426
       // to the data register and be done. This shortcut helps
302 427
       // significantly improve the effective datarate at high (>
@@ -353,20 +478,32 @@
353 478
       }
354 479
       // If we get here, nothing is queued anymore (DRIE is disabled) and
355 480
       // the hardware finished tranmission (TXC is set).
356
-  }
481
+    }
357 482
 
358
-  #else
359
-    void MarlinSerial::write(uint8_t c) {
360
-      while (!TEST(M_UCSRxA, M_UDREx))
361
-        ;
362
-      M_UDRx = c;
483
+  #else // TX_BUFFER_SIZE == 0
484
+
485
+    void MarlinSerial::write(const uint8_t c) {
486
+      #if ENABLED(SERIAL_XON_XOFF)
487
+        // Do a priority insertion of an XON/XOFF char, if needed.
488
+        const uint8_t state = xon_xoff_state;
489
+        if (!(state & XON_XOFF_CHAR_SENT)) {
490
+          writeNoHandshake(state & XON_XOFF_CHAR_MASK);
491
+          xon_xoff_state = state | XON_XOFF_CHAR_SENT;
492
+        }
493
+      #endif
494
+      writeNoHandshake(c);
363 495
     }
364
-  #endif
365 496
 
366
-  // end NEW
497
+    void MarlinSerial::writeNoHandshake(uint8_t c) {
498
+      while (!TEST(M_UCSRxA, M_UDREx)) {/* nada */}
499
+      M_UDRx = c;
500
+    }
367 501
 
368
-  /// imports from print.h
502
+  #endif // TX_BUFFER_SIZE == 0
369 503
 
504
+  /**
505
+   * Imports from print.h
506
+   */
370 507
 
371 508
   void MarlinSerial::print(char c, int base) {
372 509
     print((long)c, base);

+ 27
- 21
Marlin/MarlinSerial.h View File

@@ -87,32 +87,29 @@
87 87
   #ifndef TX_BUFFER_SIZE
88 88
     #define TX_BUFFER_SIZE 32
89 89
   #endif
90
-  #if !((RX_BUFFER_SIZE == 256) ||(RX_BUFFER_SIZE == 128) ||(RX_BUFFER_SIZE == 64) ||(RX_BUFFER_SIZE == 32) ||(RX_BUFFER_SIZE == 16) ||(RX_BUFFER_SIZE == 8) ||(RX_BUFFER_SIZE == 4) ||(RX_BUFFER_SIZE == 2))
91
-    #error "RX_BUFFER_SIZE has to be a power of 2 and >= 2"
90
+
91
+  #if ENABLED(SERIAL_XON_XOFF) && RX_BUFFER_SIZE < 1024
92
+    #error "XON/XOFF requires RX_BUFFER_SIZE >= 1024 for reliable transfers without drops."
93
+  #endif
94
+  #if !IS_POWER_OF_2(RX_BUFFER_SIZE) || RX_BUFFER_SIZE < 2
95
+    #error "RX_BUFFER_SIZE must be a power of 2 greater than 1."
92 96
   #endif
93
-  #if !((TX_BUFFER_SIZE == 256) ||(TX_BUFFER_SIZE == 128) ||(TX_BUFFER_SIZE == 64) ||(TX_BUFFER_SIZE == 32) ||(TX_BUFFER_SIZE == 16) ||(TX_BUFFER_SIZE == 8) ||(TX_BUFFER_SIZE == 4) ||(TX_BUFFER_SIZE == 2) ||(TX_BUFFER_SIZE == 0))
94
-    #error TX_BUFFER_SIZE has to be a power of 2 or 0
97
+  #if TX_BUFFER_SIZE && (TX_BUFFER_SIZE < 2 || TX_BUFFER_SIZE > 256 || !IS_POWER_OF_2(TX_BUFFER_SIZE))
98
+    #error "TX_BUFFER_SIZE must be 0 or a power of 2 greater than 1."
95 99
   #endif
96 100
 
97
-  struct ring_buffer_r {
98
-    unsigned char buffer[RX_BUFFER_SIZE];
99
-    volatile uint8_t head;
100
-    volatile uint8_t tail;
101
-  };
101
+  #if RX_BUFFER_SIZE > 256
102
+    typedef uint16_t ring_buffer_pos_t;
103
+  #else
104
+    typedef uint8_t ring_buffer_pos_t;
105
+  #endif
102 106
 
103
-  #if TX_BUFFER_SIZE > 0
104
-    struct ring_buffer_t {
105
-      unsigned char buffer[TX_BUFFER_SIZE];
106
-      volatile uint8_t head;
107
-      volatile uint8_t tail;
108
-    };
107
+  #if ENABLED(SERIAL_STATS_DROPPED_RX)
108
+    extern uint8_t rx_dropped_bytes;
109 109
   #endif
110 110
 
111
-  #if UART_PRESENT(SERIAL_PORT)
112
-    extern ring_buffer_r rx_buffer;
113
-    #if TX_BUFFER_SIZE > 0
114
-      extern ring_buffer_t tx_buffer;
115
-    #endif
111
+  #if ENABLED(SERIAL_STATS_MAX_RX_QUEUED)
112
+    extern ring_buffer_pos_t rx_max_enqueued;
116 113
   #endif
117 114
 
118 115
   class MarlinSerial { //: public Stream
@@ -124,13 +121,22 @@
124 121
       static int peek(void);
125 122
       static int read(void);
126 123
       static void flush(void);
127
-      static uint8_t available(void);
124
+      static ring_buffer_pos_t available(void);
128 125
       static void checkRx(void);
129 126
       static void write(const uint8_t c);
130 127
       #if TX_BUFFER_SIZE > 0
131 128
         static uint8_t availableForWrite(void);
132 129
         static void flushTX(void);
133 130
       #endif
131
+      static void writeNoHandshake(const uint8_t c);
132
+
133
+      #if ENABLED(SERIAL_STATS_DROPPED_RX)
134
+        FORCE_INLINE static uint32_t dropped() { return rx_dropped_bytes; }
135
+      #endif
136
+
137
+      #if ENABLED(SERIAL_STATS_MAX_RX_QUEUED)
138
+        FORCE_INLINE static ring_buffer_pos_t rxMaxEnqueued() { return rx_max_enqueued; }
139
+      #endif
134 140
 
135 141
     private:
136 142
       static void printNumber(unsigned long, const uint8_t);

+ 251
- 174
Marlin/Marlin_main.cpp View File

@@ -142,7 +142,7 @@
142 142
  * M140 - Set bed target temp. S<temp>
143 143
  * M145 - Set heatup values for materials on the LCD. H<hotend> B<bed> F<fan speed> for S<material> (0=PLA, 1=ABS)
144 144
  * M149 - Set temperature units. (Requires TEMPERATURE_UNITS_SUPPORT)
145
- * M150 - Set Status LED Color as R<red> U<green> B<blue>. Values 0-255. (Requires BLINKM, RGB_LED, RGBW_LED, or PCA9632)
145
+ * M150 - Set Status LED Color as R<red> U<green> B<blue> P<bright>. Values 0-255. (Requires BLINKM, RGB_LED, RGBW_LED, NEOPIXEL_LED, or PCA9632).
146 146
  * M155 - Auto-report temperatures with interval of S<seconds>. (Requires AUTO_REPORT_TEMPERATURES)
147 147
  * M163 - Set a single proportion for a mixing extruder. (Requires MIXING_EXTRUDER)
148 148
  * M164 - Save the mix as a virtual extruder. (Requires MIXING_EXTRUDER and MIXING_VIRTUAL_TOOLS)
@@ -283,7 +283,7 @@
283 283
   #include "Max7219_Debug_LEDs.h"
284 284
 #endif
285 285
 
286
-#if ENABLED(NEOPIXEL_RGBW_LED)
286
+#if ENABLED(NEOPIXEL_LED)
287 287
   #include <Adafruit_NeoPixel.h>
288 288
 #endif
289 289
 
@@ -349,6 +349,20 @@
349 349
                            || isnan(ubl.z_values[0][0]))
350 350
 #endif
351 351
 
352
+#if ENABLED(NEOPIXEL_LED) 
353
+  #if NEOPIXEL_TYPE == NEO_RGB || NEOPIXEL_TYPE == NEO_RBG || NEOPIXEL_TYPE == NEO_GRB || NEOPIXEL_TYPE == NEO_GBR || NEOPIXEL_TYPE == NEO_BRG || NEOPIXEL_TYPE == NEO_BGR
354
+    #define NEO_WHITE 255, 255, 255
355
+  #else
356
+    #define NEO_WHITE 0, 0, 0, 255
357
+  #endif
358
+#endif
359
+
360
+#if ENABLED(RGB_LED) || ENABLED(BLINKM) || ENABLED(PCA9632)
361
+  #define LED_WHITE 255, 255, 255
362
+#elif ENABLED(RGBW_LED)
363
+  #define LED_WHITE 0, 0, 0, 255
364
+#endif
365
+
352 366
 bool Running = true;
353 367
 
354 368
 uint8_t marlin_debug_flags = DEBUG_NONE;
@@ -596,7 +610,7 @@ static uint8_t target_extruder;
596 610
 
597 611
   // Initialized by settings.load()
598 612
   float delta_radius,
599
-        delta_tower_angle_trim[2],
613
+        delta_tower_angle_trim[ABC],
600 614
         delta_tower[ABC][2],
601 615
         delta_diagonal_rod,
602 616
         delta_calibration_radius,
@@ -978,9 +992,9 @@ void servo_init() {
978 992
 
979 993
 #if HAS_COLOR_LEDS
980 994
 
981
-  #if ENABLED(NEOPIXEL_RGBW_LED)
995
+  #if ENABLED(NEOPIXEL_LED)
982 996
 
983
-    Adafruit_NeoPixel pixels(NEOPIXEL_PIXELS, NEOPIXEL_PIN, NEO_GRBW + NEO_KHZ800);
997
+    Adafruit_NeoPixel pixels(NEOPIXEL_PIXELS, NEOPIXEL_PIN, NEOPIXEL_TYPE + NEO_KHZ800);
984 998
 
985 999
     void set_neopixel_color(const uint32_t color) {
986 1000
       for (uint16_t i = 0; i < pixels.numPixels(); ++i)
@@ -989,7 +1003,7 @@ void servo_init() {
989 1003
     }
990 1004
 
991 1005
     void setup_neopixel() {
992
-      pixels.setBrightness(255); // 0 - 255 range
1006
+      pixels.setBrightness(NEOPIXEL_BRIGHTNESS); // 0 - 255 range
993 1007
       pixels.begin();
994 1008
       pixels.show(); // initialize to all off
995 1009
 
@@ -1002,26 +1016,28 @@ void servo_init() {
1002 1016
         set_neopixel_color(pixels.Color(0, 0, 255, 0));  // blue
1003 1017
         delay(2000);
1004 1018
       #endif
1005
-      set_neopixel_color(pixels.Color(0, 0, 0, 255));    // white
1019
+      set_neopixel_color(pixels.Color(NEO_WHITE));       // white
1006 1020
     }
1007 1021
 
1008
-  #endif // NEOPIXEL_RGBW_LED
1022
+  #endif // NEOPIXEL_LED
1009 1023
 
1010 1024
   void set_led_color(
1011 1025
     const uint8_t r, const uint8_t g, const uint8_t b
1012
-      #if ENABLED(RGBW_LED) || ENABLED(NEOPIXEL_RGBW_LED)
1026
+      #if ENABLED(RGBW_LED) || ENABLED(NEOPIXEL_LED)
1013 1027
         , const uint8_t w = 0
1014
-        #if ENABLED(NEOPIXEL_RGBW_LED)
1028
+        #if ENABLED(NEOPIXEL_LED)
1029
+          , const uint8_t p = NEOPIXEL_BRIGHTNESS
1015 1030
           , bool isSequence = false
1016 1031
         #endif
1017 1032
       #endif
1018 1033
   ) {
1019 1034
 
1020
-    #if ENABLED(NEOPIXEL_RGBW_LED)
1035
+    #if ENABLED(NEOPIXEL_LED)
1021 1036
 
1022 1037
       const uint32_t color = pixels.Color(r, g, b, w);
1023 1038
       static uint16_t nextLed = 0;
1024 1039
 
1040
+      pixels.setBrightness(p);
1025 1041
       if (!isSequence)
1026 1042
         set_neopixel_color(color);
1027 1043
       else {
@@ -1098,9 +1114,10 @@ inline void get_serial_commands() {
1098 1114
   /**
1099 1115
    * Loop while serial characters are incoming and the queue is not full
1100 1116
    */
1101
-  while (commands_in_queue < BUFSIZE && MYSERIAL.available() > 0) {
1117
+  int c;
1118
+  while (commands_in_queue < BUFSIZE && (c = MYSERIAL.read()) >= 0) {
1102 1119
 
1103
-    char serial_char = MYSERIAL.read();
1120
+    char serial_char = c;
1104 1121
 
1105 1122
     /**
1106 1123
      * If the character ends the line
@@ -1200,9 +1217,9 @@ inline void get_serial_commands() {
1200 1217
       // The command will be injected when EOL is reached
1201 1218
     }
1202 1219
     else if (serial_char == '\\') {  // Handle escapes
1203
-      if (MYSERIAL.available() > 0) {
1220
+      if ((c = MYSERIAL.read()) >= 0) {
1204 1221
         // if we have one more character, copy it over
1205
-        serial_char = MYSERIAL.read();
1222
+        serial_char = c;
1206 1223
         if (!serial_comment_mode) serial_line_buffer[serial_count++] = serial_char;
1207 1224
       }
1208 1225
       // otherwise do nothing
@@ -1822,7 +1839,7 @@ static void clean_up_after_endstop_or_probe_move() {
1822 1839
 
1823 1840
 #endif // HAS_BED_PROBE
1824 1841
 
1825
-#if HAS_PROBING_PROCEDURE || HOTENDS > 1 || ENABLED(Z_PROBE_ALLEN_KEY) || ENABLED(Z_PROBE_SLED) || ENABLED(NOZZLE_CLEAN_FEATURE) || ENABLED(NOZZLE_PARK_FEATURE) || ENABLED(DELTA_AUTO_CALIBRATION)
1842
+#if HAS_AXIS_UNHOMED_ERR
1826 1843
 
1827 1844
   bool axis_unhomed_error(const bool x/*=true*/, const bool y/*=true*/, const bool z/*=true*/) {
1828 1845
     #if ENABLED(HOME_AFTER_DEACTIVATE)
@@ -1850,7 +1867,7 @@ static void clean_up_after_endstop_or_probe_move() {
1850 1867
     return false;
1851 1868
   }
1852 1869
 
1853
-#endif
1870
+#endif // HAS_AXIS_UNHOMED_ERR
1854 1871
 
1855 1872
 #if ENABLED(Z_PROBE_SLED)
1856 1873
 
@@ -2053,7 +2070,7 @@ static void clean_up_after_endstop_or_probe_move() {
2053 2070
     #endif
2054 2071
   }
2055 2072
 
2056
-#endif
2073
+#endif // Z_PROBE_ALLEN_KEY
2057 2074
 
2058 2075
 #if ENABLED(PROBING_FANS_OFF)
2059 2076
 
@@ -3093,7 +3110,7 @@ static void homeaxis(const AxisEnum axis) {
3093 3110
       #if ENABLED(DEBUG_LEVELING_FEATURE)
3094 3111
         if (DEBUGGING(LEVELING)) SERIAL_ECHOLNPGM("endstop_adj:");
3095 3112
       #endif
3096
-      do_homing_move(axis, endstop_adj[axis] - 0.1);
3113
+      do_homing_move(axis, endstop_adj[axis] - 0.1 * Z_HOME_DIR);
3097 3114
     }
3098 3115
 
3099 3116
   #else
@@ -3193,6 +3210,8 @@ static void homeaxis(const AxisEnum axis) {
3193 3210
     // The current position will be the destination for E and Z moves
3194 3211
     set_destination_to_current();
3195 3212
 
3213
+    stepper.synchronize(); // Wait for all moves to finish
3214
+
3196 3215
     if (retracting) {
3197 3216
       // Remember the Z height since G-code may include its own Z-hop
3198 3217
       // For best results turn off Z hop if G-code already includes it
@@ -3381,6 +3400,10 @@ inline void gcode_G0_G1(
3381 3400
     bool fast_move=false
3382 3401
   #endif
3383 3402
 ) {
3403
+  #if ENABLED(NO_MOTION_BEFORE_HOMING)
3404
+    if (axis_unhomed_error()) return;
3405
+  #endif
3406
+
3384 3407
   if (IsRunning()) {
3385 3408
     gcode_get_destination(); // For X Y Z E F
3386 3409
 
@@ -3436,6 +3459,10 @@ inline void gcode_G0_G1(
3436 3459
 #if ENABLED(ARC_SUPPORT)
3437 3460
 
3438 3461
   inline void gcode_G2_G3(bool clockwise) {
3462
+    #if ENABLED(NO_MOTION_BEFORE_HOMING)
3463
+      if (axis_unhomed_error()) return;
3464
+    #endif
3465
+
3439 3466
     if (IsRunning()) {
3440 3467
 
3441 3468
       #if ENABLED(SF_ARC_FIX)
@@ -3533,8 +3560,20 @@ inline void gcode_G4() {
3533 3560
    * G5: Cubic B-spline
3534 3561
    */
3535 3562
   inline void gcode_G5() {
3563
+    #if ENABLED(NO_MOTION_BEFORE_HOMING)
3564
+      if (axis_unhomed_error()) return;
3565
+    #endif
3566
+
3536 3567
     if (IsRunning()) {
3537 3568
 
3569
+      #if ENABLED(CNC_WORKSPACE_PLANES)
3570
+        if (workspace_plane != PLANE_XY) {
3571
+          SERIAL_ERROR_START();
3572
+          SERIAL_ERRORLNPGM(MSG_ERR_BAD_PLANE_MODE);
3573
+          return;
3574
+        }
3575
+      #endif
3576
+
3538 3577
       gcode_get_destination();
3539 3578
 
3540 3579
       const float offset[] = {
@@ -5325,6 +5364,7 @@ void home_all_axes() { gcode_G28(true); }
5325 5364
      *
5326 5365
      *   Pn  Number of probe points:
5327 5366
      *
5367
+     *      P0     No probe. Normalize only.
5328 5368
      *      P1     Probe center and set height only.
5329 5369
      *      P2     Probe center and towers. Set height, endstops, and delta radius.
5330 5370
      *      P3     Probe all positions: center, towers and opposite towers. Set all.
@@ -5353,7 +5393,7 @@ void home_all_axes() { gcode_G28(true); }
5353 5393
       SERIAL_PROTOCOL_F(f, 2);
5354 5394
     }
5355 5395
 
5356
-    inline void print_G33_settings(const bool end_stops, const bool tower_angles){ // TODO echo these to LCD ???
5396
+    void print_G33_settings(const bool end_stops, const bool tower_angles) {
5357 5397
       SERIAL_PROTOCOLPAIR(".Height:", DELTA_HEIGHT + home_offset[Z_AXIS]);
5358 5398
       if (end_stops) {
5359 5399
         print_signed_float(PSTR("  Ex"), endstop_adj[A_AXIS]);
@@ -5366,7 +5406,8 @@ void home_all_axes() { gcode_G28(true); }
5366 5406
         SERIAL_PROTOCOLPGM(".Tower angle :  ");
5367 5407
         print_signed_float(PSTR("Tx"), delta_tower_angle_trim[A_AXIS]);
5368 5408
         print_signed_float(PSTR("Ty"), delta_tower_angle_trim[B_AXIS]);
5369
-        SERIAL_PROTOCOLLNPGM("  Tz:+0.00");
5409
+        print_signed_float(PSTR("Tz"), delta_tower_angle_trim[C_AXIS]);
5410
+        SERIAL_EOL();
5370 5411
       }
5371 5412
     }
5372 5413
 
@@ -5388,8 +5429,8 @@ void home_all_axes() { gcode_G28(true); }
5388 5429
     inline void gcode_G33() {
5389 5430
 
5390 5431
       const int8_t probe_points = parser.intval('P', DELTA_CALIBRATION_DEFAULT_POINTS);
5391
-      if (!WITHIN(probe_points, 1, 7)) {
5392
-        SERIAL_PROTOCOLLNPGM("?(P)oints is implausible (1-7).");
5432
+      if (!WITHIN(probe_points, 0, 7)) {
5433
+        SERIAL_PROTOCOLLNPGM("?(P)oints is implausible (0-7).");
5393 5434
         return;
5394 5435
       }
5395 5436
 
@@ -5413,11 +5454,12 @@ void home_all_axes() { gcode_G28(true); }
5413 5454
 
5414 5455
       const bool towers_set           = parser.boolval('T', true),
5415 5456
                  stow_after_each      = parser.boolval('E'),
5457
+                 _0p_calibration      = probe_points == 0,
5416 5458
                  _1p_calibration      = probe_points == 1,
5417 5459
                  _4p_calibration      = probe_points == 2,
5418 5460
                  _4p_towers_points    = _4p_calibration && towers_set,
5419 5461
                  _4p_opposite_points  = _4p_calibration && !towers_set,
5420
-                 _7p_calibration      = probe_points >= 3,
5462
+                 _7p_calibration      = probe_points >= 3 || _0p_calibration,
5421 5463
                  _7p_half_circle      = probe_points == 3,
5422 5464
                  _7p_double_circle    = probe_points == 5,
5423 5465
                  _7p_triple_circle    = probe_points == 6,
@@ -5432,17 +5474,20 @@ void home_all_axes() { gcode_G28(true); }
5432 5474
             zero_std_dev = (verbose_level ? 999.0 : 0.0), // 0.0 in dry-run mode : forced end
5433 5475
             zero_std_dev_old = zero_std_dev,
5434 5476
             zero_std_dev_min = zero_std_dev,
5435
-            e_old[XYZ] = {
5477
+            e_old[ABC] = {
5436 5478
               endstop_adj[A_AXIS],
5437 5479
               endstop_adj[B_AXIS],
5438 5480
               endstop_adj[C_AXIS]
5439 5481
             },
5440 5482
             dr_old = delta_radius,
5441 5483
             zh_old = home_offset[Z_AXIS],
5442
-            alpha_old = delta_tower_angle_trim[A_AXIS],
5443
-            beta_old = delta_tower_angle_trim[B_AXIS];
5484
+            ta_old[ABC] = {
5485
+              delta_tower_angle_trim[A_AXIS],
5486
+              delta_tower_angle_trim[B_AXIS],
5487
+              delta_tower_angle_trim[C_AXIS]
5488
+            };
5444 5489
 
5445
-      if (!_1p_calibration) {  // test if the outer radius is reachable
5490
+      if (!_1p_calibration && !_0p_calibration) {  // test if the outer radius is reachable
5446 5491
         const float circles = (_7p_quadruple_circle ? 1.5 :
5447 5492
                                _7p_triple_circle    ? 1.0 :
5448 5493
                                _7p_double_circle    ? 0.5 : 0),
@@ -5472,9 +5517,11 @@ void home_all_axes() { gcode_G28(true); }
5472 5517
 
5473 5518
       setup_for_endstop_or_probe_move();
5474 5519
       endstops.enable(true);
5475
-      if (!home_delta())
5476
-        return;
5477
-      endstops.not_homing();
5520
+      if (!_0p_calibration) {
5521
+        if (!home_delta())
5522
+          return;
5523
+        endstops.not_homing();
5524
+      }
5478 5525
 
5479 5526
       // print settings
5480 5527
 
@@ -5486,69 +5533,64 @@ void home_all_axes() { gcode_G28(true); }
5486 5533
 
5487 5534
       print_G33_settings(!_1p_calibration, _7p_calibration && towers_set);
5488 5535
 
5489
-      #if DISABLED(PROBE_MANUALLY)
5490
-        const float measured_z = probe_pt(dx, dy, stow_after_each, 1, false); // 1st probe to set height
5491
-        if (isnan(measured_z)) return G33_CLEANUP();
5492
-        home_offset[Z_AXIS] -= measured_z;
5493
-      #endif
5494
-
5495 5536
       do {
5496 5537
 
5497 5538
         float z_at_pt[13] = { 0.0 };
5498 5539
 
5499 5540
         test_precision = zero_std_dev_old != 999.0 ? (zero_std_dev + zero_std_dev_old) / 2 : zero_std_dev;
5500
-
5501 5541
         iterations++;
5502 5542
 
5503 5543
         // Probe the points
5504 5544
 
5505
-        if (!_7p_half_circle && !_7p_triple_circle) { // probe the center
5506
-          #if ENABLED(PROBE_MANUALLY)
5507
-            z_at_pt[0] += lcd_probe_pt(0, 0);
5508
-          #else
5509
-            z_at_pt[0] += probe_pt(dx, dy, stow_after_each, 1, false);
5510
-            if (isnan(z_at_pt[0])) return G33_CLEANUP();
5511
-          #endif
5512
-        }
5513
-        if (_7p_calibration) { // probe extra center points
5514
-          for (int8_t axis = _7p_multi_circle ? 11 : 9; axis > 0; axis -= _7p_multi_circle ? 2 : 4) {
5515
-            const float a = RADIANS(180 + 30 * axis), r = delta_calibration_radius * 0.1;
5545
+        if (!_0p_calibration){
5546
+          if (!_7p_half_circle && !_7p_triple_circle) { // probe the center
5516 5547
             #if ENABLED(PROBE_MANUALLY)
5517
-              z_at_pt[0] += lcd_probe_pt(cos(a) * r, sin(a) * r);
5548
+              z_at_pt[0] += lcd_probe_pt(0, 0);
5518 5549
             #else
5519
-              z_at_pt[0] += probe_pt(cos(a) * r + dx, sin(a) * r + dy, stow_after_each, 1);
5550
+              z_at_pt[0] += probe_pt(dx, dy, stow_after_each, 1, false);
5520 5551
               if (isnan(z_at_pt[0])) return G33_CLEANUP();
5521 5552
             #endif
5522 5553
           }
5523
-          z_at_pt[0] /= float(_7p_double_circle ? 7 : probe_points);
5524
-        }
5525
-        if (!_1p_calibration) {  // probe the radius
5526
-          bool zig_zag = true;
5527
-          const uint8_t start = _4p_opposite_points ? 3 : 1,
5528
-                         step = _4p_calibration ? 4 : _7p_half_circle ? 2 : 1;
5529
-          for (uint8_t axis = start; axis < 13; axis += step) {
5530
-            const float zigadd = (zig_zag ? 0.5 : 0.0),
5531
-                        offset_circles = _7p_quadruple_circle ? zigadd + 1.0 :
5532
-                                         _7p_triple_circle    ? zigadd + 0.5 :
5533
-                                         _7p_double_circle    ? zigadd : 0;
5534
-            for (float circles = -offset_circles ; circles <= offset_circles; circles++) {
5535
-              const float a = RADIANS(180 + 30 * axis),
5536
-                          r = delta_calibration_radius * (1 + circles * (zig_zag ? 0.1 : -0.1));
5554
+          if (_7p_calibration) { // probe extra center points
5555
+            for (int8_t axis = _7p_multi_circle ? 11 : 9; axis > 0; axis -= _7p_multi_circle ? 2 : 4) {
5556
+              const float a = RADIANS(180 + 30 * axis), r = delta_calibration_radius * 0.1;
5537 5557
               #if ENABLED(PROBE_MANUALLY)
5538
-                z_at_pt[axis] += lcd_probe_pt(cos(a) * r, sin(a) * r);
5558
+                z_at_pt[0] += lcd_probe_pt(cos(a) * r, sin(a) * r);
5539 5559
               #else
5540
-                z_at_pt[axis] += probe_pt(cos(a) * r + dx, sin(a) * r + dy, stow_after_each, 1);
5541
-                if (isnan(z_at_pt[axis])) return G33_CLEANUP();
5560
+                z_at_pt[0] += probe_pt(cos(a) * r + dx, sin(a) * r + dy, stow_after_each, 1);
5561
+                if (isnan(z_at_pt[0])) return G33_CLEANUP();
5542 5562
               #endif
5543 5563
             }
5544
-            zig_zag = !zig_zag;
5545
-            z_at_pt[axis] /= (2 * offset_circles + 1);
5564
+            z_at_pt[0] /= float(_7p_double_circle ? 7 : probe_points);
5546 5565
           }
5547
-        }
5548
-        if (_7p_intermed_points) // average intermediates to tower and opposites
5549
-          for (uint8_t axis = 1; axis < 13; axis += 2)
5550
-            z_at_pt[axis] = (z_at_pt[axis] + (z_at_pt[axis + 1] + z_at_pt[(axis + 10) % 12 + 1]) / 2.0) / 2.0;
5566
+          if (!_1p_calibration) {  // probe the radius
5567
+            bool zig_zag = true;
5568
+            const uint8_t start = _4p_opposite_points ? 3 : 1,
5569
+                           step = _4p_calibration ? 4 : _7p_half_circle ? 2 : 1;
5570
+            for (uint8_t axis = start; axis < 13; axis += step) {
5571
+              const float zigadd = (zig_zag ? 0.5 : 0.0),
5572
+                          offset_circles = _7p_quadruple_circle ? zigadd + 1.0 :
5573
+                                           _7p_triple_circle    ? zigadd + 0.5 :
5574
+                                           _7p_double_circle    ? zigadd : 0;
5575
+              for (float circles = -offset_circles ; circles <= offset_circles; circles++) {
5576
+                const float a = RADIANS(180 + 30 * axis),
5577
+                            r = delta_calibration_radius * (1 + circles * (zig_zag ? 0.1 : -0.1));
5578
+                #if ENABLED(PROBE_MANUALLY)
5579
+                  z_at_pt[axis] += lcd_probe_pt(cos(a) * r, sin(a) * r);
5580
+                #else
5581
+                  z_at_pt[axis] += probe_pt(cos(a) * r + dx, sin(a) * r + dy, stow_after_each, 1);
5582
+                  if (isnan(z_at_pt[axis])) return G33_CLEANUP();
5583
+                #endif
5584
+              }
5585
+              zig_zag = !zig_zag;
5586
+              z_at_pt[axis] /= (2 * offset_circles + 1);
5587
+            }
5588
+          }
5589
+          if (_7p_intermed_points) // average intermediates to tower and opposites
5590
+            for (uint8_t axis = 1; axis < 13; axis += 2)
5591
+              z_at_pt[axis] = (z_at_pt[axis] + (z_at_pt[axis + 1] + z_at_pt[(axis + 10) % 12 + 1]) / 2.0) / 2.0;
5551 5592
 
5593
+        }
5552 5594
         float S1 = z_at_pt[0],
5553 5595
               S2 = sq(z_at_pt[0]);
5554 5596
         int16_t N = 1;
@@ -5559,96 +5601,104 @@ void home_all_axes() { gcode_G28(true); }
5559 5601
             N++;
5560 5602
           }
5561 5603
         zero_std_dev_old = zero_std_dev;
5562
-        zero_std_dev = round(sqrt(S2 / N) * 1000.0) / 1000.0 + 0.00001;
5604
+        zero_std_dev = round(SQRT(S2 / N) * 1000.0) / 1000.0 + 0.00001;
5563 5605
 
5564 5606
         // Solve matrices
5565 5607
 
5566
-        if ((zero_std_dev < test_precision && zero_std_dev > calibration_precision) || iterations <= force_iterations) {
5608
+        if ((zero_std_dev < test_precision || iterations <= force_iterations) && zero_std_dev > calibration_precision) {
5567 5609
           if (zero_std_dev < zero_std_dev_min) {
5568 5610
             COPY(e_old, endstop_adj);
5569 5611
             dr_old = delta_radius;
5570 5612
             zh_old = home_offset[Z_AXIS];
5571
-            alpha_old = delta_tower_angle_trim[A_AXIS];
5572
-            beta_old = delta_tower_angle_trim[B_AXIS];
5613
+            COPY(ta_old, delta_tower_angle_trim);
5573 5614
           }
5574 5615
 
5575
-          float e_delta[XYZ] = { 0.0 }, r_delta = 0.0, t_alpha = 0.0, t_beta = 0.0;
5616
+          float e_delta[ABC] = { 0.0 }, r_delta = 0.0, t_delta[ABC] = { 0.0 };
5617
+
5576 5618
           const float r_diff = delta_radius - delta_calibration_radius,
5577
-                      h_factor = 1.00 + r_diff * 0.001,                          //1.02 for r_diff = 20mm
5578
-                      r_factor = -(1.75 + 0.005 * r_diff + 0.001 * sq(r_diff)),  //2.25 for r_diff = 20mm
5579
-                      a_factor = 100.0 / delta_calibration_radius;               //1.25 for cal_rd = 80mm
5619
+                      h_factor = (1.00 + r_diff * 0.001) / 6.0,                                       // 1.02 for r_diff = 20mm
5620
+                      r_factor = (-(1.75 + 0.005 * r_diff + 0.001 * sq(r_diff))) / 6.0,               // 2.25 for r_diff = 20mm
5621
+                      a_factor = (66.66 / delta_calibration_radius) / (iterations == 1 ? 16.0 : 2.0); // 0.83 for cal_rd = 80mm  (Slow down on 1st iteration)
5580 5622
 
5581 5623
           #define ZP(N,I) ((N) * z_at_pt[I])
5582
-          #define Z1000(I) ZP(1.00, I)
5583
-          #define Z1050(I) ZP(h_factor, I)
5584
-          #define Z0700(I) ZP(h_factor * 2.0 / 3.00, I)
5585
-          #define Z0350(I) ZP(h_factor / 3.00, I)
5586
-          #define Z0175(I) ZP(h_factor / 6.00, I)
5587
-          #define Z2250(I) ZP(r_factor, I)
5588
-          #define Z0750(I) ZP(r_factor / 3.00, I)
5589
-          #define Z0375(I) ZP(r_factor / 6.00, I)
5590
-          #define Z0444(I) ZP(a_factor * 4.0 / 9.0, I)
5591
-          #define Z0888(I) ZP(a_factor * 8.0 / 9.0, I)
5624
+          #define Z6(I) ZP(6, I)
5625
+          #define Z4(I) ZP(4, I)
5626
+          #define Z2(I) ZP(2, I)
5627
+          #define Z1(I) ZP(1, I)
5592 5628
 
5593 5629
           #if ENABLED(PROBE_MANUALLY)
5594 5630
             test_precision = 0.00; // forced end
5595 5631
           #endif
5596 5632
 
5597 5633
           switch (probe_points) {
5634
+            case 0:
5635
+              #if DISABLED(PROBE_MANUALLY)
5636
+                test_precision = 0.00; // forced end
5637
+              #endif
5638
+              break;
5639
+
5598 5640
             case 1:
5599
-              test_precision = 0.00; // forced end
5600
-              LOOP_XYZ(i) e_delta[i] = Z1000(0);
5641
+              #if DISABLED(PROBE_MANUALLY)
5642
+                test_precision = 0.00; // forced end
5643
+              #endif
5644
+              LOOP_XYZ(axis) e_delta[axis] = Z1(0);
5601 5645
               break;
5602 5646
 
5603 5647
             case 2:
5604 5648
               if (towers_set) {
5605
-                e_delta[X_AXIS] = Z1050(0) + Z0700(1) - Z0350(5) - Z0350(9);
5606
-                e_delta[Y_AXIS] = Z1050(0) - Z0350(1) + Z0700(5) - Z0350(9);
5607
-                e_delta[Z_AXIS] = Z1050(0) - Z0350(1) - Z0350(5) + Z0700(9);
5608
-                r_delta         = Z2250(0) - Z0750(1) - Z0750(5) - Z0750(9);
5649
+                e_delta[A_AXIS] = (Z6(0) + Z4(1) - Z2(5) - Z2(9)) * h_factor;
5650
+                e_delta[B_AXIS] = (Z6(0) - Z2(1) + Z4(5) - Z2(9)) * h_factor;
5651
+                e_delta[C_AXIS] = (Z6(0) - Z2(1) - Z2(5) + Z4(9)) * h_factor;
5652
+                r_delta         = (Z6(0) - Z2(1) - Z2(5) - Z2(9)) * r_factor;
5609 5653
               }
5610 5654
               else {
5611
-                e_delta[X_AXIS] = Z1050(0) - Z0700(7) + Z0350(11) + Z0350(3);
5612
-                e_delta[Y_AXIS] = Z1050(0) + Z0350(7) - Z0700(11) + Z0350(3);
5613
-                e_delta[Z_AXIS] = Z1050(0) + Z0350(7) + Z0350(11) - Z0700(3);
5614
-                r_delta         = Z2250(0) - Z0750(7) - Z0750(11) - Z0750(3);
5655
+                e_delta[A_AXIS] = (Z6(0) - Z4(7) + Z2(11) + Z2(3)) * h_factor;
5656
+                e_delta[B_AXIS] = (Z6(0) + Z2(7) - Z4(11) + Z2(3)) * h_factor;
5657
+                e_delta[C_AXIS] = (Z6(0) + Z2(7) + Z2(11) - Z4(3)) * h_factor;
5658
+                r_delta         = (Z6(0) - Z2(7) - Z2(11) - Z2(3)) * r_factor;
5615 5659
               }
5616 5660
               break;
5617 5661
 
5618 5662
             default:
5619
-              e_delta[X_AXIS] = Z1050(0) + Z0350(1) - Z0175(5) - Z0175(9) - Z0350(7) + Z0175(11) + Z0175(3);
5620
-              e_delta[Y_AXIS] = Z1050(0) - Z0175(1) + Z0350(5) - Z0175(9) + Z0175(7) - Z0350(11) + Z0175(3);
5621
-              e_delta[Z_AXIS] = Z1050(0) - Z0175(1) - Z0175(5) + Z0350(9) + Z0175(7) + Z0175(11) - Z0350(3);
5622
-              r_delta         = Z2250(0) - Z0375(1) - Z0375(5) - Z0375(9) - Z0375(7) - Z0375(11) - Z0375(3);
5663
+              e_delta[A_AXIS] = (Z6(0) + Z2(1) - Z1(5) - Z1(9) - Z2(7) + Z1(11) + Z1(3)) * h_factor;
5664
+              e_delta[B_AXIS] = (Z6(0) - Z1(1) + Z2(5) - Z1(9) + Z1(7) - Z2(11) + Z1(3)) * h_factor;
5665
+              e_delta[C_AXIS] = (Z6(0) - Z1(1) - Z1(5) + Z2(9) + Z1(7) + Z1(11) - Z2(3)) * h_factor;
5666
+              r_delta         = (Z6(0) - Z1(1) - Z1(5) - Z1(9) - Z1(7) - Z1(11) - Z1(3)) * r_factor;
5623 5667
 
5624 5668
               if (towers_set) {
5625
-                t_alpha = Z0444(1) - Z0888(5) + Z0444(9) + Z0444(7) - Z0888(11) + Z0444(3);
5626
-                t_beta  = Z0888(1) - Z0444(5) - Z0444(9) + Z0888(7) - Z0444(11) - Z0444(3);
5669
+                t_delta[A_AXIS] = (       - Z2(5) + Z2(9)         - Z2(11) + Z2(3)) * a_factor;
5670
+                t_delta[B_AXIS] = ( Z2(1)         - Z2(9) + Z2(7)          - Z2(3)) * a_factor;
5671
+                t_delta[C_AXIS] = (-Z2(1) + Z2(5)         - Z2(7) + Z2(11)        ) * a_factor;
5672
+                e_delta[A_AXIS] += (t_delta[B_AXIS] - t_delta[C_AXIS]) / 4.5;
5673
+                e_delta[B_AXIS] += (t_delta[C_AXIS] - t_delta[A_AXIS]) / 4.5;
5674
+                e_delta[C_AXIS] += (t_delta[A_AXIS] - t_delta[B_AXIS]) / 4.5;
5627 5675
               }
5628 5676
               break;
5629 5677
           }
5630 5678
 
5631 5679
           LOOP_XYZ(axis) endstop_adj[axis] += e_delta[axis];
5632 5680
           delta_radius += r_delta;
5633
-          delta_tower_angle_trim[A_AXIS] += t_alpha;
5634
-          delta_tower_angle_trim[B_AXIS] += t_beta;
5635
-
5636
-          // adjust delta_height and endstops by the max amount
5637
-          const float z_temp = MAX3(endstop_adj[A_AXIS], endstop_adj[B_AXIS], endstop_adj[C_AXIS]);
5638
-          home_offset[Z_AXIS] -= z_temp;
5639
-          LOOP_XYZ(i) endstop_adj[i] -= z_temp;
5640
-
5641
-          recalc_delta_settings(delta_radius, delta_diagonal_rod);
5681
+          LOOP_XYZ(axis) delta_tower_angle_trim[axis] += t_delta[axis];
5642 5682
         }
5643 5683
         else if (zero_std_dev >= test_precision) {   // step one back
5644 5684
           COPY(endstop_adj, e_old);
5645 5685
           delta_radius = dr_old;
5646 5686
           home_offset[Z_AXIS] = zh_old;
5647
-          delta_tower_angle_trim[A_AXIS] = alpha_old;
5648
-          delta_tower_angle_trim[B_AXIS] = beta_old;
5687
+          COPY(delta_tower_angle_trim, ta_old);
5688
+        }
5649 5689
 
5650
-          recalc_delta_settings(delta_radius, delta_diagonal_rod);
5690
+        if (verbose_level != 0) {                                    // !dry run
5691
+          // normalise angles to least squares
5692
+          float a_sum = 0.0;
5693
+          LOOP_XYZ(axis) a_sum += delta_tower_angle_trim[axis];
5694
+          LOOP_XYZ(axis) delta_tower_angle_trim[axis] -= a_sum / 3.0;
5695
+
5696
+          // adjust delta_height and endstops by the max amount
5697
+          const float z_temp = MAX3(endstop_adj[A_AXIS], endstop_adj[B_AXIS], endstop_adj[C_AXIS]);
5698
+          home_offset[Z_AXIS] -= z_temp;
5699
+          LOOP_XYZ(axis) endstop_adj[axis] -= z_temp;
5651 5700
         }
5701
+        recalc_delta_settings(delta_radius, delta_diagonal_rod, delta_tower_angle_trim);
5652 5702
         NOMORE(zero_std_dev_min, zero_std_dev);
5653 5703
 
5654 5704
         // print report
@@ -5674,7 +5724,7 @@ void home_all_axes() { gcode_G28(true); }
5674 5724
           }
5675 5725
         }
5676 5726
         if (verbose_level != 0) {                                    // !dry run
5677
-          if ((zero_std_dev >= test_precision || zero_std_dev <= calibration_precision) && iterations > force_iterations) {  // end iterations
5727
+          if ((zero_std_dev >= test_precision && iterations > force_iterations) || zero_std_dev <= calibration_precision) {  // end iterations
5678 5728
             SERIAL_PROTOCOLPGM("Calibration OK");
5679 5729
             SERIAL_PROTOCOL_SP(36);
5680 5730
             #if DISABLED(PROBE_MANUALLY)
@@ -5736,7 +5786,7 @@ void home_all_axes() { gcode_G28(true); }
5736 5786
         endstops.not_homing();
5737 5787
 
5738 5788
       }
5739
-      while ((zero_std_dev < test_precision && zero_std_dev > calibration_precision && iterations < 31) || iterations <= force_iterations);
5789
+      while (((zero_std_dev < test_precision && iterations < 31) || iterations <= force_iterations) && zero_std_dev > calibration_precision);
5740 5790
 
5741 5791
       G33_CLEANUP();
5742 5792
     }
@@ -5842,6 +5892,10 @@ void home_all_axes() { gcode_G28(true); }
5842 5892
    * G42: Move X & Y axes to mesh coordinates (I & J)
5843 5893
    */
5844 5894
   inline void gcode_G42() {
5895
+    #if ENABLED(NO_MOTION_BEFORE_HOMING)
5896
+      if (axis_unhomed_error()) return;
5897
+    #endif
5898
+
5845 5899
     if (IsRunning()) {
5846 5900
       const bool hasI = parser.seenval('I');
5847 5901
       const int8_t ix = hasI ? parser.value_int() : 0;
@@ -6333,6 +6387,8 @@ inline void gcode_M17() {
6333 6387
       filament_change_beep(max_beep_count, true);
6334 6388
     #endif
6335 6389
 
6390
+    set_destination_to_current();
6391
+
6336 6392
     if (load_length != 0) {
6337 6393
       #if ENABLED(ULTIPANEL)
6338 6394
         // Show "insert filament"
@@ -7550,9 +7606,13 @@ inline void gcode_M109() {
7550 7606
         if (blue != old_blue) {
7551 7607
           old_blue = blue;
7552 7608
           set_led_color(255, 0, blue
7553
-            #if ENABLED(NEOPIXEL_RGBW_LED)
7554
-              , 0, true
7609
+          #if ENABLED(NEOPIXEL_LED)
7610
+            , 0
7611
+            , pixels.getBrightness()
7612
+            #if ENABLED(NEOPIXEL_IS_SEQUENTIAL)
7613
+              , true
7555 7614
             #endif
7615
+          #endif
7556 7616
           );
7557 7617
         }
7558 7618
       }
@@ -7589,10 +7649,11 @@ inline void gcode_M109() {
7589 7649
   if (wait_for_heatup) {
7590 7650
     LCD_MESSAGEPGM(MSG_HEATING_COMPLETE);
7591 7651
     #if ENABLED(PRINTER_EVENT_LEDS)
7592
-      #if ENABLED(RGBW_LED) || ENABLED(NEOPIXEL_RGBW_LED)
7593
-        set_led_color(0, 0, 0, 255);  // Turn on the WHITE LED
7594
-      #else
7595
-        set_led_color(255, 255, 255); // Set LEDs All On
7652
+      #if ENABLED(RGB_LED) || ENABLED(BLINKM) || ENABLED(PCA9632) || ENABLED(RGBW_LED)
7653
+        set_led_color(LED_WHITE);
7654
+      #endif
7655
+      #if ENABLED(NEOPIXEL_LED)
7656
+        set_neopixel_color(pixels.Color(NEO_WHITE));
7596 7657
       #endif
7597 7658
     #endif
7598 7659
   }
@@ -7690,8 +7751,11 @@ inline void gcode_M109() {
7690 7751
           if (red != old_red) {
7691 7752
             old_red = red;
7692 7753
             set_led_color(red, 0, 255
7693
-              #if ENABLED(NEOPIXEL_RGBW_LED)
7694
-                , 0, true
7754
+              #if ENABLED(NEOPIXEL_LED)
7755
+                , 0, pixels.getBrightness()
7756
+                #if ENABLED(NEOPIXEL_IS_SEQUENTIAL)
7757
+                  , true
7758
+                #endif
7695 7759
               #endif
7696 7760
             );
7697 7761
           }
@@ -7745,16 +7809,17 @@ inline void gcode_M110() {
7745 7809
  * M111: Set the debug level
7746 7810
  */
7747 7811
 inline void gcode_M111() {
7748
-  marlin_debug_flags = parser.byteval('S', (uint8_t)DEBUG_NONE);
7749
-
7750
-  const static char str_debug_1[] PROGMEM = MSG_DEBUG_ECHO;
7751
-  const static char str_debug_2[] PROGMEM = MSG_DEBUG_INFO;
7752
-  const static char str_debug_4[] PROGMEM = MSG_DEBUG_ERRORS;
7753
-  const static char str_debug_8[] PROGMEM = MSG_DEBUG_DRYRUN;
7754
-  const static char str_debug_16[] PROGMEM = MSG_DEBUG_COMMUNICATION;
7755
-  #if ENABLED(DEBUG_LEVELING_FEATURE)
7756
-    const static char str_debug_32[] PROGMEM = MSG_DEBUG_LEVELING;
7757
-  #endif
7812
+  if (parser.seen('S')) marlin_debug_flags = parser.byteval('S');
7813
+
7814
+  const static char str_debug_1[] PROGMEM = MSG_DEBUG_ECHO,
7815
+                    str_debug_2[] PROGMEM = MSG_DEBUG_INFO,
7816
+                    str_debug_4[] PROGMEM = MSG_DEBUG_ERRORS,
7817
+                    str_debug_8[] PROGMEM = MSG_DEBUG_DRYRUN,
7818
+                    str_debug_16[] PROGMEM = MSG_DEBUG_COMMUNICATION
7819
+                    #if ENABLED(DEBUG_LEVELING_FEATURE)
7820
+                      , str_debug_32[] PROGMEM = MSG_DEBUG_LEVELING
7821
+                    #endif
7822
+                    ;
7758 7823
 
7759 7824
   const static char* const debug_strings[] PROGMEM = {
7760 7825
     str_debug_1, str_debug_2, str_debug_4, str_debug_8, str_debug_16
@@ -8337,8 +8402,10 @@ inline void gcode_M121() { endstops.enable_globally(false); }
8337 8402
 
8338 8403
   /**
8339 8404
    * M150: Set Status LED Color - Use R-U-B-W for R-G-B-W
8405
+   *       and Brightness       - Use P (for NEOPIXEL only)
8340 8406
    *
8341 8407
    * Always sets all 3 or 4 components. If a component is left out, set to 0.
8408
+   *                                    If brightness is left out, no value changed
8342 8409
    *
8343 8410
    * Examples:
8344 8411
    *
@@ -8347,15 +8414,19 @@ inline void gcode_M121() { endstops.enable_globally(false); }
8347 8414
    *   M150            ; Turn LED off
8348 8415
    *   M150 R U B      ; Turn LED white
8349 8416
    *   M150 W          ; Turn LED white using a white LED
8350
-   *
8417
+   *   M150 P127       ; Set LED 50% brightness
8418
+   *   M150 P          ; Set LED full brightness
8351 8419
    */
8352 8420
   inline void gcode_M150() {
8353 8421
     set_led_color(
8354 8422
       parser.seen('R') ? (parser.has_value() ? parser.value_byte() : 255) : 0,
8355 8423
       parser.seen('U') ? (parser.has_value() ? parser.value_byte() : 255) : 0,
8356 8424
       parser.seen('B') ? (parser.has_value() ? parser.value_byte() : 255) : 0
8357
-      #if ENABLED(RGBW_LED) || ENABLED(NEOPIXEL_RGBW_LED)
8425
+      #if ENABLED(RGBW_LED) || ENABLED(NEOPIXEL_LED)
8358 8426
         , parser.seen('W') ? (parser.has_value() ? parser.value_byte() : 255) : 0
8427
+        #if ENABLED(NEOPIXEL_LED)
8428
+          , parser.seen('P') ? (parser.has_value() ? parser.value_byte() : 255) : pixels.getBrightness()
8429
+        #endif
8359 8430
       #endif
8360 8431
     );
8361 8432
   }
@@ -8529,11 +8600,8 @@ inline void gcode_M205() {
8529 8600
     if (parser.seen('B')) delta_calibration_radius       = parser.value_float();
8530 8601
     if (parser.seen('X')) delta_tower_angle_trim[A_AXIS] = parser.value_float();
8531 8602
     if (parser.seen('Y')) delta_tower_angle_trim[B_AXIS] = parser.value_float();
8532
-    if (parser.seen('Z')) { // rotate all 3 axis for Z = 0
8533
-      delta_tower_angle_trim[A_AXIS] -= parser.value_float();
8534
-      delta_tower_angle_trim[B_AXIS] -= parser.value_float();
8535
-    }
8536
-    recalc_delta_settings(delta_radius, delta_diagonal_rod);
8603
+    if (parser.seen('Z')) delta_tower_angle_trim[C_AXIS] = parser.value_float();
8604
+    recalc_delta_settings(delta_radius, delta_diagonal_rod, delta_tower_angle_trim);
8537 8605
   }
8538 8606
   /**
8539 8607
    * M666: Set delta endstop adjustment
@@ -8546,7 +8614,8 @@ inline void gcode_M205() {
8546 8614
     #endif
8547 8615
     LOOP_XYZ(i) {
8548 8616
       if (parser.seen(axis_codes[i])) {
8549
-        endstop_adj[i] = parser.value_linear_units();
8617
+        if (parser.value_linear_units() * Z_HOME_DIR <= 0)
8618
+          endstop_adj[i] = parser.value_linear_units();
8550 8619
         #if ENABLED(DEBUG_LEVELING_FEATURE)
8551 8620
           if (DEBUGGING(LEVELING)) {
8552 8621
             SERIAL_ECHOPAIR("endstop_adj[", axis_codes[i]);
@@ -8560,10 +8629,6 @@ inline void gcode_M205() {
8560 8629
         SERIAL_ECHOLNPGM("<<< gcode_M666");
8561 8630
       }
8562 8631
     #endif
8563
-    // normalize endstops so all are <=0; set the residue to delta height
8564
-    const float z_temp = MAX3(endstop_adj[A_AXIS], endstop_adj[B_AXIS], endstop_adj[C_AXIS]);
8565
-    home_offset[Z_AXIS] -= z_temp;
8566
-    LOOP_XYZ(i) endstop_adj[i] -= z_temp;
8567 8632
   }
8568 8633
 
8569 8634
 #elif IS_SCARA
@@ -10088,15 +10153,14 @@ inline void gcode_M907() {
10088 10153
   #ifndef INVERT_CASE_LIGHT
10089 10154
     #define INVERT_CASE_LIGHT false
10090 10155
   #endif
10091
-  int case_light_brightness;  // LCD routine wants INT
10156
+  uint8_t case_light_brightness;  // LCD routine wants INT
10092 10157
   bool case_light_on;
10093 10158
 
10094 10159
   void update_case_light() {
10095 10160
     pinMode(CASE_LIGHT_PIN, OUTPUT); // digitalWrite doesn't set the port mode
10096
-    uint8_t case_light_bright = (uint8_t)case_light_brightness;
10097 10161
     if (case_light_on) {
10098 10162
       if (USEABLE_HARDWARE_PWM(CASE_LIGHT_PIN)) {
10099
-        analogWrite(CASE_LIGHT_PIN, INVERT_CASE_LIGHT ? 255 - case_light_brightness : case_light_brightness );
10163
+        analogWrite(CASE_LIGHT_PIN, INVERT_CASE_LIGHT ? 255 - case_light_brightness : case_light_brightness);
10100 10164
       }
10101 10165
       else WRITE(CASE_LIGHT_PIN, INVERT_CASE_LIGHT ? LOW : HIGH);
10102 10166
     }
@@ -10130,7 +10194,7 @@ inline void gcode_M355() {
10130 10194
     }
10131 10195
     else {
10132 10196
       if (!USEABLE_HARDWARE_PWM(CASE_LIGHT_PIN)) SERIAL_ECHOLN("Case light: on");
10133
-      else SERIAL_ECHOLNPAIR("Case light: ", case_light_brightness);
10197
+      else SERIAL_ECHOLNPAIR("Case light: ", (int)case_light_brightness);
10134 10198
     }
10135 10199
 
10136 10200
   #else
@@ -11822,15 +11886,15 @@ void ok_to_send() {
11822 11886
    * Recalculate factors used for delta kinematics whenever
11823 11887
    * settings have been changed (e.g., by M665).
11824 11888
    */
11825
-  void recalc_delta_settings(float radius, float diagonal_rod) {
11889
+  void recalc_delta_settings(float radius, float diagonal_rod, float tower_angle_trim[ABC]) {
11826 11890
     const float trt[ABC] = DELTA_RADIUS_TRIM_TOWER,
11827 11891
                 drt[ABC] = DELTA_DIAGONAL_ROD_TRIM_TOWER;
11828
-    delta_tower[A_AXIS][X_AXIS] = cos(RADIANS(210 + delta_tower_angle_trim[A_AXIS])) * (radius + trt[A_AXIS]); // front left tower
11829
-    delta_tower[A_AXIS][Y_AXIS] = sin(RADIANS(210 + delta_tower_angle_trim[A_AXIS])) * (radius + trt[A_AXIS]);
11830
-    delta_tower[B_AXIS][X_AXIS] = cos(RADIANS(330 + delta_tower_angle_trim[B_AXIS])) * (radius + trt[B_AXIS]); // front right tower
11831
-    delta_tower[B_AXIS][Y_AXIS] = sin(RADIANS(330 + delta_tower_angle_trim[B_AXIS])) * (radius + trt[B_AXIS]);
11832
-    delta_tower[C_AXIS][X_AXIS] = 0.0; // back middle tower
11833
-    delta_tower[C_AXIS][Y_AXIS] = (radius + trt[C_AXIS]);
11892
+    delta_tower[A_AXIS][X_AXIS] = cos(RADIANS(210 + tower_angle_trim[A_AXIS])) * (radius + trt[A_AXIS]); // front left tower
11893
+    delta_tower[A_AXIS][Y_AXIS] = sin(RADIANS(210 + tower_angle_trim[A_AXIS])) * (radius + trt[A_AXIS]);
11894
+    delta_tower[B_AXIS][X_AXIS] = cos(RADIANS(330 + tower_angle_trim[B_AXIS])) * (radius + trt[B_AXIS]); // front right tower
11895
+    delta_tower[B_AXIS][Y_AXIS] = sin(RADIANS(330 + tower_angle_trim[B_AXIS])) * (radius + trt[B_AXIS]);
11896
+    delta_tower[C_AXIS][X_AXIS] = cos(RADIANS( 90 + tower_angle_trim[C_AXIS])) * (radius + trt[C_AXIS]); // back middle tower
11897
+    delta_tower[C_AXIS][Y_AXIS] = sin(RADIANS( 90 + tower_angle_trim[C_AXIS])) * (radius + trt[C_AXIS]);
11834 11898
     delta_diagonal_rod_2_tower[A_AXIS] = sq(diagonal_rod + drt[A_AXIS]);
11835 11899
     delta_diagonal_rod_2_tower[B_AXIS] = sq(diagonal_rod + drt[B_AXIS]);
11836 11900
     delta_diagonal_rod_2_tower[C_AXIS] = sq(diagonal_rod + drt[C_AXIS]);
@@ -12437,7 +12501,7 @@ void set_current_from_steppers_for_axis(const AxisEnum axis) {
12437 12501
           break;
12438 12502
       }
12439 12503
     }
12440
-    return false;
12504
+    return prepare_move_to_destination_cartesian();
12441 12505
   }
12442 12506
 
12443 12507
 #endif // DUAL_X_CARRIAGE
@@ -12479,7 +12543,7 @@ void prepare_move_to_destination() {
12479 12543
     #elif IS_KINEMATIC
12480 12544
       prepare_kinematic_move_to(destination)
12481 12545
     #elif ENABLED(DUAL_X_CARRIAGE)
12482
-      prepare_move_to_destination_dualx() || prepare_move_to_destination_cartesian()
12546
+      prepare_move_to_destination_dualx()
12483 12547
     #else
12484 12548
       prepare_move_to_destination_cartesian()
12485 12549
     #endif
@@ -12591,7 +12655,7 @@ void prepare_move_to_destination() {
12591 12655
     millis_t next_idle_ms = millis() + 200UL;
12592 12656
 
12593 12657
     #if N_ARC_CORRECTION > 1
12594
-      int8_t count = N_ARC_CORRECTION;
12658
+      int8_t arc_recalc_count = N_ARC_CORRECTION;
12595 12659
     #endif
12596 12660
 
12597 12661
     for (uint16_t i = 1; i < segments; i++) { // Iterate (segments-1) times
@@ -12603,7 +12667,7 @@ void prepare_move_to_destination() {
12603 12667
       }
12604 12668
 
12605 12669
       #if N_ARC_CORRECTION > 1
12606
-        if (--count) {
12670
+        if (--arc_recalc_count) {
12607 12671
           // Apply vector rotation matrix to previous r_P / 1
12608 12672
           const float r_new_Y = r_P * sin_T + r_Q * cos_T;
12609 12673
           r_P = r_P * cos_T - r_Q * sin_T;
@@ -12613,7 +12677,7 @@ void prepare_move_to_destination() {
12613 12677
       #endif
12614 12678
       {
12615 12679
         #if N_ARC_CORRECTION > 1
12616
-          count = N_ARC_CORRECTION;
12680
+          arc_recalc_count = N_ARC_CORRECTION;
12617 12681
         #endif
12618 12682
 
12619 12683
         // Arc correction to radius vector. Computed only every N_ARC_CORRECTION increments.
@@ -12643,8 +12707,9 @@ void prepare_move_to_destination() {
12643 12707
     // motion control system might still be processing the action and the real tool position
12644 12708
     // in any intermediate location.
12645 12709
     set_current_to_destination();
12646
-  }
12647
-#endif
12710
+  } // plan_arc
12711
+
12712
+#endif // ARC_SUPPORT
12648 12713
 
12649 12714
 #if ENABLED(BEZIER_CURVE_SUPPORT)
12650 12715
 
@@ -13008,9 +13073,6 @@ void disable_all_steppers() {
13008 13073
       #if ENABLED(E4_IS_TMC2130)
13009 13074
         automatic_current_control(stepperE4, "E4");
13010 13075
       #endif
13011
-      #if ENABLED(E4_IS_TMC2130)
13012
-        automatic_current_control(stepperE4);
13013
-      #endif
13014 13076
     }
13015 13077
   }
13016 13078
 
@@ -13460,7 +13522,7 @@ void setup() {
13460 13522
     OUT_WRITE(STAT_LED_BLUE_PIN, LOW); // turn it off
13461 13523
   #endif
13462 13524
 
13463
-  #if ENABLED(NEOPIXEL_RGBW_LED)
13525
+  #if ENABLED(NEOPIXEL_LED)
13464 13526
     SET_OUTPUT(NEOPIXEL_PIN);
13465 13527
     setup_neopixel();
13466 13528
   #endif
@@ -13551,6 +13613,12 @@ void setup() {
13551 13613
       pe_deactivate_magnet(1);
13552 13614
     #endif
13553 13615
   #endif
13616
+  #if ENABLED(MKS_12864OLED)
13617
+    SET_OUTPUT(LCD_PINS_DC);
13618
+    OUT_WRITE(LCD_PINS_RS, LOW);
13619
+    delay(1000);
13620
+    WRITE(LCD_PINS_RS, HIGH);
13621
+  #endif
13554 13622
 }
13555 13623
 
13556 13624
 /**
@@ -13580,6 +13648,15 @@ void loop() {
13580 13648
           // M29 closes the file
13581 13649
           card.closefile();
13582 13650
           SERIAL_PROTOCOLLNPGM(MSG_FILE_SAVED);
13651
+
13652
+          #if ENABLED(SERIAL_STATS_DROPPED_RX)
13653
+            SERIAL_ECHOLNPAIR("Dropped bytes: ", customizedSerial.dropped());
13654
+          #endif
13655
+
13656
+          #if ENABLED(SERIAL_STATS_MAX_RX_QUEUED)
13657
+            SERIAL_ECHOLNPAIR("Max RX Queue Size: ", customizedSerial.rxMaxEnqueued());
13658
+          #endif
13659
+
13583 13660
           ok_to_send();
13584 13661
         }
13585 13662
         else {

+ 112
- 162
Marlin/Max7219_Debug_LEDs.cpp View File

@@ -21,199 +21,160 @@
21 21
  */
22 22
 
23 23
 /**
24
- * This module is normally not enabled.  It can be enabled to facilitate
25
- * the display of extra debug information during code development.
26
- * It assumes the existance of a Max7219 LED Matrix.   A suitable
27
- * device can be obtained on eBay similar to this: http://www.ebay.com/itm/191781645249
28
- * for under $2.00 including shipping.
24
+ * This module is off by default, but can be enabled to facilitate the display of
25
+ * extra debug information during code development. It assumes the existence of a
26
+ * Max7219 LED Matrix. A suitable device can be obtained on eBay similar to this:
27
+ * http://www.ebay.com/itm/191781645249 for under $2.00 including shipping.
29 28
  *
30
- * Just connect up +5v and Gnd to give it power.  And then 3 wires declared in the 
31
- * #define's below.  Actual pin assignments can be changed in MAX7219_DEBUG section 
32
- * of configuration_adv.h
29
+ * Just connect up +5v and GND to give it power, then connect up the pins assigned
30
+ * in Configuration_adv.h. For example, on the Re-ARM you could use:
33 31
  *
34
- *   #define Max7219_clock   77
35
- *   #define Max7219_data_in 78
36
- *   #define Max7219_load    79
32
+ *   #define MAX7219_CLK_PIN   77
33
+ *   #define MAX7219_DIN_PIN   78
34
+ *   #define MAX7219_LOAD_PIN  79
37 35
  *
38
- * First call Max7219_init() and then there are a number of support functions available
39
- * to control the LED's in the 8x8 grid.
36
+ * Max7219_init() is called automatically at startup, and then there are a number of
37
+ * support functions available to control the LEDs in the 8x8 grid.
40 38
  *
41 39
  * void Max7219_init();
42 40
  * void Max7219_PutByte(uint8_t data);
43 41
  * void Max7219(uint8_t reg, uint8_t data);
44
- * void Max7219_LED_On( int8_t row, int8_t col);
45
- * void Max7219_LED_Off( int8_t row, int8_t col);
46
- * void Max7219_LED_Toggle( int8_t row, int8_t col);
47
- * void Max7219_Clear_Row( int8_t row);
48
- * void Max7219_Clear_Column( int8_t col);
42
+ * void Max7219_LED_On(uint8_t row, uint8_t col);
43
+ * void Max7219_LED_Off(uint8_t row, uint8_t col);
44
+ * void Max7219_LED_Toggle(uint8_t row, uint8_t col);
45
+ * void Max7219_Clear_Row(uint8_t row);
46
+ * void Max7219_Clear_Column(uint8_t col);
47
+ * void Max7219_Set_Row(uint8_t row, uint8_t val);
48
+ * void Max7219_Set_Column(uint8_t col, uint8_t val);
49
+ * void Max7219_idle_tasks();
49 50
  */
50 51
 
51
-
52
-#include "Marlin.h"
52
+#include "MarlinConfig.h"
53 53
 
54 54
 #if ENABLED(MAX7219_DEBUG)
55
+
56
+  #include "Marlin.h"
55 57
   #include "planner.h"
56 58
   #include "stepper.h"
57 59
   #include "Max7219_Debug_LEDs.h"
58 60
 
59
-  static uint8_t LEDs[8] = {0};
61
+  static uint8_t LEDs[8] = { 0 };
60 62
 
61 63
   void Max7219_PutByte(uint8_t data) {
62
-    uint8_t i = 8;
63
-      while(i > 0) {
64
-        digitalWrite( Max7219_clock, LOW);    // tick
65
-        if (data & 0x80)                      // check bit
66
-          digitalWrite(Max7219_data_in,HIGH); // send 1
67
-        else
68
-          digitalWrite(Max7219_data_in,LOW);  // send 0
69
-        digitalWrite(Max7219_clock, HIGH);    // tock
70
-        data = data << 0x01;
71
-        --i;                                  // move to lesser bit
72
-      }
64
+    for (uint8_t i = 8; i--;) {
65
+      WRITE(MAX7219_CLK_PIN, LOW);       // tick
66
+      WRITE(MAX7219_DIN_PIN, (data & 0x80) ? HIGH : LOW);  // send 1 or 0 based on data bit
67
+      WRITE(MAX7219_CLK_PIN, HIGH);      // tock
68
+      data <<= 1;
73 69
     }
74
-
75
-  void Max7219( uint8_t reg, uint8_t data) {
76
-    digitalWrite(Max7219_load, LOW);  // begin
77
-    Max7219_PutByte(reg);             // specify register
78
-    Max7219_PutByte(data);            // put data
79
-    digitalWrite(Max7219_load, LOW);  // and tell the chip to load the data
80
-    digitalWrite(Max7219_load,HIGH);
81 70
   }
82 71
 
83
-  void Max7219_LED_On( int8_t row, int8_t col) {
84
-    int x_index;
85
-    if ( row>=8 || row<0 || col>=8 || col<0)
86
-      return;
87
-    if ( LEDs[row] & (0x01<<col) ) // if LED is already on, just leave
88
-      return;
72
+  void Max7219(const uint8_t reg, const uint8_t data) {
73
+    WRITE(MAX7219_LOAD_PIN, LOW);  // begin
74
+    Max7219_PutByte(reg);          // specify register
75
+    Max7219_PutByte(data);         // put data
76
+    WRITE(MAX7219_LOAD_PIN, LOW);  // and tell the chip to load the data
77
+    WRITE(MAX7219_LOAD_PIN, HIGH);
78
+  }
89 79
 
90
-    LEDs[row] |= (0x01<<col);
91
-    x_index = 7-row;
92
-    Max7219( x_index+1, LEDs[row] );
80
+  void Max7219_LED_Set(const uint8_t row, const uint8_t col, const bool on) {
81
+    if (row > 7 || col > 7) return;
82
+    if (TEST(LEDs[row], col) == on) return; // if LED is already on/off, leave alone
83
+    if (on) SBI(LEDs[row], col); else CBI(LEDs[row], col);
84
+    Max7219(8 - row, LEDs[row]);
93 85
   }
94 86
 
95
-  void Max7219_LED_Off( int8_t row, int8_t col) {
96
-    int x_index;
97
-    if ( row>=8 || row<0 || col>=8 || col<0)
98
-      return;
99
-    if ( !(LEDs[row] & (0x01<<col)) ) // if LED is already off, just leave
100
-      return;
87
+  void Max7219_LED_On(const uint8_t row, const uint8_t col) {
88
+    Max7219_LED_Set(row, col, true);
89
+  }
101 90
 
102
-    LEDs[row] ^= (0x01<<col);
103
-    x_index = 7-row;
104
-    Max7219( x_index+1, LEDs[row] );
91
+  void Max7219_LED_Off(const uint8_t row, const uint8_t col) {
92
+    Max7219_LED_Set(row, col, false);
105 93
   }
106 94
 
107
-  void Max7219_LED_Toggle( int8_t row, int8_t col) {
108
-    if ( row>=8 || row<0 || col>=8 || col<0)
109
-      return;
110
-    if ( (LEDs[row] & (0x01<<col)) )
111
-      Max7219_LED_Off( row, col);
95
+  void Max7219_LED_Toggle(const uint8_t row, const uint8_t col) {
96
+    if (row > 7 || col > 7) return;
97
+    if (TEST(LEDs[row], col))
98
+      Max7219_LED_Off(row, col);
112 99
     else
113
-      Max7219_LED_On( row, col);
100
+      Max7219_LED_On(row, col);
114 101
   }
115 102
 
116
-  void Max7219_Clear_Column( int8_t col) {
117
-    int x_index;
118
-    if ( col>=8 || col<0 )
119
-      return;
103
+  void Max7219_Clear_Column(const uint8_t col) {
104
+    if (col > 7) return;
120 105
     LEDs[col] = 0;
121
-    x_index = 7-col;
122
-    Max7219( x_index+1, LEDs[col] );
106
+    Max7219(8 - col, LEDs[col]);
123 107
   }
124 108
 
125
-  void Max7219_Clear_Row( int8_t row) {
126
-    int c;
127
-    if ( row>=8 || row<0 )
128
-      return;
129
-
130
-    for(c=0; c<8; c++)
131
-      Max7219_LED_Off( c, row);
109
+  void Max7219_Clear_Row(const uint8_t row) {
110
+    if (row > 7) return;
111
+    for (uint8_t c = 0; c <= 7; c++)
112
+      Max7219_LED_Off(c, row);
132 113
   }
133 114
 
134
-  void Max7219_Set_Row( int8_t row, uint8_t val) {
135
-    int b;
136
-
137
-    if ( row<0 || row>7 )
138
-      return;
139
-
140
-    if ( val<0 || val>255 )
141
-      return;
142
-
143
-    for(b=0; b<8; b++)
144
-      if ( val & (0x01 << b) )
145
-        Max7219_LED_On( 7-b, row);
115
+  void Max7219_Set_Row(const uint8_t row, const uint8_t val) {
116
+    if (row > 7) return;
117
+    for (uint8_t b = 0; b <= 7; b++)
118
+      if (TEST(val, b))
119
+        Max7219_LED_On(7 - b, row);
146 120
       else
147
-        Max7219_LED_Off( 7-b, row);
121
+        Max7219_LED_Off(7 - b, row);
148 122
   }
149 123
 
150
-  void Max7219_Set_Column( int8_t col, uint8_t val) {
151
-    int x_index;
152
-
153
-    if ( col>=8 || col<0 )
154
-      return;
155
-
156
-    if ( val<0 || val>255 )
157
-      return;
158
-
124
+  void Max7219_Set_Column(const uint8_t col, const uint8_t val) {
125
+    if (col > 7) return;
159 126
     LEDs[col] = val;
160
-    x_index = 7-col;
161
-    Max7219( x_index+1, LEDs[col] );
127
+    Max7219(8 - col, LEDs[col]);
162 128
   }
163 129
 
164
-
165 130
   void Max7219_init() {
166
-    int i, x, y;
131
+    uint8_t i, x, y;
167 132
 
168
-    pinMode(Max7219_data_in, OUTPUT);
169
-    pinMode(Max7219_clock,   OUTPUT);
170
-    pinMode(Max7219_load,    OUTPUT);
133
+    SET_OUTPUT(MAX7219_DIN_PIN);
134
+    SET_OUTPUT(MAX7219_CLK_PIN);
171 135
 
172
-    digitalWrite(Max7219_load, HIGH);
136
+    OUT_WRITE(MAX7219_LOAD_PIN, HIGH);
173 137
 
174 138
     //initiation of the max 7219
175 139
     Max7219(max7219_reg_scanLimit, 0x07);
176 140
     Max7219(max7219_reg_decodeMode, 0x00);  // using an led matrix (not digits)
177 141
     Max7219(max7219_reg_shutdown, 0x01);    // not in shutdown mode
178 142
     Max7219(max7219_reg_displayTest, 0x00); // no display test
179
-    Max7219(max7219_reg_intensity, 0x01 & 0x0f); // the first 0x0f is the value you can set
180
-                                                 // range: 0x00 to 0x0f
181
-    for (i=0; i<8; i++) {       // empty registers, turn all LEDs off
143
+    Max7219(max7219_reg_intensity, 0x01 & 0x0F); // the first 0x0F is the value you can set
144
+                                                 // range: 0x00 to 0x0F
145
+    for (i = 0; i <= 7; i++) {      // empty registers, turn all LEDs off
182 146
       LEDs[i] = 0x00;
183
-      Max7219(i+1,0);
147
+      Max7219(i + 1, 0);
184 148
     }
185 149
 
186
-    for(x=0; x<8; x++)  {       // Do an austetically pleasing pattern to fully test
187
-      for(y=0; y<8; y++) {      // the Max7219 module and LED's.   First, turn them
188
-        Max7219_LED_On( x, y);  // all on.
150
+    for (x = 0; x <= 7; x++)        // Do an aesthetically pleasing pattern to fully test
151
+      for (y = 0; y <= 7; y++) {    // the Max7219 module and LEDs. First, turn them
152
+        Max7219_LED_On(x, y);       // all on.
189 153
         delay(3);
190 154
       }
191
-    }
192
-    for(x=0; x<8; x++)  {       // Now, turn them all off.
193
-      for(y=0; y<8; y++) {
194
-        Max7219_LED_Off( x, y);
195
-        delay(3);               // delay() is OK here.  Max7219_init() is only called from
196
-      }                         // setup() and nothing is running yet.
197
-    }
155
+
156
+    for (x = 0; x <= 7; x++)        // Now, turn them all off.
157
+      for (y = 0; y <= 7; y++) {
158
+        Max7219_LED_Off(x, y);
159
+        delay(3);                   // delay() is OK here. Max7219_init() is only called from
160
+      }                             // setup() and nothing is running yet.
198 161
 
199 162
     delay(150);
200 163
 
201
-    for(x=7; x>=0; x--)  {     // Now, do the same thing from the opposite direction
202
-      for(y=0; y<8; y++) {
203
-        Max7219_LED_On( x, y);
164
+    for (x = 8; x--;)               // Now, do the same thing from the opposite direction
165
+      for (y = 0; y <= 7; y++) {
166
+        Max7219_LED_On(x, y);
204 167
         delay(2);
205 168
       }
206
-    }
207 169
 
208
-    for(x=7; x>=0; x--)  {
209
-      for(y=0; y<8; y++) {
210
-        Max7219_LED_Off( x, y);
170
+    for (x = 8; x--;)
171
+      for (y = 0; y <= 7; y++) {
172
+        Max7219_LED_Off(x, y);
211 173
         delay(2);
212 174
       }
213
-      }
214
-    }
175
+  }
215 176
 
216
-/*
177
+/**
217 178
  * These are sample debug features to demonstrate the usage of the 8x8 LED Matrix for debug purposes.
218 179
  * There is very little CPU burden added to the system by displaying information within the idle()
219 180
  * task.
@@ -223,17 +184,17 @@
223 184
  * or clear a row is not very significant.
224 185
  */
225 186
   void Max7219_idle_tasks() {
226
-    #ifdef MAX7219_DEBUG_PRINTER_ALIVE
227
-      static int debug_cnt=0;
187
+    #if ENABLED(MAX7219_DEBUG_PRINTER_ALIVE)
188
+      static int debug_cnt = 0;
228 189
       if (debug_cnt++ > 100) {
229
-        Max7219_LED_Toggle(7,7);
190
+        Max7219_LED_Toggle(7, 7);
230 191
         debug_cnt = 0;
231 192
       }
232 193
     #endif
233 194
 
234 195
     #ifdef MAX7219_DEBUG_STEPPER_HEAD
235 196
       Max7219_Clear_Row(MAX7219_DEBUG_STEPPER_HEAD);
236
-      Max7219_Clear_Row(MAX7219_DEBUG_STEPPER_HEAD+1);
197
+      Max7219_Clear_Row(MAX7219_DEBUG_STEPPER_HEAD + 1);
237 198
       if ( planner.block_buffer_head < 8)
238 199
         Max7219_LED_On( planner.block_buffer_head, MAX7219_DEBUG_STEPPER_HEAD);
239 200
       else
@@ -242,7 +203,7 @@
242 203
 
243 204
     #ifdef MAX7219_DEBUG_STEPPER_TAIL
244 205
       Max7219_Clear_Row(MAX7219_DEBUG_STEPPER_TAIL);
245
-      Max7219_Clear_Row(MAX7219_DEBUG_STEPPER_TAIL+1);
206
+      Max7219_Clear_Row(MAX7219_DEBUG_STEPPER_TAIL + 1);
246 207
       if ( planner.block_buffer_tail < 8)
247 208
         Max7219_LED_On( planner.block_buffer_tail, MAX7219_DEBUG_STEPPER_TAIL );
248 209
       else
@@ -250,37 +211,26 @@
250 211
     #endif
251 212
 
252 213
     #ifdef MAX7219_DEBUG_STEPPER_QUEUE
253
-      static int16_t last_depth=0, current_depth;
254
-      uint8_t i;
255
-      current_depth = planner.block_buffer_head - planner.block_buffer_tail;
214
+      static int16_t last_depth = 0;
215
+      int16_t current_depth = planner.block_buffer_head - planner.block_buffer_tail;
256 216
       if (current_depth != last_depth) {  // usually, no update will be needed.
257
-
258
-        if ( current_depth < 0 )
259
-          current_depth += BLOCK_BUFFER_SIZE;
260
-
261
-        if ( current_depth >= BLOCK_BUFFER_SIZE )
262
-          current_depth = BLOCK_BUFFER_SIZE;
263
-
264
-        if ( current_depth > 16 )         // if the BLOCK_BUFFER_SIZE is greater than 16 two lines
265
-          current_depth = 16;             // of LED's is enough to see if the buffer is draining
266
-
267
-        if ( current_depth < last_depth )
268
-          for(i=current_depth; i<=last_depth; i++) {   // clear the highest order LED's
269
-            if ( i & 1)
270
-              Max7219_LED_Off(i>>1, MAX7219_DEBUG_STEPPER_QUEUE+1);
271
-            else
272
-              Max7219_LED_Off(i>>1, MAX7219_DEBUG_STEPPER_QUEUE+0);
273
-          }
217
+        if (current_depth < 0) current_depth += BLOCK_BUFFER_SIZE;
218
+        NOMORE(current_depth, BLOCK_BUFFER_SIZE);
219
+        NOMORE(current_depth, 16);        // if the BLOCK_BUFFER_SIZE is greater than 16, two lines
220
+                                          // of LEDs is enough to see if the buffer is draining
221
+
222
+        const uint8_t st = min(current_depth, last_depth),
223
+                      en = max(current_depth, last_depth);
224
+        if (current_depth < last_depth)
225
+          for (uint8_t i = st; i <= en; i++)   // clear the highest order LEDs
226
+            Max7219_LED_Off(i >> 1, MAX7219_DEBUG_STEPPER_QUEUE + (i & 1));
274 227
         else
275
-          for(i=last_depth; i<=current_depth; i++) {   // light up the highest order LED's
276
-            if ( i & 1)
277
-              Max7219_LED_On(i>>1, MAX7219_DEBUG_STEPPER_QUEUE+1);
278
-            else
279
-              Max7219_LED_On(i>>1, MAX7219_DEBUG_STEPPER_QUEUE+0);
280
-          }
228
+          for (uint8_t i = st; i <= en; i++)   // set the highest order LEDs
229
+            Max7219_LED_On(i >> 1, MAX7219_DEBUG_STEPPER_QUEUE + (i & 1));
230
+
281 231
         last_depth = current_depth;
282 232
       }
283 233
     #endif
284 234
   }
285
-#endif //MAX7219_DEBUG
286 235
 
236
+#endif // MAX7219_DEBUG

+ 36
- 33
Marlin/Max7219_Debug_LEDs.h View File

@@ -21,34 +21,38 @@
21 21
  */
22 22
 
23 23
 /**
24
- * This module is normally not enabled and does not generate any code.   But it
25
- * can be enabled to facilitate the display of extra debug information during
26
- * code development.   It assumes the existance of a Max7219 LED Matrix.   You
27
- * can get one on eBay similar to this: http://www.ebay.com/itm/191781645249
28
- * for under $2.00 including shipping.
24
+ * This module is off by default, but can be enabled to facilitate the display of
25
+ * extra debug information during code development. It assumes the existence of a
26
+ * Max7219 LED Matrix. A suitable device can be obtained on eBay similar to this:
27
+ * http://www.ebay.com/itm/191781645249 for under $2.00 including shipping.
29 28
  *
30
- * Just connect up +5v and Gnd to give it power.  And then 3 wires declared in the 
31
- * #define's below.  Actual pin assignments can be changed in MAX7219_DEBUG section 
32
- * of configuration_adv.h
29
+ * Just connect up +5v and GND to give it power, then connect up the pins assigned
30
+ * in Configuration_adv.h. For example, on the Re-ARM you could use:
33 31
  *
34
- * You first call Max7219_init() and then you have 3 support functions available
35
- * to control the LED's in the 8x8 grid.
32
+ *   #define MAX7219_CLK_PIN   77
33
+ *   #define MAX7219_DIN_PIN   78
34
+ *   #define MAX7219_LOAD_PIN  79
35
+ *
36
+ * Max7219_init() is called automatically at startup, and then there are a number of
37
+ * support functions available to control the LEDs in the 8x8 grid.
36 38
  *
37 39
  * void Max7219_init();
38 40
  * void Max7219_PutByte(uint8_t data);
39 41
  * void Max7219(uint8_t reg, uint8_t data);
40
- * void Max7219_LED_On( int8_t row, int8_t col);
41
- * void Max7219_LED_Off( int8_t row, int8_t col);
42
- * void Max7219_LED_Toggle( int8_t row, int8_t col);
43
- * void Max7219_Clear_Row( int8_t row);
44
- * void Max7219_Clear_Column( int8_t col);
45
- * void Max7219_Set_Row( int8_t row, int8_t val);
46
- * void Max7219_Set_Column( int8_t column, int8_t val);
42
+ * void Max7219_LED_Set(uint8_t row, uint8_t col, bool on);
43
+ * void Max7219_LED_On(uint8_t row, uint8_t col);
44
+ * void Max7219_LED_Off(uint8_t row, uint8_t col);
45
+ * void Max7219_LED_Toggle(uint8_t row, uint8_t col);
46
+ * void Max7219_Clear_Row(uint8_t row);
47
+ * void Max7219_Clear_Column(uint8_t col);
48
+ * void Max7219_Set_Row(uint8_t row, uint8_t val);
49
+ * void Max7219_Set_Column(uint8_t col, uint8_t val);
47 50
  * void Max7219_idle_tasks();
48 51
  */
49 52
 
53
+#ifndef __MAX7219_DEBUG_LEDS_H__
54
+#define __MAX7219_DEBUG_LEDS_H__
50 55
 
51
-#if ENABLED(MAX7219_DEBUG)
52 56
   //
53 57
   // define max7219 registers
54 58
   //
@@ -62,24 +66,23 @@
62 66
   #define max7219_reg_digit6      0x07
63 67
   #define max7219_reg_digit7      0x08
64 68
 
65
-  #define max7219_reg_intensity   0x0a
66
-  #define max7219_reg_displayTest 0x0f
69
+  #define max7219_reg_intensity   0x0A
70
+  #define max7219_reg_displayTest 0x0F
67 71
   #define max7219_reg_decodeMode  0x09
68
-  #define max7219_reg_scanLimit   0x0b
69
-  #define max7219_reg_shutdown    0x0c
70
-
72
+  #define max7219_reg_scanLimit   0x0B
73
+  #define max7219_reg_shutdown    0x0C
71 74
 
72 75
   void Max7219_init();
73 76
   void Max7219_PutByte(uint8_t data);
74
-  void Max7219(uint8_t reg, uint8_t data);
75
-  void Max7219_LED_On( int8_t row, int8_t col);
76
-  void Max7219_LED_Off( int8_t row, int8_t col);
77
-  void Max7219_LED_Toggle( int8_t row, int8_t col);
78
-  void Max7219_Clear_Row( int8_t row);
79
-  void Max7219_Clear_Column( int8_t col);
80
-  void Max7219_Set_Row( int8_t row, uint8_t val);
81
-  void Max7219_Set_Column( int8_t col, uint8_t val);
77
+  void Max7219(const uint8_t reg, const uint8_t data);
78
+  void Max7219_LED_Set(const uint8_t row, const uint8_t col, const bool on);
79
+  void Max7219_LED_On(const uint8_t row, const uint8_t col);
80
+  void Max7219_LED_Off(const uint8_t row, const uint8_t col);
81
+  void Max7219_LED_Toggle(const uint8_t row, const uint8_t col);
82
+  void Max7219_Clear_Row(const uint8_t row);
83
+  void Max7219_Clear_Column(const uint8_t col);
84
+  void Max7219_Set_Row(const uint8_t row, const uint8_t val);
85
+  void Max7219_Set_Column(const uint8_t col, const uint8_t val);
82 86
   void Max7219_idle_tasks();
83
-#endif
84
-
85 87
 
88
+#endif // __MAX7219_DEBUG_LEDS_H__

+ 52
- 34
Marlin/SanityCheck.h View File

@@ -208,6 +208,10 @@
208 208
   #error "CONTROLLERFAN_PIN is now CONTROLLER_FAN_PIN, enabled with USE_CONTROLLER_FAN. Please update your Configuration_adv.h."
209 209
 #elif defined(MIN_RETRACT)
210 210
   #error "MIN_RETRACT is now MIN_AUTORETRACT and MAX_AUTORETRACT. Please update your Configuration_adv.h."
211
+#elif defined(ADVANCE)
212
+  #error "ADVANCE was removed in Marlin 1.1.6. Please use LIN_ADVANCE."
213
+#elif defined(NEOPIXEL_RGBW_LED)
214
+  #error "NEOPIXEL_RGBW_LED is now NEOPIXEL_LED. Please update your configuration."
211 215
 #endif
212 216
 
213 217
 /**
@@ -301,10 +305,14 @@ static_assert(X_MAX_LENGTH >= X_BED_SIZE && Y_MAX_LENGTH >= Y_BED_SIZE,
301 305
     #error "BABYSTEPPING is not implemented for SCARA yet."
302 306
   #elif ENABLED(DELTA) && ENABLED(BABYSTEP_XY)
303 307
     #error "BABYSTEPPING only implemented for Z axis on deltabots."
304
-  #elif ENABLED(BABYSTEP_ZPROBE_OFFSET) &&  ENABLED(MESH_BED_LEVELING)
308
+  #elif ENABLED(BABYSTEP_ZPROBE_OFFSET) && ENABLED(MESH_BED_LEVELING)
305 309
     #error "MESH_BED_LEVELING and BABYSTEP_ZPROBE_OFFSET is not a valid combination"
306 310
   #elif ENABLED(BABYSTEP_ZPROBE_OFFSET) && !HAS_BED_PROBE
307 311
     #error "BABYSTEP_ZPROBE_OFFSET requires a probe."
312
+  #elif ENABLED(BABYSTEP_ZPROBE_GFX_OVERLAY) && !ENABLED(DOGLCD)
313
+    #error "BABYSTEP_ZPROBE_GFX_OVERLAY requires a DOGLCD."
314
+  #elif ENABLED(BABYSTEP_ZPROBE_GFX_OVERLAY) && !ENABLED(BABYSTEP_ZPROBE_OFFSET)
315
+    #error "BABYSTEP_ZPROBE_GFX_OVERLAY requires a BABYSTEP_ZPROBE_OFFSET."
308 316
   #endif
309 317
 #endif
310 318
 
@@ -643,12 +651,8 @@ static_assert(1 >= 0
643 651
   /**
644 652
    * Require some kind of probe for bed leveling and probe testing
645 653
    */
646
-  #if HAS_ABL
647
-    #if ENABLED(AUTO_BED_LEVELING_UBL)
648
-      #error "Unified Bed Leveling requires a probe: FIX_MOUNTED_PROBE, BLTOUCH, SOLENOID_PROBE, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or Z Servo."
649
-    #else
650
-      #error "Auto Bed Leveling requires one of these: PROBE_MANUALLY, FIX_MOUNTED_PROBE, BLTOUCH, SOLENOID_PROBE, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or a Z Servo."
651
-    #endif
654
+  #if HAS_ABL && DISABLED(AUTO_BED_LEVELING_UBL)
655
+    #error "Auto Bed Leveling requires one of these: PROBE_MANUALLY, FIX_MOUNTED_PROBE, BLTOUCH, SOLENOID_PROBE, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or a Z Servo."
652 656
   #endif
653 657
 
654 658
 #endif
@@ -812,13 +816,6 @@ static_assert(1 >= 0
812 816
 #endif // DISABLE_[XYZ]
813 817
 
814 818
 /**
815
- * Advance Extrusion
816
- */
817
-#if ENABLED(ADVANCE) && ENABLED(LIN_ADVANCE)
818
-  #error "You can enable ADVANCE or LIN_ADVANCE, but not both."
819
-#endif
820
-
821
-/**
822 819
  * Filament Width Sensor
823 820
  */
824 821
 #if ENABLED(FILAMENT_WIDTH_SENSOR) && !HAS_FILAMENT_WIDTH_SENSOR
@@ -955,28 +952,28 @@ static_assert(1 >= 0
955 952
           #error "TEMP_4_PIN not defined for this board."
956 953
         #endif
957 954
       #elif TEMP_SENSOR_4 != 0
958
-        #error "TEMP_SENSOR_4 shouldn't be set with only 4 extruders."
955
+        #error "TEMP_SENSOR_4 shouldn't be set with only 4 HOTENDS."
959 956
       #endif
960 957
     #elif TEMP_SENSOR_3 != 0
961
-      #error "TEMP_SENSOR_3 shouldn't be set with only 3 extruders."
958
+      #error "TEMP_SENSOR_3 shouldn't be set with only 3 HOTENDS."
962 959
     #elif TEMP_SENSOR_4 != 0
963
-      #error "TEMP_SENSOR_4 shouldn't be set with only 3 extruders."
960
+      #error "TEMP_SENSOR_4 shouldn't be set with only 3 HOTENDS."
964 961
     #endif
965 962
   #elif TEMP_SENSOR_2 != 0
966
-    #error "TEMP_SENSOR_2 shouldn't be set with only 2 extruders."
963
+    #error "TEMP_SENSOR_2 shouldn't be set with only 2 HOTENDS."
967 964
   #elif TEMP_SENSOR_3 != 0
968
-    #error "TEMP_SENSOR_3 shouldn't be set with only 2 extruders."
965
+    #error "TEMP_SENSOR_3 shouldn't be set with only 2 HOTENDS."
969 966
   #elif TEMP_SENSOR_4 != 0
970
-    #error "TEMP_SENSOR_4 shouldn't be set with only 2 extruders."
967
+    #error "TEMP_SENSOR_4 shouldn't be set with only 2 HOTENDS."
971 968
   #endif
972 969
 #elif TEMP_SENSOR_1 != 0 && DISABLED(TEMP_SENSOR_1_AS_REDUNDANT)
973
-  #error "TEMP_SENSOR_1 shouldn't be set with only 1 extruder."
970
+  #error "TEMP_SENSOR_1 shouldn't be set with only 1 HOTEND."
974 971
 #elif TEMP_SENSOR_2 != 0
975
-  #error "TEMP_SENSOR_2 shouldn't be set with only 1 extruder."
972
+  #error "TEMP_SENSOR_2 shouldn't be set with only 1 HOTEND."
976 973
 #elif TEMP_SENSOR_3 != 0
977
-  #error "TEMP_SENSOR_3 shouldn't be set with only 1 extruder."
974
+  #error "TEMP_SENSOR_3 shouldn't be set with only 1 HOTEND."
978 975
 #elif TEMP_SENSOR_4 != 0
979
-  #error "TEMP_SENSOR_4 shouldn't be set with only 1 extruder."
976
+  #error "TEMP_SENSOR_4 shouldn't be set with only 1 HOTEND."
980 977
 #endif
981 978
 
982 979
 #if ENABLED(TEMP_SENSOR_1_AS_REDUNDANT) && TEMP_SENSOR_1 == 0
@@ -1104,12 +1101,12 @@ static_assert(1 >= 0
1104 1101
   #if !(_RGB_TEST && PIN_EXISTS(RGB_LED_W))
1105 1102
     #error "RGBW_LED requires RGB_LED_R_PIN, RGB_LED_G_PIN, RGB_LED_B_PIN, and RGB_LED_W_PIN."
1106 1103
   #endif
1107
-#elif ENABLED(NEOPIXEL_RGBW_LED)
1104
+#elif ENABLED(NEOPIXEL_LED)
1108 1105
   #if !(PIN_EXISTS(NEOPIXEL) && NEOPIXEL_PIXELS > 0)
1109
-    #error "NEOPIXEL_RGBW_LED requires NEOPIXEL_PIN and NEOPIXEL_PIXELS."
1106
+    #error "NEOPIXEL_LED requires NEOPIXEL_PIN and NEOPIXEL_PIXELS."
1110 1107
   #endif
1111
-#elif ENABLED(PRINTER_EVENT_LEDS) && DISABLED(BLINKM) && DISABLED(PCA9632) && DISABLED(NEOPIXEL_RGBW_LED)
1112
-  #error "PRINTER_EVENT_LEDS requires BLINKM, PCA9632, RGB_LED, RGBW_LED or NEOPIXEL_RGBW_LED."
1108
+#elif ENABLED(PRINTER_EVENT_LEDS) && DISABLED(BLINKM) && DISABLED(PCA9632) && DISABLED(NEOPIXEL_LED)
1109
+  #error "PRINTER_EVENT_LEDS requires BLINKM, PCA9632, RGB_LED, RGBW_LED or NEOPIXEL_LED."
1113 1110
 #endif
1114 1111
 
1115 1112
 /**
@@ -1134,6 +1131,7 @@ static_assert(1 >= 0
1134 1131
  * Note: BQ_LCD_SMART_CONTROLLER => REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
1135 1132
  *       REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER => REPRAP_DISCOUNT_SMART_CONTROLLER
1136 1133
  *       SAV_3DGLCD => U8GLIB_SH1106 => ULTIMAKERCONTROLLER
1134
+ *       MKS_12864OLED => U8GLIB_SH1106 => ULTIMAKERCONTROLLER
1137 1135
  *       miniVIKI => ULTIMAKERCONTROLLER
1138 1136
  *       VIKI2 => ULTIMAKERCONTROLLER
1139 1137
  *       ELB_FULL_GRAPHIC_CONTROLLER => ULTIMAKERCONTROLLER
@@ -1141,19 +1139,34 @@ static_assert(1 >= 0
1141 1139
  */
1142 1140
 static_assert(1 >= 0
1143 1141
   #if ENABLED(ULTIMAKERCONTROLLER) \
1144
-      && DISABLED(SAV_3DGLCD) && DISABLED(miniVIKI) && DISABLED(VIKI2) \
1145
-      && DISABLED(ELB_FULL_GRAPHIC_CONTROLLER) && DISABLED(PANEL_ONE)
1142
+      && DISABLED(SAV_3DGLCD) \
1143
+      && DISABLED(miniVIKI) \
1144
+      && DISABLED(VIKI2) \
1145
+      && DISABLED(ELB_FULL_GRAPHIC_CONTROLLER) \
1146
+      && DISABLED(PANEL_ONE) \
1147
+      && DISABLED(MKS_12864OLED)
1146 1148
     + 1
1147 1149
   #endif
1148
-  #if ENABLED(REPRAP_DISCOUNT_SMART_CONTROLLER) && DISABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
1150
+  #if ENABLED(REPRAP_DISCOUNT_SMART_CONTROLLER) \
1151
+      && DISABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER) \
1152
+      && DISABLED(LCD_FOR_MELZI) \
1153
+      && DISABLED(MAKEBOARD_MINI_2_LINE_DISPLAY_1602) \
1154
+      && DISABLED(MKS_12864OLED)
1149 1155
     + 1
1150 1156
   #endif
1151
-  #if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER) && DISABLED(BQ_LCD_SMART_CONTROLLER)
1157
+  #if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER) \
1158
+      && DISABLED(BQ_LCD_SMART_CONTROLLER)
1152 1159
     + 1
1153 1160
   #endif
1154 1161
   #if ENABLED(LCD_FOR_MELZI)
1155 1162
     + 1
1156 1163
   #endif
1164
+  #if ENABLED(MKS_12864OLED)
1165
+    + 1
1166
+  #endif
1167
+  #if ENABLED(MAKEBOARD_MINI_2_LINE_DISPLAY_1602)
1168
+    + 1
1169
+  #endif
1157 1170
   #if ENABLED(CARTESIO_UI)
1158 1171
     + 1
1159 1172
   #endif
@@ -1178,10 +1191,15 @@ static_assert(1 >= 0
1178 1191
   #if ENABLED(G3D_PANEL)
1179 1192
     + 1
1180 1193
   #endif
1181
-  #if ENABLED(MINIPANEL)
1194
+  #if ENABLED(MINIPANEL) && DISABLED(MKS_MINI_12864)
1195
+    + 1
1196
+  #endif
1197
+  #if ENABLED(MKS_MINI_12864)
1182 1198
     + 1
1183 1199
   #endif
1184
-  #if ENABLED(REPRAPWORLD_KEYPAD) && DISABLED(CARTESIO_UI) && DISABLED(ANET_KEYPAD_LCD)
1200
+  #if ENABLED(REPRAPWORLD_KEYPAD) \
1201
+      && DISABLED(CARTESIO_UI) \
1202
+      && DISABLED(ANET_KEYPAD_LCD)
1185 1203
     + 1
1186 1204
   #endif
1187 1205
   #if ENABLED(RIGIDBOT_PANEL)

+ 1
- 1
Marlin/cardreader.cpp View File

@@ -532,7 +532,7 @@ void CardReader::write_command(char *buf) {
532 532
 }
533 533
 
534 534
 void CardReader::checkautostart(bool force) {
535
-  if (!force && (!autostart_stilltocheck || ELAPSED(millis(), next_autostart_ms)))
535
+  if (!force && (!autostart_stilltocheck || PENDING(millis(), next_autostart_ms)))
536 536
     return;
537 537
 
538 538
   autostart_stilltocheck = false;

+ 2
- 2
Marlin/cardreader.h View File

@@ -120,10 +120,10 @@ private:
120 120
           char **sortshort, **sortnames;
121 121
         #else
122 122
           char sortshort[SDSORT_LIMIT][FILENAME_LENGTH];
123
-          char sortnames[SDSORT_LIMIT][FILENAME_LENGTH];
123
+          char sortnames[SDSORT_LIMIT][LONG_FILENAME_LENGTH];
124 124
         #endif
125 125
       #elif DISABLED(SDSORT_USES_STACK)
126
-        char sortnames[SDSORT_LIMIT][FILENAME_LENGTH];
126
+        char sortnames[SDSORT_LIMIT][LONG_FILENAME_LENGTH];
127 127
       #endif
128 128
 
129 129
       // Folder sorting uses an isDir array when caching items.

+ 11
- 12
Marlin/configuration_store.cpp View File

@@ -36,13 +36,13 @@
36 36
  *
37 37
  */
38 38
 
39
-#define EEPROM_VERSION "V40"
39
+#define EEPROM_VERSION "V41"
40 40
 
41 41
 // Change EEPROM version if these are changed:
42 42
 #define EEPROM_OFFSET 100
43 43
 
44 44
 /**
45
- * V39 EEPROM Layout:
45
+ * V41 EEPROM Layout:
46 46
  *
47 47
  *  100  Version                                    (char x4)
48 48
  *  104  EEPROM CRC16                               (uint16_t)
@@ -100,7 +100,7 @@
100 100
  *  372  M665 B    delta_calibration_radius         (float)
101 101
  *  376  M665 X    delta_tower_angle_trim[A]        (float)
102 102
  *  380  M665 Y    delta_tower_angle_trim[B]        (float)
103
- *  ---  M665 Z    delta_tower_angle_trim[C]        (float) is always 0.0
103
+ *  384  M665 Z    delta_tower_angle_trim[C]        (float)
104 104
  *
105 105
  * Z_DUAL_ENDSTOPS:                                 48 bytes
106 106
  *  348  M666 Z    z_endstop_adj                    (float)
@@ -215,7 +215,7 @@ void MarlinSettings::postprocess() {
215 215
   // Make sure delta kinematics are updated before refreshing the
216 216
   // planner position so the stepper counts will be set correctly.
217 217
   #if ENABLED(DELTA)
218
-    recalc_delta_settings(delta_radius, delta_diagonal_rod);
218
+    recalc_delta_settings(delta_radius, delta_diagonal_rod, delta_tower_angle_trim);
219 219
   #endif
220 220
 
221 221
   // Refresh steps_to_mm with the reciprocal of axis_steps_per_mm
@@ -448,16 +448,16 @@ void MarlinSettings::postprocess() {
448 448
       EEPROM_WRITE(storage_slot);
449 449
     #endif // AUTO_BED_LEVELING_UBL
450 450
 
451
-    // 9 floats for DELTA / Z_DUAL_ENDSTOPS
451
+    // 10 floats for DELTA / Z_DUAL_ENDSTOPS
452 452
     #if ENABLED(DELTA)
453 453
       EEPROM_WRITE(endstop_adj);               // 3 floats
454 454
       EEPROM_WRITE(delta_radius);              // 1 float
455 455
       EEPROM_WRITE(delta_diagonal_rod);        // 1 float
456 456
       EEPROM_WRITE(delta_segments_per_second); // 1 float
457 457
       EEPROM_WRITE(delta_calibration_radius);  // 1 float
458
-      EEPROM_WRITE(delta_tower_angle_trim);    // 2 floats
458
+      EEPROM_WRITE(delta_tower_angle_trim);    // 3 floats
459 459
       dummy = 0.0f;
460
-      for (uint8_t q = 3; q--;) EEPROM_WRITE(dummy);
460
+      for (uint8_t q = 2; q--;) EEPROM_WRITE(dummy);
461 461
     #elif ENABLED(Z_DUAL_ENDSTOPS)
462 462
       EEPROM_WRITE(z_endstop_adj);             // 1 float
463 463
       dummy = 0.0f;
@@ -844,9 +844,9 @@ void MarlinSettings::postprocess() {
844 844
         EEPROM_READ(delta_diagonal_rod);        // 1 float
845 845
         EEPROM_READ(delta_segments_per_second); // 1 float
846 846
         EEPROM_READ(delta_calibration_radius);  // 1 float
847
-        EEPROM_READ(delta_tower_angle_trim);    // 2 floats
847
+        EEPROM_READ(delta_tower_angle_trim);    // 3 floats
848 848
         dummy = 0.0f;
849
-        for (uint8_t q=3; q--;) EEPROM_READ(dummy);
849
+        for (uint8_t q=2; q--;) EEPROM_READ(dummy);
850 850
       #elif ENABLED(Z_DUAL_ENDSTOPS)
851 851
         EEPROM_READ(z_endstop_adj);
852 852
         dummy = 0.0f;
@@ -1233,8 +1233,7 @@ void MarlinSettings::reset() {
1233 1233
     delta_diagonal_rod = DELTA_DIAGONAL_ROD;
1234 1234
     delta_segments_per_second = DELTA_SEGMENTS_PER_SECOND;
1235 1235
     delta_calibration_radius = DELTA_CALIBRATION_RADIUS;
1236
-    delta_tower_angle_trim[A_AXIS] = dta[A_AXIS] - dta[C_AXIS];
1237
-    delta_tower_angle_trim[B_AXIS] = dta[B_AXIS] - dta[C_AXIS];
1236
+    COPY(delta_tower_angle_trim, dta);
1238 1237
     home_offset[Z_AXIS] = 0;
1239 1238
 
1240 1239
   #elif ENABLED(Z_DUAL_ENDSTOPS)
@@ -1657,7 +1656,7 @@ void MarlinSettings::reset() {
1657 1656
       SERIAL_ECHOPAIR(" B", LINEAR_UNIT(delta_calibration_radius));
1658 1657
       SERIAL_ECHOPAIR(" X", LINEAR_UNIT(delta_tower_angle_trim[A_AXIS]));
1659 1658
       SERIAL_ECHOPAIR(" Y", LINEAR_UNIT(delta_tower_angle_trim[B_AXIS]));
1660
-      SERIAL_ECHOPAIR(" Z", 0.00);
1659
+      SERIAL_ECHOPAIR(" Z", LINEAR_UNIT(delta_tower_angle_trim[C_AXIS]));
1661 1660
       SERIAL_EOL();
1662 1661
     #elif ENABLED(Z_DUAL_ENDSTOPS)
1663 1662
       if (!forReplay) {

+ 92
- 0
Marlin/dogm_bitmaps.h View File

@@ -419,4 +419,96 @@
419 419
       0x0C, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
420 420
     };
421 421
   #endif // Extruders
422
+
423
+  #if ENABLED(BABYSTEP_ZPROBE_GFX_OVERLAY)
424
+    const unsigned char cw_bmp[] PROGMEM = { //AVR-GCC, WinAVR
425
+      0x07,0xf8,0x00, // 000001111111100000000000
426
+      0x0c,0x0c,0x00, // 000011000000110000000000
427
+      0x10,0x02,0x00, // 000100000000001000000000
428
+      0x20,0x01,0x00, // 001000000000000100000000
429
+      0x60,0x01,0x80, // 011000000000000100000000
430
+      0x40,0x00,0x80, // 010000000000000010000000
431
+      0x40,0x03,0xe0, // 010000000000000011100000
432
+      0x40,0x01,0xc0, // 010000000000000011000000
433
+      0x40,0x00,0x80, // 010000000000000010000000
434
+      0x40,0x00,0x00, // 010000000000000000000000
435
+      0x40,0x00,0x00, // 010000000000000000000000
436
+      0x60,0x00,0x00, // 011000000000000000000000
437
+      0x20,0x00,0x00, // 001000000000000000000000
438
+      0x10,0x00,0x00, // 000100000000000000000000
439
+      0x0c,0x0c,0x00, // 000011000000110000000000
440
+      0x07,0xf8,0x00  // 000001111111100000000000
441
+    };
442
+
443
+    const unsigned char ccw_bmp[] PROGMEM = { //AVR-GCC, WinAVR
444
+      0x01,0xfe,0x00, // 000000011111111000000000
445
+      0x03,0x03,0x00, // 000000110000001100000000
446
+      0x04,0x00,0x80, // 000001000000000010000000
447
+      0x08,0x00,0x40, // 000010000000000001000000
448
+      0x18,0x00,0x60, // 000110000000000001100000
449
+      0x10,0x00,0x20, // 000100000000000000100000
450
+      0x7c,0x00,0x20, // 011111000000000000100000
451
+      0x38,0x00,0x20, // 001110000000000000100000
452
+      0x10,0x00,0x20, // 000100000000000000100000
453
+      0x00,0x00,0x20, // 000000000000000000100000
454
+      0x00,0x00,0x20, // 000000000000000000100000
455
+      0x00,0x00,0x60, // 000000000000000001100000
456
+      0x00,0x00,0x40, // 000000000000000001000000
457
+      0x00,0x00,0x80, // 000000000000000010000000
458
+      0x03,0x03,0x00, // 000000110000001100000000
459
+      0x01,0xfe,0x00  // 000000011111111000000000
460
+    };
461
+
462
+
463
+    const unsigned char up_arrow_bmp[] PROGMEM = { //AVR-GCC, WinAVR
464
+      0x06,0x00, // 000001100000
465
+      0x0F,0x00, // 000011110000
466
+      0x1F,0x80, // 000111111000
467
+      0x3F,0xC0, // 001111111100
468
+      0x06,0x00, // 000001100000
469
+      0x06,0x00, // 000001100000
470
+      0x06,0x00, // 000001100000
471
+      0x06,0x00, // 000001100000
472
+      0x06,0x00, // 000001100000
473
+      0x06,0x00, // 000001100000
474
+      0x06,0x00, // 000001100000
475
+      0x06,0x00, // 000001100000
476
+      0x06,0x00  // 000001100000
477
+    };
478
+
479
+    const unsigned char down_arrow_bmp[] PROGMEM = { //AVR-GCC, WinAVR
480
+      0x06,0x00, // 000001100000
481
+      0x06,0x00, // 000001100000
482
+      0x06,0x00, // 000001100000
483
+      0x06,0x00, // 000001100000
484
+      0x06,0x00, // 000001100000
485
+      0x06,0x00, // 000001100000
486
+      0x06,0x00, // 000001100000
487
+      0x06,0x00, // 000001100000
488
+      0x06,0x00, // 000001100000
489
+      0x3F,0xC0, // 001111111100
490
+      0x1F,0x80, // 000111111000
491
+      0x0F,0x00, // 000011110000
492
+      0x06,0x00  // 000001100000
493
+    };
494
+
495
+    const unsigned char offset_bedline_bmp[] PROGMEM = { //AVR-GCC, WinAVR
496
+      0xFF,0xFF,0xFF // 111111111111111111111111
497
+    };
498
+
499
+    const unsigned char nozzle_bmp[] PROGMEM = { //AVR-GCC, WinAVR
500
+      0x7F,0x80, // 0111111110000000
501
+      0xFF,0xC0, // 1111111111000000
502
+      0xFF,0xC0, // 1111111111000000
503
+      0xFF,0xC0, // 1111111111000000
504
+      0x7F,0x80, // 0111111110000000
505
+      0x7F,0x80, // 0111111110000000
506
+      0xFF,0xC0, // 1111111111000000
507
+      0xFF,0xC0, // 1111111111000000
508
+      0xFF,0xC0, // 1111111111000000
509
+      0x3F,0x00, // 0011111100000000
510
+      0x1E,0x00, // 0001111000000000
511
+      0x0C,0x00  // 0000110000000000
512
+    };
513
+  #endif // BABYSTEP_ZPROBE_GFX_OVERLAY
422 514
 #endif // HAS_TEMP_BED

+ 151
- 0
Marlin/dogm_font_data_ISO10646_SK.h View File

@@ -0,0 +1,151 @@
1
+/*
2
+  Fontname: ISO10646_SK
3
+  Copyright: A. Hardtung, modified by Roman Moravcik
4
+  Capital A Height: 7, '1' Height: 7
5
+  Calculated Max Values w= 6 h= 9 x= 2 y= 7 dx= 6 dy= 0 ascent= 8 len= 9
6
+  Font Bounding box     w= 6 h= 9 x= 0 y=-2
7
+  Calculated Min Values           x= 0 y=-1 dx= 0 dy= 0
8
+  Pure Font   ascent = 7 descent=-1
9
+  X Font      ascent = 7 descent=-1
10
+  Max Font    ascent = 8 descent=-1
11
+*/
12
+#include <U8glib.h>
13
+const u8g_fntpgm_uint8_t ISO10646_SK[2203] U8G_SECTION(".progmem.ISO10646_SK") = {
14
+  0,6,9,0,254,7,1,146,3,33,32,255,255,8,255,7,
15
+  255,0,0,0,6,0,0,1,7,7,6,2,0,128,128,128,
16
+  128,128,0,128,3,2,2,6,1,5,160,160,5,7,7,6,
17
+  0,0,80,80,248,80,248,80,80,5,7,7,6,0,0,32,
18
+  120,160,112,40,240,32,5,7,7,6,0,0,192,200,16,32,
19
+  64,152,24,5,7,7,6,0,0,96,144,160,64,168,144,104,
20
+  2,3,3,6,1,4,192,64,128,3,7,7,6,1,0,32,
21
+  64,128,128,128,64,32,3,7,7,6,1,0,128,64,32,32,
22
+  32,64,128,5,5,5,6,0,1,32,168,112,168,32,5,5,
23
+  5,6,0,1,32,32,248,32,32,2,3,3,6,2,255,192,
24
+  64,128,5,1,1,6,0,3,248,2,2,2,6,2,0,192,
25
+  192,5,5,5,6,0,1,8,16,32,64,128,5,7,7,6,
26
+  0,0,112,136,136,136,136,136,112,3,7,7,6,1,0,64,
27
+  192,64,64,64,64,224,5,7,7,6,0,0,112,136,8,112,
28
+  128,128,248,5,7,7,6,0,0,248,16,32,16,8,8,240,
29
+  5,7,7,6,0,0,16,48,80,144,248,16,16,5,7,7,
30
+  6,0,0,248,128,240,8,8,136,112,5,7,7,6,0,0,
31
+  112,128,128,240,136,136,112,5,7,7,6,0,0,248,8,16,
32
+  32,32,32,32,5,7,7,6,0,0,112,136,136,112,136,136,
33
+  112,5,7,7,6,0,0,112,136,136,120,8,8,112,2,5,
34
+  5,6,2,0,192,192,0,192,192,2,6,6,6,2,255,192,
35
+  192,0,192,64,128,4,7,7,6,0,0,16,32,64,128,64,
36
+  32,16,5,3,3,6,0,2,248,0,248,4,7,7,6,1,
37
+  0,128,64,32,16,32,64,128,5,7,7,6,0,0,112,136,
38
+  8,16,32,0,32,5,7,7,6,0,0,112,136,8,104,168,
39
+  168,112,5,7,7,6,0,0,112,136,136,248,136,136,136,5,
40
+  7,7,6,0,0,240,136,136,240,136,136,240,5,7,7,6,
41
+  0,0,112,136,128,128,128,136,112,5,7,7,6,0,0,240,
42
+  136,136,136,136,136,240,5,7,7,6,0,0,248,128,128,240,
43
+  128,128,248,5,7,7,6,0,0,248,128,128,240,128,128,128,
44
+  5,7,7,6,0,0,112,136,128,184,136,136,112,5,7,7,
45
+  6,0,0,136,136,136,248,136,136,136,1,7,7,6,2,0,
46
+  128,128,128,128,128,128,128,5,7,7,6,0,0,56,16,16,
47
+  16,16,144,96,5,7,7,6,0,0,136,144,160,192,160,144,
48
+  136,5,7,7,6,0,0,128,128,128,128,128,128,248,5,7,
49
+  7,6,0,0,136,216,168,136,136,136,136,5,7,7,6,0,
50
+  0,136,136,200,168,152,136,136,5,7,7,6,0,0,112,136,
51
+  136,136,136,136,112,5,7,7,6,0,0,240,136,136,240,128,
52
+  128,128,5,7,7,6,0,0,112,136,136,136,168,144,104,5,
53
+  7,7,6,0,0,240,136,136,240,160,144,136,5,7,7,6,
54
+  0,0,120,128,128,112,8,8,240,5,7,7,6,0,0,248,
55
+  32,32,32,32,32,32,5,7,7,6,0,0,136,136,136,136,
56
+  136,136,112,5,7,7,6,0,0,136,136,136,136,136,80,32,
57
+  5,7,7,6,0,0,136,136,136,136,136,168,80,5,7,7,
58
+  6,0,0,136,136,80,32,80,136,136,5,7,7,6,0,0,
59
+  136,136,136,80,32,32,32,5,7,7,6,0,0,248,8,16,
60
+  32,64,128,248,3,7,7,6,1,0,224,128,128,128,128,128,
61
+  224,5,5,5,6,0,1,128,64,32,16,8,3,7,7,6,
62
+  1,0,224,32,32,32,32,32,224,5,3,3,6,0,4,32,
63
+  80,136,5,1,1,6,0,0,248,2,2,2,6,2,5,128,
64
+  64,5,5,5,6,0,0,112,8,120,136,120,5,7,7,6,
65
+  0,0,128,128,176,200,136,136,240,5,5,5,6,0,0,112,
66
+  128,128,136,112,5,7,7,6,0,0,8,8,104,152,136,136,
67
+  120,5,5,5,6,0,0,112,136,248,128,112,5,7,7,6,
68
+  0,0,48,72,224,64,64,64,64,5,6,6,6,0,255,112,
69
+  136,136,120,8,112,5,7,7,6,0,0,128,128,176,200,136,
70
+  136,136,1,7,7,6,2,0,128,0,128,128,128,128,128,3,
71
+  8,8,6,1,255,32,0,32,32,32,32,160,64,4,7,7,
72
+  6,0,0,128,128,144,160,192,160,144,3,7,7,6,1,0,
73
+  192,64,64,64,64,64,224,5,5,5,6,0,0,208,168,168,
74
+  168,168,5,5,5,6,0,0,176,200,136,136,136,5,5,5,
75
+  6,0,0,112,136,136,136,112,5,6,6,6,0,255,240,136,
76
+  136,240,128,128,5,6,6,6,0,255,120,136,136,120,8,8,
77
+  5,5,5,6,0,0,176,200,128,128,128,5,5,5,6,0,
78
+  0,112,128,112,8,240,4,7,7,6,0,0,64,64,224,64,
79
+  64,64,48,5,5,5,6,0,0,136,136,136,152,104,5,5,
80
+  5,6,0,0,136,136,136,80,32,5,5,5,6,0,0,136,
81
+  136,168,168,80,5,5,5,6,0,0,136,80,32,80,136,5,
82
+  6,6,6,0,255,136,136,136,120,8,112,5,5,5,6,0,
83
+  0,248,16,32,64,248,3,7,7,6,1,0,32,64,64,128,
84
+  64,64,32,1,7,7,6,2,0,128,128,128,128,128,128,128,
85
+  3,7,7,6,1,0,128,64,64,32,64,64,128,5,2,2,
86
+  6,0,2,104,144,0,0,0,6,0,0,5,8,8,6,0,
87
+  0,16,32,112,136,136,248,136,136,5,8,8,6,0,0,80,
88
+  0,112,136,136,248,136,136,5,8,8,6,0,0,8,16,248,
89
+  128,128,240,128,248,3,8,8,6,1,0,32,64,224,64,64,
90
+  64,64,224,5,8,8,6,0,0,16,32,112,136,136,136,136,
91
+  112,5,8,8,6,0,0,32,80,112,136,136,136,136,112,5,
92
+  8,8,6,0,0,16,32,136,136,136,136,136,112,5,8,8,
93
+  6,0,0,16,32,136,136,80,32,32,32,5,8,8,6,0,
94
+  0,16,32,0,112,8,120,136,120,5,7,7,6,0,0,80,
95
+  0,112,8,120,136,120,5,8,8,6,0,0,16,32,0,112,
96
+  136,248,128,112,2,8,8,6,2,0,64,128,0,128,128,128,
97
+  128,128,5,8,8,6,0,0,16,32,0,112,136,136,136,112,
98
+  5,8,8,6,0,0,32,80,0,112,136,136,136,112,5,8,
99
+  8,6,0,0,16,32,0,136,136,136,152,104,5,9,9,6,
100
+  0,255,16,32,0,136,136,136,120,8,112,5,8,8,6,0,
101
+  0,80,32,112,136,128,128,136,112,5,8,8,6,0,0,80,
102
+  32,0,112,128,128,136,112,5,8,8,6,0,0,80,32,240,
103
+  136,136,136,136,240,6,8,8,6,0,0,4,20,24,112,144,
104
+  144,144,112,5,8,8,6,0,0,16,32,128,128,128,128,128,
105
+  248,3,8,8,6,1,0,32,64,0,192,64,64,64,224,5,
106
+  8,8,6,0,0,16,144,160,128,128,128,128,248,5,8,8,
107
+  6,1,0,8,200,80,64,64,64,64,224,5,8,8,6,0,
108
+  0,80,32,136,200,168,152,136,136,5,8,8,6,0,0,80,
109
+  32,0,176,200,136,136,136,5,8,8,6,0,0,16,32,240,
110
+  136,240,160,144,136,5,8,8,6,0,0,16,32,0,176,200,
111
+  128,128,128,5,8,8,6,0,0,80,32,120,128,128,112,8,
112
+  240,5,8,8,6,0,0,80,32,0,112,128,112,8,240,5,
113
+  8,8,6,0,0,80,32,248,32,32,32,32,32,6,8,8,
114
+  6,0,0,4,68,72,224,64,64,64,48,5,8,8,6,0,
115
+  0,80,32,248,8,48,64,128,248,5,8,8,6,0,0,80,
116
+  32,0,248,16,32,64,248,0,0,0,6,0,0,0,0,0,
117
+  6,0,0,0,0,0,6,0,0,0,0,0,6,0,0,0,
118
+  0,0,6,0,0,0,0,0,6,0,0,0,0,0,6,0,
119
+  0,0,0,0,6,0,0,0,0,0,6,0,0,0,0,0,
120
+  6,0,0,0,0,0,6,0,0,0,0,0,6,0,0,0,
121
+  0,0,6,0,0,0,0,0,6,0,0,0,0,0,6,0,
122
+  0,0,0,0,6,0,0,0,0,0,6,0,0,0,0,0,
123
+  6,0,0,0,0,0,6,0,0,0,0,0,6,0,0,0,
124
+  0,0,6,0,0,0,0,0,6,0,0,0,0,0,6,0,
125
+  0,0,0,0,6,0,0,0,0,0,6,0,0,0,0,0,
126
+  6,0,0,0,0,0,6,0,0,0,0,0,6,0,0,0,
127
+  0,0,6,0,0,0,0,0,6,0,0,0,0,0,6,0,
128
+  0,0,0,0,6,0,0,0,0,0,6,0,0,0,0,0,
129
+  6,0,0,0,0,0,6,0,0,0,0,0,6,0,0,0,
130
+  0,0,6,0,0,0,0,0,6,0,0,0,0,0,6,0,
131
+  0,0,0,0,6,0,0,0,0,0,6,0,0,0,0,0,
132
+  6,0,0,0,0,0,6,0,0,0,0,0,6,0,0,0,
133
+  0,0,6,0,0,0,0,0,6,0,0,0,0,0,6,0,
134
+  0,0,0,0,6,0,0,0,0,0,6,0,0,0,0,0,
135
+  6,0,0,0,0,0,6,0,0,0,0,0,6,0,0,0,
136
+  0,0,6,0,0,0,0,0,6,0,0,0,0,0,6,0,
137
+  0,0,0,0,6,0,0,0,0,0,6,0,0,0,0,0,
138
+  6,0,0,0,0,0,6,0,0,0,0,0,6,0,0,0,
139
+  0,0,6,0,0,0,0,0,6,0,0,0,0,0,6,0,
140
+  0,0,0,0,6,0,0,0,0,0,6,0,0,0,0,0,
141
+  6,0,0,0,0,0,6,0,0,0,0,0,6,0,0,0,
142
+  0,0,6,0,0,0,0,0,6,0,0,0,0,0,6,0,
143
+  0,0,0,0,6,0,0,0,0,0,6,0,0,0,0,0,
144
+  6,0,0,0,0,0,6,0,0,0,0,0,6,0,0,0,
145
+  0,0,6,0,0,0,0,0,6,0,0,0,0,0,6,0,
146
+  0,0,0,0,6,0,0,0,0,0,6,0,0,0,0,0,
147
+  6,0,0,0,0,0,6,0,0,0,0,0,6,0,0,0,
148
+  0,0,6,0,0,0,0,0,6,0,0,0,0,0,6,0,
149
+  0,0,0,0,6,0,0,0,0,0,6,0,0,0,0,0,
150
+  6,0,0,0,0,0,6,0,0,0,0,0,6,0,0,0,
151
+  0,0,6,0,0,0,0,0,6,0,0};

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

@@ -107,8 +107,9 @@
107 107
  *
108 108
  * 250000 works in most cases, but you might try a lower speed if
109 109
  * you commonly experience drop-outs during host printing.
110
+ * You may try up to 1000000 to speed up SD file transfer.
110 111
  *
111
- * :[2400, 9600, 19200, 38400, 57600, 115200, 250000]
112
+ * :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000]
112 113
  */
113 114
 #define BAUDRATE 250000
114 115
 
@@ -779,6 +780,8 @@
779 780
 
780 781
 // @section homing
781 782
 
783
+//#define NO_MOTION_BEFORE_HOMING  // Inhibit movement until all axes have been homed
784
+
782 785
 //#define Z_HOMING_HEIGHT 4  // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
783 786
                              // Be sure you have this distance over your Z_MAX_POS in case.
784 787
 
@@ -975,9 +978,11 @@
975 978
 #if ENABLED(LCD_BED_LEVELING)
976 979
   #define MBL_Z_STEP 0.025    // Step size while manually probing Z axis.
977 980
   #define LCD_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
978
-  #define LEVEL_BED_CORNERS   // Add an option to move between corners
979 981
 #endif
980 982
 
983
+// Add a menu item to move between bed corners for manual bed adjustment
984
+//#define LEVEL_BED_CORNERS
985
+
981 986
 /**
982 987
  * Commands to execute at the end of G29 probing.
983 988
  * Useful to retract or move the Z probe out of the way.
@@ -1218,7 +1223,7 @@
1218 1223
  *  - Click the controller to view the LCD menu
1219 1224
  *  - The LCD will display Japanese, Western, or Cyrillic text
1220 1225
  *
1221
- * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
1226
+ * See http://marlinfw.org/docs/development/lcd_language.html
1222 1227
  *
1223 1228
  * :['JAPANESE', 'WESTERN', 'CYRILLIC']
1224 1229
  */
@@ -1518,6 +1523,35 @@
1518 1523
 //
1519 1524
 //#define OLED_PANEL_TINYBOY2
1520 1525
 
1526
+//
1527
+// Makeboard 3D Printer Parts 3D Printer Mini Display 1602 Mini Controller
1528
+// https://www.aliexpress.com/item/Micromake-Makeboard-3D-Printer-Parts-3D-Printer-Mini-Display-1602-Mini-Controller-Compatible-with-Ramps-1/32765887917.html
1529
+//
1530
+//#define MAKEBOARD_MINI_2_LINE_DISPLAY_1602
1531
+
1532
+//
1533
+// MKS MINI12864 with graphic controller and SD support
1534
+// http://reprap.org/wiki/MKS_MINI_12864
1535
+//
1536
+//#define MKS_MINI_12864
1537
+
1538
+//
1539
+// Factory display for Creality CR-10
1540
+// https://www.aliexpress.com/item/Universal-LCD-12864-3D-Printer-Display-Screen-With-Encoder-For-CR-10-CR-7-Model/32833148327.html
1541
+//
1542
+// This is RAMPS-compatible using a single 10-pin connector.
1543
+// (For CR-10 owners who want to replace the Melzi Creality board but retain the display)
1544
+//
1545
+//#define CR10_STOCKDISPLAY
1546
+
1547
+//
1548
+// MKS OLED 1.3" 128 × 64 FULL GRAPHICS CONTROLLER
1549
+// http://reprap.org/wiki/MKS_12864OLED
1550
+//
1551
+// Tiny, but very sharp OLED display
1552
+//
1553
+//#define MKS_12864OLED
1554
+
1521 1555
 //=============================================================================
1522 1556
 //=============================== Extra Features ==============================
1523 1557
 //=============================================================================
@@ -1574,16 +1608,22 @@
1574 1608
  * Adds the M150 command to set the LED (or LED strip) color.
1575 1609
  * If pins are PWM capable (e.g., 4, 5, 6, 11) then a range of
1576 1610
  * luminance values can be set from 0 to 255.
1611
+ * For Neopixel LED overall brightness parameters is also available 
1577 1612
  *
1578 1613
  * *** CAUTION ***
1579 1614
  *  LED Strips require a MOFSET Chip between PWM lines and LEDs,
1580 1615
  *  as the Arduino cannot handle the current the LEDs will require.
1581 1616
  *  Failure to follow this precaution can destroy your Arduino!
1617
+ *  The Neopixel LED is 5V powered, but linear 5V regulator on Arduino
1618
+ *  cannot handle such current, separate 5V power supply must be used
1582 1619
  * *** CAUTION ***
1583 1620
  *
1621
+ * LED type. This options are mutualy exclusive. Uncomment only one.
1622
+ *
1584 1623
  */
1585 1624
 //#define RGB_LED
1586 1625
 //#define RGBW_LED
1626
+
1587 1627
 #if ENABLED(RGB_LED) || ENABLED(RGBW_LED)
1588 1628
   #define RGB_LED_R_PIN 34
1589 1629
   #define RGB_LED_G_PIN 43
@@ -1592,11 +1632,14 @@
1592 1632
 #endif
1593 1633
 
1594 1634
 // Support for Adafruit Neopixel LED driver
1595
-//#define NEOPIXEL_RGBW_LED
1596
-#if ENABLED(NEOPIXEL_RGBW_LED)
1597
-  #define NEOPIXEL_PIN    4       // D4 (EXP2-5 on Printrboard)
1598
-  #define NEOPIXEL_PIXELS 3
1599
-  //#define NEOPIXEL_STARTUP_TEST // Cycle through colors at startup
1635
+//#define NEOPIXEL_LED
1636
+#if ENABLED(NEOPIXEL_LED)
1637
+  #define NEOPIXEL_TYPE   NEO_GRBW // NEO_GRBW / NEO_GRB - four/three channel driver type (definned in Adafruit_NeoPixel.h)
1638
+  #define NEOPIXEL_PIN    4        // LED driving pin on motherboard 4 => D4 (EXP2-5 on Printrboard) / 30 => PC7 (EXP3-13 on Rumba)
1639
+  #define NEOPIXEL_PIXELS 30       // Number of LEDs on strip
1640
+  #define NEOPIXEL_IS_SEQUENTIAL   // Sequent display for temperature change - LED by LED. Comment out for change all LED at time
1641
+  #define NEOPIXEL_BRIGHTNESS 127  // Initial brightness 0-255
1642
+  //#define NEOPIXEL_STARTUP_TEST  // Cycle through colors at startup
1600 1643
 #endif
1601 1644
 
1602 1645
 /**

+ 52
- 39
Marlin/example_configurations/AlephObjects/TAZ4/Configuration_adv.h View File

@@ -222,7 +222,7 @@
222 222
 
223 223
 /**
224 224
  * Part-Cooling Fan Multiplexer
225
- * 
225
+ *
226 226
  * This feature allows you to digitally multiplex the fan output.
227 227
  * The multiplexer is automatically switched at tool-change.
228 228
  * Set FANMUX[012]_PINs below for up to 2, 4, or 8 multiplexed fans.
@@ -510,7 +510,7 @@
510 510
 
511 511
   // SD Card Sorting options
512 512
   #if ENABLED(SDCARD_SORT_ALPHA)
513
-    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256).
513
+    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256). Costs 27 bytes each.
514 514
     #define FOLDER_SORTING     -1     // -1=above  0=none  1=below
515 515
     #define SDSORT_GCODE       false  // Allow turning sorting on/off with LCD and M34 g-code.
516 516
     #define SDSORT_USES_RAM    false  // Pre-allocate a static array for faster pre-sorting.
@@ -601,31 +601,19 @@
601 601
  */
602 602
 //#define BABYSTEPPING
603 603
 #if ENABLED(BABYSTEPPING)
604
-  #define BABYSTEP_XY              // Also enable X/Y Babystepping. Not supported on DELTA!
605
-  #define BABYSTEP_INVERT_Z false  // Change if Z babysteps should go the other way
606
-  #define BABYSTEP_MULTIPLICATOR 1 // Babysteps are very small. Increase for faster motion.
607
-  //#define BABYSTEP_ZPROBE_OFFSET // Enable to combine M851 and Babystepping
604
+  //#define BABYSTEP_XY              // Also enable X/Y Babystepping. Not supported on DELTA!
605
+  #define BABYSTEP_INVERT_Z false    // Change if Z babysteps should go the other way
606
+  #define BABYSTEP_MULTIPLICATOR 100 // Babysteps are very small. Increase for faster motion.
607
+  //#define BABYSTEP_ZPROBE_OFFSET   // Enable to combine M851 and Babystepping
608 608
   //#define DOUBLECLICK_FOR_Z_BABYSTEPPING // Double-click on the Status Screen for Z Babystepping.
609 609
   #define DOUBLECLICK_MAX_INTERVAL 1250 // Maximum interval between clicks, in milliseconds.
610 610
                                         // Note: Extra time may be added to mitigate controller latency.
611
+  //#define BABYSTEP_ZPROBE_GFX_OVERLAY // Enable graphical overlay on Z-offset editor
612
+  //#define BABYSTEP_ZPROBE_GFX_REVERSE // Reverses the direction of the CW/CCW indicators
611 613
 #endif
612 614
 
613 615
 // @section extruder
614 616
 
615
-// extruder advance constant (s2/mm3)
616
-//
617
-// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
618
-//
619
-// Hooke's law says:    force = k * distance
620
-// Bernoulli's principle says:  v ^ 2 / 2 + g . h + pressure / density = constant
621
-// so: v ^ 2 is proportional to number of steps we advance the extruder
622
-//#define ADVANCE
623
-
624
-#if ENABLED(ADVANCE)
625
-  #define EXTRUDER_ADVANCE_K .0
626
-  #define D_FILAMENT 2.85
627
-#endif
628
-
629 617
 /**
630 618
  * Implementation of linear pressure control
631 619
  *
@@ -742,7 +730,7 @@
742 730
 #define MAX_CMD_SIZE 96
743 731
 #define BUFSIZE 4
744 732
 
745
-// Transfer Buffer Size
733
+// Transmission to Host Buffer Size
746 734
 // To save 386 bytes of PROGMEM (and TX_BUFFER_SIZE+3 bytes of RAM) set to 0.
747 735
 // To buffer a simple "ok" you need 4 bytes.
748 736
 // For ADVANCED_OK (M105) you need 32 bytes.
@@ -751,6 +739,28 @@
751 739
 // :[0, 2, 4, 8, 16, 32, 64, 128, 256]
752 740
 #define TX_BUFFER_SIZE 0
753 741
 
742
+// Host Receive Buffer Size
743
+// Without XON/XOFF flow control (see SERIAL_XON_XOFF below) 32 bytes should be enough.
744
+// To use flow control, set this buffer size to at least 1024 bytes.
745
+// :[0, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048]
746
+//#define RX_BUFFER_SIZE 1024
747
+
748
+#if RX_BUFFER_SIZE >= 1024
749
+  // Enable to have the controller send XON/XOFF control characters to
750
+  // the host to signal the RX buffer is becoming full.
751
+  //#define SERIAL_XON_XOFF
752
+#endif
753
+
754
+#if ENABLED(SDSUPPORT)
755
+  // Enable this option to collect and display the maximum
756
+  // RX queue usage after transferring a file to SD.
757
+  //#define SERIAL_STATS_MAX_RX_QUEUED
758
+
759
+  // Enable this option to collect and display the number
760
+  // of dropped bytes after a file transfer to SD.
761
+  //#define SERIAL_STATS_DROPPED_RX
762
+#endif
763
+
754 764
 // Enable an emergency-command parser to intercept certain commands as they
755 765
 // enter the serial receive buffer, so they cannot be blocked.
756 766
 // Currently handles M108, M112, M410
@@ -1274,6 +1284,7 @@
1274 1284
 #if ENABLED(CUSTOM_USER_MENUS)
1275 1285
   #define USER_SCRIPT_DONE "M117 User Script Done"
1276 1286
   #define USER_SCRIPT_AUDIBLE_FEEDBACK
1287
+  //#define USER_SCRIPT_RETURN  // Return to status screen after a script
1277 1288
 
1278 1289
   #define USER_DESC_1 "Home & UBL Info"
1279 1290
   #define USER_GCODE_1 "G28\nG29 W"
@@ -1383,29 +1394,31 @@
1383 1394
 #endif // I2C_POSITION_ENCODERS
1384 1395
 
1385 1396
 /**
1386
-  * Debug LED's using an 8x8 LED Matrix driven by a Max7219 chip.   Fully assembled versions are available on
1387
-  * eBay for under $2.00 (including shipping) and only require 3 signal wires.
1388
-  *
1389
-  * Check out auctions similar to this: https://www.ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313&_nkw=332349290049&_sacat=0
1390
-  */
1391
-
1397
+ * MAX7219 Debug Matrix
1398
+ *
1399
+ * Add support for a low-cost 8x8 LED Matrix based on the Max7219 chip, which can be used as a status
1400
+ * display. Requires 3 signal wires. Some useful debug options are included to demonstrate its usage.
1401
+ *
1402
+ * Fully assembled MAX7219 boards can be found on the internet for under $2(US).
1403
+ * For example, see https://www.ebay.com/sch/i.html?_nkw=332349290049
1404
+ */
1392 1405
 //#define MAX7219_DEBUG
1393 1406
 #if ENABLED(MAX7219_DEBUG)
1394
-  #define Max7219_clock   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display
1395
-  #define Max7219_data_in 57  // 78 on Re-ARM
1396
-  #define Max7219_load    44  // 79 on Re-ARM
1407
+  #define MAX7219_CLK_PIN   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display
1408
+  #define MAX7219_DIN_PIN   57  // 78 on Re-ARM
1409
+  #define MAX7219_LOAD_PIN  44  // 79 on Re-ARM
1397 1410
 
1398
-  /*
1399
-   * These are sample debug features that can be turned on and configured for your use.
1400
-   * The developer will need to manage the use of the various LED's in the 8x8 matrix to avoid conflicts.
1411
+  /**
1412
+   * Sample debug features
1413
+   * If you add more debug displays, be careful to avoid conflicts!
1401 1414
    */
1402
-  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix from idle() routine if firmware is functioning
1403
-  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Display row position of stepper queue head on this line and the next line of LED matrix
1404
-  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Display row position of stepper queue tail on this line and the next line of LED matrix
1415
+  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix to show that the firmware is functioning
1416
+  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Show the stepper queue head position on this and the next LED matrix row
1417
+  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Show the stepper queue tail position on this and the next LED matrix row
1405 1418
 
1406
-  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Display row position of stepper queue depth on this line and the next line of LED matrix
1407
-                                         // If you have stuttering on your Delta printer, this option may help you understand how
1408
-                                         // various tweaks you make to your configuration are affecting the printer.
1419
+  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Show the current stepper queue depth on this and the next LED matrix row
1420
+                                         // If you experience stuttering, reboots, etc. this option can reveal how
1421
+                                         // tweaks made to the configuration are affecting the printer in real-time.
1409 1422
 #endif
1410 1423
 
1411 1424
 #endif // CONFIGURATION_ADV_H

+ 51
- 8
Marlin/example_configurations/AliExpress/CL-260/Configuration.h View File

@@ -107,8 +107,9 @@
107 107
  *
108 108
  * 250000 works in most cases, but you might try a lower speed if
109 109
  * you commonly experience drop-outs during host printing.
110
+ * You may try up to 1000000 to speed up SD file transfer.
110 111
  *
111
- * :[2400, 9600, 19200, 38400, 57600, 115200, 250000]
112
+ * :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000]
112 113
  */
113 114
 #define BAUDRATE 250000
114 115
 
@@ -759,6 +760,8 @@
759 760
 
760 761
 // @section homing
761 762
 
763
+//#define NO_MOTION_BEFORE_HOMING  // Inhibit movement until all axes have been homed
764
+
762 765
 //#define Z_HOMING_HEIGHT 4  // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
763 766
                              // Be sure you have this distance over your Z_MAX_POS in case.
764 767
 
@@ -955,9 +958,11 @@
955 958
 #if ENABLED(LCD_BED_LEVELING)
956 959
   #define MBL_Z_STEP 0.025    // Step size while manually probing Z axis.
957 960
   #define LCD_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
958
-  #define LEVEL_BED_CORNERS   // Add an option to move between corners
959 961
 #endif
960 962
 
963
+// Add a menu item to move between bed corners for manual bed adjustment
964
+//#define LEVEL_BED_CORNERS
965
+
961 966
 /**
962 967
  * Commands to execute at the end of G29 probing.
963 968
  * Useful to retract or move the Z probe out of the way.
@@ -1198,7 +1203,7 @@
1198 1203
  *  - Click the controller to view the LCD menu
1199 1204
  *  - The LCD will display Japanese, Western, or Cyrillic text
1200 1205
  *
1201
- * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
1206
+ * See http://marlinfw.org/docs/development/lcd_language.html
1202 1207
  *
1203 1208
  * :['JAPANESE', 'WESTERN', 'CYRILLIC']
1204 1209
  */
@@ -1498,6 +1503,35 @@
1498 1503
 //
1499 1504
 //#define OLED_PANEL_TINYBOY2
1500 1505
 
1506
+//
1507
+// Makeboard 3D Printer Parts 3D Printer Mini Display 1602 Mini Controller
1508
+// https://www.aliexpress.com/item/Micromake-Makeboard-3D-Printer-Parts-3D-Printer-Mini-Display-1602-Mini-Controller-Compatible-with-Ramps-1/32765887917.html
1509
+//
1510
+//#define MAKEBOARD_MINI_2_LINE_DISPLAY_1602
1511
+
1512
+//
1513
+// MKS MINI12864 with graphic controller and SD support
1514
+// http://reprap.org/wiki/MKS_MINI_12864
1515
+//
1516
+//#define MKS_MINI_12864
1517
+
1518
+//
1519
+// Factory display for Creality CR-10
1520
+// https://www.aliexpress.com/item/Universal-LCD-12864-3D-Printer-Display-Screen-With-Encoder-For-CR-10-CR-7-Model/32833148327.html
1521
+//
1522
+// This is RAMPS-compatible using a single 10-pin connector.
1523
+// (For CR-10 owners who want to replace the Melzi Creality board but retain the display)
1524
+//
1525
+//#define CR10_STOCKDISPLAY
1526
+
1527
+//
1528
+// MKS OLED 1.3" 128 × 64 FULL GRAPHICS CONTROLLER
1529
+// http://reprap.org/wiki/MKS_12864OLED
1530
+//
1531
+// Tiny, but very sharp OLED display
1532
+//
1533
+//#define MKS_12864OLED
1534
+
1501 1535
 //=============================================================================
1502 1536
 //=============================== Extra Features ==============================
1503 1537
 //=============================================================================
@@ -1554,16 +1588,22 @@
1554 1588
  * Adds the M150 command to set the LED (or LED strip) color.
1555 1589
  * If pins are PWM capable (e.g., 4, 5, 6, 11) then a range of
1556 1590
  * luminance values can be set from 0 to 255.
1591
+ * For Neopixel LED overall brightness parameters is also available 
1557 1592
  *
1558 1593
  * *** CAUTION ***
1559 1594
  *  LED Strips require a MOFSET Chip between PWM lines and LEDs,
1560 1595
  *  as the Arduino cannot handle the current the LEDs will require.
1561 1596
  *  Failure to follow this precaution can destroy your Arduino!
1597
+ *  The Neopixel LED is 5V powered, but linear 5V regulator on Arduino
1598
+ *  cannot handle such current, separate 5V power supply must be used
1562 1599
  * *** CAUTION ***
1563 1600
  *
1601
+ * LED type. This options are mutualy exclusive. Uncomment only one.
1602
+ *
1564 1603
  */
1565 1604
 //#define RGB_LED
1566 1605
 //#define RGBW_LED
1606
+
1567 1607
 #if ENABLED(RGB_LED) || ENABLED(RGBW_LED)
1568 1608
   #define RGB_LED_R_PIN 34
1569 1609
   #define RGB_LED_G_PIN 43
@@ -1572,11 +1612,14 @@
1572 1612
 #endif
1573 1613
 
1574 1614
 // Support for Adafruit Neopixel LED driver
1575
-//#define NEOPIXEL_RGBW_LED
1576
-#if ENABLED(NEOPIXEL_RGBW_LED)
1577
-  #define NEOPIXEL_PIN    4       // D4 (EXP2-5 on Printrboard)
1578
-  #define NEOPIXEL_PIXELS 3
1579
-  //#define NEOPIXEL_STARTUP_TEST // Cycle through colors at startup
1615
+//#define NEOPIXEL_LED
1616
+#if ENABLED(NEOPIXEL_LED)
1617
+  #define NEOPIXEL_TYPE   NEO_GRBW // NEO_GRBW / NEO_GRB - four/three channel driver type (definned in Adafruit_NeoPixel.h)
1618
+  #define NEOPIXEL_PIN    4        // LED driving pin on motherboard 4 => D4 (EXP2-5 on Printrboard) / 30 => PC7 (EXP3-13 on Rumba)
1619
+  #define NEOPIXEL_PIXELS 30       // Number of LEDs on strip
1620
+  #define NEOPIXEL_IS_SEQUENTIAL   // Sequent display for temperature change - LED by LED. Comment out for change all LED at time
1621
+  #define NEOPIXEL_BRIGHTNESS 127  // Initial brightness 0-255
1622
+  //#define NEOPIXEL_STARTUP_TEST  // Cycle through colors at startup
1580 1623
 #endif
1581 1624
 
1582 1625
 /**

+ 51
- 8
Marlin/example_configurations/Anet/A6/Configuration.h View File

@@ -107,8 +107,9 @@
107 107
  *
108 108
  * 250000 works in most cases, but you might try a lower speed if
109 109
  * you commonly experience drop-outs during host printing.
110
+ * You may try up to 1000000 to speed up SD file transfer.
110 111
  *
111
- * :[2400, 9600, 19200, 38400, 57600, 115200, 250000]
112
+ * :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000]
112 113
  */
113 114
 #define BAUDRATE 115200
114 115
 
@@ -843,6 +844,8 @@
843 844
 
844 845
 // @section homing
845 846
 
847
+//#define NO_MOTION_BEFORE_HOMING  // Inhibit movement until all axes have been homed
848
+
846 849
 //#define Z_HOMING_HEIGHT 4  // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
847 850
                              // Be sure you have this distance over your Z_MAX_POS in case.
848 851
 
@@ -1098,9 +1101,11 @@
1098 1101
 #if ENABLED(LCD_BED_LEVELING)
1099 1102
   #define MBL_Z_STEP 0.025    // Step size while manually probing Z axis.
1100 1103
   #define LCD_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
1101
-  #define LEVEL_BED_CORNERS   // Add an option to move between corners
1102 1104
 #endif
1103 1105
 
1106
+// Add a menu item to move between bed corners for manual bed adjustment
1107
+//#define LEVEL_BED_CORNERS
1108
+
1104 1109
 /**
1105 1110
  * Commands to execute at the end of G29 probing.
1106 1111
  * Useful to retract or move the Z probe out of the way.
@@ -1355,7 +1360,7 @@
1355 1360
  *  - Click the controller to view the LCD menu
1356 1361
  *  - The LCD will display Japanese, Western, or Cyrillic text
1357 1362
  *
1358
- * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
1363
+ * See http://marlinfw.org/docs/development/lcd_language.html
1359 1364
  *
1360 1365
  * :['JAPANESE', 'WESTERN', 'CYRILLIC']
1361 1366
  */
@@ -1657,6 +1662,35 @@
1657 1662
 //
1658 1663
 //#define OLED_PANEL_TINYBOY2
1659 1664
 
1665
+//
1666
+// Makeboard 3D Printer Parts 3D Printer Mini Display 1602 Mini Controller
1667
+// https://www.aliexpress.com/item/Micromake-Makeboard-3D-Printer-Parts-3D-Printer-Mini-Display-1602-Mini-Controller-Compatible-with-Ramps-1/32765887917.html
1668
+//
1669
+//#define MAKEBOARD_MINI_2_LINE_DISPLAY_1602
1670
+
1671
+//
1672
+// MKS MINI12864 with graphic controller and SD support
1673
+// http://reprap.org/wiki/MKS_MINI_12864
1674
+//
1675
+//#define MKS_MINI_12864
1676
+
1677
+//
1678
+// Factory display for Creality CR-10
1679
+// https://www.aliexpress.com/item/Universal-LCD-12864-3D-Printer-Display-Screen-With-Encoder-For-CR-10-CR-7-Model/32833148327.html
1680
+//
1681
+// This is RAMPS-compatible using a single 10-pin connector.
1682
+// (For CR-10 owners who want to replace the Melzi Creality board but retain the display)
1683
+//
1684
+//#define CR10_STOCKDISPLAY
1685
+
1686
+//
1687
+// MKS OLED 1.3" 128 × 64 FULL GRAPHICS CONTROLLER
1688
+// http://reprap.org/wiki/MKS_12864OLED
1689
+//
1690
+// Tiny, but very sharp OLED display
1691
+//
1692
+//#define MKS_12864OLED
1693
+
1660 1694
 //=============================================================================
1661 1695
 //=============================== Extra Features ==============================
1662 1696
 //=============================================================================
@@ -1713,16 +1747,22 @@
1713 1747
  * Adds the M150 command to set the LED (or LED strip) color.
1714 1748
  * If pins are PWM capable (e.g., 4, 5, 6, 11) then a range of
1715 1749
  * luminance values can be set from 0 to 255.
1750
+ * For Neopixel LED overall brightness parameters is also available 
1716 1751
  *
1717 1752
  * *** CAUTION ***
1718 1753
  *  LED Strips require a MOFSET Chip between PWM lines and LEDs,
1719 1754
  *  as the Arduino cannot handle the current the LEDs will require.
1720 1755
  *  Failure to follow this precaution can destroy your Arduino!
1756
+ *  The Neopixel LED is 5V powered, but linear 5V regulator on Arduino
1757
+ *  cannot handle such current, separate 5V power supply must be used
1721 1758
  * *** CAUTION ***
1722 1759
  *
1760
+ * LED type. This options are mutualy exclusive. Uncomment only one.
1761
+ *
1723 1762
  */
1724 1763
 //#define RGB_LED
1725 1764
 //#define RGBW_LED
1765
+
1726 1766
 #if ENABLED(RGB_LED) || ENABLED(RGBW_LED)
1727 1767
   #define RGB_LED_R_PIN 34
1728 1768
   #define RGB_LED_G_PIN 43
@@ -1731,11 +1771,14 @@
1731 1771
 #endif
1732 1772
 
1733 1773
 // Support for Adafruit Neopixel LED driver
1734
-//#define NEOPIXEL_RGBW_LED
1735
-#if ENABLED(NEOPIXEL_RGBW_LED)
1736
-  #define NEOPIXEL_PIN    4       // D4 (EXP2-5 on Printrboard)
1737
-  #define NEOPIXEL_PIXELS 3
1738
-  //#define NEOPIXEL_STARTUP_TEST // Cycle through colors at startup
1774
+//#define NEOPIXEL_LED
1775
+#if ENABLED(NEOPIXEL_LED)
1776
+  #define NEOPIXEL_TYPE   NEO_GRBW // NEO_GRBW / NEO_GRB - four/three channel driver type (definned in Adafruit_NeoPixel.h)
1777
+  #define NEOPIXEL_PIN    4        // LED driving pin on motherboard 4 => D4 (EXP2-5 on Printrboard) / 30 => PC7 (EXP3-13 on Rumba)
1778
+  #define NEOPIXEL_PIXELS 30       // Number of LEDs on strip
1779
+  #define NEOPIXEL_IS_SEQUENTIAL   // Sequent display for temperature change - LED by LED. Comment out for change all LED at time
1780
+  #define NEOPIXEL_BRIGHTNESS 127  // Initial brightness 0-255
1781
+  //#define NEOPIXEL_STARTUP_TEST  // Cycle through colors at startup
1739 1782
 #endif
1740 1783
 
1741 1784
 /**

+ 52
- 39
Marlin/example_configurations/Anet/A6/Configuration_adv.h View File

@@ -222,7 +222,7 @@
222 222
 
223 223
 /**
224 224
  * Part-Cooling Fan Multiplexer
225
- * 
225
+ *
226 226
  * This feature allows you to digitally multiplex the fan output.
227 227
  * The multiplexer is automatically switched at tool-change.
228 228
  * Set FANMUX[012]_PINs below for up to 2, 4, or 8 multiplexed fans.
@@ -510,7 +510,7 @@
510 510
 
511 511
   // SD Card Sorting options
512 512
   #if ENABLED(SDCARD_SORT_ALPHA)
513
-    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256).
513
+    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256). Costs 27 bytes each.
514 514
     #define FOLDER_SORTING     -1     // -1=above  0=none  1=below
515 515
     #define SDSORT_GCODE       false  // Allow turning sorting on/off with LCD and M34 g-code.
516 516
     #define SDSORT_USES_RAM    false  // Pre-allocate a static array for faster pre-sorting.
@@ -601,31 +601,19 @@
601 601
  */
602 602
 //#define BABYSTEPPING
603 603
 #if ENABLED(BABYSTEPPING)
604
-  #define BABYSTEP_XY              // Also enable X/Y Babystepping. Not supported on DELTA!
605
-  #define BABYSTEP_INVERT_Z false  // Change if Z babysteps should go the other way
606
-  #define BABYSTEP_MULTIPLICATOR 1 // Babysteps are very small. Increase for faster motion.
607
-  //#define BABYSTEP_ZPROBE_OFFSET // Enable to combine M851 and Babystepping
604
+  //#define BABYSTEP_XY            // Also enable X/Y Babystepping. Not supported on DELTA!
605
+  #define BABYSTEP_INVERT_Z false    // Change if Z babysteps should go the other way
606
+  #define BABYSTEP_MULTIPLICATOR 100 // Babysteps are very small. Increase for faster motion.
607
+  //#define BABYSTEP_ZPROBE_OFFSET   // Enable to combine M851 and Babystepping
608 608
   //#define DOUBLECLICK_FOR_Z_BABYSTEPPING // Double-click on the Status Screen for Z Babystepping.
609 609
   #define DOUBLECLICK_MAX_INTERVAL 1250 // Maximum interval between clicks, in milliseconds.
610 610
                                         // Note: Extra time may be added to mitigate controller latency.
611
+  //#define BABYSTEP_ZPROBE_GFX_OVERLAY // Enable graphical overlay on Z-offset editor
612
+  //#define BABYSTEP_ZPROBE_GFX_REVERSE // Reverses the direction of the CW/CCW indicators
611 613
 #endif
612 614
 
613 615
 // @section extruder
614 616
 
615
-// extruder advance constant (s2/mm3)
616
-//
617
-// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
618
-//
619
-// Hooke's law says:    force = k * distance
620
-// Bernoulli's principle says:  v ^ 2 / 2 + g . h + pressure / density = constant
621
-// so: v ^ 2 is proportional to number of steps we advance the extruder
622
-//#define ADVANCE
623
-
624
-#if ENABLED(ADVANCE)
625
-  #define EXTRUDER_ADVANCE_K .0
626
-  #define D_FILAMENT 2.85
627
-#endif
628
-
629 617
 /**
630 618
  * Implementation of linear pressure control
631 619
  *
@@ -742,7 +730,7 @@
742 730
 #define MAX_CMD_SIZE 96
743 731
 #define BUFSIZE 4
744 732
 
745
-// Transfer Buffer Size
733
+// Transmission to Host Buffer Size
746 734
 // To save 386 bytes of PROGMEM (and TX_BUFFER_SIZE+3 bytes of RAM) set to 0.
747 735
 // To buffer a simple "ok" you need 4 bytes.
748 736
 // For ADVANCED_OK (M105) you need 32 bytes.
@@ -751,6 +739,28 @@
751 739
 // :[0, 2, 4, 8, 16, 32, 64, 128, 256]
752 740
 #define TX_BUFFER_SIZE 0
753 741
 
742
+// Host Receive Buffer Size
743
+// Without XON/XOFF flow control (see SERIAL_XON_XOFF below) 32 bytes should be enough.
744
+// To use flow control, set this buffer size to at least 1024 bytes.
745
+// :[0, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048]
746
+//#define RX_BUFFER_SIZE 1024
747
+
748
+#if RX_BUFFER_SIZE >= 1024
749
+  // Enable to have the controller send XON/XOFF control characters to
750
+  // the host to signal the RX buffer is becoming full.
751
+  //#define SERIAL_XON_XOFF
752
+#endif
753
+
754
+#if ENABLED(SDSUPPORT)
755
+  // Enable this option to collect and display the maximum
756
+  // RX queue usage after transferring a file to SD.
757
+  //#define SERIAL_STATS_MAX_RX_QUEUED
758
+
759
+  // Enable this option to collect and display the number
760
+  // of dropped bytes after a file transfer to SD.
761
+  //#define SERIAL_STATS_DROPPED_RX
762
+#endif
763
+
754 764
 // Enable an emergency-command parser to intercept certain commands as they
755 765
 // enter the serial receive buffer, so they cannot be blocked.
756 766
 // Currently handles M108, M112, M410
@@ -1274,6 +1284,7 @@
1274 1284
 #if ENABLED(CUSTOM_USER_MENUS)
1275 1285
   #define USER_SCRIPT_DONE "M117 User Script Done"
1276 1286
   #define USER_SCRIPT_AUDIBLE_FEEDBACK
1287
+  //#define USER_SCRIPT_RETURN  // Return to status screen after a script
1277 1288
 
1278 1289
   #define USER_DESC_1 "Home & UBL Info"
1279 1290
   #define USER_GCODE_1 "G28\nG29 W"
@@ -1383,29 +1394,31 @@
1383 1394
 #endif // I2C_POSITION_ENCODERS
1384 1395
 
1385 1396
 /**
1386
-  * Debug LED's using an 8x8 LED Matrix driven by a Max7219 chip.   Fully assembled versions are available on
1387
-  * eBay for under $2.00 (including shipping) and only require 3 signal wires.
1388
-  *
1389
-  * Check out auctions similar to this: https://www.ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313&_nkw=332349290049&_sacat=0
1390
-  */
1391
-
1397
+ * MAX7219 Debug Matrix
1398
+ *
1399
+ * Add support for a low-cost 8x8 LED Matrix based on the Max7219 chip, which can be used as a status
1400
+ * display. Requires 3 signal wires. Some useful debug options are included to demonstrate its usage.
1401
+ *
1402
+ * Fully assembled MAX7219 boards can be found on the internet for under $2(US).
1403
+ * For example, see https://www.ebay.com/sch/i.html?_nkw=332349290049
1404
+ */
1392 1405
 //#define MAX7219_DEBUG
1393 1406
 #if ENABLED(MAX7219_DEBUG)
1394
-  #define Max7219_clock   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display
1395
-  #define Max7219_data_in 57  // 78 on Re-ARM
1396
-  #define Max7219_load    44  // 79 on Re-ARM
1407
+  #define MAX7219_CLK_PIN   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display
1408
+  #define MAX7219_DIN_PIN   57  // 78 on Re-ARM
1409
+  #define MAX7219_LOAD_PIN  44  // 79 on Re-ARM
1397 1410
 
1398
-  /*
1399
-   * These are sample debug features that can be turned on and configured for your use.
1400
-   * The developer will need to manage the use of the various LED's in the 8x8 matrix to avoid conflicts.
1411
+  /**
1412
+   * Sample debug features
1413
+   * If you add more debug displays, be careful to avoid conflicts!
1401 1414
    */
1402
-  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix from idle() routine if firmware is functioning
1403
-  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Display row position of stepper queue head on this line and the next line of LED matrix
1404
-  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Display row position of stepper queue tail on this line and the next line of LED matrix
1415
+  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix to show that the firmware is functioning
1416
+  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Show the stepper queue head position on this and the next LED matrix row
1417
+  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Show the stepper queue tail position on this and the next LED matrix row
1405 1418
 
1406
-  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Display row position of stepper queue depth on this line and the next line of LED matrix
1407
-                                         // If you have stuttering on your Delta printer, this option may help you understand how
1408
-                                         // various tweaks you make to your configuration are affecting the printer.
1419
+  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Show the current stepper queue depth on this and the next LED matrix row
1420
+                                         // If you experience stuttering, reboots, etc. this option can reveal how
1421
+                                         // tweaks made to the configuration are affecting the printer in real-time.
1409 1422
 #endif
1410 1423
 
1411 1424
 #endif // CONFIGURATION_ADV_H

+ 51
- 8
Marlin/example_configurations/Anet/A8/Configuration.h View File

@@ -107,8 +107,9 @@
107 107
  *
108 108
  * 250000 works in most cases, but you might try a lower speed if
109 109
  * you commonly experience drop-outs during host printing.
110
+ * You may try up to 1000000 to speed up SD file transfer.
110 111
  *
111
- * :[2400, 9600, 19200, 38400, 57600, 115200, 250000]
112
+ * :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000]
112 113
  */
113 114
 #define BAUDRATE 115200
114 115
 
@@ -765,6 +766,8 @@
765 766
 
766 767
 // @section homing
767 768
 
769
+//#define NO_MOTION_BEFORE_HOMING  // Inhibit movement until all axes have been homed
770
+
768 771
 //#define Z_HOMING_HEIGHT 4  // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
769 772
                              // Be sure you have this distance over your Z_MAX_POS in case.
770 773
 
@@ -961,9 +964,11 @@
961 964
 #if ENABLED(LCD_BED_LEVELING)
962 965
   #define MBL_Z_STEP 0.025    // Step size while manually probing Z axis.
963 966
   #define LCD_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
964
-  #define LEVEL_BED_CORNERS   // Add an option to move between corners
965 967
 #endif
966 968
 
969
+// Add a menu item to move between bed corners for manual bed adjustment
970
+//#define LEVEL_BED_CORNERS
971
+
967 972
 /**
968 973
  * Commands to execute at the end of G29 probing.
969 974
  * Useful to retract or move the Z probe out of the way.
@@ -1204,7 +1209,7 @@
1204 1209
  *  - Click the controller to view the LCD menu
1205 1210
  *  - The LCD will display Japanese, Western, or Cyrillic text
1206 1211
  *
1207
- * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
1212
+ * See http://marlinfw.org/docs/development/lcd_language.html
1208 1213
  *
1209 1214
  * :['JAPANESE', 'WESTERN', 'CYRILLIC']
1210 1215
  */
@@ -1506,6 +1511,35 @@
1506 1511
 //
1507 1512
 //#define OLED_PANEL_TINYBOY2
1508 1513
 
1514
+//
1515
+// Makeboard 3D Printer Parts 3D Printer Mini Display 1602 Mini Controller
1516
+// https://www.aliexpress.com/item/Micromake-Makeboard-3D-Printer-Parts-3D-Printer-Mini-Display-1602-Mini-Controller-Compatible-with-Ramps-1/32765887917.html
1517
+//
1518
+//#define MAKEBOARD_MINI_2_LINE_DISPLAY_1602
1519
+
1520
+//
1521
+// MKS MINI12864 with graphic controller and SD support
1522
+// http://reprap.org/wiki/MKS_MINI_12864
1523
+//
1524
+//#define MKS_MINI_12864
1525
+
1526
+//
1527
+// Factory display for Creality CR-10
1528
+// https://www.aliexpress.com/item/Universal-LCD-12864-3D-Printer-Display-Screen-With-Encoder-For-CR-10-CR-7-Model/32833148327.html
1529
+//
1530
+// This is RAMPS-compatible using a single 10-pin connector.
1531
+// (For CR-10 owners who want to replace the Melzi Creality board but retain the display)
1532
+//
1533
+//#define CR10_STOCKDISPLAY
1534
+
1535
+//
1536
+// MKS OLED 1.3" 128 × 64 FULL GRAPHICS CONTROLLER
1537
+// http://reprap.org/wiki/MKS_12864OLED
1538
+//
1539
+// Tiny, but very sharp OLED display
1540
+//
1541
+//#define MKS_12864OLED
1542
+
1509 1543
 //=============================================================================
1510 1544
 //=============================== Extra Features ==============================
1511 1545
 //=============================================================================
@@ -1562,16 +1596,22 @@
1562 1596
  * Adds the M150 command to set the LED (or LED strip) color.
1563 1597
  * If pins are PWM capable (e.g., 4, 5, 6, 11) then a range of
1564 1598
  * luminance values can be set from 0 to 255.
1599
+ * For Neopixel LED overall brightness parameters is also available 
1565 1600
  *
1566 1601
  * *** CAUTION ***
1567 1602
  *  LED Strips require a MOFSET Chip between PWM lines and LEDs,
1568 1603
  *  as the Arduino cannot handle the current the LEDs will require.
1569 1604
  *  Failure to follow this precaution can destroy your Arduino!
1605
+ *  The Neopixel LED is 5V powered, but linear 5V regulator on Arduino
1606
+ *  cannot handle such current, separate 5V power supply must be used
1570 1607
  * *** CAUTION ***
1571 1608
  *
1609
+ * LED type. This options are mutualy exclusive. Uncomment only one.
1610
+ *
1572 1611
  */
1573 1612
 //#define RGB_LED
1574 1613
 //#define RGBW_LED
1614
+
1575 1615
 #if ENABLED(RGB_LED) || ENABLED(RGBW_LED)
1576 1616
   #define RGB_LED_R_PIN 34
1577 1617
   #define RGB_LED_G_PIN 43
@@ -1580,11 +1620,14 @@
1580 1620
 #endif
1581 1621
 
1582 1622
 // Support for Adafruit Neopixel LED driver
1583
-//#define NEOPIXEL_RGBW_LED
1584
-#if ENABLED(NEOPIXEL_RGBW_LED)
1585
-  #define NEOPIXEL_PIN    4       // D4 (EXP2-5 on Printrboard)
1586
-  #define NEOPIXEL_PIXELS 3
1587
-  //#define NEOPIXEL_STARTUP_TEST // Cycle through colors at startup
1623
+//#define NEOPIXEL_LED
1624
+#if ENABLED(NEOPIXEL_LED)
1625
+  #define NEOPIXEL_TYPE   NEO_GRBW // NEO_GRBW / NEO_GRB - four/three channel driver type (definned in Adafruit_NeoPixel.h)
1626
+  #define NEOPIXEL_PIN    4        // LED driving pin on motherboard 4 => D4 (EXP2-5 on Printrboard) / 30 => PC7 (EXP3-13 on Rumba)
1627
+  #define NEOPIXEL_PIXELS 30       // Number of LEDs on strip
1628
+  #define NEOPIXEL_IS_SEQUENTIAL   // Sequent display for temperature change - LED by LED. Comment out for change all LED at time
1629
+  #define NEOPIXEL_BRIGHTNESS 127  // Initial brightness 0-255
1630
+  //#define NEOPIXEL_STARTUP_TEST  // Cycle through colors at startup
1588 1631
 #endif
1589 1632
 
1590 1633
 /**

+ 52
- 39
Marlin/example_configurations/Anet/A8/Configuration_adv.h View File

@@ -222,7 +222,7 @@
222 222
 
223 223
 /**
224 224
  * Part-Cooling Fan Multiplexer
225
- * 
225
+ *
226 226
  * This feature allows you to digitally multiplex the fan output.
227 227
  * The multiplexer is automatically switched at tool-change.
228 228
  * Set FANMUX[012]_PINs below for up to 2, 4, or 8 multiplexed fans.
@@ -510,7 +510,7 @@
510 510
 
511 511
   // SD Card Sorting options
512 512
   #if ENABLED(SDCARD_SORT_ALPHA)
513
-    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256).
513
+    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256). Costs 27 bytes each.
514 514
     #define FOLDER_SORTING     -1     // -1=above  0=none  1=below
515 515
     #define SDSORT_GCODE       false  // Allow turning sorting on/off with LCD and M34 g-code.
516 516
     #define SDSORT_USES_RAM    false  // Pre-allocate a static array for faster pre-sorting.
@@ -601,31 +601,19 @@
601 601
  */
602 602
 //#define BABYSTEPPING
603 603
 #if ENABLED(BABYSTEPPING)
604
-  #define BABYSTEP_XY              // Also enable X/Y Babystepping. Not supported on DELTA!
605
-  #define BABYSTEP_INVERT_Z false  // Change if Z babysteps should go the other way
606
-  #define BABYSTEP_MULTIPLICATOR 1 // Babysteps are very small. Increase for faster motion.
607
-  //#define BABYSTEP_ZPROBE_OFFSET // Enable to combine M851 and Babystepping
604
+  //#define BABYSTEP_XY              // Also enable X/Y Babystepping. Not supported on DELTA!
605
+  #define BABYSTEP_INVERT_Z false    // Change if Z babysteps should go the other way
606
+  #define BABYSTEP_MULTIPLICATOR 100 // Babysteps are very small. Increase for faster motion.
607
+  //#define BABYSTEP_ZPROBE_OFFSET   // Enable to combine M851 and Babystepping
608 608
   //#define DOUBLECLICK_FOR_Z_BABYSTEPPING // Double-click on the Status Screen for Z Babystepping.
609 609
   #define DOUBLECLICK_MAX_INTERVAL 1250 // Maximum interval between clicks, in milliseconds.
610 610
                                         // Note: Extra time may be added to mitigate controller latency.
611
+  //#define BABYSTEP_ZPROBE_GFX_OVERLAY // Enable graphical overlay on Z-offset editor
612
+  //#define BABYSTEP_ZPROBE_GFX_REVERSE // Reverses the direction of the CW/CCW indicators
611 613
 #endif
612 614
 
613 615
 // @section extruder
614 616
 
615
-// extruder advance constant (s2/mm3)
616
-//
617
-// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
618
-//
619
-// Hooke's law says:    force = k * distance
620
-// Bernoulli's principle says:  v ^ 2 / 2 + g . h + pressure / density = constant
621
-// so: v ^ 2 is proportional to number of steps we advance the extruder
622
-//#define ADVANCE
623
-
624
-#if ENABLED(ADVANCE)
625
-  #define EXTRUDER_ADVANCE_K .0
626
-  #define D_FILAMENT 2.85
627
-#endif
628
-
629 617
 /**
630 618
  * Implementation of linear pressure control
631 619
  *
@@ -742,7 +730,7 @@
742 730
 #define MAX_CMD_SIZE 96
743 731
 #define BUFSIZE 4
744 732
 
745
-// Transfer Buffer Size
733
+// Transmission to Host Buffer Size
746 734
 // To save 386 bytes of PROGMEM (and TX_BUFFER_SIZE+3 bytes of RAM) set to 0.
747 735
 // To buffer a simple "ok" you need 4 bytes.
748 736
 // For ADVANCED_OK (M105) you need 32 bytes.
@@ -751,6 +739,28 @@
751 739
 // :[0, 2, 4, 8, 16, 32, 64, 128, 256]
752 740
 #define TX_BUFFER_SIZE 0
753 741
 
742
+// Host Receive Buffer Size
743
+// Without XON/XOFF flow control (see SERIAL_XON_XOFF below) 32 bytes should be enough.
744
+// To use flow control, set this buffer size to at least 1024 bytes.
745
+// :[0, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048]
746
+//#define RX_BUFFER_SIZE 1024
747
+
748
+#if RX_BUFFER_SIZE >= 1024
749
+  // Enable to have the controller send XON/XOFF control characters to
750
+  // the host to signal the RX buffer is becoming full.
751
+  //#define SERIAL_XON_XOFF
752
+#endif
753
+
754
+#if ENABLED(SDSUPPORT)
755
+  // Enable this option to collect and display the maximum
756
+  // RX queue usage after transferring a file to SD.
757
+  //#define SERIAL_STATS_MAX_RX_QUEUED
758
+
759
+  // Enable this option to collect and display the number
760
+  // of dropped bytes after a file transfer to SD.
761
+  //#define SERIAL_STATS_DROPPED_RX
762
+#endif
763
+
754 764
 // Enable an emergency-command parser to intercept certain commands as they
755 765
 // enter the serial receive buffer, so they cannot be blocked.
756 766
 // Currently handles M108, M112, M410
@@ -1274,6 +1284,7 @@
1274 1284
 #if ENABLED(CUSTOM_USER_MENUS)
1275 1285
   #define USER_SCRIPT_DONE "M117 User Script Done"
1276 1286
   #define USER_SCRIPT_AUDIBLE_FEEDBACK
1287
+  //#define USER_SCRIPT_RETURN  // Return to status screen after a script
1277 1288
 
1278 1289
   #define USER_DESC_1 "Home & UBL Info"
1279 1290
   #define USER_GCODE_1 "G28\nG29 W"
@@ -1383,29 +1394,31 @@
1383 1394
 #endif // I2C_POSITION_ENCODERS
1384 1395
 
1385 1396
 /**
1386
-  * Debug LED's using an 8x8 LED Matrix driven by a Max7219 chip.   Fully assembled versions are available on
1387
-  * eBay for under $2.00 (including shipping) and only require 3 signal wires.
1388
-  *
1389
-  * Check out auctions similar to this: https://www.ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313&_nkw=332349290049&_sacat=0
1390
-  */
1391
-
1397
+ * MAX7219 Debug Matrix
1398
+ *
1399
+ * Add support for a low-cost 8x8 LED Matrix based on the Max7219 chip, which can be used as a status
1400
+ * display. Requires 3 signal wires. Some useful debug options are included to demonstrate its usage.
1401
+ *
1402
+ * Fully assembled MAX7219 boards can be found on the internet for under $2(US).
1403
+ * For example, see https://www.ebay.com/sch/i.html?_nkw=332349290049
1404
+ */
1392 1405
 //#define MAX7219_DEBUG
1393 1406
 #if ENABLED(MAX7219_DEBUG)
1394
-  #define Max7219_clock   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display
1395
-  #define Max7219_data_in 57  // 78 on Re-ARM
1396
-  #define Max7219_load    44  // 79 on Re-ARM
1407
+  #define MAX7219_CLK_PIN   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display
1408
+  #define MAX7219_DIN_PIN   57  // 78 on Re-ARM
1409
+  #define MAX7219_LOAD_PIN  44  // 79 on Re-ARM
1397 1410
 
1398
-  /*
1399
-   * These are sample debug features that can be turned on and configured for your use.
1400
-   * The developer will need to manage the use of the various LED's in the 8x8 matrix to avoid conflicts.
1411
+  /**
1412
+   * Sample debug features
1413
+   * If you add more debug displays, be careful to avoid conflicts!
1401 1414
    */
1402
-  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix from idle() routine if firmware is functioning
1403
-  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Display row position of stepper queue head on this line and the next line of LED matrix
1404
-  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Display row position of stepper queue tail on this line and the next line of LED matrix
1415
+  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix to show that the firmware is functioning
1416
+  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Show the stepper queue head position on this and the next LED matrix row
1417
+  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Show the stepper queue tail position on this and the next LED matrix row
1405 1418
 
1406
-  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Display row position of stepper queue depth on this line and the next line of LED matrix
1407
-                                         // If you have stuttering on your Delta printer, this option may help you understand how
1408
-                                         // various tweaks you make to your configuration are affecting the printer.
1419
+  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Show the current stepper queue depth on this and the next LED matrix row
1420
+                                         // If you experience stuttering, reboots, etc. this option can reveal how
1421
+                                         // tweaks made to the configuration are affecting the printer in real-time.
1409 1422
 #endif
1410 1423
 
1411 1424
 #endif // CONFIGURATION_ADV_H

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

@@ -107,8 +107,9 @@
107 107
  *
108 108
  * 250000 works in most cases, but you might try a lower speed if
109 109
  * you commonly experience drop-outs during host printing.
110
+ * You may try up to 1000000 to speed up SD file transfer.
110 111
  *
111
- * :[2400, 9600, 19200, 38400, 57600, 115200, 250000]
112
+ * :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000]
112 113
  */
113 114
 #define BAUDRATE 115200
114 115
 
@@ -750,6 +751,8 @@
750 751
 
751 752
 // @section homing
752 753
 
754
+//#define NO_MOTION_BEFORE_HOMING  // Inhibit movement until all axes have been homed
755
+
753 756
 //#define Z_HOMING_HEIGHT 4  // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
754 757
                              // Be sure you have this distance over your Z_MAX_POS in case.
755 758
 
@@ -946,9 +949,11 @@
946 949
 #if ENABLED(LCD_BED_LEVELING)
947 950
   #define MBL_Z_STEP 0.025    // Step size while manually probing Z axis.
948 951
   #define LCD_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
949
-  #define LEVEL_BED_CORNERS   // Add an option to move between corners
950 952
 #endif
951 953
 
954
+// Add a menu item to move between bed corners for manual bed adjustment
955
+//#define LEVEL_BED_CORNERS
956
+
952 957
 /**
953 958
  * Commands to execute at the end of G29 probing.
954 959
  * Useful to retract or move the Z probe out of the way.
@@ -1189,7 +1194,7 @@
1189 1194
  *  - Click the controller to view the LCD menu
1190 1195
  *  - The LCD will display Japanese, Western, or Cyrillic text
1191 1196
  *
1192
- * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
1197
+ * See http://marlinfw.org/docs/development/lcd_language.html
1193 1198
  *
1194 1199
  * :['JAPANESE', 'WESTERN', 'CYRILLIC']
1195 1200
  */
@@ -1489,6 +1494,35 @@
1489 1494
 //
1490 1495
 //#define OLED_PANEL_TINYBOY2
1491 1496
 
1497
+//
1498
+// Makeboard 3D Printer Parts 3D Printer Mini Display 1602 Mini Controller
1499
+// https://www.aliexpress.com/item/Micromake-Makeboard-3D-Printer-Parts-3D-Printer-Mini-Display-1602-Mini-Controller-Compatible-with-Ramps-1/32765887917.html
1500
+//
1501
+//#define MAKEBOARD_MINI_2_LINE_DISPLAY_1602
1502
+
1503
+//
1504
+// MKS MINI12864 with graphic controller and SD support
1505
+// http://reprap.org/wiki/MKS_MINI_12864
1506
+//
1507
+//#define MKS_MINI_12864
1508
+
1509
+//
1510
+// Factory display for Creality CR-10
1511
+// https://www.aliexpress.com/item/Universal-LCD-12864-3D-Printer-Display-Screen-With-Encoder-For-CR-10-CR-7-Model/32833148327.html
1512
+//
1513
+// This is RAMPS-compatible using a single 10-pin connector.
1514
+// (For CR-10 owners who want to replace the Melzi Creality board but retain the display)
1515
+//
1516
+//#define CR10_STOCKDISPLAY
1517
+
1518
+//
1519
+// MKS OLED 1.3" 128 × 64 FULL GRAPHICS CONTROLLER
1520
+// http://reprap.org/wiki/MKS_12864OLED
1521
+//
1522
+// Tiny, but very sharp OLED display
1523
+//
1524
+//#define MKS_12864OLED
1525
+
1492 1526
 //=============================================================================
1493 1527
 //=============================== Extra Features ==============================
1494 1528
 //=============================================================================
@@ -1545,16 +1579,22 @@
1545 1579
  * Adds the M150 command to set the LED (or LED strip) color.
1546 1580
  * If pins are PWM capable (e.g., 4, 5, 6, 11) then a range of
1547 1581
  * luminance values can be set from 0 to 255.
1582
+ * For Neopixel LED overall brightness parameters is also available 
1548 1583
  *
1549 1584
  * *** CAUTION ***
1550 1585
  *  LED Strips require a MOFSET Chip between PWM lines and LEDs,
1551 1586
  *  as the Arduino cannot handle the current the LEDs will require.
1552 1587
  *  Failure to follow this precaution can destroy your Arduino!
1588
+ *  The Neopixel LED is 5V powered, but linear 5V regulator on Arduino
1589
+ *  cannot handle such current, separate 5V power supply must be used
1553 1590
  * *** CAUTION ***
1554 1591
  *
1592
+ * LED type. This options are mutualy exclusive. Uncomment only one.
1593
+ *
1555 1594
  */
1556 1595
 //#define RGB_LED
1557 1596
 //#define RGBW_LED
1597
+
1558 1598
 #if ENABLED(RGB_LED) || ENABLED(RGBW_LED)
1559 1599
   #define RGB_LED_R_PIN 34
1560 1600
   #define RGB_LED_G_PIN 43
@@ -1563,11 +1603,14 @@
1563 1603
 #endif
1564 1604
 
1565 1605
 // Support for Adafruit Neopixel LED driver
1566
-//#define NEOPIXEL_RGBW_LED
1567
-#if ENABLED(NEOPIXEL_RGBW_LED)
1568
-  #define NEOPIXEL_PIN    4       // D4 (EXP2-5 on Printrboard)
1569
-  #define NEOPIXEL_PIXELS 3
1570
-  //#define NEOPIXEL_STARTUP_TEST // Cycle through colors at startup
1606
+//#define NEOPIXEL_LED
1607
+#if ENABLED(NEOPIXEL_LED)
1608
+  #define NEOPIXEL_TYPE   NEO_GRBW // NEO_GRBW / NEO_GRB - four/three channel driver type (definned in Adafruit_NeoPixel.h)
1609
+  #define NEOPIXEL_PIN    4        // LED driving pin on motherboard 4 => D4 (EXP2-5 on Printrboard) / 30 => PC7 (EXP3-13 on Rumba)
1610
+  #define NEOPIXEL_PIXELS 30       // Number of LEDs on strip
1611
+  #define NEOPIXEL_IS_SEQUENTIAL   // Sequent display for temperature change - LED by LED. Comment out for change all LED at time
1612
+  #define NEOPIXEL_BRIGHTNESS 127  // Initial brightness 0-255
1613
+  //#define NEOPIXEL_STARTUP_TEST  // Cycle through colors at startup
1571 1614
 #endif
1572 1615
 
1573 1616
 /**

+ 52
- 39
Marlin/example_configurations/BQ/Hephestos/Configuration_adv.h View File

@@ -222,7 +222,7 @@
222 222
 
223 223
 /**
224 224
  * Part-Cooling Fan Multiplexer
225
- * 
225
+ *
226 226
  * This feature allows you to digitally multiplex the fan output.
227 227
  * The multiplexer is automatically switched at tool-change.
228 228
  * Set FANMUX[012]_PINs below for up to 2, 4, or 8 multiplexed fans.
@@ -510,7 +510,7 @@
510 510
 
511 511
   // SD Card Sorting options
512 512
   #if ENABLED(SDCARD_SORT_ALPHA)
513
-    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256).
513
+    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256). Costs 27 bytes each.
514 514
     #define FOLDER_SORTING     -1     // -1=above  0=none  1=below
515 515
     #define SDSORT_GCODE       false  // Allow turning sorting on/off with LCD and M34 g-code.
516 516
     #define SDSORT_USES_RAM    false  // Pre-allocate a static array for faster pre-sorting.
@@ -601,31 +601,19 @@
601 601
  */
602 602
 //#define BABYSTEPPING
603 603
 #if ENABLED(BABYSTEPPING)
604
-  #define BABYSTEP_XY              // Also enable X/Y Babystepping. Not supported on DELTA!
605
-  #define BABYSTEP_INVERT_Z false  // Change if Z babysteps should go the other way
606
-  #define BABYSTEP_MULTIPLICATOR 1 // Babysteps are very small. Increase for faster motion.
607
-  //#define BABYSTEP_ZPROBE_OFFSET // Enable to combine M851 and Babystepping
604
+  //#define BABYSTEP_XY              // Also enable X/Y Babystepping. Not supported on DELTA!
605
+  #define BABYSTEP_INVERT_Z false    // Change if Z babysteps should go the other way
606
+  #define BABYSTEP_MULTIPLICATOR 100 // Babysteps are very small. Increase for faster motion.
607
+  //#define BABYSTEP_ZPROBE_OFFSET   // Enable to combine M851 and Babystepping
608 608
   //#define DOUBLECLICK_FOR_Z_BABYSTEPPING // Double-click on the Status Screen for Z Babystepping.
609 609
   #define DOUBLECLICK_MAX_INTERVAL 1250 // Maximum interval between clicks, in milliseconds.
610 610
                                         // Note: Extra time may be added to mitigate controller latency.
611
+  //#define BABYSTEP_ZPROBE_GFX_OVERLAY // Enable graphical overlay on Z-offset editor
612
+  //#define BABYSTEP_ZPROBE_GFX_REVERSE // Reverses the direction of the CW/CCW indicators
611 613
 #endif
612 614
 
613 615
 // @section extruder
614 616
 
615
-// extruder advance constant (s2/mm3)
616
-//
617
-// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
618
-//
619
-// Hooke's law says:    force = k * distance
620
-// Bernoulli's principle says:  v ^ 2 / 2 + g . h + pressure / density = constant
621
-// so: v ^ 2 is proportional to number of steps we advance the extruder
622
-//#define ADVANCE
623
-
624
-#if ENABLED(ADVANCE)
625
-  #define EXTRUDER_ADVANCE_K .0
626
-  #define D_FILAMENT 1.75
627
-#endif
628
-
629 617
 /**
630 618
  * Implementation of linear pressure control
631 619
  *
@@ -742,7 +730,7 @@
742 730
 #define MAX_CMD_SIZE 96
743 731
 #define BUFSIZE 4
744 732
 
745
-// Transfer Buffer Size
733
+// Transmission to Host Buffer Size
746 734
 // To save 386 bytes of PROGMEM (and TX_BUFFER_SIZE+3 bytes of RAM) set to 0.
747 735
 // To buffer a simple "ok" you need 4 bytes.
748 736
 // For ADVANCED_OK (M105) you need 32 bytes.
@@ -751,6 +739,28 @@
751 739
 // :[0, 2, 4, 8, 16, 32, 64, 128, 256]
752 740
 #define TX_BUFFER_SIZE 0
753 741
 
742
+// Host Receive Buffer Size
743
+// Without XON/XOFF flow control (see SERIAL_XON_XOFF below) 32 bytes should be enough.
744
+// To use flow control, set this buffer size to at least 1024 bytes.
745
+// :[0, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048]
746
+//#define RX_BUFFER_SIZE 1024
747
+
748
+#if RX_BUFFER_SIZE >= 1024
749
+  // Enable to have the controller send XON/XOFF control characters to
750
+  // the host to signal the RX buffer is becoming full.
751
+  //#define SERIAL_XON_XOFF
752
+#endif
753
+
754
+#if ENABLED(SDSUPPORT)
755
+  // Enable this option to collect and display the maximum
756
+  // RX queue usage after transferring a file to SD.
757
+  //#define SERIAL_STATS_MAX_RX_QUEUED
758
+
759
+  // Enable this option to collect and display the number
760
+  // of dropped bytes after a file transfer to SD.
761
+  //#define SERIAL_STATS_DROPPED_RX
762
+#endif
763
+
754 764
 // Enable an emergency-command parser to intercept certain commands as they
755 765
 // enter the serial receive buffer, so they cannot be blocked.
756 766
 // Currently handles M108, M112, M410
@@ -1274,6 +1284,7 @@
1274 1284
 #if ENABLED(CUSTOM_USER_MENUS)
1275 1285
   #define USER_SCRIPT_DONE "M117 User Script Done"
1276 1286
   #define USER_SCRIPT_AUDIBLE_FEEDBACK
1287
+  //#define USER_SCRIPT_RETURN  // Return to status screen after a script
1277 1288
 
1278 1289
   #define USER_DESC_1 "Home & UBL Info"
1279 1290
   #define USER_GCODE_1 "G28\nG29 W"
@@ -1383,29 +1394,31 @@
1383 1394
 #endif // I2C_POSITION_ENCODERS
1384 1395
 
1385 1396
 /**
1386
-  * Debug LED's using an 8x8 LED Matrix driven by a Max7219 chip.   Fully assembled versions are available on
1387
-  * eBay for under $2.00 (including shipping) and only require 3 signal wires.
1388
-  *
1389
-  * Check out auctions similar to this: https://www.ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313&_nkw=332349290049&_sacat=0
1390
-  */
1391
-
1397
+ * MAX7219 Debug Matrix
1398
+ *
1399
+ * Add support for a low-cost 8x8 LED Matrix based on the Max7219 chip, which can be used as a status
1400
+ * display. Requires 3 signal wires. Some useful debug options are included to demonstrate its usage.
1401
+ *
1402
+ * Fully assembled MAX7219 boards can be found on the internet for under $2(US).
1403
+ * For example, see https://www.ebay.com/sch/i.html?_nkw=332349290049
1404
+ */
1392 1405
 //#define MAX7219_DEBUG
1393 1406
 #if ENABLED(MAX7219_DEBUG)
1394
-  #define Max7219_clock   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display
1395
-  #define Max7219_data_in 57  // 78 on Re-ARM
1396
-  #define Max7219_load    44  // 79 on Re-ARM
1407
+  #define MAX7219_CLK_PIN   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display
1408
+  #define MAX7219_DIN_PIN   57  // 78 on Re-ARM
1409
+  #define MAX7219_LOAD_PIN  44  // 79 on Re-ARM
1397 1410
 
1398
-  /*
1399
-   * These are sample debug features that can be turned on and configured for your use.
1400
-   * The developer will need to manage the use of the various LED's in the 8x8 matrix to avoid conflicts.
1411
+  /**
1412
+   * Sample debug features
1413
+   * If you add more debug displays, be careful to avoid conflicts!
1401 1414
    */
1402
-  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix from idle() routine if firmware is functioning
1403
-  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Display row position of stepper queue head on this line and the next line of LED matrix
1404
-  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Display row position of stepper queue tail on this line and the next line of LED matrix
1415
+  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix to show that the firmware is functioning
1416
+  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Show the stepper queue head position on this and the next LED matrix row
1417
+  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Show the stepper queue tail position on this and the next LED matrix row
1405 1418
 
1406
-  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Display row position of stepper queue depth on this line and the next line of LED matrix
1407
-                                         // If you have stuttering on your Delta printer, this option may help you understand how
1408
-                                         // various tweaks you make to your configuration are affecting the printer.
1419
+  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Show the current stepper queue depth on this and the next LED matrix row
1420
+                                         // If you experience stuttering, reboots, etc. this option can reveal how
1421
+                                         // tweaks made to the configuration are affecting the printer in real-time.
1409 1422
 #endif
1410 1423
 
1411 1424
 #endif // CONFIGURATION_ADV_H

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

@@ -106,8 +106,9 @@
106 106
  *
107 107
  * 250000 works in most cases, but you might try a lower speed if
108 108
  * you commonly experience drop-outs during host printing.
109
+ * You may try up to 1000000 to speed up SD file transfer.
109 110
  *
110
- * :[2400, 9600, 19200, 38400, 57600, 115200, 250000]
111
+ * :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000]
111 112
  */
112 113
 #define BAUDRATE 115200
113 114
 
@@ -760,6 +761,8 @@
760 761
 
761 762
 // @section homing
762 763
 
764
+//#define NO_MOTION_BEFORE_HOMING  // Inhibit movement until all axes have been homed
765
+
763 766
 #define Z_HOMING_HEIGHT 5    // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
764 767
                              // Be sure you have this distance over your Z_MAX_POS in case.
765 768
 
@@ -956,9 +959,11 @@
956 959
 #if ENABLED(LCD_BED_LEVELING)
957 960
   #define MBL_Z_STEP 0.025    // Step size while manually probing Z axis.
958 961
   #define LCD_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
959
-  #define LEVEL_BED_CORNERS   // Add an option to move between corners
960 962
 #endif
961 963
 
964
+// Add a menu item to move between bed corners for manual bed adjustment
965
+//#define LEVEL_BED_CORNERS
966
+
962 967
 /**
963 968
  * Commands to execute at the end of G29 probing.
964 969
  * Useful to retract or move the Z probe out of the way.
@@ -1199,7 +1204,7 @@
1199 1204
  *  - Click the controller to view the LCD menu
1200 1205
  *  - The LCD will display Japanese, Western, or Cyrillic text
1201 1206
  *
1202
- * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
1207
+ * See http://marlinfw.org/docs/development/lcd_language.html
1203 1208
  *
1204 1209
  * :['JAPANESE', 'WESTERN', 'CYRILLIC']
1205 1210
  */
@@ -1499,6 +1504,35 @@
1499 1504
 //
1500 1505
 //#define OLED_PANEL_TINYBOY2
1501 1506
 
1507
+//
1508
+// Makeboard 3D Printer Parts 3D Printer Mini Display 1602 Mini Controller
1509
+// https://www.aliexpress.com/item/Micromake-Makeboard-3D-Printer-Parts-3D-Printer-Mini-Display-1602-Mini-Controller-Compatible-with-Ramps-1/32765887917.html
1510
+//
1511
+//#define MAKEBOARD_MINI_2_LINE_DISPLAY_1602
1512
+
1513
+//
1514
+// MKS MINI12864 with graphic controller and SD support
1515
+// http://reprap.org/wiki/MKS_MINI_12864
1516
+//
1517
+//#define MKS_MINI_12864
1518
+
1519
+//
1520
+// Factory display for Creality CR-10
1521
+// https://www.aliexpress.com/item/Universal-LCD-12864-3D-Printer-Display-Screen-With-Encoder-For-CR-10-CR-7-Model/32833148327.html
1522
+//
1523
+// This is RAMPS-compatible using a single 10-pin connector.
1524
+// (For CR-10 owners who want to replace the Melzi Creality board but retain the display)
1525
+//
1526
+//#define CR10_STOCKDISPLAY
1527
+
1528
+//
1529
+// MKS OLED 1.3" 128 × 64 FULL GRAPHICS CONTROLLER
1530
+// http://reprap.org/wiki/MKS_12864OLED
1531
+//
1532
+// Tiny, but very sharp OLED display
1533
+//
1534
+//#define MKS_12864OLED
1535
+
1502 1536
 //=============================================================================
1503 1537
 //=============================== Extra Features ==============================
1504 1538
 //=============================================================================
@@ -1555,16 +1589,22 @@
1555 1589
  * Adds the M150 command to set the LED (or LED strip) color.
1556 1590
  * If pins are PWM capable (e.g., 4, 5, 6, 11) then a range of
1557 1591
  * luminance values can be set from 0 to 255.
1592
+ * For Neopixel LED overall brightness parameters is also available 
1558 1593
  *
1559 1594
  * *** CAUTION ***
1560 1595
  *  LED Strips require a MOFSET Chip between PWM lines and LEDs,
1561 1596
  *  as the Arduino cannot handle the current the LEDs will require.
1562 1597
  *  Failure to follow this precaution can destroy your Arduino!
1598
+ *  The Neopixel LED is 5V powered, but linear 5V regulator on Arduino
1599
+ *  cannot handle such current, separate 5V power supply must be used
1563 1600
  * *** CAUTION ***
1564 1601
  *
1602
+ * LED type. This options are mutualy exclusive. Uncomment only one.
1603
+ *
1565 1604
  */
1566 1605
 //#define RGB_LED
1567 1606
 //#define RGBW_LED
1607
+
1568 1608
 #if ENABLED(RGB_LED) || ENABLED(RGBW_LED)
1569 1609
   #define RGB_LED_R_PIN 34
1570 1610
   #define RGB_LED_G_PIN 43
@@ -1573,11 +1613,14 @@
1573 1613
 #endif
1574 1614
 
1575 1615
 // Support for Adafruit Neopixel LED driver
1576
-//#define NEOPIXEL_RGBW_LED
1577
-#if ENABLED(NEOPIXEL_RGBW_LED)
1578
-  #define NEOPIXEL_PIN    4       // D4 (EXP2-5 on Printrboard)
1579
-  #define NEOPIXEL_PIXELS 3
1580
-  //#define NEOPIXEL_STARTUP_TEST // Cycle through colors at startup
1616
+//#define NEOPIXEL_LED
1617
+#if ENABLED(NEOPIXEL_LED)
1618
+  #define NEOPIXEL_TYPE   NEO_GRBW // NEO_GRBW / NEO_GRB - four/three channel driver type (definned in Adafruit_NeoPixel.h)
1619
+  #define NEOPIXEL_PIN    4        // LED driving pin on motherboard 4 => D4 (EXP2-5 on Printrboard) / 30 => PC7 (EXP3-13 on Rumba)
1620
+  #define NEOPIXEL_PIXELS 30       // Number of LEDs on strip
1621
+  #define NEOPIXEL_IS_SEQUENTIAL   // Sequent display for temperature change - LED by LED. Comment out for change all LED at time
1622
+  #define NEOPIXEL_BRIGHTNESS 127  // Initial brightness 0-255
1623
+  //#define NEOPIXEL_STARTUP_TEST  // Cycle through colors at startup
1581 1624
 #endif
1582 1625
 
1583 1626
 /**

+ 52
- 39
Marlin/example_configurations/BQ/Hephestos_2/Configuration_adv.h View File

@@ -222,7 +222,7 @@
222 222
 
223 223
 /**
224 224
  * Part-Cooling Fan Multiplexer
225
- * 
225
+ *
226 226
  * This feature allows you to digitally multiplex the fan output.
227 227
  * The multiplexer is automatically switched at tool-change.
228 228
  * Set FANMUX[012]_PINs below for up to 2, 4, or 8 multiplexed fans.
@@ -510,7 +510,7 @@
510 510
 
511 511
   // SD Card Sorting options
512 512
   #if ENABLED(SDCARD_SORT_ALPHA)
513
-    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256).
513
+    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256). Costs 27 bytes each.
514 514
     #define FOLDER_SORTING     -1     // -1=above  0=none  1=below
515 515
     #define SDSORT_GCODE       false  // Allow turning sorting on/off with LCD and M34 g-code.
516 516
     #define SDSORT_USES_RAM    false  // Pre-allocate a static array for faster pre-sorting.
@@ -601,31 +601,19 @@
601 601
  */
602 602
 //#define BABYSTEPPING
603 603
 #if ENABLED(BABYSTEPPING)
604
-  #define BABYSTEP_XY              // Also enable X/Y Babystepping. Not supported on DELTA!
605
-  #define BABYSTEP_INVERT_Z false  // Change if Z babysteps should go the other way
606
-  #define BABYSTEP_MULTIPLICATOR 1 // Babysteps are very small. Increase for faster motion.
607
-  //#define BABYSTEP_ZPROBE_OFFSET // Enable to combine M851 and Babystepping
604
+  //#define BABYSTEP_XY              // Also enable X/Y Babystepping. Not supported on DELTA!
605
+  #define BABYSTEP_INVERT_Z false    // Change if Z babysteps should go the other way
606
+  #define BABYSTEP_MULTIPLICATOR 100 // Babysteps are very small. Increase for faster motion.
607
+  //#define BABYSTEP_ZPROBE_OFFSET   // Enable to combine M851 and Babystepping
608 608
   //#define DOUBLECLICK_FOR_Z_BABYSTEPPING // Double-click on the Status Screen for Z Babystepping.
609 609
   #define DOUBLECLICK_MAX_INTERVAL 1250 // Maximum interval between clicks, in milliseconds.
610 610
                                         // Note: Extra time may be added to mitigate controller latency.
611
+  //#define BABYSTEP_ZPROBE_GFX_OVERLAY // Enable graphical overlay on Z-offset editor
612
+  //#define BABYSTEP_ZPROBE_GFX_REVERSE // Reverses the direction of the CW/CCW indicators
611 613
 #endif
612 614
 
613 615
 // @section extruder
614 616
 
615
-// extruder advance constant (s2/mm3)
616
-//
617
-// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
618
-//
619
-// Hooke's law says:    force = k * distance
620
-// Bernoulli's principle says:  v ^ 2 / 2 + g . h + pressure / density = constant
621
-// so: v ^ 2 is proportional to number of steps we advance the extruder
622
-//#define ADVANCE
623
-
624
-#if ENABLED(ADVANCE)
625
-  #define EXTRUDER_ADVANCE_K .0
626
-  #define D_FILAMENT 2.85
627
-#endif
628
-
629 617
 /**
630 618
  * Implementation of linear pressure control
631 619
  *
@@ -742,7 +730,7 @@
742 730
 #define MAX_CMD_SIZE 96
743 731
 #define BUFSIZE 4
744 732
 
745
-// Transfer Buffer Size
733
+// Transmission to Host Buffer Size
746 734
 // To save 386 bytes of PROGMEM (and TX_BUFFER_SIZE+3 bytes of RAM) set to 0.
747 735
 // To buffer a simple "ok" you need 4 bytes.
748 736
 // For ADVANCED_OK (M105) you need 32 bytes.
@@ -751,6 +739,28 @@
751 739
 // :[0, 2, 4, 8, 16, 32, 64, 128, 256]
752 740
 #define TX_BUFFER_SIZE 32
753 741
 
742
+// Host Receive Buffer Size
743
+// Without XON/XOFF flow control (see SERIAL_XON_XOFF below) 32 bytes should be enough.
744
+// To use flow control, set this buffer size to at least 1024 bytes.
745
+// :[0, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048]
746
+//#define RX_BUFFER_SIZE 1024
747
+
748
+#if RX_BUFFER_SIZE >= 1024
749
+  // Enable to have the controller send XON/XOFF control characters to
750
+  // the host to signal the RX buffer is becoming full.
751
+  //#define SERIAL_XON_XOFF
752
+#endif
753
+
754
+#if ENABLED(SDSUPPORT)
755
+  // Enable this option to collect and display the maximum
756
+  // RX queue usage after transferring a file to SD.
757
+  //#define SERIAL_STATS_MAX_RX_QUEUED
758
+
759
+  // Enable this option to collect and display the number
760
+  // of dropped bytes after a file transfer to SD.
761
+  //#define SERIAL_STATS_DROPPED_RX
762
+#endif
763
+
754 764
 // Enable an emergency-command parser to intercept certain commands as they
755 765
 // enter the serial receive buffer, so they cannot be blocked.
756 766
 // Currently handles M108, M112, M410
@@ -1274,6 +1284,7 @@
1274 1284
 #if ENABLED(CUSTOM_USER_MENUS)
1275 1285
   #define USER_SCRIPT_DONE "M117 User Script Done"
1276 1286
   #define USER_SCRIPT_AUDIBLE_FEEDBACK
1287
+  //#define USER_SCRIPT_RETURN  // Return to status screen after a script
1277 1288
 
1278 1289
   #define USER_DESC_1 "Home & UBL Info"
1279 1290
   #define USER_GCODE_1 "G28\nG29 W"
@@ -1383,29 +1394,31 @@
1383 1394
 #endif // I2C_POSITION_ENCODERS
1384 1395
 
1385 1396
 /**
1386
-  * Debug LED's using an 8x8 LED Matrix driven by a Max7219 chip.   Fully assembled versions are available on
1387
-  * eBay for under $2.00 (including shipping) and only require 3 signal wires.
1388
-  *
1389
-  * Check out auctions similar to this: https://www.ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313&_nkw=332349290049&_sacat=0
1390
-  */
1391
-
1397
+ * MAX7219 Debug Matrix
1398
+ *
1399
+ * Add support for a low-cost 8x8 LED Matrix based on the Max7219 chip, which can be used as a status
1400
+ * display. Requires 3 signal wires. Some useful debug options are included to demonstrate its usage.
1401
+ *
1402
+ * Fully assembled MAX7219 boards can be found on the internet for under $2(US).
1403
+ * For example, see https://www.ebay.com/sch/i.html?_nkw=332349290049
1404
+ */
1392 1405
 //#define MAX7219_DEBUG
1393 1406
 #if ENABLED(MAX7219_DEBUG)
1394
-  #define Max7219_clock   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display
1395
-  #define Max7219_data_in 57  // 78 on Re-ARM
1396
-  #define Max7219_load    44  // 79 on Re-ARM
1407
+  #define MAX7219_CLK_PIN   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display
1408
+  #define MAX7219_DIN_PIN   57  // 78 on Re-ARM
1409
+  #define MAX7219_LOAD_PIN  44  // 79 on Re-ARM
1397 1410
 
1398
-  /*
1399
-   * These are sample debug features that can be turned on and configured for your use.
1400
-   * The developer will need to manage the use of the various LED's in the 8x8 matrix to avoid conflicts.
1411
+  /**
1412
+   * Sample debug features
1413
+   * If you add more debug displays, be careful to avoid conflicts!
1401 1414
    */
1402
-  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix from idle() routine if firmware is functioning
1403
-  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Display row position of stepper queue head on this line and the next line of LED matrix
1404
-  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Display row position of stepper queue tail on this line and the next line of LED matrix
1415
+  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix to show that the firmware is functioning
1416
+  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Show the stepper queue head position on this and the next LED matrix row
1417
+  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Show the stepper queue tail position on this and the next LED matrix row
1405 1418
 
1406
-  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Display row position of stepper queue depth on this line and the next line of LED matrix
1407
-                                         // If you have stuttering on your Delta printer, this option may help you understand how
1408
-                                         // various tweaks you make to your configuration are affecting the printer.
1419
+  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Show the current stepper queue depth on this and the next LED matrix row
1420
+                                         // If you experience stuttering, reboots, etc. this option can reveal how
1421
+                                         // tweaks made to the configuration are affecting the printer in real-time.
1409 1422
 #endif
1410 1423
 
1411 1424
 #endif // CONFIGURATION_ADV_H

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

@@ -107,8 +107,9 @@
107 107
  *
108 108
  * 250000 works in most cases, but you might try a lower speed if
109 109
  * you commonly experience drop-outs during host printing.
110
+ * You may try up to 1000000 to speed up SD file transfer.
110 111
  *
111
- * :[2400, 9600, 19200, 38400, 57600, 115200, 250000]
112
+ * :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000]
112 113
  */
113 114
 #define BAUDRATE 115200
114 115
 
@@ -750,6 +751,8 @@
750 751
 
751 752
 // @section homing
752 753
 
754
+//#define NO_MOTION_BEFORE_HOMING  // Inhibit movement until all axes have been homed
755
+
753 756
 //#define Z_HOMING_HEIGHT 4  // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
754 757
                              // Be sure you have this distance over your Z_MAX_POS in case.
755 758
 
@@ -946,9 +949,11 @@
946 949
 #if ENABLED(LCD_BED_LEVELING)
947 950
   #define MBL_Z_STEP 0.025    // Step size while manually probing Z axis.
948 951
   #define LCD_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
949
-  #define LEVEL_BED_CORNERS   // Add an option to move between corners
950 952
 #endif
951 953
 
954
+// Add a menu item to move between bed corners for manual bed adjustment
955
+//#define LEVEL_BED_CORNERS
956
+
952 957
 /**
953 958
  * Commands to execute at the end of G29 probing.
954 959
  * Useful to retract or move the Z probe out of the way.
@@ -1189,7 +1194,7 @@
1189 1194
  *  - Click the controller to view the LCD menu
1190 1195
  *  - The LCD will display Japanese, Western, or Cyrillic text
1191 1196
  *
1192
- * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
1197
+ * See http://marlinfw.org/docs/development/lcd_language.html
1193 1198
  *
1194 1199
  * :['JAPANESE', 'WESTERN', 'CYRILLIC']
1195 1200
  */
@@ -1489,6 +1494,35 @@
1489 1494
 //
1490 1495
 //#define OLED_PANEL_TINYBOY2
1491 1496
 
1497
+//
1498
+// Makeboard 3D Printer Parts 3D Printer Mini Display 1602 Mini Controller
1499
+// https://www.aliexpress.com/item/Micromake-Makeboard-3D-Printer-Parts-3D-Printer-Mini-Display-1602-Mini-Controller-Compatible-with-Ramps-1/32765887917.html
1500
+//
1501
+//#define MAKEBOARD_MINI_2_LINE_DISPLAY_1602
1502
+
1503
+//
1504
+// MKS MINI12864 with graphic controller and SD support
1505
+// http://reprap.org/wiki/MKS_MINI_12864
1506
+//
1507
+//#define MKS_MINI_12864
1508
+
1509
+//
1510
+// Factory display for Creality CR-10
1511
+// https://www.aliexpress.com/item/Universal-LCD-12864-3D-Printer-Display-Screen-With-Encoder-For-CR-10-CR-7-Model/32833148327.html
1512
+//
1513
+// This is RAMPS-compatible using a single 10-pin connector.
1514
+// (For CR-10 owners who want to replace the Melzi Creality board but retain the display)
1515
+//
1516
+//#define CR10_STOCKDISPLAY
1517
+
1518
+//
1519
+// MKS OLED 1.3" 128 × 64 FULL GRAPHICS CONTROLLER
1520
+// http://reprap.org/wiki/MKS_12864OLED
1521
+//
1522
+// Tiny, but very sharp OLED display
1523
+//
1524
+//#define MKS_12864OLED
1525
+
1492 1526
 //=============================================================================
1493 1527
 //=============================== Extra Features ==============================
1494 1528
 //=============================================================================
@@ -1545,16 +1579,22 @@
1545 1579
  * Adds the M150 command to set the LED (or LED strip) color.
1546 1580
  * If pins are PWM capable (e.g., 4, 5, 6, 11) then a range of
1547 1581
  * luminance values can be set from 0 to 255.
1582
+ * For Neopixel LED overall brightness parameters is also available 
1548 1583
  *
1549 1584
  * *** CAUTION ***
1550 1585
  *  LED Strips require a MOFSET Chip between PWM lines and LEDs,
1551 1586
  *  as the Arduino cannot handle the current the LEDs will require.
1552 1587
  *  Failure to follow this precaution can destroy your Arduino!
1588
+ *  The Neopixel LED is 5V powered, but linear 5V regulator on Arduino
1589
+ *  cannot handle such current, separate 5V power supply must be used
1553 1590
  * *** CAUTION ***
1554 1591
  *
1592
+ * LED type. This options are mutualy exclusive. Uncomment only one.
1593
+ *
1555 1594
  */
1556 1595
 //#define RGB_LED
1557 1596
 //#define RGBW_LED
1597
+
1558 1598
 #if ENABLED(RGB_LED) || ENABLED(RGBW_LED)
1559 1599
   #define RGB_LED_R_PIN 34
1560 1600
   #define RGB_LED_G_PIN 43
@@ -1563,11 +1603,14 @@
1563 1603
 #endif
1564 1604
 
1565 1605
 // Support for Adafruit Neopixel LED driver
1566
-//#define NEOPIXEL_RGBW_LED
1567
-#if ENABLED(NEOPIXEL_RGBW_LED)
1568
-  #define NEOPIXEL_PIN    4       // D4 (EXP2-5 on Printrboard)
1569
-  #define NEOPIXEL_PIXELS 3
1570
-  //#define NEOPIXEL_STARTUP_TEST // Cycle through colors at startup
1606
+//#define NEOPIXEL_LED
1607
+#if ENABLED(NEOPIXEL_LED)
1608
+  #define NEOPIXEL_TYPE   NEO_GRBW // NEO_GRBW / NEO_GRB - four/three channel driver type (definned in Adafruit_NeoPixel.h)
1609
+  #define NEOPIXEL_PIN    4        // LED driving pin on motherboard 4 => D4 (EXP2-5 on Printrboard) / 30 => PC7 (EXP3-13 on Rumba)
1610
+  #define NEOPIXEL_PIXELS 30       // Number of LEDs on strip
1611
+  #define NEOPIXEL_IS_SEQUENTIAL   // Sequent display for temperature change - LED by LED. Comment out for change all LED at time
1612
+  #define NEOPIXEL_BRIGHTNESS 127  // Initial brightness 0-255
1613
+  //#define NEOPIXEL_STARTUP_TEST  // Cycle through colors at startup
1571 1614
 #endif
1572 1615
 
1573 1616
 /**

+ 52
- 39
Marlin/example_configurations/BQ/WITBOX/Configuration_adv.h View File

@@ -222,7 +222,7 @@
222 222
 
223 223
 /**
224 224
  * Part-Cooling Fan Multiplexer
225
- * 
225
+ *
226 226
  * This feature allows you to digitally multiplex the fan output.
227 227
  * The multiplexer is automatically switched at tool-change.
228 228
  * Set FANMUX[012]_PINs below for up to 2, 4, or 8 multiplexed fans.
@@ -510,7 +510,7 @@
510 510
 
511 511
   // SD Card Sorting options
512 512
   #if ENABLED(SDCARD_SORT_ALPHA)
513
-    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256).
513
+    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256). Costs 27 bytes each.
514 514
     #define FOLDER_SORTING     -1     // -1=above  0=none  1=below
515 515
     #define SDSORT_GCODE       false  // Allow turning sorting on/off with LCD and M34 g-code.
516 516
     #define SDSORT_USES_RAM    false  // Pre-allocate a static array for faster pre-sorting.
@@ -601,31 +601,19 @@
601 601
  */
602 602
 //#define BABYSTEPPING
603 603
 #if ENABLED(BABYSTEPPING)
604
-  #define BABYSTEP_XY              // Also enable X/Y Babystepping. Not supported on DELTA!
605
-  #define BABYSTEP_INVERT_Z false  // Change if Z babysteps should go the other way
606
-  #define BABYSTEP_MULTIPLICATOR 1 // Babysteps are very small. Increase for faster motion.
607
-  //#define BABYSTEP_ZPROBE_OFFSET // Enable to combine M851 and Babystepping
604
+  //#define BABYSTEP_XY              // Also enable X/Y Babystepping. Not supported on DELTA!
605
+  #define BABYSTEP_INVERT_Z false    // Change if Z babysteps should go the other way
606
+  #define BABYSTEP_MULTIPLICATOR 100 // Babysteps are very small. Increase for faster motion.
607
+  //#define BABYSTEP_ZPROBE_OFFSET   // Enable to combine M851 and Babystepping
608 608
   //#define DOUBLECLICK_FOR_Z_BABYSTEPPING // Double-click on the Status Screen for Z Babystepping.
609 609
   #define DOUBLECLICK_MAX_INTERVAL 1250 // Maximum interval between clicks, in milliseconds.
610 610
                                         // Note: Extra time may be added to mitigate controller latency.
611
+  //#define BABYSTEP_ZPROBE_GFX_OVERLAY // Enable graphical overlay on Z-offset editor
612
+  //#define BABYSTEP_ZPROBE_GFX_REVERSE // Reverses the direction of the CW/CCW indicators
611 613
 #endif
612 614
 
613 615
 // @section extruder
614 616
 
615
-// extruder advance constant (s2/mm3)
616
-//
617
-// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
618
-//
619
-// Hooke's law says:    force = k * distance
620
-// Bernoulli's principle says:  v ^ 2 / 2 + g . h + pressure / density = constant
621
-// so: v ^ 2 is proportional to number of steps we advance the extruder
622
-//#define ADVANCE
623
-
624
-#if ENABLED(ADVANCE)
625
-  #define EXTRUDER_ADVANCE_K .0
626
-  #define D_FILAMENT 1.75
627
-#endif
628
-
629 617
 /**
630 618
  * Implementation of linear pressure control
631 619
  *
@@ -742,7 +730,7 @@
742 730
 #define MAX_CMD_SIZE 96
743 731
 #define BUFSIZE 4
744 732
 
745
-// Transfer Buffer Size
733
+// Transmission to Host Buffer Size
746 734
 // To save 386 bytes of PROGMEM (and TX_BUFFER_SIZE+3 bytes of RAM) set to 0.
747 735
 // To buffer a simple "ok" you need 4 bytes.
748 736
 // For ADVANCED_OK (M105) you need 32 bytes.
@@ -751,6 +739,28 @@
751 739
 // :[0, 2, 4, 8, 16, 32, 64, 128, 256]
752 740
 #define TX_BUFFER_SIZE 0
753 741
 
742
+// Host Receive Buffer Size
743
+// Without XON/XOFF flow control (see SERIAL_XON_XOFF below) 32 bytes should be enough.
744
+// To use flow control, set this buffer size to at least 1024 bytes.
745
+// :[0, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048]
746
+//#define RX_BUFFER_SIZE 1024
747
+
748
+#if RX_BUFFER_SIZE >= 1024
749
+  // Enable to have the controller send XON/XOFF control characters to
750
+  // the host to signal the RX buffer is becoming full.
751
+  //#define SERIAL_XON_XOFF
752
+#endif
753
+
754
+#if ENABLED(SDSUPPORT)
755
+  // Enable this option to collect and display the maximum
756
+  // RX queue usage after transferring a file to SD.
757
+  //#define SERIAL_STATS_MAX_RX_QUEUED
758
+
759
+  // Enable this option to collect and display the number
760
+  // of dropped bytes after a file transfer to SD.
761
+  //#define SERIAL_STATS_DROPPED_RX
762
+#endif
763
+
754 764
 // Enable an emergency-command parser to intercept certain commands as they
755 765
 // enter the serial receive buffer, so they cannot be blocked.
756 766
 // Currently handles M108, M112, M410
@@ -1274,6 +1284,7 @@
1274 1284
 #if ENABLED(CUSTOM_USER_MENUS)
1275 1285
   #define USER_SCRIPT_DONE "M117 User Script Done"
1276 1286
   #define USER_SCRIPT_AUDIBLE_FEEDBACK
1287
+  //#define USER_SCRIPT_RETURN  // Return to status screen after a script
1277 1288
 
1278 1289
   #define USER_DESC_1 "Home & UBL Info"
1279 1290
   #define USER_GCODE_1 "G28\nG29 W"
@@ -1383,29 +1394,31 @@
1383 1394
 #endif // I2C_POSITION_ENCODERS
1384 1395
 
1385 1396
 /**
1386
-  * Debug LED's using an 8x8 LED Matrix driven by a Max7219 chip.   Fully assembled versions are available on
1387
-  * eBay for under $2.00 (including shipping) and only require 3 signal wires.
1388
-  *
1389
-  * Check out auctions similar to this: https://www.ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313&_nkw=332349290049&_sacat=0
1390
-  */
1391
-
1397
+ * MAX7219 Debug Matrix
1398
+ *
1399
+ * Add support for a low-cost 8x8 LED Matrix based on the Max7219 chip, which can be used as a status
1400
+ * display. Requires 3 signal wires. Some useful debug options are included to demonstrate its usage.
1401
+ *
1402
+ * Fully assembled MAX7219 boards can be found on the internet for under $2(US).
1403
+ * For example, see https://www.ebay.com/sch/i.html?_nkw=332349290049
1404
+ */
1392 1405
 //#define MAX7219_DEBUG
1393 1406
 #if ENABLED(MAX7219_DEBUG)
1394
-  #define Max7219_clock   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display
1395
-  #define Max7219_data_in 57  // 78 on Re-ARM
1396
-  #define Max7219_load    44  // 79 on Re-ARM
1407
+  #define MAX7219_CLK_PIN   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display
1408
+  #define MAX7219_DIN_PIN   57  // 78 on Re-ARM
1409
+  #define MAX7219_LOAD_PIN  44  // 79 on Re-ARM
1397 1410
 
1398
-  /*
1399
-   * These are sample debug features that can be turned on and configured for your use.
1400
-   * The developer will need to manage the use of the various LED's in the 8x8 matrix to avoid conflicts.
1411
+  /**
1412
+   * Sample debug features
1413
+   * If you add more debug displays, be careful to avoid conflicts!
1401 1414
    */
1402
-  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix from idle() routine if firmware is functioning
1403
-  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Display row position of stepper queue head on this line and the next line of LED matrix
1404
-  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Display row position of stepper queue tail on this line and the next line of LED matrix
1415
+  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix to show that the firmware is functioning
1416
+  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Show the stepper queue head position on this and the next LED matrix row
1417
+  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Show the stepper queue tail position on this and the next LED matrix row
1405 1418
 
1406
-  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Display row position of stepper queue depth on this line and the next line of LED matrix
1407
-                                         // If you have stuttering on your Delta printer, this option may help you understand how
1408
-                                         // various tweaks you make to your configuration are affecting the printer.
1419
+  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Show the current stepper queue depth on this and the next LED matrix row
1420
+                                         // If you experience stuttering, reboots, etc. this option can reveal how
1421
+                                         // tweaks made to the configuration are affecting the printer in real-time.
1409 1422
 #endif
1410 1423
 
1411 1424
 #endif // CONFIGURATION_ADV_H

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

@@ -107,8 +107,9 @@
107 107
  *
108 108
  * 250000 works in most cases, but you might try a lower speed if
109 109
  * you commonly experience drop-outs during host printing.
110
+ * You may try up to 1000000 to speed up SD file transfer.
110 111
  *
111
- * :[2400, 9600, 19200, 38400, 57600, 115200, 250000]
112
+ * :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000]
112 113
  */
113 114
 #define BAUDRATE 115200
114 115
 
@@ -758,6 +759,8 @@
758 759
 
759 760
 // @section homing
760 761
 
762
+//#define NO_MOTION_BEFORE_HOMING  // Inhibit movement until all axes have been homed
763
+
761 764
 //#define Z_HOMING_HEIGHT 4  // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
762 765
                              // Be sure you have this distance over your Z_MAX_POS in case.
763 766
 
@@ -954,9 +957,11 @@
954 957
 #if ENABLED(LCD_BED_LEVELING)
955 958
   #define MBL_Z_STEP 0.025    // Step size while manually probing Z axis.
956 959
   #define LCD_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
957
-  #define LEVEL_BED_CORNERS   // Add an option to move between corners
958 960
 #endif
959 961
 
962
+// Add a menu item to move between bed corners for manual bed adjustment
963
+//#define LEVEL_BED_CORNERS
964
+
960 965
 /**
961 966
  * Commands to execute at the end of G29 probing.
962 967
  * Useful to retract or move the Z probe out of the way.
@@ -1197,7 +1202,7 @@
1197 1202
  *  - Click the controller to view the LCD menu
1198 1203
  *  - The LCD will display Japanese, Western, or Cyrillic text
1199 1204
  *
1200
- * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
1205
+ * See http://marlinfw.org/docs/development/lcd_language.html
1201 1206
  *
1202 1207
  * :['JAPANESE', 'WESTERN', 'CYRILLIC']
1203 1208
  */
@@ -1497,6 +1502,35 @@
1497 1502
 //
1498 1503
 //#define OLED_PANEL_TINYBOY2
1499 1504
 
1505
+//
1506
+// Makeboard 3D Printer Parts 3D Printer Mini Display 1602 Mini Controller
1507
+// https://www.aliexpress.com/item/Micromake-Makeboard-3D-Printer-Parts-3D-Printer-Mini-Display-1602-Mini-Controller-Compatible-with-Ramps-1/32765887917.html
1508
+//
1509
+//#define MAKEBOARD_MINI_2_LINE_DISPLAY_1602
1510
+
1511
+//
1512
+// MKS MINI12864 with graphic controller and SD support
1513
+// http://reprap.org/wiki/MKS_MINI_12864
1514
+//
1515
+//#define MKS_MINI_12864
1516
+
1517
+//
1518
+// Factory display for Creality CR-10
1519
+// https://www.aliexpress.com/item/Universal-LCD-12864-3D-Printer-Display-Screen-With-Encoder-For-CR-10-CR-7-Model/32833148327.html
1520
+//
1521
+// This is RAMPS-compatible using a single 10-pin connector.
1522
+// (For CR-10 owners who want to replace the Melzi Creality board but retain the display)
1523
+//
1524
+//#define CR10_STOCKDISPLAY
1525
+
1526
+//
1527
+// MKS OLED 1.3" 128 × 64 FULL GRAPHICS CONTROLLER
1528
+// http://reprap.org/wiki/MKS_12864OLED
1529
+//
1530
+// Tiny, but very sharp OLED display
1531
+//
1532
+//#define MKS_12864OLED
1533
+
1500 1534
 //=============================================================================
1501 1535
 //=============================== Extra Features ==============================
1502 1536
 //=============================================================================
@@ -1553,16 +1587,22 @@
1553 1587
  * Adds the M150 command to set the LED (or LED strip) color.
1554 1588
  * If pins are PWM capable (e.g., 4, 5, 6, 11) then a range of
1555 1589
  * luminance values can be set from 0 to 255.
1590
+ * For Neopixel LED overall brightness parameters is also available 
1556 1591
  *
1557 1592
  * *** CAUTION ***
1558 1593
  *  LED Strips require a MOFSET Chip between PWM lines and LEDs,
1559 1594
  *  as the Arduino cannot handle the current the LEDs will require.
1560 1595
  *  Failure to follow this precaution can destroy your Arduino!
1596
+ *  The Neopixel LED is 5V powered, but linear 5V regulator on Arduino
1597
+ *  cannot handle such current, separate 5V power supply must be used
1561 1598
  * *** CAUTION ***
1562 1599
  *
1600
+ * LED type. This options are mutualy exclusive. Uncomment only one.
1601
+ *
1563 1602
  */
1564 1603
 //#define RGB_LED
1565 1604
 //#define RGBW_LED
1605
+
1566 1606
 #if ENABLED(RGB_LED) || ENABLED(RGBW_LED)
1567 1607
   #define RGB_LED_R_PIN 34
1568 1608
   #define RGB_LED_G_PIN 43
@@ -1571,11 +1611,14 @@
1571 1611
 #endif
1572 1612
 
1573 1613
 // Support for Adafruit Neopixel LED driver
1574
-//#define NEOPIXEL_RGBW_LED
1575
-#if ENABLED(NEOPIXEL_RGBW_LED)
1576
-  #define NEOPIXEL_PIN    4       // D4 (EXP2-5 on Printrboard)
1577
-  #define NEOPIXEL_PIXELS 3
1578
-  //#define NEOPIXEL_STARTUP_TEST // Cycle through colors at startup
1614
+//#define NEOPIXEL_LED
1615
+#if ENABLED(NEOPIXEL_LED)
1616
+  #define NEOPIXEL_TYPE   NEO_GRBW // NEO_GRBW / NEO_GRB - four/three channel driver type (definned in Adafruit_NeoPixel.h)
1617
+  #define NEOPIXEL_PIN    4        // LED driving pin on motherboard 4 => D4 (EXP2-5 on Printrboard) / 30 => PC7 (EXP3-13 on Rumba)
1618
+  #define NEOPIXEL_PIXELS 30       // Number of LEDs on strip
1619
+  #define NEOPIXEL_IS_SEQUENTIAL   // Sequent display for temperature change - LED by LED. Comment out for change all LED at time
1620
+  #define NEOPIXEL_BRIGHTNESS 127  // Initial brightness 0-255
1621
+  //#define NEOPIXEL_STARTUP_TEST  // Cycle through colors at startup
1579 1622
 #endif
1580 1623
 
1581 1624
 /**

+ 52
- 39
Marlin/example_configurations/Cartesio/Configuration_adv.h View File

@@ -222,7 +222,7 @@
222 222
 
223 223
 /**
224 224
  * Part-Cooling Fan Multiplexer
225
- * 
225
+ *
226 226
  * This feature allows you to digitally multiplex the fan output.
227 227
  * The multiplexer is automatically switched at tool-change.
228 228
  * Set FANMUX[012]_PINs below for up to 2, 4, or 8 multiplexed fans.
@@ -510,7 +510,7 @@
510 510
 
511 511
   // SD Card Sorting options
512 512
   #if ENABLED(SDCARD_SORT_ALPHA)
513
-    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256).
513
+    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256). Costs 27 bytes each.
514 514
     #define FOLDER_SORTING     -1     // -1=above  0=none  1=below
515 515
     #define SDSORT_GCODE       false  // Allow turning sorting on/off with LCD and M34 g-code.
516 516
     #define SDSORT_USES_RAM    false  // Pre-allocate a static array for faster pre-sorting.
@@ -601,31 +601,19 @@
601 601
  */
602 602
 //#define BABYSTEPPING
603 603
 #if ENABLED(BABYSTEPPING)
604
-  #define BABYSTEP_XY              // Also enable X/Y Babystepping. Not supported on DELTA!
605
-  #define BABYSTEP_INVERT_Z false  // Change if Z babysteps should go the other way
606
-  #define BABYSTEP_MULTIPLICATOR 1 // Babysteps are very small. Increase for faster motion.
607
-  //#define BABYSTEP_ZPROBE_OFFSET // Enable to combine M851 and Babystepping
604
+  //#define BABYSTEP_XY              // Also enable X/Y Babystepping. Not supported on DELTA!
605
+  #define BABYSTEP_INVERT_Z false    // Change if Z babysteps should go the other way
606
+  #define BABYSTEP_MULTIPLICATOR 100 // Babysteps are very small. Increase for faster motion.
607
+  //#define BABYSTEP_ZPROBE_OFFSET   // Enable to combine M851 and Babystepping
608 608
   //#define DOUBLECLICK_FOR_Z_BABYSTEPPING // Double-click on the Status Screen for Z Babystepping.
609 609
   #define DOUBLECLICK_MAX_INTERVAL 1250 // Maximum interval between clicks, in milliseconds.
610 610
                                         // Note: Extra time may be added to mitigate controller latency.
611
+  //#define BABYSTEP_ZPROBE_GFX_OVERLAY // Enable graphical overlay on Z-offset editor
612
+  //#define BABYSTEP_ZPROBE_GFX_REVERSE // Reverses the direction of the CW/CCW indicators
611 613
 #endif
612 614
 
613 615
 // @section extruder
614 616
 
615
-// extruder advance constant (s2/mm3)
616
-//
617
-// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
618
-//
619
-// Hooke's law says:    force = k * distance
620
-// Bernoulli's principle says:  v ^ 2 / 2 + g . h + pressure / density = constant
621
-// so: v ^ 2 is proportional to number of steps we advance the extruder
622
-//#define ADVANCE
623
-
624
-#if ENABLED(ADVANCE)
625
-  #define EXTRUDER_ADVANCE_K .0
626
-  #define D_FILAMENT 2.85
627
-#endif
628
-
629 617
 /**
630 618
  * Implementation of linear pressure control
631 619
  *
@@ -742,7 +730,7 @@
742 730
 #define MAX_CMD_SIZE 96
743 731
 #define BUFSIZE 4
744 732
 
745
-// Transfer Buffer Size
733
+// Transmission to Host Buffer Size
746 734
 // To save 386 bytes of PROGMEM (and TX_BUFFER_SIZE+3 bytes of RAM) set to 0.
747 735
 // To buffer a simple "ok" you need 4 bytes.
748 736
 // For ADVANCED_OK (M105) you need 32 bytes.
@@ -751,6 +739,28 @@
751 739
 // :[0, 2, 4, 8, 16, 32, 64, 128, 256]
752 740
 #define TX_BUFFER_SIZE 0
753 741
 
742
+// Host Receive Buffer Size
743
+// Without XON/XOFF flow control (see SERIAL_XON_XOFF below) 32 bytes should be enough.
744
+// To use flow control, set this buffer size to at least 1024 bytes.
745
+// :[0, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048]
746
+//#define RX_BUFFER_SIZE 1024
747
+
748
+#if RX_BUFFER_SIZE >= 1024
749
+  // Enable to have the controller send XON/XOFF control characters to
750
+  // the host to signal the RX buffer is becoming full.
751
+  //#define SERIAL_XON_XOFF
752
+#endif
753
+
754
+#if ENABLED(SDSUPPORT)
755
+  // Enable this option to collect and display the maximum
756
+  // RX queue usage after transferring a file to SD.
757
+  //#define SERIAL_STATS_MAX_RX_QUEUED
758
+
759
+  // Enable this option to collect and display the number
760
+  // of dropped bytes after a file transfer to SD.
761
+  //#define SERIAL_STATS_DROPPED_RX
762
+#endif
763
+
754 764
 // Enable an emergency-command parser to intercept certain commands as they
755 765
 // enter the serial receive buffer, so they cannot be blocked.
756 766
 // Currently handles M108, M112, M410
@@ -1274,6 +1284,7 @@
1274 1284
 #if ENABLED(CUSTOM_USER_MENUS)
1275 1285
   #define USER_SCRIPT_DONE "M117 User Script Done"
1276 1286
   #define USER_SCRIPT_AUDIBLE_FEEDBACK
1287
+  //#define USER_SCRIPT_RETURN  // Return to status screen after a script
1277 1288
 
1278 1289
   #define USER_DESC_1 "Home & UBL Info"
1279 1290
   #define USER_GCODE_1 "G28\nG29 W"
@@ -1383,29 +1394,31 @@
1383 1394
 #endif // I2C_POSITION_ENCODERS
1384 1395
 
1385 1396
 /**
1386
-  * Debug LED's using an 8x8 LED Matrix driven by a Max7219 chip.   Fully assembled versions are available on
1387
-  * eBay for under $2.00 (including shipping) and only require 3 signal wires.
1388
-  *
1389
-  * Check out auctions similar to this: https://www.ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313&_nkw=332349290049&_sacat=0
1390
-  */
1391
-
1397
+ * MAX7219 Debug Matrix
1398
+ *
1399
+ * Add support for a low-cost 8x8 LED Matrix based on the Max7219 chip, which can be used as a status
1400
+ * display. Requires 3 signal wires. Some useful debug options are included to demonstrate its usage.
1401
+ *
1402
+ * Fully assembled MAX7219 boards can be found on the internet for under $2(US).
1403
+ * For example, see https://www.ebay.com/sch/i.html?_nkw=332349290049
1404
+ */
1392 1405
 //#define MAX7219_DEBUG
1393 1406
 #if ENABLED(MAX7219_DEBUG)
1394
-  #define Max7219_clock   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display
1395
-  #define Max7219_data_in 57  // 78 on Re-ARM
1396
-  #define Max7219_load    44  // 79 on Re-ARM
1407
+  #define MAX7219_CLK_PIN   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display
1408
+  #define MAX7219_DIN_PIN   57  // 78 on Re-ARM
1409
+  #define MAX7219_LOAD_PIN  44  // 79 on Re-ARM
1397 1410
 
1398
-  /*
1399
-   * These are sample debug features that can be turned on and configured for your use.
1400
-   * The developer will need to manage the use of the various LED's in the 8x8 matrix to avoid conflicts.
1411
+  /**
1412
+   * Sample debug features
1413
+   * If you add more debug displays, be careful to avoid conflicts!
1401 1414
    */
1402
-  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix from idle() routine if firmware is functioning
1403
-  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Display row position of stepper queue head on this line and the next line of LED matrix
1404
-  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Display row position of stepper queue tail on this line and the next line of LED matrix
1415
+  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix to show that the firmware is functioning
1416
+  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Show the stepper queue head position on this and the next LED matrix row
1417
+  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Show the stepper queue tail position on this and the next LED matrix row
1405 1418
 
1406
-  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Display row position of stepper queue depth on this line and the next line of LED matrix
1407
-                                         // If you have stuttering on your Delta printer, this option may help you understand how
1408
-                                         // various tweaks you make to your configuration are affecting the printer.
1419
+  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Show the current stepper queue depth on this and the next LED matrix row
1420
+                                         // If you experience stuttering, reboots, etc. this option can reveal how
1421
+                                         // tweaks made to the configuration are affecting the printer in real-time.
1409 1422
 #endif
1410 1423
 
1411 1424
 #endif // CONFIGURATION_ADV_H

+ 65
- 24
Marlin/example_configurations/Creality/CR-10/Configuration.h View File

@@ -77,7 +77,7 @@
77 77
 #define STRING_CONFIG_H_AUTHOR "(Creality CR-10)" // Who made the changes.
78 78
 #define SHOW_BOOTSCREEN
79 79
 #define STRING_SPLASH_LINE1 SHORT_BUILD_VERSION // will be shown during bootup in line 1
80
-//#define STRING_SPLASH_LINE2 WEBSITE_URL         // will be shown during bootup in line 2
80
+#define STRING_SPLASH_LINE2 WEBSITE_URL         // will be shown during bootup in line 2
81 81
 
82 82
 //
83 83
 // *** VENDORS PLEASE READ *****************************************************
@@ -90,7 +90,7 @@
90 90
 // boot image unmodified. For an example have a look at the bq Hephestos 2
91 91
 // example configuration folder.
92 92
 //
93
-//#define SHOW_CUSTOM_BOOTSCREEN
93
+#define SHOW_CUSTOM_BOOTSCREEN
94 94
 // @section machine
95 95
 
96 96
 /**
@@ -107,8 +107,9 @@
107 107
  *
108 108
  * 250000 works in most cases, but you might try a lower speed if
109 109
  * you commonly experience drop-outs during host printing.
110
+ * You may try up to 1000000 to speed up SD file transfer.
110 111
  *
111
- * :[2400, 9600, 19200, 38400, 57600, 115200, 250000]
112
+ * :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000]
112 113
  */
113 114
 #define BAUDRATE 115200
114 115
 
@@ -282,7 +283,7 @@
282 283
  *
283 284
  * :{ '0': "Not used", '1':"100k / 4.7k - EPCOS", '2':"200k / 4.7k - ATC Semitec 204GT-2", '3':"Mendel-parts / 4.7k", '4':"10k !! do not use for a hotend. Bad resolution at high temp. !!", '5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '6':"100k / 4.7k EPCOS - Not as accurate as Table 1", '7':"100k / 4.7k Honeywell 135-104LAG-J01", '8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10':"100k / 4.7k RS 198-961", '11':"100k / 4.7k beta 3950 1%", '12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13':"100k Hisens 3950  1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '20':"PT100 (Ultimainboard V2.x)", '51':"100k / 1k - EPCOS", '52':"200k / 1k - ATC Semitec 204GT-2", '55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '66':"Dyze Design 4.7M High Temperature thermistor", '70':"the 100K thermistor found in the bq Hephestos 2", '71':"100k / 4.7k Honeywell 135-104LAF-J01", '147':"Pt100 / 4.7k", '1047':"Pt1000 / 4.7k", '110':"Pt100 / 1k (non-standard)", '1010':"Pt1000 / 1k (non standard)", '-3':"Thermocouple + MAX31855 (only for sensor 0)", '-2':"Thermocouple + MAX6675 (only for sensor 0)", '-1':"Thermocouple + AD595",'998':"Dummy 1", '999':"Dummy 2" }
284 285
  */
285
-#define TEMP_SENSOR_0 5
286
+#define TEMP_SENSOR_0 1
286 287
 #define TEMP_SENSOR_1 0
287 288
 #define TEMP_SENSOR_2 0
288 289
 #define TEMP_SENSOR_3 0
@@ -702,7 +703,7 @@
702 703
 #define Z_PROBE_SPEED_SLOW (Z_PROBE_SPEED_FAST / 2)
703 704
 
704 705
 // Use double touch for probing
705
-#define PROBE_DOUBLE_TOUCH
706
+//#define PROBE_DOUBLE_TOUCH
706 707
 
707 708
 /**
708 709
  * Z probes require clearance when deploying, stowing, and moving between
@@ -769,6 +770,8 @@
769 770
 
770 771
 // @section homing
771 772
 
773
+//#define NO_MOTION_BEFORE_HOMING  // Inhibit movement until all axes have been homed
774
+
772 775
 //#define Z_HOMING_HEIGHT 5  // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
773 776
                              // Be sure you have this distance over your Z_MAX_POS in case.
774 777
 
@@ -788,7 +791,7 @@
788 791
 #define X_MIN_POS 0
789 792
 #define Y_MIN_POS 0
790 793
 #define Z_MIN_POS 0
791
-#define X_MAX_POS X_BED_SIZE
794
+#define X_MAX_POS X_BED_SIZE + 20
792 795
 #define Y_MAX_POS Y_BED_SIZE
793 796
 #define Z_MAX_POS 400
794 797
 
@@ -939,7 +942,7 @@
939 942
   #define UBL_PROBE_PT_3_X 180
940 943
   #define UBL_PROBE_PT_3_Y 20
941 944
 
942
-  #define UBL_G26_MESH_VALIDATION   // Enable G26 mesh validation
945
+  //#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
943 946
   #define UBL_MESH_EDIT_MOVES_Z     // Sophisticated users prefer no movement of nozzle
944 947
 
945 948
 #elif ENABLED(MESH_BED_LEVELING)
@@ -965,9 +968,11 @@
965 968
 #if ENABLED(LCD_BED_LEVELING)
966 969
   #define MBL_Z_STEP 0.025    // Step size while manually probing Z axis.
967 970
   #define LCD_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
968
-  #define LEVEL_BED_CORNERS   // Add an option to move between corners
969 971
 #endif
970 972
 
973
+// Add a menu item to move between bed corners for manual bed adjustment
974
+#define LEVEL_BED_CORNERS
975
+
971 976
 /**
972 977
  * Commands to execute at the end of G29 probing.
973 978
  * Useful to retract or move the Z probe out of the way.
@@ -994,6 +999,7 @@
994 999
 // - If stepper drivers time out, it will need X and Y homing again before Z homing.
995 1000
 // - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
996 1001
 // - Prevent Z homing when the Z probe is outside bed area.
1002
+//
997 1003
 //#define Z_SAFE_HOMING
998 1004
 
999 1005
 #if ENABLED(Z_SAFE_HOMING)
@@ -1018,13 +1024,10 @@
1018 1024
 // M500 - stores parameters in EEPROM
1019 1025
 // M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).
1020 1026
 // M502 - reverts to the default "factory settings".  You still need to store them in EEPROM afterwards if you want to.
1021
-// Define this to enable EEPROM support
1022
-#define EEPROM_SETTINGS
1023
-
1024
-#if ENABLED(EEPROM_SETTINGS)
1025
-  //#define DISABLE_M503  // Saves ~2700 bytes of PROGMEM. Disable for release!
1026
-  #define EEPROM_CHITCHAT // Print a report on M500. Please keep turned on.
1027
-#endif
1027
+//
1028
+#define EEPROM_SETTINGS // Enable for M500 and M501 commands
1029
+//#define DISABLE_M503    // Saves ~2700 bytes of PROGMEM. Disable for release!
1030
+#define EEPROM_CHITCHAT   // Give feedback on EEPROM commands. Disable to save PROGMEM.
1028 1031
 
1029 1032
 //
1030 1033
 // Host Keepalive
@@ -1054,7 +1057,7 @@
1054 1057
 // @section temperature
1055 1058
 
1056 1059
 // Preheat Constants
1057
-#define PREHEAT_1_TEMP_HOTEND 200
1060
+#define PREHEAT_1_TEMP_HOTEND 190
1058 1061
 #define PREHEAT_1_TEMP_BED     70
1059 1062
 #define PREHEAT_1_FAN_SPEED     0 // Value from 0 to 255
1060 1063
 
@@ -1157,7 +1160,7 @@
1157 1160
  *   M76 - Pause the print job timer
1158 1161
  *   M77 - Stop the print job timer
1159 1162
  */
1160
-//#define PRINTJOB_TIMER_AUTOSTART
1163
+#define PRINTJOB_TIMER_AUTOSTART
1161 1164
 
1162 1165
 /**
1163 1166
  * Print Counter
@@ -1210,7 +1213,7 @@
1210 1213
  *  - Click the controller to view the LCD menu
1211 1214
  *  - The LCD will display Japanese, Western, or Cyrillic text
1212 1215
  *
1213
- * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
1216
+ * See http://marlinfw.org/docs/development/lcd_language.html
1214 1217
  *
1215 1218
  * :['JAPANESE', 'WESTERN', 'CYRILLIC']
1216 1219
  */
@@ -1388,7 +1391,7 @@
1388 1391
 // RepRapDiscount FULL GRAPHIC Smart Controller
1389 1392
 // http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller
1390 1393
 //
1391
-#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
1394
+//#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
1392 1395
 
1393 1396
 //
1394 1397
 // MakerLab Mini Panel with graphic
@@ -1510,6 +1513,35 @@
1510 1513
 //
1511 1514
 //#define OLED_PANEL_TINYBOY2
1512 1515
 
1516
+//
1517
+// Makeboard 3D Printer Parts 3D Printer Mini Display 1602 Mini Controller
1518
+// https://www.aliexpress.com/item/Micromake-Makeboard-3D-Printer-Parts-3D-Printer-Mini-Display-1602-Mini-Controller-Compatible-with-Ramps-1/32765887917.html
1519
+//
1520
+//#define MAKEBOARD_MINI_2_LINE_DISPLAY_1602
1521
+
1522
+//
1523
+// MKS MINI12864 with graphic controller and SD support
1524
+// http://reprap.org/wiki/MKS_MINI_12864
1525
+//
1526
+//#define MKS_MINI_12864
1527
+
1528
+//
1529
+// Factory display for Creality CR-10
1530
+// https://www.aliexpress.com/item/Universal-LCD-12864-3D-Printer-Display-Screen-With-Encoder-For-CR-10-CR-7-Model/32833148327.html
1531
+//
1532
+// This is RAMPS-compatible using a single 10-pin connector.
1533
+// (For CR-10 owners who want to replace the Melzi Creality board but retain the display)
1534
+//
1535
+#define CR10_STOCKDISPLAY
1536
+
1537
+//
1538
+// MKS OLED 1.3" 128 × 64 FULL GRAPHICS CONTROLLER
1539
+// http://reprap.org/wiki/MKS_12864OLED
1540
+//
1541
+// Tiny, but very sharp OLED display
1542
+//
1543
+//#define MKS_12864OLED
1544
+
1513 1545
 //=============================================================================
1514 1546
 //=============================== Extra Features ==============================
1515 1547
 //=============================================================================
@@ -1566,16 +1598,22 @@
1566 1598
  * Adds the M150 command to set the LED (or LED strip) color.
1567 1599
  * If pins are PWM capable (e.g., 4, 5, 6, 11) then a range of
1568 1600
  * luminance values can be set from 0 to 255.
1601
+ * For Neopixel LED overall brightness parameters is also available 
1569 1602
  *
1570 1603
  * *** CAUTION ***
1571 1604
  *  LED Strips require a MOFSET Chip between PWM lines and LEDs,
1572 1605
  *  as the Arduino cannot handle the current the LEDs will require.
1573 1606
  *  Failure to follow this precaution can destroy your Arduino!
1607
+ *  The Neopixel LED is 5V powered, but linear 5V regulator on Arduino
1608
+ *  cannot handle such current, separate 5V power supply must be used
1574 1609
  * *** CAUTION ***
1575 1610
  *
1611
+ * LED type. This options are mutualy exclusive. Uncomment only one.
1612
+ *
1576 1613
  */
1577 1614
 //#define RGB_LED
1578 1615
 //#define RGBW_LED
1616
+
1579 1617
 #if ENABLED(RGB_LED) || ENABLED(RGBW_LED)
1580 1618
   #define RGB_LED_R_PIN 34
1581 1619
   #define RGB_LED_G_PIN 43
@@ -1584,11 +1622,14 @@
1584 1622
 #endif
1585 1623
 
1586 1624
 // Support for Adafruit Neopixel LED driver
1587
-//#define NEOPIXEL_RGBW_LED
1588
-#if ENABLED(NEOPIXEL_RGBW_LED)
1589
-  #define NEOPIXEL_PIN    4       // D4 (EXP2-5 on Printrboard)
1590
-  #define NEOPIXEL_PIXELS 3
1591
-  //#define NEOPIXEL_STARTUP_TEST // Cycle through colors at startup
1625
+//#define NEOPIXEL_LED
1626
+#if ENABLED(NEOPIXEL_LED)
1627
+  #define NEOPIXEL_TYPE   NEO_GRBW // NEO_GRBW / NEO_GRB - four/three channel driver type (definned in Adafruit_NeoPixel.h)
1628
+  #define NEOPIXEL_PIN    4        // LED driving pin on motherboard 4 => D4 (EXP2-5 on Printrboard) / 30 => PC7 (EXP3-13 on Rumba)
1629
+  #define NEOPIXEL_PIXELS 30       // Number of LEDs on strip
1630
+  #define NEOPIXEL_IS_SEQUENTIAL   // Sequent display for temperature change - LED by LED. Comment out for change all LED at time
1631
+  #define NEOPIXEL_BRIGHTNESS 127  // Initial brightness 0-255
1632
+  //#define NEOPIXEL_STARTUP_TEST  // Cycle through colors at startup
1592 1633
 #endif
1593 1634
 
1594 1635
 /**

+ 1424
- 0
Marlin/example_configurations/Creality/CR-10/Configuration_adv.h
File diff suppressed because it is too large
View File


+ 100
- 0
Marlin/example_configurations/Creality/CR-10/_Bootscreen.h View File

@@ -0,0 +1,100 @@
1
+/**
2
+ * Marlin 3D Printer Firmware
3
+ * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
4
+ *
5
+ * Based on Sprinter and grbl.
6
+ * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
7
+ *
8
+ * This program is free software: you can redistribute it and/or modify
9
+ * it under the terms of the GNU General Public License as published by
10
+ * the Free Software Foundation, either version 3 of the License, or
11
+ * (at your option) any later version.
12
+ *
13
+ * This program is distributed in the hope that it will be useful,
14
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
+ * GNU General Public License for more details.
17
+ *
18
+ * You should have received a copy of the GNU General Public License
19
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
20
+ *
21
+ */
22
+
23
+/**
24
+ * Tongue-in-cheek placeholder for a more Marlin-specific bitmap
25
+ * The joke is that every "CR-10" has different branding!
26
+ * Made using The Gimp and...
27
+ *  - http://www.digole.com/tools/PicturetoC_Hex_converter.php
28
+ */
29
+#include <avr/pgmspace.h>
30
+
31
+#define CUSTOM_BOOTSCREEN_TIMEOUT   2500
32
+#define CUSTOM_BOOTSCREEN_BMPWIDTH  54
33
+#define CUSTOM_BOOTSCREEN_BMPHEIGHT 64
34
+
35
+const unsigned char custom_start_bmp[] PROGMEM = {
36
+  0x00, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x00,
37
+  0x00, 0x00, 0x00, 0x3F, 0xF8, 0x00, 0x00,
38
+  0x00, 0x00, 0x03, 0xFF, 0xFC, 0x00, 0x00,
39
+  0x00, 0x00, 0x0F, 0xFF, 0xFC, 0x00, 0x00,
40
+  0x00, 0x00, 0x3F, 0xFF, 0xFC, 0x00, 0x00,
41
+  0x00, 0x00, 0x7F, 0xFF, 0xFC, 0x00, 0x00,
42
+  0x00, 0x00, 0x7F, 0xFF, 0xFC, 0x00, 0x00,
43
+  0x00, 0x00, 0xFF, 0xFF, 0xFC, 0x00, 0x00,
44
+  0x00, 0x00, 0xFF, 0xFF, 0xFC, 0x00, 0x00,
45
+  0x00, 0x00, 0xFF, 0xFF, 0xFC, 0x00, 0x00,
46
+  0x00, 0x00, 0xFF, 0xFF, 0xFC, 0x0F, 0xF0,
47
+  0x00, 0x00, 0xFF, 0xFF, 0xFD, 0xFF, 0xF8,
48
+  0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC,
49
+  0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC,
50
+  0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC,
51
+  0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC,
52
+  0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC,
53
+  0x00, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8,
54
+  0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0,
55
+  0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0,
56
+  0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
57
+  0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00,
58
+  0x7F, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x00,
59
+  0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x00,
60
+  0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x00,
61
+  0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x00,
62
+  0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x00,
63
+  0x7F, 0xFC, 0xFF, 0xFF, 0xFC, 0x00, 0x00,
64
+  0x1F, 0x80, 0xFF, 0xFF, 0xFC, 0x00, 0x00,
65
+  0x00, 0x00, 0xFF, 0xFF, 0xFC, 0x00, 0x00,
66
+  0x00, 0x00, 0xFF, 0xFF, 0xFC, 0x00, 0x00,
67
+  0x00, 0x00, 0xFF, 0xFF, 0xFC, 0x00, 0x00,
68
+  0x00, 0x00, 0xFF, 0xFF, 0xFC, 0x00, 0x00,
69
+  0x00, 0x00, 0xFF, 0xFF, 0xFC, 0x00, 0x00,
70
+  0x00, 0x00, 0xFF, 0xFF, 0xFC, 0x00, 0x00,
71
+  0x00, 0x00, 0xFF, 0xFF, 0xFC, 0x00, 0x00,
72
+  0x00, 0x00, 0xFF, 0xFF, 0xFC, 0x00, 0x00,
73
+  0x00, 0x00, 0xFF, 0xFF, 0xFC, 0x00, 0x00,
74
+  0x00, 0x00, 0xFF, 0xFF, 0xFC, 0x00, 0x00,
75
+  0x00, 0x00, 0xFF, 0xFF, 0xFC, 0x00, 0x00,
76
+  0x00, 0x00, 0xFF, 0xFF, 0xFC, 0x00, 0x00,
77
+  0x00, 0x00, 0xFF, 0xFF, 0xFC, 0x00, 0x00,
78
+  0x00, 0x00, 0xFF, 0xFF, 0xFC, 0x00, 0x00,
79
+  0x00, 0x00, 0xFF, 0xFF, 0xFC, 0x00, 0x00,
80
+  0x00, 0x00, 0xFF, 0xFF, 0xFC, 0x00, 0x00,
81
+  0x00, 0x00, 0xFF, 0xFF, 0xFC, 0x00, 0x00,
82
+  0x00, 0x00, 0xFF, 0xFF, 0xFC, 0x00, 0x00,
83
+  0x00, 0x00, 0xFF, 0xFF, 0xFC, 0x00, 0x00,
84
+  0x00, 0x00, 0xFF, 0xFF, 0xFC, 0x00, 0x00,
85
+  0x00, 0x00, 0xFF, 0xFF, 0xFC, 0x00, 0x00,
86
+  0x00, 0x00, 0xFF, 0xFF, 0xFE, 0x3F, 0xF8,
87
+  0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC,
88
+  0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC,
89
+  0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC,
90
+  0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC,
91
+  0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC,
92
+  0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8,
93
+  0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8,
94
+  0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0,
95
+  0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xC0,
96
+  0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xFE, 0x00,
97
+  0x00, 0x00, 0x1F, 0xFF, 0xFF, 0xE0, 0x00,
98
+  0x00, 0x00, 0x07, 0xFF, 0xFC, 0x00, 0x00,
99
+  0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00
100
+};

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

@@ -107,8 +107,9 @@
107 107
  *
108 108
  * 250000 works in most cases, but you might try a lower speed if
109 109
  * you commonly experience drop-outs during host printing.
110
+ * You may try up to 1000000 to speed up SD file transfer.
110 111
  *
111
- * :[2400, 9600, 19200, 38400, 57600, 115200, 250000]
112
+ * :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000]
112 113
  */
113 114
 #define BAUDRATE 250000
114 115
 
@@ -741,6 +742,8 @@
741 742
 
742 743
 // @section homing
743 744
 
745
+//#define NO_MOTION_BEFORE_HOMING  // Inhibit movement until all axes have been homed
746
+
744 747
 //#define Z_HOMING_HEIGHT 4  // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
745 748
                              // Be sure you have this distance over your Z_MAX_POS in case.
746 749
 
@@ -937,9 +940,11 @@
937 940
 #if ENABLED(LCD_BED_LEVELING)
938 941
   #define MBL_Z_STEP 0.025    // Step size while manually probing Z axis.
939 942
   #define LCD_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
940
-  #define LEVEL_BED_CORNERS   // Add an option to move between corners
941 943
 #endif
942 944
 
945
+// Add a menu item to move between bed corners for manual bed adjustment
946
+//#define LEVEL_BED_CORNERS
947
+
943 948
 /**
944 949
  * Commands to execute at the end of G29 probing.
945 950
  * Useful to retract or move the Z probe out of the way.
@@ -1180,7 +1185,7 @@
1180 1185
  *  - Click the controller to view the LCD menu
1181 1186
  *  - The LCD will display Japanese, Western, or Cyrillic text
1182 1187
  *
1183
- * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
1188
+ * See http://marlinfw.org/docs/development/lcd_language.html
1184 1189
  *
1185 1190
  * :['JAPANESE', 'WESTERN', 'CYRILLIC']
1186 1191
  */
@@ -1480,6 +1485,35 @@
1480 1485
 //
1481 1486
 //#define OLED_PANEL_TINYBOY2
1482 1487
 
1488
+//
1489
+// Makeboard 3D Printer Parts 3D Printer Mini Display 1602 Mini Controller
1490
+// https://www.aliexpress.com/item/Micromake-Makeboard-3D-Printer-Parts-3D-Printer-Mini-Display-1602-Mini-Controller-Compatible-with-Ramps-1/32765887917.html
1491
+//
1492
+//#define MAKEBOARD_MINI_2_LINE_DISPLAY_1602
1493
+
1494
+//
1495
+// MKS MINI12864 with graphic controller and SD support
1496
+// http://reprap.org/wiki/MKS_MINI_12864
1497
+//
1498
+//#define MKS_MINI_12864
1499
+
1500
+//
1501
+// Factory display for Creality CR-10
1502
+// https://www.aliexpress.com/item/Universal-LCD-12864-3D-Printer-Display-Screen-With-Encoder-For-CR-10-CR-7-Model/32833148327.html
1503
+//
1504
+// This is RAMPS-compatible using a single 10-pin connector.
1505
+// (For CR-10 owners who want to replace the Melzi Creality board but retain the display)
1506
+//
1507
+//#define CR10_STOCKDISPLAY
1508
+
1509
+//
1510
+// MKS OLED 1.3" 128 × 64 FULL GRAPHICS CONTROLLER
1511
+// http://reprap.org/wiki/MKS_12864OLED
1512
+//
1513
+// Tiny, but very sharp OLED display
1514
+//
1515
+//#define MKS_12864OLED
1516
+
1483 1517
 //=============================================================================
1484 1518
 //=============================== Extra Features ==============================
1485 1519
 //=============================================================================
@@ -1536,16 +1570,22 @@
1536 1570
  * Adds the M150 command to set the LED (or LED strip) color.
1537 1571
  * If pins are PWM capable (e.g., 4, 5, 6, 11) then a range of
1538 1572
  * luminance values can be set from 0 to 255.
1573
+ * For Neopixel LED overall brightness parameters is also available 
1539 1574
  *
1540 1575
  * *** CAUTION ***
1541 1576
  *  LED Strips require a MOFSET Chip between PWM lines and LEDs,
1542 1577
  *  as the Arduino cannot handle the current the LEDs will require.
1543 1578
  *  Failure to follow this precaution can destroy your Arduino!
1579
+ *  The Neopixel LED is 5V powered, but linear 5V regulator on Arduino
1580
+ *  cannot handle such current, separate 5V power supply must be used
1544 1581
  * *** CAUTION ***
1545 1582
  *
1583
+ * LED type. This options are mutualy exclusive. Uncomment only one.
1584
+ *
1546 1585
  */
1547 1586
 //#define RGB_LED
1548 1587
 //#define RGBW_LED
1588
+
1549 1589
 #if ENABLED(RGB_LED) || ENABLED(RGBW_LED)
1550 1590
   #define RGB_LED_R_PIN 34
1551 1591
   #define RGB_LED_G_PIN 43
@@ -1554,11 +1594,14 @@
1554 1594
 #endif
1555 1595
 
1556 1596
 // Support for Adafruit Neopixel LED driver
1557
-//#define NEOPIXEL_RGBW_LED
1558
-#if ENABLED(NEOPIXEL_RGBW_LED)
1559
-  #define NEOPIXEL_PIN    4       // D4 (EXP2-5 on Printrboard)
1560
-  #define NEOPIXEL_PIXELS 3
1561
-  //#define NEOPIXEL_STARTUP_TEST // Cycle through colors at startup
1597
+//#define NEOPIXEL_LED
1598
+#if ENABLED(NEOPIXEL_LED)
1599
+  #define NEOPIXEL_TYPE   NEO_GRBW // NEO_GRBW / NEO_GRB - four/three channel driver type (definned in Adafruit_NeoPixel.h)
1600
+  #define NEOPIXEL_PIN    4        // LED driving pin on motherboard 4 => D4 (EXP2-5 on Printrboard) / 30 => PC7 (EXP3-13 on Rumba)
1601
+  #define NEOPIXEL_PIXELS 30       // Number of LEDs on strip
1602
+  #define NEOPIXEL_IS_SEQUENTIAL   // Sequent display for temperature change - LED by LED. Comment out for change all LED at time
1603
+  #define NEOPIXEL_BRIGHTNESS 127  // Initial brightness 0-255
1604
+  //#define NEOPIXEL_STARTUP_TEST  // Cycle through colors at startup
1562 1605
 #endif
1563 1606
 
1564 1607
 /**

+ 52
- 39
Marlin/example_configurations/Felix/Configuration_adv.h View File

@@ -222,7 +222,7 @@
222 222
 
223 223
 /**
224 224
  * Part-Cooling Fan Multiplexer
225
- * 
225
+ *
226 226
  * This feature allows you to digitally multiplex the fan output.
227 227
  * The multiplexer is automatically switched at tool-change.
228 228
  * Set FANMUX[012]_PINs below for up to 2, 4, or 8 multiplexed fans.
@@ -510,7 +510,7 @@
510 510
 
511 511
   // SD Card Sorting options
512 512
   #if ENABLED(SDCARD_SORT_ALPHA)
513
-    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256).
513
+    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256). Costs 27 bytes each.
514 514
     #define FOLDER_SORTING     -1     // -1=above  0=none  1=below
515 515
     #define SDSORT_GCODE       false  // Allow turning sorting on/off with LCD and M34 g-code.
516 516
     #define SDSORT_USES_RAM    false  // Pre-allocate a static array for faster pre-sorting.
@@ -601,31 +601,19 @@
601 601
  */
602 602
 //#define BABYSTEPPING
603 603
 #if ENABLED(BABYSTEPPING)
604
-  #define BABYSTEP_XY              // Also enable X/Y Babystepping. Not supported on DELTA!
605
-  #define BABYSTEP_INVERT_Z false  // Change if Z babysteps should go the other way
606
-  #define BABYSTEP_MULTIPLICATOR 1 // Babysteps are very small. Increase for faster motion.
607
-  //#define BABYSTEP_ZPROBE_OFFSET // Enable to combine M851 and Babystepping
604
+  //#define BABYSTEP_XY              // Also enable X/Y Babystepping. Not supported on DELTA!
605
+  #define BABYSTEP_INVERT_Z false    // Change if Z babysteps should go the other way
606
+  #define BABYSTEP_MULTIPLICATOR 100 // Babysteps are very small. Increase for faster motion.
607
+  //#define BABYSTEP_ZPROBE_OFFSET   // Enable to combine M851 and Babystepping
608 608
   //#define DOUBLECLICK_FOR_Z_BABYSTEPPING // Double-click on the Status Screen for Z Babystepping.
609 609
   #define DOUBLECLICK_MAX_INTERVAL 1250 // Maximum interval between clicks, in milliseconds.
610 610
                                         // Note: Extra time may be added to mitigate controller latency.
611
+  //#define BABYSTEP_ZPROBE_GFX_OVERLAY // Enable graphical overlay on Z-offset editor
612
+  //#define BABYSTEP_ZPROBE_GFX_REVERSE // Reverses the direction of the CW/CCW indicators
611 613
 #endif
612 614
 
613 615
 // @section extruder
614 616
 
615
-// extruder advance constant (s2/mm3)
616
-//
617
-// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
618
-//
619
-// Hooke's law says:    force = k * distance
620
-// Bernoulli's principle says:  v ^ 2 / 2 + g . h + pressure / density = constant
621
-// so: v ^ 2 is proportional to number of steps we advance the extruder
622
-//#define ADVANCE
623
-
624
-#if ENABLED(ADVANCE)
625
-  #define EXTRUDER_ADVANCE_K .0
626
-  #define D_FILAMENT 2.85
627
-#endif
628
-
629 617
 /**
630 618
  * Implementation of linear pressure control
631 619
  *
@@ -742,7 +730,7 @@
742 730
 #define MAX_CMD_SIZE 96
743 731
 #define BUFSIZE 4
744 732
 
745
-// Transfer Buffer Size
733
+// Transmission to Host Buffer Size
746 734
 // To save 386 bytes of PROGMEM (and TX_BUFFER_SIZE+3 bytes of RAM) set to 0.
747 735
 // To buffer a simple "ok" you need 4 bytes.
748 736
 // For ADVANCED_OK (M105) you need 32 bytes.
@@ -751,6 +739,28 @@
751 739
 // :[0, 2, 4, 8, 16, 32, 64, 128, 256]
752 740
 #define TX_BUFFER_SIZE 0
753 741
 
742
+// Host Receive Buffer Size
743
+// Without XON/XOFF flow control (see SERIAL_XON_XOFF below) 32 bytes should be enough.
744
+// To use flow control, set this buffer size to at least 1024 bytes.
745
+// :[0, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048]
746
+//#define RX_BUFFER_SIZE 1024
747
+
748
+#if RX_BUFFER_SIZE >= 1024
749
+  // Enable to have the controller send XON/XOFF control characters to
750
+  // the host to signal the RX buffer is becoming full.
751
+  //#define SERIAL_XON_XOFF
752
+#endif
753
+
754
+#if ENABLED(SDSUPPORT)
755
+  // Enable this option to collect and display the maximum
756
+  // RX queue usage after transferring a file to SD.
757
+  //#define SERIAL_STATS_MAX_RX_QUEUED
758
+
759
+  // Enable this option to collect and display the number
760
+  // of dropped bytes after a file transfer to SD.
761
+  //#define SERIAL_STATS_DROPPED_RX
762
+#endif
763
+
754 764
 // Enable an emergency-command parser to intercept certain commands as they
755 765
 // enter the serial receive buffer, so they cannot be blocked.
756 766
 // Currently handles M108, M112, M410
@@ -1274,6 +1284,7 @@
1274 1284
 #if ENABLED(CUSTOM_USER_MENUS)
1275 1285
   #define USER_SCRIPT_DONE "M117 User Script Done"
1276 1286
   #define USER_SCRIPT_AUDIBLE_FEEDBACK
1287
+  //#define USER_SCRIPT_RETURN  // Return to status screen after a script
1277 1288
 
1278 1289
   #define USER_DESC_1 "Home & UBL Info"
1279 1290
   #define USER_GCODE_1 "G28\nG29 W"
@@ -1383,29 +1394,31 @@
1383 1394
 #endif // I2C_POSITION_ENCODERS
1384 1395
 
1385 1396
 /**
1386
-  * Debug LED's using an 8x8 LED Matrix driven by a Max7219 chip.   Fully assembled versions are available on
1387
-  * eBay for under $2.00 (including shipping) and only require 3 signal wires.
1388
-  *
1389
-  * Check out auctions similar to this: https://www.ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313&_nkw=332349290049&_sacat=0
1390
-  */
1391
-
1397
+ * MAX7219 Debug Matrix
1398
+ *
1399
+ * Add support for a low-cost 8x8 LED Matrix based on the Max7219 chip, which can be used as a status
1400
+ * display. Requires 3 signal wires. Some useful debug options are included to demonstrate its usage.
1401
+ *
1402
+ * Fully assembled MAX7219 boards can be found on the internet for under $2(US).
1403
+ * For example, see https://www.ebay.com/sch/i.html?_nkw=332349290049
1404
+ */
1392 1405
 //#define MAX7219_DEBUG
1393 1406
 #if ENABLED(MAX7219_DEBUG)
1394
-  #define Max7219_clock   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display
1395
-  #define Max7219_data_in 57  // 78 on Re-ARM
1396
-  #define Max7219_load    44  // 79 on Re-ARM
1407
+  #define MAX7219_CLK_PIN   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display
1408
+  #define MAX7219_DIN_PIN   57  // 78 on Re-ARM
1409
+  #define MAX7219_LOAD_PIN  44  // 79 on Re-ARM
1397 1410
 
1398
-  /*
1399
-   * These are sample debug features that can be turned on and configured for your use.
1400
-   * The developer will need to manage the use of the various LED's in the 8x8 matrix to avoid conflicts.
1411
+  /**
1412
+   * Sample debug features
1413
+   * If you add more debug displays, be careful to avoid conflicts!
1401 1414
    */
1402
-  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix from idle() routine if firmware is functioning
1403
-  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Display row position of stepper queue head on this line and the next line of LED matrix
1404
-  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Display row position of stepper queue tail on this line and the next line of LED matrix
1415
+  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix to show that the firmware is functioning
1416
+  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Show the stepper queue head position on this and the next LED matrix row
1417
+  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Show the stepper queue tail position on this and the next LED matrix row
1405 1418
 
1406
-  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Display row position of stepper queue depth on this line and the next line of LED matrix
1407
-                                         // If you have stuttering on your Delta printer, this option may help you understand how
1408
-                                         // various tweaks you make to your configuration are affecting the printer.
1419
+  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Show the current stepper queue depth on this and the next LED matrix row
1420
+                                         // If you experience stuttering, reboots, etc. this option can reveal how
1421
+                                         // tweaks made to the configuration are affecting the printer in real-time.
1409 1422
 #endif
1410 1423
 
1411 1424
 #endif // CONFIGURATION_ADV_H

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

@@ -107,8 +107,9 @@
107 107
  *
108 108
  * 250000 works in most cases, but you might try a lower speed if
109 109
  * you commonly experience drop-outs during host printing.
110
+ * You may try up to 1000000 to speed up SD file transfer.
110 111
  *
111
- * :[2400, 9600, 19200, 38400, 57600, 115200, 250000]
112
+ * :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000]
112 113
  */
113 114
 #define BAUDRATE 250000
114 115
 
@@ -741,6 +742,8 @@
741 742
 
742 743
 // @section homing
743 744
 
745
+//#define NO_MOTION_BEFORE_HOMING  // Inhibit movement until all axes have been homed
746
+
744 747
 //#define Z_HOMING_HEIGHT 4  // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
745 748
                              // Be sure you have this distance over your Z_MAX_POS in case.
746 749
 
@@ -937,9 +940,11 @@
937 940
 #if ENABLED(LCD_BED_LEVELING)
938 941
   #define MBL_Z_STEP 0.025    // Step size while manually probing Z axis.
939 942
   #define LCD_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
940
-  #define LEVEL_BED_CORNERS   // Add an option to move between corners
941 943
 #endif
942 944
 
945
+// Add a menu item to move between bed corners for manual bed adjustment
946
+//#define LEVEL_BED_CORNERS
947
+
943 948
 /**
944 949
  * Commands to execute at the end of G29 probing.
945 950
  * Useful to retract or move the Z probe out of the way.
@@ -1180,7 +1185,7 @@
1180 1185
  *  - Click the controller to view the LCD menu
1181 1186
  *  - The LCD will display Japanese, Western, or Cyrillic text
1182 1187
  *
1183
- * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
1188
+ * See http://marlinfw.org/docs/development/lcd_language.html
1184 1189
  *
1185 1190
  * :['JAPANESE', 'WESTERN', 'CYRILLIC']
1186 1191
  */
@@ -1480,6 +1485,35 @@
1480 1485
 //
1481 1486
 //#define OLED_PANEL_TINYBOY2
1482 1487
 
1488
+//
1489
+// Makeboard 3D Printer Parts 3D Printer Mini Display 1602 Mini Controller
1490
+// https://www.aliexpress.com/item/Micromake-Makeboard-3D-Printer-Parts-3D-Printer-Mini-Display-1602-Mini-Controller-Compatible-with-Ramps-1/32765887917.html
1491
+//
1492
+//#define MAKEBOARD_MINI_2_LINE_DISPLAY_1602
1493
+
1494
+//
1495
+// MKS MINI12864 with graphic controller and SD support
1496
+// http://reprap.org/wiki/MKS_MINI_12864
1497
+//
1498
+//#define MKS_MINI_12864
1499
+
1500
+//
1501
+// Factory display for Creality CR-10
1502
+// https://www.aliexpress.com/item/Universal-LCD-12864-3D-Printer-Display-Screen-With-Encoder-For-CR-10-CR-7-Model/32833148327.html
1503
+//
1504
+// This is RAMPS-compatible using a single 10-pin connector.
1505
+// (For CR-10 owners who want to replace the Melzi Creality board but retain the display)
1506
+//
1507
+//#define CR10_STOCKDISPLAY
1508
+
1509
+//
1510
+// MKS OLED 1.3" 128 × 64 FULL GRAPHICS CONTROLLER
1511
+// http://reprap.org/wiki/MKS_12864OLED
1512
+//
1513
+// Tiny, but very sharp OLED display
1514
+//
1515
+//#define MKS_12864OLED
1516
+
1483 1517
 //=============================================================================
1484 1518
 //=============================== Extra Features ==============================
1485 1519
 //=============================================================================
@@ -1536,16 +1570,22 @@
1536 1570
  * Adds the M150 command to set the LED (or LED strip) color.
1537 1571
  * If pins are PWM capable (e.g., 4, 5, 6, 11) then a range of
1538 1572
  * luminance values can be set from 0 to 255.
1573
+ * For Neopixel LED overall brightness parameters is also available 
1539 1574
  *
1540 1575
  * *** CAUTION ***
1541 1576
  *  LED Strips require a MOFSET Chip between PWM lines and LEDs,
1542 1577
  *  as the Arduino cannot handle the current the LEDs will require.
1543 1578
  *  Failure to follow this precaution can destroy your Arduino!
1579
+ *  The Neopixel LED is 5V powered, but linear 5V regulator on Arduino
1580
+ *  cannot handle such current, separate 5V power supply must be used
1544 1581
  * *** CAUTION ***
1545 1582
  *
1583
+ * LED type. This options are mutualy exclusive. Uncomment only one.
1584
+ *
1546 1585
  */
1547 1586
 //#define RGB_LED
1548 1587
 //#define RGBW_LED
1588
+
1549 1589
 #if ENABLED(RGB_LED) || ENABLED(RGBW_LED)
1550 1590
   #define RGB_LED_R_PIN 34
1551 1591
   #define RGB_LED_G_PIN 43
@@ -1554,11 +1594,14 @@
1554 1594
 #endif
1555 1595
 
1556 1596
 // Support for Adafruit Neopixel LED driver
1557
-//#define NEOPIXEL_RGBW_LED
1558
-#if ENABLED(NEOPIXEL_RGBW_LED)
1559
-  #define NEOPIXEL_PIN    4       // D4 (EXP2-5 on Printrboard)
1560
-  #define NEOPIXEL_PIXELS 3
1561
-  //#define NEOPIXEL_STARTUP_TEST // Cycle through colors at startup
1597
+//#define NEOPIXEL_LED
1598
+#if ENABLED(NEOPIXEL_LED)
1599
+  #define NEOPIXEL_TYPE   NEO_GRBW // NEO_GRBW / NEO_GRB - four/three channel driver type (definned in Adafruit_NeoPixel.h)
1600
+  #define NEOPIXEL_PIN    4        // LED driving pin on motherboard 4 => D4 (EXP2-5 on Printrboard) / 30 => PC7 (EXP3-13 on Rumba)
1601
+  #define NEOPIXEL_PIXELS 30       // Number of LEDs on strip
1602
+  #define NEOPIXEL_IS_SEQUENTIAL   // Sequent display for temperature change - LED by LED. Comment out for change all LED at time
1603
+  #define NEOPIXEL_BRIGHTNESS 127  // Initial brightness 0-255
1604
+  //#define NEOPIXEL_STARTUP_TEST  // Cycle through colors at startup
1562 1605
 #endif
1563 1606
 
1564 1607
 /**

+ 51
- 8
Marlin/example_configurations/Folger Tech/i3-2020/Configuration.h View File

@@ -107,8 +107,9 @@
107 107
  *
108 108
  * 250000 works in most cases, but you might try a lower speed if
109 109
  * you commonly experience drop-outs during host printing.
110
+ * You may try up to 1000000 to speed up SD file transfer.
110 111
  *
111
- * :[2400, 9600, 19200, 38400, 57600, 115200, 250000]
112
+ * :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000]
112 113
  */
113 114
 #define BAUDRATE 250000
114 115
 
@@ -762,6 +763,8 @@
762 763
 
763 764
 // @section homing
764 765
 
766
+//#define NO_MOTION_BEFORE_HOMING  // Inhibit movement until all axes have been homed
767
+
765 768
 #define Z_HOMING_HEIGHT 2    // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
766 769
                              // Be sure you have this distance over your Z_MAX_POS in case.
767 770
 
@@ -960,9 +963,11 @@
960 963
 #if ENABLED(LCD_BED_LEVELING)
961 964
   #define MBL_Z_STEP 0.025    // Step size while manually probing Z axis.
962 965
   #define LCD_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
963
-  #define LEVEL_BED_CORNERS   // Add an option to move between corners
964 966
 #endif
965 967
 
968
+// Add a menu item to move between bed corners for manual bed adjustment
969
+//#define LEVEL_BED_CORNERS
970
+
966 971
 /**
967 972
  * Commands to execute at the end of G29 probing.
968 973
  * Useful to retract or move the Z probe out of the way.
@@ -1203,7 +1208,7 @@
1203 1208
  *  - Click the controller to view the LCD menu
1204 1209
  *  - The LCD will display Japanese, Western, or Cyrillic text
1205 1210
  *
1206
- * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
1211
+ * See http://marlinfw.org/docs/development/lcd_language.html
1207 1212
  *
1208 1213
  * :['JAPANESE', 'WESTERN', 'CYRILLIC']
1209 1214
  */
@@ -1503,6 +1508,35 @@
1503 1508
 //
1504 1509
 //#define OLED_PANEL_TINYBOY2
1505 1510
 
1511
+//
1512
+// Makeboard 3D Printer Parts 3D Printer Mini Display 1602 Mini Controller
1513
+// https://www.aliexpress.com/item/Micromake-Makeboard-3D-Printer-Parts-3D-Printer-Mini-Display-1602-Mini-Controller-Compatible-with-Ramps-1/32765887917.html
1514
+//
1515
+//#define MAKEBOARD_MINI_2_LINE_DISPLAY_1602
1516
+
1517
+//
1518
+// MKS MINI12864 with graphic controller and SD support
1519
+// http://reprap.org/wiki/MKS_MINI_12864
1520
+//
1521
+//#define MKS_MINI_12864
1522
+
1523
+//
1524
+// Factory display for Creality CR-10
1525
+// https://www.aliexpress.com/item/Universal-LCD-12864-3D-Printer-Display-Screen-With-Encoder-For-CR-10-CR-7-Model/32833148327.html
1526
+//
1527
+// This is RAMPS-compatible using a single 10-pin connector.
1528
+// (For CR-10 owners who want to replace the Melzi Creality board but retain the display)
1529
+//
1530
+//#define CR10_STOCKDISPLAY
1531
+
1532
+//
1533
+// MKS OLED 1.3" 128 × 64 FULL GRAPHICS CONTROLLER
1534
+// http://reprap.org/wiki/MKS_12864OLED
1535
+//
1536
+// Tiny, but very sharp OLED display
1537
+//
1538
+//#define MKS_12864OLED
1539
+
1506 1540
 //=============================================================================
1507 1541
 //=============================== Extra Features ==============================
1508 1542
 //=============================================================================
@@ -1559,16 +1593,22 @@
1559 1593
  * Adds the M150 command to set the LED (or LED strip) color.
1560 1594
  * If pins are PWM capable (e.g., 4, 5, 6, 11) then a range of
1561 1595
  * luminance values can be set from 0 to 255.
1596
+ * For Neopixel LED overall brightness parameters is also available 
1562 1597
  *
1563 1598
  * *** CAUTION ***
1564 1599
  *  LED Strips require a MOFSET Chip between PWM lines and LEDs,
1565 1600
  *  as the Arduino cannot handle the current the LEDs will require.
1566 1601
  *  Failure to follow this precaution can destroy your Arduino!
1602
+ *  The Neopixel LED is 5V powered, but linear 5V regulator on Arduino
1603
+ *  cannot handle such current, separate 5V power supply must be used
1567 1604
  * *** CAUTION ***
1568 1605
  *
1606
+ * LED type. This options are mutualy exclusive. Uncomment only one.
1607
+ *
1569 1608
  */
1570 1609
 //#define RGB_LED
1571 1610
 //#define RGBW_LED
1611
+
1572 1612
 #if ENABLED(RGB_LED) || ENABLED(RGBW_LED)
1573 1613
   #define RGB_LED_R_PIN 34
1574 1614
   #define RGB_LED_G_PIN 43
@@ -1577,11 +1617,14 @@
1577 1617
 #endif
1578 1618
 
1579 1619
 // Support for Adafruit Neopixel LED driver
1580
-//#define NEOPIXEL_RGBW_LED
1581
-#if ENABLED(NEOPIXEL_RGBW_LED)
1582
-  #define NEOPIXEL_PIN    4       // D4 (EXP2-5 on Printrboard)
1583
-  #define NEOPIXEL_PIXELS 3
1584
-  //#define NEOPIXEL_STARTUP_TEST // Cycle through colors at startup
1620
+//#define NEOPIXEL_LED
1621
+#if ENABLED(NEOPIXEL_LED)
1622
+  #define NEOPIXEL_TYPE   NEO_GRBW // NEO_GRBW / NEO_GRB - four/three channel driver type (definned in Adafruit_NeoPixel.h)
1623
+  #define NEOPIXEL_PIN    4        // LED driving pin on motherboard 4 => D4 (EXP2-5 on Printrboard) / 30 => PC7 (EXP3-13 on Rumba)
1624
+  #define NEOPIXEL_PIXELS 30       // Number of LEDs on strip
1625
+  #define NEOPIXEL_IS_SEQUENTIAL   // Sequent display for temperature change - LED by LED. Comment out for change all LED at time
1626
+  #define NEOPIXEL_BRIGHTNESS 127  // Initial brightness 0-255
1627
+  //#define NEOPIXEL_STARTUP_TEST  // Cycle through colors at startup
1585 1628
 #endif
1586 1629
 
1587 1630
 /**

+ 49
- 36
Marlin/example_configurations/Folger Tech/i3-2020/Configuration_adv.h View File

@@ -222,7 +222,7 @@
222 222
 
223 223
 /**
224 224
  * Part-Cooling Fan Multiplexer
225
- * 
225
+ *
226 226
  * This feature allows you to digitally multiplex the fan output.
227 227
  * The multiplexer is automatically switched at tool-change.
228 228
  * Set FANMUX[012]_PINs below for up to 2, 4, or 8 multiplexed fans.
@@ -510,7 +510,7 @@
510 510
 
511 511
   // SD Card Sorting options
512 512
   #if ENABLED(SDCARD_SORT_ALPHA)
513
-    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256).
513
+    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256). Costs 27 bytes each.
514 514
     #define FOLDER_SORTING     -1     // -1=above  0=none  1=below
515 515
     #define SDSORT_GCODE       false  // Allow turning sorting on/off with LCD and M34 g-code.
516 516
     #define SDSORT_USES_RAM    false  // Pre-allocate a static array for faster pre-sorting.
@@ -601,31 +601,19 @@
601 601
  */
602 602
 #define BABYSTEPPING
603 603
 #if ENABLED(BABYSTEPPING)
604
-  #define BABYSTEP_XY              // Also enable X/Y Babystepping. Not supported on DELTA!
604
+  //#define BABYSTEP_XY            // Also enable X/Y Babystepping. Not supported on DELTA!
605 605
   #define BABYSTEP_INVERT_Z false  // Change if Z babysteps should go the other way
606 606
   #define BABYSTEP_MULTIPLICATOR 2 // Babysteps are very small. Increase for faster motion.
607 607
   //#define BABYSTEP_ZPROBE_OFFSET // Enable to combine M851 and Babystepping
608 608
   #define DOUBLECLICK_FOR_Z_BABYSTEPPING // Double-click on the Status Screen for Z Babystepping.
609 609
   #define DOUBLECLICK_MAX_INTERVAL 1250 // Maximum interval between clicks, in milliseconds.
610 610
                                         // Note: Extra time may be added to mitigate controller latency.
611
+  //#define BABYSTEP_ZPROBE_GFX_OVERLAY // Enable graphical overlay on Z-offset editor
612
+  //#define BABYSTEP_ZPROBE_GFX_REVERSE // Reverses the direction of the CW/CCW indicators
611 613
 #endif
612 614
 
613 615
 // @section extruder
614 616
 
615
-// extruder advance constant (s2/mm3)
616
-//
617
-// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
618
-//
619
-// Hooke's law says:    force = k * distance
620
-// Bernoulli's principle says:  v ^ 2 / 2 + g . h + pressure / density = constant
621
-// so: v ^ 2 is proportional to number of steps we advance the extruder
622
-//#define ADVANCE
623
-
624
-#if ENABLED(ADVANCE)
625
-  #define EXTRUDER_ADVANCE_K .0
626
-  #define D_FILAMENT 2.85
627
-#endif
628
-
629 617
 /**
630 618
  * Implementation of linear pressure control
631 619
  *
@@ -742,7 +730,7 @@
742 730
 #define MAX_CMD_SIZE 96
743 731
 #define BUFSIZE 4
744 732
 
745
-// Transfer Buffer Size
733
+// Transmission to Host Buffer Size
746 734
 // To save 386 bytes of PROGMEM (and TX_BUFFER_SIZE+3 bytes of RAM) set to 0.
747 735
 // To buffer a simple "ok" you need 4 bytes.
748 736
 // For ADVANCED_OK (M105) you need 32 bytes.
@@ -751,6 +739,28 @@
751 739
 // :[0, 2, 4, 8, 16, 32, 64, 128, 256]
752 740
 #define TX_BUFFER_SIZE 0
753 741
 
742
+// Host Receive Buffer Size
743
+// Without XON/XOFF flow control (see SERIAL_XON_XOFF below) 32 bytes should be enough.
744
+// To use flow control, set this buffer size to at least 1024 bytes.
745
+// :[0, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048]
746
+//#define RX_BUFFER_SIZE 1024
747
+
748
+#if RX_BUFFER_SIZE >= 1024
749
+  // Enable to have the controller send XON/XOFF control characters to
750
+  // the host to signal the RX buffer is becoming full.
751
+  //#define SERIAL_XON_XOFF
752
+#endif
753
+
754
+#if ENABLED(SDSUPPORT)
755
+  // Enable this option to collect and display the maximum
756
+  // RX queue usage after transferring a file to SD.
757
+  //#define SERIAL_STATS_MAX_RX_QUEUED
758
+
759
+  // Enable this option to collect and display the number
760
+  // of dropped bytes after a file transfer to SD.
761
+  //#define SERIAL_STATS_DROPPED_RX
762
+#endif
763
+
754 764
 // Enable an emergency-command parser to intercept certain commands as they
755 765
 // enter the serial receive buffer, so they cannot be blocked.
756 766
 // Currently handles M108, M112, M410
@@ -1274,6 +1284,7 @@
1274 1284
 #if ENABLED(CUSTOM_USER_MENUS)
1275 1285
   #define USER_SCRIPT_DONE "M117 User Script Done"
1276 1286
   #define USER_SCRIPT_AUDIBLE_FEEDBACK
1287
+  //#define USER_SCRIPT_RETURN  // Return to status screen after a script
1277 1288
 
1278 1289
   #define USER_DESC_1 "Home & UBL Info"
1279 1290
   #define USER_GCODE_1 "G28\nG29 W"
@@ -1383,29 +1394,31 @@
1383 1394
 #endif // I2C_POSITION_ENCODERS
1384 1395
 
1385 1396
 /**
1386
-  * Debug LED's using an 8x8 LED Matrix driven by a Max7219 chip.   Fully assembled versions are available on
1387
-  * eBay for under $2.00 (including shipping) and only require 3 signal wires.
1388
-  *
1389
-  * Check out auctions similar to this: https://www.ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313&_nkw=332349290049&_sacat=0
1390
-  */
1391
-
1397
+ * MAX7219 Debug Matrix
1398
+ *
1399
+ * Add support for a low-cost 8x8 LED Matrix based on the Max7219 chip, which can be used as a status
1400
+ * display. Requires 3 signal wires. Some useful debug options are included to demonstrate its usage.
1401
+ *
1402
+ * Fully assembled MAX7219 boards can be found on the internet for under $2(US).
1403
+ * For example, see https://www.ebay.com/sch/i.html?_nkw=332349290049
1404
+ */
1392 1405
 //#define MAX7219_DEBUG
1393 1406
 #if ENABLED(MAX7219_DEBUG)
1394
-  #define Max7219_clock   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display
1395
-  #define Max7219_data_in 57  // 78 on Re-ARM
1396
-  #define Max7219_load    44  // 79 on Re-ARM
1407
+  #define MAX7219_CLK_PIN   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display
1408
+  #define MAX7219_DIN_PIN   57  // 78 on Re-ARM
1409
+  #define MAX7219_LOAD_PIN  44  // 79 on Re-ARM
1397 1410
 
1398
-  /*
1399
-   * These are sample debug features that can be turned on and configured for your use.
1400
-   * The developer will need to manage the use of the various LED's in the 8x8 matrix to avoid conflicts.
1411
+  /**
1412
+   * Sample debug features
1413
+   * If you add more debug displays, be careful to avoid conflicts!
1401 1414
    */
1402
-  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix from idle() routine if firmware is functioning
1403
-  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Display row position of stepper queue head on this line and the next line of LED matrix
1404
-  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Display row position of stepper queue tail on this line and the next line of LED matrix
1415
+  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix to show that the firmware is functioning
1416
+  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Show the stepper queue head position on this and the next LED matrix row
1417
+  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Show the stepper queue tail position on this and the next LED matrix row
1405 1418
 
1406
-  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Display row position of stepper queue depth on this line and the next line of LED matrix
1407
-                                         // If you have stuttering on your Delta printer, this option may help you understand how
1408
-                                         // various tweaks you make to your configuration are affecting the printer.
1419
+  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Show the current stepper queue depth on this and the next LED matrix row
1420
+                                         // If you experience stuttering, reboots, etc. this option can reveal how
1421
+                                         // tweaks made to the configuration are affecting the printer in real-time.
1409 1422
 #endif
1410 1423
 
1411 1424
 #endif // CONFIGURATION_ADV_H

+ 51
- 8
Marlin/example_configurations/Geeetech/GT2560/Configuration.h View File

@@ -107,8 +107,9 @@
107 107
  *
108 108
  * 250000 works in most cases, but you might try a lower speed if
109 109
  * you commonly experience drop-outs during host printing.
110
+ * You may try up to 1000000 to speed up SD file transfer.
110 111
  *
111
- * :[2400, 9600, 19200, 38400, 57600, 115200, 250000]
112
+ * :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000]
112 113
  */
113 114
 #define BAUDRATE 250000
114 115
 
@@ -774,6 +775,8 @@
774 775
 
775 776
 // @section homing
776 777
 
778
+//#define NO_MOTION_BEFORE_HOMING  // Inhibit movement until all axes have been homed
779
+
777 780
 //#define Z_HOMING_HEIGHT 4  // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
778 781
                              // Be sure you have this distance over your Z_MAX_POS in case.
779 782
 
@@ -970,9 +973,11 @@
970 973
 #if ENABLED(LCD_BED_LEVELING)
971 974
   #define MBL_Z_STEP 0.025    // Step size while manually probing Z axis.
972 975
   #define LCD_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
973
-  #define LEVEL_BED_CORNERS   // Add an option to move between corners
974 976
 #endif
975 977
 
978
+// Add a menu item to move between bed corners for manual bed adjustment
979
+//#define LEVEL_BED_CORNERS
980
+
976 981
 /**
977 982
  * Commands to execute at the end of G29 probing.
978 983
  * Useful to retract or move the Z probe out of the way.
@@ -1213,7 +1218,7 @@
1213 1218
  *  - Click the controller to view the LCD menu
1214 1219
  *  - The LCD will display Japanese, Western, or Cyrillic text
1215 1220
  *
1216
- * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
1221
+ * See http://marlinfw.org/docs/development/lcd_language.html
1217 1222
  *
1218 1223
  * :['JAPANESE', 'WESTERN', 'CYRILLIC']
1219 1224
  */
@@ -1513,6 +1518,35 @@
1513 1518
 //
1514 1519
 //#define OLED_PANEL_TINYBOY2
1515 1520
 
1521
+//
1522
+// Makeboard 3D Printer Parts 3D Printer Mini Display 1602 Mini Controller
1523
+// https://www.aliexpress.com/item/Micromake-Makeboard-3D-Printer-Parts-3D-Printer-Mini-Display-1602-Mini-Controller-Compatible-with-Ramps-1/32765887917.html
1524
+//
1525
+//#define MAKEBOARD_MINI_2_LINE_DISPLAY_1602
1526
+
1527
+//
1528
+// MKS MINI12864 with graphic controller and SD support
1529
+// http://reprap.org/wiki/MKS_MINI_12864
1530
+//
1531
+//#define MKS_MINI_12864
1532
+
1533
+//
1534
+// Factory display for Creality CR-10
1535
+// https://www.aliexpress.com/item/Universal-LCD-12864-3D-Printer-Display-Screen-With-Encoder-For-CR-10-CR-7-Model/32833148327.html
1536
+//
1537
+// This is RAMPS-compatible using a single 10-pin connector.
1538
+// (For CR-10 owners who want to replace the Melzi Creality board but retain the display)
1539
+//
1540
+//#define CR10_STOCKDISPLAY
1541
+
1542
+//
1543
+// MKS OLED 1.3" 128 × 64 FULL GRAPHICS CONTROLLER
1544
+// http://reprap.org/wiki/MKS_12864OLED
1545
+//
1546
+// Tiny, but very sharp OLED display
1547
+//
1548
+//#define MKS_12864OLED
1549
+
1516 1550
 //=============================================================================
1517 1551
 //=============================== Extra Features ==============================
1518 1552
 //=============================================================================
@@ -1569,16 +1603,22 @@
1569 1603
  * Adds the M150 command to set the LED (or LED strip) color.
1570 1604
  * If pins are PWM capable (e.g., 4, 5, 6, 11) then a range of
1571 1605
  * luminance values can be set from 0 to 255.
1606
+ * For Neopixel LED overall brightness parameters is also available 
1572 1607
  *
1573 1608
  * *** CAUTION ***
1574 1609
  *  LED Strips require a MOFSET Chip between PWM lines and LEDs,
1575 1610
  *  as the Arduino cannot handle the current the LEDs will require.
1576 1611
  *  Failure to follow this precaution can destroy your Arduino!
1612
+ *  The Neopixel LED is 5V powered, but linear 5V regulator on Arduino
1613
+ *  cannot handle such current, separate 5V power supply must be used
1577 1614
  * *** CAUTION ***
1578 1615
  *
1616
+ * LED type. This options are mutualy exclusive. Uncomment only one.
1617
+ *
1579 1618
  */
1580 1619
 //#define RGB_LED
1581 1620
 //#define RGBW_LED
1621
+
1582 1622
 #if ENABLED(RGB_LED) || ENABLED(RGBW_LED)
1583 1623
   #define RGB_LED_R_PIN 34
1584 1624
   #define RGB_LED_G_PIN 43
@@ -1587,11 +1627,14 @@
1587 1627
 #endif
1588 1628
 
1589 1629
 // Support for Adafruit Neopixel LED driver
1590
-//#define NEOPIXEL_RGBW_LED
1591
-#if ENABLED(NEOPIXEL_RGBW_LED)
1592
-  #define NEOPIXEL_PIN    4       // D4 (EXP2-5 on Printrboard)
1593
-  #define NEOPIXEL_PIXELS 3
1594
-  //#define NEOPIXEL_STARTUP_TEST // Cycle through colors at startup
1630
+//#define NEOPIXEL_LED
1631
+#if ENABLED(NEOPIXEL_LED)
1632
+  #define NEOPIXEL_TYPE   NEO_GRBW // NEO_GRBW / NEO_GRB - four/three channel driver type (definned in Adafruit_NeoPixel.h)
1633
+  #define NEOPIXEL_PIN    4        // LED driving pin on motherboard 4 => D4 (EXP2-5 on Printrboard) / 30 => PC7 (EXP3-13 on Rumba)
1634
+  #define NEOPIXEL_PIXELS 30       // Number of LEDs on strip
1635
+  #define NEOPIXEL_IS_SEQUENTIAL   // Sequent display for temperature change - LED by LED. Comment out for change all LED at time
1636
+  #define NEOPIXEL_BRIGHTNESS 127  // Initial brightness 0-255
1637
+  //#define NEOPIXEL_STARTUP_TEST  // Cycle through colors at startup
1595 1638
 #endif
1596 1639
 
1597 1640
 /**

+ 51
- 8
Marlin/example_configurations/Geeetech/I3_Pro_X-GT2560/Configuration.h View File

@@ -107,8 +107,9 @@
107 107
  *
108 108
  * 250000 works in most cases, but you might try a lower speed if
109 109
  * you commonly experience drop-outs during host printing.
110
+ * You may try up to 1000000 to speed up SD file transfer.
110 111
  *
111
- * :[2400, 9600, 19200, 38400, 57600, 115200, 250000]
112
+ * :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000]
112 113
  */
113 114
 #define BAUDRATE 250000
114 115
 
@@ -759,6 +760,8 @@
759 760
 
760 761
 // @section homing
761 762
 
763
+//#define NO_MOTION_BEFORE_HOMING  // Inhibit movement until all axes have been homed
764
+
762 765
 #define Z_HOMING_HEIGHT 8  // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
763 766
                              // Be sure you have this distance over your Z_MAX_POS in case.
764 767
 
@@ -955,9 +958,11 @@
955 958
 #if ENABLED(LCD_BED_LEVELING)
956 959
   #define MBL_Z_STEP 0.025    // Step size while manually probing Z axis.
957 960
   #define LCD_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
958
-  #define LEVEL_BED_CORNERS   // Add an option to move between corners
959 961
 #endif
960 962
 
963
+// Add a menu item to move between bed corners for manual bed adjustment
964
+//#define LEVEL_BED_CORNERS
965
+
961 966
 /**
962 967
  * Commands to execute at the end of G29 probing.
963 968
  * Useful to retract or move the Z probe out of the way.
@@ -1198,7 +1203,7 @@
1198 1203
  *  - Click the controller to view the LCD menu
1199 1204
  *  - The LCD will display Japanese, Western, or Cyrillic text
1200 1205
  *
1201
- * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
1206
+ * See http://marlinfw.org/docs/development/lcd_language.html
1202 1207
  *
1203 1208
  * :['JAPANESE', 'WESTERN', 'CYRILLIC']
1204 1209
  */
@@ -1498,6 +1503,35 @@
1498 1503
 //
1499 1504
 //#define OLED_PANEL_TINYBOY2
1500 1505
 
1506
+//
1507
+// Makeboard 3D Printer Parts 3D Printer Mini Display 1602 Mini Controller
1508
+// https://www.aliexpress.com/item/Micromake-Makeboard-3D-Printer-Parts-3D-Printer-Mini-Display-1602-Mini-Controller-Compatible-with-Ramps-1/32765887917.html
1509
+//
1510
+//#define MAKEBOARD_MINI_2_LINE_DISPLAY_1602
1511
+
1512
+//
1513
+// MKS MINI12864 with graphic controller and SD support
1514
+// http://reprap.org/wiki/MKS_MINI_12864
1515
+//
1516
+//#define MKS_MINI_12864
1517
+
1518
+//
1519
+// Factory display for Creality CR-10
1520
+// https://www.aliexpress.com/item/Universal-LCD-12864-3D-Printer-Display-Screen-With-Encoder-For-CR-10-CR-7-Model/32833148327.html
1521
+//
1522
+// This is RAMPS-compatible using a single 10-pin connector.
1523
+// (For CR-10 owners who want to replace the Melzi Creality board but retain the display)
1524
+//
1525
+//#define CR10_STOCKDISPLAY
1526
+
1527
+//
1528
+// MKS OLED 1.3" 128 × 64 FULL GRAPHICS CONTROLLER
1529
+// http://reprap.org/wiki/MKS_12864OLED
1530
+//
1531
+// Tiny, but very sharp OLED display
1532
+//
1533
+//#define MKS_12864OLED
1534
+
1501 1535
 //=============================================================================
1502 1536
 //=============================== Extra Features ==============================
1503 1537
 //=============================================================================
@@ -1554,16 +1588,22 @@
1554 1588
  * Adds the M150 command to set the LED (or LED strip) color.
1555 1589
  * If pins are PWM capable (e.g., 4, 5, 6, 11) then a range of
1556 1590
  * luminance values can be set from 0 to 255.
1591
+ * For Neopixel LED overall brightness parameters is also available 
1557 1592
  *
1558 1593
  * *** CAUTION ***
1559 1594
  *  LED Strips require a MOFSET Chip between PWM lines and LEDs,
1560 1595
  *  as the Arduino cannot handle the current the LEDs will require.
1561 1596
  *  Failure to follow this precaution can destroy your Arduino!
1597
+ *  The Neopixel LED is 5V powered, but linear 5V regulator on Arduino
1598
+ *  cannot handle such current, separate 5V power supply must be used
1562 1599
  * *** CAUTION ***
1563 1600
  *
1601
+ * LED type. This options are mutualy exclusive. Uncomment only one.
1602
+ *
1564 1603
  */
1565 1604
 //#define RGB_LED
1566 1605
 //#define RGBW_LED
1606
+
1567 1607
 #if ENABLED(RGB_LED) || ENABLED(RGBW_LED)
1568 1608
   #define RGB_LED_R_PIN 34
1569 1609
   #define RGB_LED_G_PIN 43
@@ -1572,11 +1612,14 @@
1572 1612
 #endif
1573 1613
 
1574 1614
 // Support for Adafruit Neopixel LED driver
1575
-//#define NEOPIXEL_RGBW_LED
1576
-#if ENABLED(NEOPIXEL_RGBW_LED)
1577
-  #define NEOPIXEL_PIN    4       // D4 (EXP2-5 on Printrboard)
1578
-  #define NEOPIXEL_PIXELS 3
1579
-  //#define NEOPIXEL_STARTUP_TEST // Cycle through colors at startup
1615
+//#define NEOPIXEL_LED
1616
+#if ENABLED(NEOPIXEL_LED)
1617
+  #define NEOPIXEL_TYPE   NEO_GRBW // NEO_GRBW / NEO_GRB - four/three channel driver type (definned in Adafruit_NeoPixel.h)
1618
+  #define NEOPIXEL_PIN    4        // LED driving pin on motherboard 4 => D4 (EXP2-5 on Printrboard) / 30 => PC7 (EXP3-13 on Rumba)
1619
+  #define NEOPIXEL_PIXELS 30       // Number of LEDs on strip
1620
+  #define NEOPIXEL_IS_SEQUENTIAL   // Sequent display for temperature change - LED by LED. Comment out for change all LED at time
1621
+  #define NEOPIXEL_BRIGHTNESS 127  // Initial brightness 0-255
1622
+  //#define NEOPIXEL_STARTUP_TEST  // Cycle through colors at startup
1580 1623
 #endif
1581 1624
 
1582 1625
 /**

+ 51
- 8
Marlin/example_configurations/Infitary/i3-M508/Configuration.h View File

@@ -107,8 +107,9 @@
107 107
  *
108 108
  * 250000 works in most cases, but you might try a lower speed if
109 109
  * you commonly experience drop-outs during host printing.
110
+ * You may try up to 1000000 to speed up SD file transfer.
110 111
  *
111
- * :[2400, 9600, 19200, 38400, 57600, 115200, 250000]
112
+ * :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000]
112 113
  */
113 114
 #define BAUDRATE 250000
114 115
 
@@ -763,6 +764,8 @@
763 764
 
764 765
 // @section homing
765 766
 
767
+//#define NO_MOTION_BEFORE_HOMING  // Inhibit movement until all axes have been homed
768
+
766 769
 //#define Z_HOMING_HEIGHT 4  // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
767 770
                              // Be sure you have this distance over your Z_MAX_POS in case.
768 771
 
@@ -959,9 +962,11 @@
959 962
 #if ENABLED(LCD_BED_LEVELING)
960 963
   #define MBL_Z_STEP 0.025    // Step size while manually probing Z axis.
961 964
   #define LCD_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
962
-  #define LEVEL_BED_CORNERS   // Add an option to move between corners
963 965
 #endif
964 966
 
967
+// Add a menu item to move between bed corners for manual bed adjustment
968
+//#define LEVEL_BED_CORNERS
969
+
965 970
 /**
966 971
  * Commands to execute at the end of G29 probing.
967 972
  * Useful to retract or move the Z probe out of the way.
@@ -1202,7 +1207,7 @@
1202 1207
  *  - Click the controller to view the LCD menu
1203 1208
  *  - The LCD will display Japanese, Western, or Cyrillic text
1204 1209
  *
1205
- * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
1210
+ * See http://marlinfw.org/docs/development/lcd_language.html
1206 1211
  *
1207 1212
  * :['JAPANESE', 'WESTERN', 'CYRILLIC']
1208 1213
  */
@@ -1502,6 +1507,35 @@
1502 1507
 //
1503 1508
 //#define OLED_PANEL_TINYBOY2
1504 1509
 
1510
+//
1511
+// Makeboard 3D Printer Parts 3D Printer Mini Display 1602 Mini Controller
1512
+// https://www.aliexpress.com/item/Micromake-Makeboard-3D-Printer-Parts-3D-Printer-Mini-Display-1602-Mini-Controller-Compatible-with-Ramps-1/32765887917.html
1513
+//
1514
+//#define MAKEBOARD_MINI_2_LINE_DISPLAY_1602
1515
+
1516
+//
1517
+// MKS MINI12864 with graphic controller and SD support
1518
+// http://reprap.org/wiki/MKS_MINI_12864
1519
+//
1520
+//#define MKS_MINI_12864
1521
+
1522
+//
1523
+// Factory display for Creality CR-10
1524
+// https://www.aliexpress.com/item/Universal-LCD-12864-3D-Printer-Display-Screen-With-Encoder-For-CR-10-CR-7-Model/32833148327.html
1525
+//
1526
+// This is RAMPS-compatible using a single 10-pin connector.
1527
+// (For CR-10 owners who want to replace the Melzi Creality board but retain the display)
1528
+//
1529
+//#define CR10_STOCKDISPLAY
1530
+
1531
+//
1532
+// MKS OLED 1.3" 128 × 64 FULL GRAPHICS CONTROLLER
1533
+// http://reprap.org/wiki/MKS_12864OLED
1534
+//
1535
+// Tiny, but very sharp OLED display
1536
+//
1537
+//#define MKS_12864OLED
1538
+
1505 1539
 //=============================================================================
1506 1540
 //=============================== Extra Features ==============================
1507 1541
 //=============================================================================
@@ -1558,16 +1592,22 @@
1558 1592
  * Adds the M150 command to set the LED (or LED strip) color.
1559 1593
  * If pins are PWM capable (e.g., 4, 5, 6, 11) then a range of
1560 1594
  * luminance values can be set from 0 to 255.
1595
+ * For Neopixel LED overall brightness parameters is also available 
1561 1596
  *
1562 1597
  * *** CAUTION ***
1563 1598
  *  LED Strips require a MOFSET Chip between PWM lines and LEDs,
1564 1599
  *  as the Arduino cannot handle the current the LEDs will require.
1565 1600
  *  Failure to follow this precaution can destroy your Arduino!
1601
+ *  The Neopixel LED is 5V powered, but linear 5V regulator on Arduino
1602
+ *  cannot handle such current, separate 5V power supply must be used
1566 1603
  * *** CAUTION ***
1567 1604
  *
1605
+ * LED type. This options are mutualy exclusive. Uncomment only one.
1606
+ *
1568 1607
  */
1569 1608
 //#define RGB_LED
1570 1609
 //#define RGBW_LED
1610
+
1571 1611
 #if ENABLED(RGB_LED) || ENABLED(RGBW_LED)
1572 1612
   #define RGB_LED_R_PIN 34
1573 1613
   #define RGB_LED_G_PIN 43
@@ -1576,11 +1616,14 @@
1576 1616
 #endif
1577 1617
 
1578 1618
 // Support for Adafruit Neopixel LED driver
1579
-//#define NEOPIXEL_RGBW_LED
1580
-#if ENABLED(NEOPIXEL_RGBW_LED)
1581
-  #define NEOPIXEL_PIN    4       // D4 (EXP2-5 on Printrboard)
1582
-  #define NEOPIXEL_PIXELS 3
1583
-  //#define NEOPIXEL_STARTUP_TEST // Cycle through colors at startup
1619
+//#define NEOPIXEL_LED
1620
+#if ENABLED(NEOPIXEL_LED)
1621
+  #define NEOPIXEL_TYPE   NEO_GRBW // NEO_GRBW / NEO_GRB - four/three channel driver type (definned in Adafruit_NeoPixel.h)
1622
+  #define NEOPIXEL_PIN    4        // LED driving pin on motherboard 4 => D4 (EXP2-5 on Printrboard) / 30 => PC7 (EXP3-13 on Rumba)
1623
+  #define NEOPIXEL_PIXELS 30       // Number of LEDs on strip
1624
+  #define NEOPIXEL_IS_SEQUENTIAL   // Sequent display for temperature change - LED by LED. Comment out for change all LED at time
1625
+  #define NEOPIXEL_BRIGHTNESS 127  // Initial brightness 0-255
1626
+  //#define NEOPIXEL_STARTUP_TEST  // Cycle through colors at startup
1584 1627
 #endif
1585 1628
 
1586 1629
 /**

+ 52
- 39
Marlin/example_configurations/Infitary/i3-M508/Configuration_adv.h View File

@@ -222,7 +222,7 @@
222 222
 
223 223
 /**
224 224
  * Part-Cooling Fan Multiplexer
225
- * 
225
+ *
226 226
  * This feature allows you to digitally multiplex the fan output.
227 227
  * The multiplexer is automatically switched at tool-change.
228 228
  * Set FANMUX[012]_PINs below for up to 2, 4, or 8 multiplexed fans.
@@ -510,7 +510,7 @@
510 510
 
511 511
   // SD Card Sorting options
512 512
   #if ENABLED(SDCARD_SORT_ALPHA)
513
-    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256).
513
+    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256). Costs 27 bytes each.
514 514
     #define FOLDER_SORTING     -1     // -1=above  0=none  1=below
515 515
     #define SDSORT_GCODE       false  // Allow turning sorting on/off with LCD and M34 g-code.
516 516
     #define SDSORT_USES_RAM    false  // Pre-allocate a static array for faster pre-sorting.
@@ -601,31 +601,19 @@
601 601
  */
602 602
 //#define BABYSTEPPING
603 603
 #if ENABLED(BABYSTEPPING)
604
-  #define BABYSTEP_XY              // Also enable X/Y Babystepping. Not supported on DELTA!
605
-  #define BABYSTEP_INVERT_Z false  // Change if Z babysteps should go the other way
606
-  #define BABYSTEP_MULTIPLICATOR 1 // Babysteps are very small. Increase for faster motion.
607
-  //#define BABYSTEP_ZPROBE_OFFSET // Enable to combine M851 and Babystepping
604
+  //#define BABYSTEP_XY              // Also enable X/Y Babystepping. Not supported on DELTA!
605
+  #define BABYSTEP_INVERT_Z false    // Change if Z babysteps should go the other way
606
+  #define BABYSTEP_MULTIPLICATOR 100 // Babysteps are very small. Increase for faster motion.
607
+  //#define BABYSTEP_ZPROBE_OFFSET   // Enable to combine M851 and Babystepping
608 608
   //#define DOUBLECLICK_FOR_Z_BABYSTEPPING // Double-click on the Status Screen for Z Babystepping.
609 609
   #define DOUBLECLICK_MAX_INTERVAL 1250 // Maximum interval between clicks, in milliseconds.
610 610
                                         // Note: Extra time may be added to mitigate controller latency.
611
+  //#define BABYSTEP_ZPROBE_GFX_OVERLAY // Enable graphical overlay on Z-offset editor
612
+  //#define BABYSTEP_ZPROBE_GFX_REVERSE // Reverses the direction of the CW/CCW indicators
611 613
 #endif
612 614
 
613 615
 // @section extruder
614 616
 
615
-// extruder advance constant (s2/mm3)
616
-//
617
-// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
618
-//
619
-// Hooke's law says:    force = k * distance
620
-// Bernoulli's principle says:  v ^ 2 / 2 + g . h + pressure / density = constant
621
-// so: v ^ 2 is proportional to number of steps we advance the extruder
622
-//#define ADVANCE
623
-
624
-#if ENABLED(ADVANCE)
625
-  #define EXTRUDER_ADVANCE_K .0
626
-  #define D_FILAMENT 2.85
627
-#endif
628
-
629 617
 /**
630 618
  * Implementation of linear pressure control
631 619
  *
@@ -742,7 +730,7 @@
742 730
 #define MAX_CMD_SIZE 96
743 731
 #define BUFSIZE 4
744 732
 
745
-// Transfer Buffer Size
733
+// Transmission to Host Buffer Size
746 734
 // To save 386 bytes of PROGMEM (and TX_BUFFER_SIZE+3 bytes of RAM) set to 0.
747 735
 // To buffer a simple "ok" you need 4 bytes.
748 736
 // For ADVANCED_OK (M105) you need 32 bytes.
@@ -751,6 +739,28 @@
751 739
 // :[0, 2, 4, 8, 16, 32, 64, 128, 256]
752 740
 #define TX_BUFFER_SIZE 0
753 741
 
742
+// Host Receive Buffer Size
743
+// Without XON/XOFF flow control (see SERIAL_XON_XOFF below) 32 bytes should be enough.
744
+// To use flow control, set this buffer size to at least 1024 bytes.
745
+// :[0, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048]
746
+//#define RX_BUFFER_SIZE 1024
747
+
748
+#if RX_BUFFER_SIZE >= 1024
749
+  // Enable to have the controller send XON/XOFF control characters to
750
+  // the host to signal the RX buffer is becoming full.
751
+  //#define SERIAL_XON_XOFF
752
+#endif
753
+
754
+#if ENABLED(SDSUPPORT)
755
+  // Enable this option to collect and display the maximum
756
+  // RX queue usage after transferring a file to SD.
757
+  //#define SERIAL_STATS_MAX_RX_QUEUED
758
+
759
+  // Enable this option to collect and display the number
760
+  // of dropped bytes after a file transfer to SD.
761
+  //#define SERIAL_STATS_DROPPED_RX
762
+#endif
763
+
754 764
 // Enable an emergency-command parser to intercept certain commands as they
755 765
 // enter the serial receive buffer, so they cannot be blocked.
756 766
 // Currently handles M108, M112, M410
@@ -1274,6 +1284,7 @@
1274 1284
 #if ENABLED(CUSTOM_USER_MENUS)
1275 1285
   #define USER_SCRIPT_DONE "M117 User Script Done"
1276 1286
   #define USER_SCRIPT_AUDIBLE_FEEDBACK
1287
+  //#define USER_SCRIPT_RETURN  // Return to status screen after a script
1277 1288
 
1278 1289
   #define USER_DESC_1 "Home & UBL Info"
1279 1290
   #define USER_GCODE_1 "G28\nG29 W"
@@ -1383,29 +1394,31 @@
1383 1394
 #endif // I2C_POSITION_ENCODERS
1384 1395
 
1385 1396
 /**
1386
-  * Debug LED's using an 8x8 LED Matrix driven by a Max7219 chip.   Fully assembled versions are available on
1387
-  * eBay for under $2.00 (including shipping) and only require 3 signal wires.
1388
-  *
1389
-  * Check out auctions similar to this: https://www.ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313&_nkw=332349290049&_sacat=0
1390
-  */
1391
-
1397
+ * MAX7219 Debug Matrix
1398
+ *
1399
+ * Add support for a low-cost 8x8 LED Matrix based on the Max7219 chip, which can be used as a status
1400
+ * display. Requires 3 signal wires. Some useful debug options are included to demonstrate its usage.
1401
+ *
1402
+ * Fully assembled MAX7219 boards can be found on the internet for under $2(US).
1403
+ * For example, see https://www.ebay.com/sch/i.html?_nkw=332349290049
1404
+ */
1392 1405
 //#define MAX7219_DEBUG
1393 1406
 #if ENABLED(MAX7219_DEBUG)
1394
-  #define Max7219_clock   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display
1395
-  #define Max7219_data_in 57  // 78 on Re-ARM
1396
-  #define Max7219_load    44  // 79 on Re-ARM
1407
+  #define MAX7219_CLK_PIN   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display
1408
+  #define MAX7219_DIN_PIN   57  // 78 on Re-ARM
1409
+  #define MAX7219_LOAD_PIN  44  // 79 on Re-ARM
1397 1410
 
1398
-  /*
1399
-   * These are sample debug features that can be turned on and configured for your use.
1400
-   * The developer will need to manage the use of the various LED's in the 8x8 matrix to avoid conflicts.
1411
+  /**
1412
+   * Sample debug features
1413
+   * If you add more debug displays, be careful to avoid conflicts!
1401 1414
    */
1402
-  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix from idle() routine if firmware is functioning
1403
-  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Display row position of stepper queue head on this line and the next line of LED matrix
1404
-  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Display row position of stepper queue tail on this line and the next line of LED matrix
1415
+  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix to show that the firmware is functioning
1416
+  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Show the stepper queue head position on this and the next LED matrix row
1417
+  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Show the stepper queue tail position on this and the next LED matrix row
1405 1418
 
1406
-  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Display row position of stepper queue depth on this line and the next line of LED matrix
1407
-                                         // If you have stuttering on your Delta printer, this option may help you understand how
1408
-                                         // various tweaks you make to your configuration are affecting the printer.
1419
+  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Show the current stepper queue depth on this and the next LED matrix row
1420
+                                         // If you experience stuttering, reboots, etc. this option can reveal how
1421
+                                         // tweaks made to the configuration are affecting the printer in real-time.
1409 1422
 #endif
1410 1423
 
1411 1424
 #endif // CONFIGURATION_ADV_H

+ 51
- 8
Marlin/example_configurations/Malyan/M150/Configuration.h View File

@@ -112,8 +112,9 @@
112 112
  *
113 113
  * 250000 works in most cases, but you might try a lower speed if
114 114
  * you commonly experience drop-outs during host printing.
115
+ * You may try up to 1000000 to speed up SD file transfer.
115 116
  *
116
- * :[2400, 9600, 19200, 38400, 57600, 115200, 250000]
117
+ * :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000]
117 118
  */
118 119
 #define BAUDRATE 115200
119 120
 
@@ -783,6 +784,8 @@
783 784
 
784 785
 // @section homing
785 786
 
787
+//#define NO_MOTION_BEFORE_HOMING  // Inhibit movement until all axes have been homed
788
+
786 789
 //#define Z_HOMING_HEIGHT 4  // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
787 790
                              // Be sure you have this distance over your Z_MAX_POS in case.
788 791
 
@@ -983,9 +986,11 @@
983 986
 #if ENABLED(LCD_BED_LEVELING)
984 987
   #define MBL_Z_STEP 0.025    // Step size while manually probing Z axis.
985 988
   #define LCD_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
986
-  #define LEVEL_BED_CORNERS   // Add an option to move between corners
987 989
 #endif
988 990
 
991
+// Add a menu item to move between bed corners for manual bed adjustment
992
+//#define LEVEL_BED_CORNERS
993
+
989 994
 /**
990 995
  * Commands to execute at the end of G29 probing.
991 996
  * Useful to retract or move the Z probe out of the way.
@@ -1226,7 +1231,7 @@
1226 1231
  *  - Click the controller to view the LCD menu
1227 1232
  *  - The LCD will display Japanese, Western, or Cyrillic text
1228 1233
  *
1229
- * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
1234
+ * See http://marlinfw.org/docs/development/lcd_language.html
1230 1235
  *
1231 1236
  * :['JAPANESE', 'WESTERN', 'CYRILLIC']
1232 1237
  */
@@ -1526,6 +1531,35 @@
1526 1531
 //
1527 1532
 //#define OLED_PANEL_TINYBOY2
1528 1533
 
1534
+//
1535
+// Makeboard 3D Printer Parts 3D Printer Mini Display 1602 Mini Controller
1536
+// https://www.aliexpress.com/item/Micromake-Makeboard-3D-Printer-Parts-3D-Printer-Mini-Display-1602-Mini-Controller-Compatible-with-Ramps-1/32765887917.html
1537
+//
1538
+//#define MAKEBOARD_MINI_2_LINE_DISPLAY_1602
1539
+
1540
+//
1541
+// MKS MINI12864 with graphic controller and SD support
1542
+// http://reprap.org/wiki/MKS_MINI_12864
1543
+//
1544
+//#define MKS_MINI_12864
1545
+
1546
+//
1547
+// Factory display for Creality CR-10
1548
+// https://www.aliexpress.com/item/Universal-LCD-12864-3D-Printer-Display-Screen-With-Encoder-For-CR-10-CR-7-Model/32833148327.html
1549
+//
1550
+// This is RAMPS-compatible using a single 10-pin connector.
1551
+// (For CR-10 owners who want to replace the Melzi Creality board but retain the display)
1552
+//
1553
+//#define CR10_STOCKDISPLAY
1554
+
1555
+//
1556
+// MKS OLED 1.3" 128 × 64 FULL GRAPHICS CONTROLLER
1557
+// http://reprap.org/wiki/MKS_12864OLED
1558
+//
1559
+// Tiny, but very sharp OLED display
1560
+//
1561
+//#define MKS_12864OLED
1562
+
1529 1563
 //=============================================================================
1530 1564
 //=============================== Extra Features ==============================
1531 1565
 //=============================================================================
@@ -1582,16 +1616,22 @@
1582 1616
  * Adds the M150 command to set the LED (or LED strip) color.
1583 1617
  * If pins are PWM capable (e.g., 4, 5, 6, 11) then a range of
1584 1618
  * luminance values can be set from 0 to 255.
1619
+ * For Neopixel LED overall brightness parameters is also available 
1585 1620
  *
1586 1621
  * *** CAUTION ***
1587 1622
  *  LED Strips require a MOFSET Chip between PWM lines and LEDs,
1588 1623
  *  as the Arduino cannot handle the current the LEDs will require.
1589 1624
  *  Failure to follow this precaution can destroy your Arduino!
1625
+ *  The Neopixel LED is 5V powered, but linear 5V regulator on Arduino
1626
+ *  cannot handle such current, separate 5V power supply must be used
1590 1627
  * *** CAUTION ***
1591 1628
  *
1629
+ * LED type. This options are mutualy exclusive. Uncomment only one.
1630
+ *
1592 1631
  */
1593 1632
 //#define RGB_LED
1594 1633
 //#define RGBW_LED
1634
+
1595 1635
 #if ENABLED(RGB_LED) || ENABLED(RGBW_LED)
1596 1636
   #define RGB_LED_R_PIN 34
1597 1637
   #define RGB_LED_G_PIN 43
@@ -1600,11 +1640,14 @@
1600 1640
 #endif
1601 1641
 
1602 1642
 // Support for Adafruit Neopixel LED driver
1603
-//#define NEOPIXEL_RGBW_LED
1604
-#if ENABLED(NEOPIXEL_RGBW_LED)
1605
-  #define NEOPIXEL_PIN    4       // D4 (EXP2-5 on Printrboard)
1606
-  #define NEOPIXEL_PIXELS 3
1607
-  //#define NEOPIXEL_STARTUP_TEST // Cycle through colors at startup
1643
+//#define NEOPIXEL_LED
1644
+#if ENABLED(NEOPIXEL_LED)
1645
+  #define NEOPIXEL_TYPE   NEO_GRBW // NEO_GRBW / NEO_GRB - four/three channel driver type (definned in Adafruit_NeoPixel.h)
1646
+  #define NEOPIXEL_PIN    4        // LED driving pin on motherboard 4 => D4 (EXP2-5 on Printrboard) / 30 => PC7 (EXP3-13 on Rumba)
1647
+  #define NEOPIXEL_PIXELS 30       // Number of LEDs on strip
1648
+  #define NEOPIXEL_IS_SEQUENTIAL   // Sequent display for temperature change - LED by LED. Comment out for change all LED at time
1649
+  #define NEOPIXEL_BRIGHTNESS 127  // Initial brightness 0-255
1650
+  //#define NEOPIXEL_STARTUP_TEST  // Cycle through colors at startup
1608 1651
 #endif
1609 1652
 
1610 1653
 /**

+ 52
- 39
Marlin/example_configurations/Malyan/M150/Configuration_adv.h View File

@@ -222,7 +222,7 @@
222 222
 
223 223
 /**
224 224
  * Part-Cooling Fan Multiplexer
225
- * 
225
+ *
226 226
  * This feature allows you to digitally multiplex the fan output.
227 227
  * The multiplexer is automatically switched at tool-change.
228 228
  * Set FANMUX[012]_PINs below for up to 2, 4, or 8 multiplexed fans.
@@ -510,7 +510,7 @@
510 510
 
511 511
   // SD Card Sorting options
512 512
   #if ENABLED(SDCARD_SORT_ALPHA)
513
-    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256).
513
+    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256). Costs 27 bytes each.
514 514
     #define FOLDER_SORTING     -1     // -1=above  0=none  1=below
515 515
     #define SDSORT_GCODE       false  // Allow turning sorting on/off with LCD and M34 g-code.
516 516
     #define SDSORT_USES_RAM    false  // Pre-allocate a static array for faster pre-sorting.
@@ -601,31 +601,19 @@
601 601
  */
602 602
 //#define BABYSTEPPING
603 603
 #if ENABLED(BABYSTEPPING)
604
-  #define BABYSTEP_XY              // Also enable X/Y Babystepping. Not supported on DELTA!
605
-  #define BABYSTEP_INVERT_Z false  // Change if Z babysteps should go the other way
606
-  #define BABYSTEP_MULTIPLICATOR 1 // Babysteps are very small. Increase for faster motion.
607
-  //#define BABYSTEP_ZPROBE_OFFSET // Enable to combine M851 and Babystepping
604
+  //#define BABYSTEP_XY              // Also enable X/Y Babystepping. Not supported on DELTA!
605
+  #define BABYSTEP_INVERT_Z false    // Change if Z babysteps should go the other way
606
+  #define BABYSTEP_MULTIPLICATOR 100 // Babysteps are very small. Increase for faster motion.
607
+  //#define BABYSTEP_ZPROBE_OFFSET   // Enable to combine M851 and Babystepping
608 608
   //#define DOUBLECLICK_FOR_Z_BABYSTEPPING // Double-click on the Status Screen for Z Babystepping.
609 609
   #define DOUBLECLICK_MAX_INTERVAL 1250 // Maximum interval between clicks, in milliseconds.
610 610
                                         // Note: Extra time may be added to mitigate controller latency.
611
+  //#define BABYSTEP_ZPROBE_GFX_OVERLAY // Enable graphical overlay on Z-offset editor
612
+  //#define BABYSTEP_ZPROBE_GFX_REVERSE // Reverses the direction of the CW/CCW indicators
611 613
 #endif
612 614
 
613 615
 // @section extruder
614 616
 
615
-// extruder advance constant (s2/mm3)
616
-//
617
-// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
618
-//
619
-// Hooke's law says:    force = k * distance
620
-// Bernoulli's principle says:  v ^ 2 / 2 + g . h + pressure / density = constant
621
-// so: v ^ 2 is proportional to number of steps we advance the extruder
622
-//#define ADVANCE
623
-
624
-#if ENABLED(ADVANCE)
625
-  #define EXTRUDER_ADVANCE_K .0
626
-  #define D_FILAMENT 2.85
627
-#endif
628
-
629 617
 /**
630 618
  * Implementation of linear pressure control
631 619
  *
@@ -742,7 +730,7 @@
742 730
 #define MAX_CMD_SIZE 96
743 731
 #define BUFSIZE 4
744 732
 
745
-// Transfer Buffer Size
733
+// Transmission to Host Buffer Size
746 734
 // To save 386 bytes of PROGMEM (and TX_BUFFER_SIZE+3 bytes of RAM) set to 0.
747 735
 // To buffer a simple "ok" you need 4 bytes.
748 736
 // For ADVANCED_OK (M105) you need 32 bytes.
@@ -751,6 +739,28 @@
751 739
 // :[0, 2, 4, 8, 16, 32, 64, 128, 256]
752 740
 #define TX_BUFFER_SIZE 0
753 741
 
742
+// Host Receive Buffer Size
743
+// Without XON/XOFF flow control (see SERIAL_XON_XOFF below) 32 bytes should be enough.
744
+// To use flow control, set this buffer size to at least 1024 bytes.
745
+// :[0, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048]
746
+//#define RX_BUFFER_SIZE 1024
747
+
748
+#if RX_BUFFER_SIZE >= 1024
749
+  // Enable to have the controller send XON/XOFF control characters to
750
+  // the host to signal the RX buffer is becoming full.
751
+  //#define SERIAL_XON_XOFF
752
+#endif
753
+
754
+#if ENABLED(SDSUPPORT)
755
+  // Enable this option to collect and display the maximum
756
+  // RX queue usage after transferring a file to SD.
757
+  //#define SERIAL_STATS_MAX_RX_QUEUED
758
+
759
+  // Enable this option to collect and display the number
760
+  // of dropped bytes after a file transfer to SD.
761
+  //#define SERIAL_STATS_DROPPED_RX
762
+#endif
763
+
754 764
 // Enable an emergency-command parser to intercept certain commands as they
755 765
 // enter the serial receive buffer, so they cannot be blocked.
756 766
 // Currently handles M108, M112, M410
@@ -1274,6 +1284,7 @@
1274 1284
 #if ENABLED(CUSTOM_USER_MENUS)
1275 1285
   #define USER_SCRIPT_DONE "M117 User Script Done"
1276 1286
   #define USER_SCRIPT_AUDIBLE_FEEDBACK
1287
+  //#define USER_SCRIPT_RETURN  // Return to status screen after a script
1277 1288
 
1278 1289
   #define USER_DESC_1 "Home & UBL Info"
1279 1290
   #define USER_GCODE_1 "G28\nG29 W"
@@ -1383,29 +1394,31 @@
1383 1394
 #endif // I2C_POSITION_ENCODERS
1384 1395
 
1385 1396
 /**
1386
-  * Debug LED's using an 8x8 LED Matrix driven by a Max7219 chip.   Fully assembled versions are available on
1387
-  * eBay for under $2.00 (including shipping) and only require 3 signal wires.
1388
-  *
1389
-  * Check out auctions similar to this: https://www.ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313&_nkw=332349290049&_sacat=0
1390
-  */
1391
-
1397
+ * MAX7219 Debug Matrix
1398
+ *
1399
+ * Add support for a low-cost 8x8 LED Matrix based on the Max7219 chip, which can be used as a status
1400
+ * display. Requires 3 signal wires. Some useful debug options are included to demonstrate its usage.
1401
+ *
1402
+ * Fully assembled MAX7219 boards can be found on the internet for under $2(US).
1403
+ * For example, see https://www.ebay.com/sch/i.html?_nkw=332349290049
1404
+ */
1392 1405
 //#define MAX7219_DEBUG
1393 1406
 #if ENABLED(MAX7219_DEBUG)
1394
-  #define Max7219_clock   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display
1395
-  #define Max7219_data_in 57  // 78 on Re-ARM
1396
-  #define Max7219_load    44  // 79 on Re-ARM
1407
+  #define MAX7219_CLK_PIN   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display
1408
+  #define MAX7219_DIN_PIN   57  // 78 on Re-ARM
1409
+  #define MAX7219_LOAD_PIN  44  // 79 on Re-ARM
1397 1410
 
1398
-  /*
1399
-   * These are sample debug features that can be turned on and configured for your use.
1400
-   * The developer will need to manage the use of the various LED's in the 8x8 matrix to avoid conflicts.
1411
+  /**
1412
+   * Sample debug features
1413
+   * If you add more debug displays, be careful to avoid conflicts!
1401 1414
    */
1402
-  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix from idle() routine if firmware is functioning
1403
-  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Display row position of stepper queue head on this line and the next line of LED matrix
1404
-  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Display row position of stepper queue tail on this line and the next line of LED matrix
1415
+  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix to show that the firmware is functioning
1416
+  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Show the stepper queue head position on this and the next LED matrix row
1417
+  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Show the stepper queue tail position on this and the next LED matrix row
1405 1418
 
1406
-  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Display row position of stepper queue depth on this line and the next line of LED matrix
1407
-                                         // If you have stuttering on your Delta printer, this option may help you understand how
1408
-                                         // various tweaks you make to your configuration are affecting the printer.
1419
+  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Show the current stepper queue depth on this and the next LED matrix row
1420
+                                         // If you experience stuttering, reboots, etc. this option can reveal how
1421
+                                         // tweaks made to the configuration are affecting the printer in real-time.
1409 1422
 #endif
1410 1423
 
1411 1424
 #endif // CONFIGURATION_ADV_H

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

@@ -107,8 +107,9 @@
107 107
  *
108 108
  * 250000 works in most cases, but you might try a lower speed if
109 109
  * you commonly experience drop-outs during host printing.
110
+ * You may try up to 1000000 to speed up SD file transfer.
110 111
  *
111
- * :[2400, 9600, 19200, 38400, 57600, 115200, 250000]
112
+ * :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000]
112 113
  */
113 114
 #define BAUDRATE 250000
114 115
 
@@ -759,6 +760,8 @@
759 760
 
760 761
 // @section homing
761 762
 
763
+//#define NO_MOTION_BEFORE_HOMING  // Inhibit movement until all axes have been homed
764
+
762 765
 //#define Z_HOMING_HEIGHT 4  // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
763 766
                              // Be sure you have this distance over your Z_MAX_POS in case.
764 767
 
@@ -955,9 +958,11 @@
955 958
 #if ENABLED(LCD_BED_LEVELING)
956 959
   #define MBL_Z_STEP 0.025    // Step size while manually probing Z axis.
957 960
   #define LCD_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
958
-  #define LEVEL_BED_CORNERS   // Add an option to move between corners
959 961
 #endif
960 962
 
963
+// Add a menu item to move between bed corners for manual bed adjustment
964
+//#define LEVEL_BED_CORNERS
965
+
961 966
 /**
962 967
  * Commands to execute at the end of G29 probing.
963 968
  * Useful to retract or move the Z probe out of the way.
@@ -1198,7 +1203,7 @@
1198 1203
  *  - Click the controller to view the LCD menu
1199 1204
  *  - The LCD will display Japanese, Western, or Cyrillic text
1200 1205
  *
1201
- * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
1206
+ * See http://marlinfw.org/docs/development/lcd_language.html
1202 1207
  *
1203 1208
  * :['JAPANESE', 'WESTERN', 'CYRILLIC']
1204 1209
  */
@@ -1498,6 +1503,35 @@
1498 1503
 //
1499 1504
 //#define OLED_PANEL_TINYBOY2
1500 1505
 
1506
+//
1507
+// Makeboard 3D Printer Parts 3D Printer Mini Display 1602 Mini Controller
1508
+// https://www.aliexpress.com/item/Micromake-Makeboard-3D-Printer-Parts-3D-Printer-Mini-Display-1602-Mini-Controller-Compatible-with-Ramps-1/32765887917.html
1509
+//
1510
+//#define MAKEBOARD_MINI_2_LINE_DISPLAY_1602
1511
+
1512
+//
1513
+// MKS MINI12864 with graphic controller and SD support
1514
+// http://reprap.org/wiki/MKS_MINI_12864
1515
+//
1516
+//#define MKS_MINI_12864
1517
+
1518
+//
1519
+// Factory display for Creality CR-10
1520
+// https://www.aliexpress.com/item/Universal-LCD-12864-3D-Printer-Display-Screen-With-Encoder-For-CR-10-CR-7-Model/32833148327.html
1521
+//
1522
+// This is RAMPS-compatible using a single 10-pin connector.
1523
+// (For CR-10 owners who want to replace the Melzi Creality board but retain the display)
1524
+//
1525
+//#define CR10_STOCKDISPLAY
1526
+
1527
+//
1528
+// MKS OLED 1.3" 128 × 64 FULL GRAPHICS CONTROLLER
1529
+// http://reprap.org/wiki/MKS_12864OLED
1530
+//
1531
+// Tiny, but very sharp OLED display
1532
+//
1533
+//#define MKS_12864OLED
1534
+
1501 1535
 //=============================================================================
1502 1536
 //=============================== Extra Features ==============================
1503 1537
 //=============================================================================
@@ -1554,16 +1588,22 @@
1554 1588
  * Adds the M150 command to set the LED (or LED strip) color.
1555 1589
  * If pins are PWM capable (e.g., 4, 5, 6, 11) then a range of
1556 1590
  * luminance values can be set from 0 to 255.
1591
+ * For Neopixel LED overall brightness parameters is also available 
1557 1592
  *
1558 1593
  * *** CAUTION ***
1559 1594
  *  LED Strips require a MOFSET Chip between PWM lines and LEDs,
1560 1595
  *  as the Arduino cannot handle the current the LEDs will require.
1561 1596
  *  Failure to follow this precaution can destroy your Arduino!
1597
+ *  The Neopixel LED is 5V powered, but linear 5V regulator on Arduino
1598
+ *  cannot handle such current, separate 5V power supply must be used
1562 1599
  * *** CAUTION ***
1563 1600
  *
1601
+ * LED type. This options are mutualy exclusive. Uncomment only one.
1602
+ *
1564 1603
  */
1565 1604
 //#define RGB_LED
1566 1605
 //#define RGBW_LED
1606
+
1567 1607
 #if ENABLED(RGB_LED) || ENABLED(RGBW_LED)
1568 1608
   #define RGB_LED_R_PIN 34
1569 1609
   #define RGB_LED_G_PIN 43
@@ -1572,11 +1612,14 @@
1572 1612
 #endif
1573 1613
 
1574 1614
 // Support for Adafruit Neopixel LED driver
1575
-//#define NEOPIXEL_RGBW_LED
1576
-#if ENABLED(NEOPIXEL_RGBW_LED)
1577
-  #define NEOPIXEL_PIN    4       // D4 (EXP2-5 on Printrboard)
1578
-  #define NEOPIXEL_PIXELS 3
1579
-  //#define NEOPIXEL_STARTUP_TEST // Cycle through colors at startup
1615
+//#define NEOPIXEL_LED
1616
+#if ENABLED(NEOPIXEL_LED)
1617
+  #define NEOPIXEL_TYPE   NEO_GRBW // NEO_GRBW / NEO_GRB - four/three channel driver type (definned in Adafruit_NeoPixel.h)
1618
+  #define NEOPIXEL_PIN    4        // LED driving pin on motherboard 4 => D4 (EXP2-5 on Printrboard) / 30 => PC7 (EXP3-13 on Rumba)
1619
+  #define NEOPIXEL_PIXELS 30       // Number of LEDs on strip
1620
+  #define NEOPIXEL_IS_SEQUENTIAL   // Sequent display for temperature change - LED by LED. Comment out for change all LED at time
1621
+  #define NEOPIXEL_BRIGHTNESS 127  // Initial brightness 0-255
1622
+  //#define NEOPIXEL_STARTUP_TEST  // Cycle through colors at startup
1580 1623
 #endif
1581 1624
 
1582 1625
 /**

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

@@ -107,8 +107,9 @@
107 107
  *
108 108
  * 250000 works in most cases, but you might try a lower speed if
109 109
  * you commonly experience drop-outs during host printing.
110
+ * You may try up to 1000000 to speed up SD file transfer.
110 111
  *
111
- * :[2400, 9600, 19200, 38400, 57600, 115200, 250000]
112
+ * :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000]
112 113
  */
113 114
 #define BAUDRATE 115200
114 115
 
@@ -757,6 +758,8 @@
757 758
 
758 759
 // @section homing
759 760
 
761
+//#define NO_MOTION_BEFORE_HOMING  // Inhibit movement until all axes have been homed
762
+
760 763
 //#define Z_HOMING_HEIGHT 4  // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
761 764
                              // Be sure you have this distance over your Z_MAX_POS in case.
762 765
 
@@ -953,9 +956,11 @@
953 956
 #if ENABLED(LCD_BED_LEVELING)
954 957
   #define MBL_Z_STEP 0.025    // Step size while manually probing Z axis.
955 958
   #define LCD_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
956
-  #define LEVEL_BED_CORNERS   // Add an option to move between corners
957 959
 #endif
958 960
 
961
+// Add a menu item to move between bed corners for manual bed adjustment
962
+//#define LEVEL_BED_CORNERS
963
+
959 964
 /**
960 965
  * Commands to execute at the end of G29 probing.
961 966
  * Useful to retract or move the Z probe out of the way.
@@ -1196,7 +1201,7 @@
1196 1201
  *  - Click the controller to view the LCD menu
1197 1202
  *  - The LCD will display Japanese, Western, or Cyrillic text
1198 1203
  *
1199
- * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
1204
+ * See http://marlinfw.org/docs/development/lcd_language.html
1200 1205
  *
1201 1206
  * :['JAPANESE', 'WESTERN', 'CYRILLIC']
1202 1207
  */
@@ -1498,6 +1503,35 @@
1498 1503
 //
1499 1504
 //#define OLED_PANEL_TINYBOY2
1500 1505
 
1506
+//
1507
+// Makeboard 3D Printer Parts 3D Printer Mini Display 1602 Mini Controller
1508
+// https://www.aliexpress.com/item/Micromake-Makeboard-3D-Printer-Parts-3D-Printer-Mini-Display-1602-Mini-Controller-Compatible-with-Ramps-1/32765887917.html
1509
+//
1510
+//#define MAKEBOARD_MINI_2_LINE_DISPLAY_1602
1511
+
1512
+//
1513
+// MKS MINI12864 with graphic controller and SD support
1514
+// http://reprap.org/wiki/MKS_MINI_12864
1515
+//
1516
+//#define MKS_MINI_12864
1517
+
1518
+//
1519
+// Factory display for Creality CR-10
1520
+// https://www.aliexpress.com/item/Universal-LCD-12864-3D-Printer-Display-Screen-With-Encoder-For-CR-10-CR-7-Model/32833148327.html
1521
+//
1522
+// This is RAMPS-compatible using a single 10-pin connector.
1523
+// (For CR-10 owners who want to replace the Melzi Creality board but retain the display)
1524
+//
1525
+//#define CR10_STOCKDISPLAY
1526
+
1527
+//
1528
+// MKS OLED 1.3" 128 × 64 FULL GRAPHICS CONTROLLER
1529
+// http://reprap.org/wiki/MKS_12864OLED
1530
+//
1531
+// Tiny, but very sharp OLED display
1532
+//
1533
+//#define MKS_12864OLED
1534
+
1501 1535
 //=============================================================================
1502 1536
 //=============================== Extra Features ==============================
1503 1537
 //=============================================================================
@@ -1554,16 +1588,22 @@
1554 1588
  * Adds the M150 command to set the LED (or LED strip) color.
1555 1589
  * If pins are PWM capable (e.g., 4, 5, 6, 11) then a range of
1556 1590
  * luminance values can be set from 0 to 255.
1591
+ * For Neopixel LED overall brightness parameters is also available 
1557 1592
  *
1558 1593
  * *** CAUTION ***
1559 1594
  *  LED Strips require a MOFSET Chip between PWM lines and LEDs,
1560 1595
  *  as the Arduino cannot handle the current the LEDs will require.
1561 1596
  *  Failure to follow this precaution can destroy your Arduino!
1597
+ *  The Neopixel LED is 5V powered, but linear 5V regulator on Arduino
1598
+ *  cannot handle such current, separate 5V power supply must be used
1562 1599
  * *** CAUTION ***
1563 1600
  *
1601
+ * LED type. This options are mutualy exclusive. Uncomment only one.
1602
+ *
1564 1603
  */
1565 1604
 //#define RGB_LED
1566 1605
 //#define RGBW_LED
1606
+
1567 1607
 #if ENABLED(RGB_LED) || ENABLED(RGBW_LED)
1568 1608
   #define RGB_LED_R_PIN 34
1569 1609
   #define RGB_LED_G_PIN 43
@@ -1572,11 +1612,14 @@
1572 1612
 #endif
1573 1613
 
1574 1614
 // Support for Adafruit Neopixel LED driver
1575
-//#define NEOPIXEL_RGBW_LED
1576
-#if ENABLED(NEOPIXEL_RGBW_LED)
1577
-  #define NEOPIXEL_PIN    4       // D4 (EXP2-5 on Printrboard)
1578
-  #define NEOPIXEL_PIXELS 3
1579
-  //#define NEOPIXEL_STARTUP_TEST // Cycle through colors at startup
1615
+//#define NEOPIXEL_LED
1616
+#if ENABLED(NEOPIXEL_LED)
1617
+  #define NEOPIXEL_TYPE   NEO_GRBW // NEO_GRBW / NEO_GRB - four/three channel driver type (definned in Adafruit_NeoPixel.h)
1618
+  #define NEOPIXEL_PIN    4        // LED driving pin on motherboard 4 => D4 (EXP2-5 on Printrboard) / 30 => PC7 (EXP3-13 on Rumba)
1619
+  #define NEOPIXEL_PIXELS 30       // Number of LEDs on strip
1620
+  #define NEOPIXEL_IS_SEQUENTIAL   // Sequent display for temperature change - LED by LED. Comment out for change all LED at time
1621
+  #define NEOPIXEL_BRIGHTNESS 127  // Initial brightness 0-255
1622
+  //#define NEOPIXEL_STARTUP_TEST  // Cycle through colors at startup
1580 1623
 #endif
1581 1624
 
1582 1625
 /**

+ 52
- 39
Marlin/example_configurations/RigidBot/Configuration_adv.h View File

@@ -222,7 +222,7 @@
222 222
 
223 223
 /**
224 224
  * Part-Cooling Fan Multiplexer
225
- * 
225
+ *
226 226
  * This feature allows you to digitally multiplex the fan output.
227 227
  * The multiplexer is automatically switched at tool-change.
228 228
  * Set FANMUX[012]_PINs below for up to 2, 4, or 8 multiplexed fans.
@@ -510,7 +510,7 @@
510 510
 
511 511
   // SD Card Sorting options
512 512
   #if ENABLED(SDCARD_SORT_ALPHA)
513
-    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256).
513
+    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256). Costs 27 bytes each.
514 514
     #define FOLDER_SORTING     -1     // -1=above  0=none  1=below
515 515
     #define SDSORT_GCODE       false  // Allow turning sorting on/off with LCD and M34 g-code.
516 516
     #define SDSORT_USES_RAM    false  // Pre-allocate a static array for faster pre-sorting.
@@ -601,31 +601,19 @@
601 601
  */
602 602
 //#define BABYSTEPPING
603 603
 #if ENABLED(BABYSTEPPING)
604
-  #define BABYSTEP_XY              // Also enable X/Y Babystepping. Not supported on DELTA!
605
-  #define BABYSTEP_INVERT_Z false  // Change if Z babysteps should go the other way
606
-  #define BABYSTEP_MULTIPLICATOR 1 // Babysteps are very small. Increase for faster motion.
607
-  //#define BABYSTEP_ZPROBE_OFFSET // Enable to combine M851 and Babystepping
604
+  //#define BABYSTEP_XY              // Also enable X/Y Babystepping. Not supported on DELTA!
605
+  #define BABYSTEP_INVERT_Z false    // Change if Z babysteps should go the other way
606
+  #define BABYSTEP_MULTIPLICATOR 100 // Babysteps are very small. Increase for faster motion.
607
+  //#define BABYSTEP_ZPROBE_OFFSET   // Enable to combine M851 and Babystepping
608 608
   //#define DOUBLECLICK_FOR_Z_BABYSTEPPING // Double-click on the Status Screen for Z Babystepping.
609 609
   #define DOUBLECLICK_MAX_INTERVAL 1250 // Maximum interval between clicks, in milliseconds.
610 610
                                         // Note: Extra time may be added to mitigate controller latency.
611
+  //#define BABYSTEP_ZPROBE_GFX_OVERLAY // Enable graphical overlay on Z-offset editor
612
+  //#define BABYSTEP_ZPROBE_GFX_REVERSE // Reverses the direction of the CW/CCW indicators
611 613
 #endif
612 614
 
613 615
 // @section extruder
614 616
 
615
-// extruder advance constant (s2/mm3)
616
-//
617
-// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
618
-//
619
-// Hooke's law says:    force = k * distance
620
-// Bernoulli's principle says:  v ^ 2 / 2 + g . h + pressure / density = constant
621
-// so: v ^ 2 is proportional to number of steps we advance the extruder
622
-//#define ADVANCE
623
-
624
-#if ENABLED(ADVANCE)
625
-  #define EXTRUDER_ADVANCE_K .0
626
-  #define D_FILAMENT 1.75
627
-#endif
628
-
629 617
 /**
630 618
  * Implementation of linear pressure control
631 619
  *
@@ -742,7 +730,7 @@
742 730
 #define MAX_CMD_SIZE 96
743 731
 #define BUFSIZE 8
744 732
 
745
-// Transfer Buffer Size
733
+// Transmission to Host Buffer Size
746 734
 // To save 386 bytes of PROGMEM (and TX_BUFFER_SIZE+3 bytes of RAM) set to 0.
747 735
 // To buffer a simple "ok" you need 4 bytes.
748 736
 // For ADVANCED_OK (M105) you need 32 bytes.
@@ -751,6 +739,28 @@
751 739
 // :[0, 2, 4, 8, 16, 32, 64, 128, 256]
752 740
 #define TX_BUFFER_SIZE 0
753 741
 
742
+// Host Receive Buffer Size
743
+// Without XON/XOFF flow control (see SERIAL_XON_XOFF below) 32 bytes should be enough.
744
+// To use flow control, set this buffer size to at least 1024 bytes.
745
+// :[0, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048]
746
+//#define RX_BUFFER_SIZE 1024
747
+
748
+#if RX_BUFFER_SIZE >= 1024
749
+  // Enable to have the controller send XON/XOFF control characters to
750
+  // the host to signal the RX buffer is becoming full.
751
+  //#define SERIAL_XON_XOFF
752
+#endif
753
+
754
+#if ENABLED(SDSUPPORT)
755
+  // Enable this option to collect and display the maximum
756
+  // RX queue usage after transferring a file to SD.
757
+  //#define SERIAL_STATS_MAX_RX_QUEUED
758
+
759
+  // Enable this option to collect and display the number
760
+  // of dropped bytes after a file transfer to SD.
761
+  //#define SERIAL_STATS_DROPPED_RX
762
+#endif
763
+
754 764
 // Enable an emergency-command parser to intercept certain commands as they
755 765
 // enter the serial receive buffer, so they cannot be blocked.
756 766
 // Currently handles M108, M112, M410
@@ -1274,6 +1284,7 @@
1274 1284
 #if ENABLED(CUSTOM_USER_MENUS)
1275 1285
   #define USER_SCRIPT_DONE "M117 User Script Done"
1276 1286
   #define USER_SCRIPT_AUDIBLE_FEEDBACK
1287
+  //#define USER_SCRIPT_RETURN  // Return to status screen after a script
1277 1288
 
1278 1289
   #define USER_DESC_1 "Home & UBL Info"
1279 1290
   #define USER_GCODE_1 "G28\nG29 W"
@@ -1383,29 +1394,31 @@
1383 1394
 #endif // I2C_POSITION_ENCODERS
1384 1395
 
1385 1396
 /**
1386
-  * Debug LED's using an 8x8 LED Matrix driven by a Max7219 chip.   Fully assembled versions are available on
1387
-  * eBay for under $2.00 (including shipping) and only require 3 signal wires.
1388
-  *
1389
-  * Check out auctions similar to this: https://www.ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313&_nkw=332349290049&_sacat=0
1390
-  */
1391
-
1397
+ * MAX7219 Debug Matrix
1398
+ *
1399
+ * Add support for a low-cost 8x8 LED Matrix based on the Max7219 chip, which can be used as a status
1400
+ * display. Requires 3 signal wires. Some useful debug options are included to demonstrate its usage.
1401
+ *
1402
+ * Fully assembled MAX7219 boards can be found on the internet for under $2(US).
1403
+ * For example, see https://www.ebay.com/sch/i.html?_nkw=332349290049
1404
+ */
1392 1405
 //#define MAX7219_DEBUG
1393 1406
 #if ENABLED(MAX7219_DEBUG)
1394
-  #define Max7219_clock   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display
1395
-  #define Max7219_data_in 57  // 78 on Re-ARM
1396
-  #define Max7219_load    44  // 79 on Re-ARM
1407
+  #define MAX7219_CLK_PIN   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display
1408
+  #define MAX7219_DIN_PIN   57  // 78 on Re-ARM
1409
+  #define MAX7219_LOAD_PIN  44  // 79 on Re-ARM
1397 1410
 
1398
-  /*
1399
-   * These are sample debug features that can be turned on and configured for your use.
1400
-   * The developer will need to manage the use of the various LED's in the 8x8 matrix to avoid conflicts.
1411
+  /**
1412
+   * Sample debug features
1413
+   * If you add more debug displays, be careful to avoid conflicts!
1401 1414
    */
1402
-  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix from idle() routine if firmware is functioning
1403
-  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Display row position of stepper queue head on this line and the next line of LED matrix
1404
-  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Display row position of stepper queue tail on this line and the next line of LED matrix
1415
+  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix to show that the firmware is functioning
1416
+  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Show the stepper queue head position on this and the next LED matrix row
1417
+  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Show the stepper queue tail position on this and the next LED matrix row
1405 1418
 
1406
-  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Display row position of stepper queue depth on this line and the next line of LED matrix
1407
-                                         // If you have stuttering on your Delta printer, this option may help you understand how
1408
-                                         // various tweaks you make to your configuration are affecting the printer.
1419
+  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Show the current stepper queue depth on this and the next LED matrix row
1420
+                                         // If you experience stuttering, reboots, etc. this option can reveal how
1421
+                                         // tweaks made to the configuration are affecting the printer in real-time.
1409 1422
 #endif
1410 1423
 
1411 1424
 #endif // CONFIGURATION_ADV_H

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

@@ -137,8 +137,9 @@
137 137
  *
138 138
  * 250000 works in most cases, but you might try a lower speed if
139 139
  * you commonly experience drop-outs during host printing.
140
+ * You may try up to 1000000 to speed up SD file transfer.
140 141
  *
141
- * :[2400, 9600, 19200, 38400, 57600, 115200, 250000]
142
+ * :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000]
142 143
  */
143 144
 #define BAUDRATE 250000
144 145
 
@@ -771,6 +772,8 @@
771 772
 
772 773
 // @section homing
773 774
 
775
+//#define NO_MOTION_BEFORE_HOMING  // Inhibit movement until all axes have been homed
776
+
774 777
 //#define Z_HOMING_HEIGHT 4  // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
775 778
                              // Be sure you have this distance over your Z_MAX_POS in case.
776 779
 
@@ -967,9 +970,11 @@
967 970
 #if ENABLED(LCD_BED_LEVELING)
968 971
   #define MBL_Z_STEP 0.025    // Step size while manually probing Z axis.
969 972
   #define LCD_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
970
-  #define LEVEL_BED_CORNERS   // Add an option to move between corners
971 973
 #endif
972 974
 
975
+// Add a menu item to move between bed corners for manual bed adjustment
976
+//#define LEVEL_BED_CORNERS
977
+
973 978
 /**
974 979
  * Commands to execute at the end of G29 probing.
975 980
  * Useful to retract or move the Z probe out of the way.
@@ -1210,7 +1215,7 @@
1210 1215
  *  - Click the controller to view the LCD menu
1211 1216
  *  - The LCD will display Japanese, Western, or Cyrillic text
1212 1217
  *
1213
- * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
1218
+ * See http://marlinfw.org/docs/development/lcd_language.html
1214 1219
  *
1215 1220
  * :['JAPANESE', 'WESTERN', 'CYRILLIC']
1216 1221
  */
@@ -1510,6 +1515,35 @@
1510 1515
 //
1511 1516
 //#define OLED_PANEL_TINYBOY2
1512 1517
 
1518
+//
1519
+// Makeboard 3D Printer Parts 3D Printer Mini Display 1602 Mini Controller
1520
+// https://www.aliexpress.com/item/Micromake-Makeboard-3D-Printer-Parts-3D-Printer-Mini-Display-1602-Mini-Controller-Compatible-with-Ramps-1/32765887917.html
1521
+//
1522
+//#define MAKEBOARD_MINI_2_LINE_DISPLAY_1602
1523
+
1524
+//
1525
+// MKS MINI12864 with graphic controller and SD support
1526
+// http://reprap.org/wiki/MKS_MINI_12864
1527
+//
1528
+//#define MKS_MINI_12864
1529
+
1530
+//
1531
+// Factory display for Creality CR-10
1532
+// https://www.aliexpress.com/item/Universal-LCD-12864-3D-Printer-Display-Screen-With-Encoder-For-CR-10-CR-7-Model/32833148327.html
1533
+//
1534
+// This is RAMPS-compatible using a single 10-pin connector.
1535
+// (For CR-10 owners who want to replace the Melzi Creality board but retain the display)
1536
+//
1537
+//#define CR10_STOCKDISPLAY
1538
+
1539
+//
1540
+// MKS OLED 1.3" 128 × 64 FULL GRAPHICS CONTROLLER
1541
+// http://reprap.org/wiki/MKS_12864OLED
1542
+//
1543
+// Tiny, but very sharp OLED display
1544
+//
1545
+//#define MKS_12864OLED
1546
+
1513 1547
 //=============================================================================
1514 1548
 //=============================== Extra Features ==============================
1515 1549
 //=============================================================================
@@ -1566,16 +1600,22 @@
1566 1600
  * Adds the M150 command to set the LED (or LED strip) color.
1567 1601
  * If pins are PWM capable (e.g., 4, 5, 6, 11) then a range of
1568 1602
  * luminance values can be set from 0 to 255.
1603
+ * For Neopixel LED overall brightness parameters is also available 
1569 1604
  *
1570 1605
  * *** CAUTION ***
1571 1606
  *  LED Strips require a MOFSET Chip between PWM lines and LEDs,
1572 1607
  *  as the Arduino cannot handle the current the LEDs will require.
1573 1608
  *  Failure to follow this precaution can destroy your Arduino!
1609
+ *  The Neopixel LED is 5V powered, but linear 5V regulator on Arduino
1610
+ *  cannot handle such current, separate 5V power supply must be used
1574 1611
  * *** CAUTION ***
1575 1612
  *
1613
+ * LED type. This options are mutualy exclusive. Uncomment only one.
1614
+ *
1576 1615
  */
1577 1616
 //#define RGB_LED
1578 1617
 //#define RGBW_LED
1618
+
1579 1619
 #if ENABLED(RGB_LED) || ENABLED(RGBW_LED)
1580 1620
   #define RGB_LED_R_PIN 34
1581 1621
   #define RGB_LED_G_PIN 43
@@ -1584,11 +1624,14 @@
1584 1624
 #endif
1585 1625
 
1586 1626
 // Support for Adafruit Neopixel LED driver
1587
-//#define NEOPIXEL_RGBW_LED
1588
-#if ENABLED(NEOPIXEL_RGBW_LED)
1589
-  #define NEOPIXEL_PIN    4       // D4 (EXP2-5 on Printrboard)
1590
-  #define NEOPIXEL_PIXELS 3
1591
-  //#define NEOPIXEL_STARTUP_TEST // Cycle through colors at startup
1627
+//#define NEOPIXEL_LED
1628
+#if ENABLED(NEOPIXEL_LED)
1629
+  #define NEOPIXEL_TYPE   NEO_GRBW // NEO_GRBW / NEO_GRB - four/three channel driver type (definned in Adafruit_NeoPixel.h)
1630
+  #define NEOPIXEL_PIN    4        // LED driving pin on motherboard 4 => D4 (EXP2-5 on Printrboard) / 30 => PC7 (EXP3-13 on Rumba)
1631
+  #define NEOPIXEL_PIXELS 30       // Number of LEDs on strip
1632
+  #define NEOPIXEL_IS_SEQUENTIAL   // Sequent display for temperature change - LED by LED. Comment out for change all LED at time
1633
+  #define NEOPIXEL_BRIGHTNESS 127  // Initial brightness 0-255
1634
+  //#define NEOPIXEL_STARTUP_TEST  // Cycle through colors at startup
1592 1635
 #endif
1593 1636
 
1594 1637
 /**

+ 52
- 39
Marlin/example_configurations/SCARA/Configuration_adv.h View File

@@ -222,7 +222,7 @@
222 222
 
223 223
 /**
224 224
  * Part-Cooling Fan Multiplexer
225
- * 
225
+ *
226 226
  * This feature allows you to digitally multiplex the fan output.
227 227
  * The multiplexer is automatically switched at tool-change.
228 228
  * Set FANMUX[012]_PINs below for up to 2, 4, or 8 multiplexed fans.
@@ -510,7 +510,7 @@
510 510
 
511 511
   // SD Card Sorting options
512 512
   #if ENABLED(SDCARD_SORT_ALPHA)
513
-    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256).
513
+    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256). Costs 27 bytes each.
514 514
     #define FOLDER_SORTING     -1     // -1=above  0=none  1=below
515 515
     #define SDSORT_GCODE       false  // Allow turning sorting on/off with LCD and M34 g-code.
516 516
     #define SDSORT_USES_RAM    false  // Pre-allocate a static array for faster pre-sorting.
@@ -601,31 +601,19 @@
601 601
  */
602 602
 //#define BABYSTEPPING
603 603
 #if ENABLED(BABYSTEPPING)
604
-  #define BABYSTEP_XY              // Also enable X/Y Babystepping. Not supported on DELTA!
605
-  #define BABYSTEP_INVERT_Z false  // Change if Z babysteps should go the other way
606
-  #define BABYSTEP_MULTIPLICATOR 1 // Babysteps are very small. Increase for faster motion.
607
-  //#define BABYSTEP_ZPROBE_OFFSET // Enable to combine M851 and Babystepping
604
+  //#define BABYSTEP_XY              // Also enable X/Y Babystepping. Not supported on DELTA!
605
+  #define BABYSTEP_INVERT_Z false    // Change if Z babysteps should go the other way
606
+  #define BABYSTEP_MULTIPLICATOR 100 // Babysteps are very small. Increase for faster motion.
607
+  //#define BABYSTEP_ZPROBE_OFFSET   // Enable to combine M851 and Babystepping
608 608
   //#define DOUBLECLICK_FOR_Z_BABYSTEPPING // Double-click on the Status Screen for Z Babystepping.
609 609
   #define DOUBLECLICK_MAX_INTERVAL 1250 // Maximum interval between clicks, in milliseconds.
610 610
                                         // Note: Extra time may be added to mitigate controller latency.
611
+  //#define BABYSTEP_ZPROBE_GFX_OVERLAY // Enable graphical overlay on Z-offset editor
612
+  //#define BABYSTEP_ZPROBE_GFX_REVERSE // Reverses the direction of the CW/CCW indicators
611 613
 #endif
612 614
 
613 615
 // @section extruder
614 616
 
615
-// extruder advance constant (s2/mm3)
616
-//
617
-// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
618
-//
619
-// Hooke's law says:    force = k * distance
620
-// Bernoulli's principle says:  v ^ 2 / 2 + g . h + pressure / density = constant
621
-// so: v ^ 2 is proportional to number of steps we advance the extruder
622
-#define ADVANCE
623
-
624
-#if ENABLED(ADVANCE)
625
-  #define EXTRUDER_ADVANCE_K .0
626
-  #define D_FILAMENT 1.75
627
-#endif
628
-
629 617
 /**
630 618
  * Implementation of linear pressure control
631 619
  *
@@ -742,7 +730,7 @@
742 730
 #define MAX_CMD_SIZE 96
743 731
 #define BUFSIZE 4
744 732
 
745
-// Transfer Buffer Size
733
+// Transmission to Host Buffer Size
746 734
 // To save 386 bytes of PROGMEM (and TX_BUFFER_SIZE+3 bytes of RAM) set to 0.
747 735
 // To buffer a simple "ok" you need 4 bytes.
748 736
 // For ADVANCED_OK (M105) you need 32 bytes.
@@ -751,6 +739,28 @@
751 739
 // :[0, 2, 4, 8, 16, 32, 64, 128, 256]
752 740
 #define TX_BUFFER_SIZE 0
753 741
 
742
+// Host Receive Buffer Size
743
+// Without XON/XOFF flow control (see SERIAL_XON_XOFF below) 32 bytes should be enough.
744
+// To use flow control, set this buffer size to at least 1024 bytes.
745
+// :[0, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048]
746
+//#define RX_BUFFER_SIZE 1024
747
+
748
+#if RX_BUFFER_SIZE >= 1024
749
+  // Enable to have the controller send XON/XOFF control characters to
750
+  // the host to signal the RX buffer is becoming full.
751
+  //#define SERIAL_XON_XOFF
752
+#endif
753
+
754
+#if ENABLED(SDSUPPORT)
755
+  // Enable this option to collect and display the maximum
756
+  // RX queue usage after transferring a file to SD.
757
+  //#define SERIAL_STATS_MAX_RX_QUEUED
758
+
759
+  // Enable this option to collect and display the number
760
+  // of dropped bytes after a file transfer to SD.
761
+  //#define SERIAL_STATS_DROPPED_RX
762
+#endif
763
+
754 764
 // Enable an emergency-command parser to intercept certain commands as they
755 765
 // enter the serial receive buffer, so they cannot be blocked.
756 766
 // Currently handles M108, M112, M410
@@ -1274,6 +1284,7 @@
1274 1284
 #if ENABLED(CUSTOM_USER_MENUS)
1275 1285
   #define USER_SCRIPT_DONE "M117 User Script Done"
1276 1286
   #define USER_SCRIPT_AUDIBLE_FEEDBACK
1287
+  //#define USER_SCRIPT_RETURN  // Return to status screen after a script
1277 1288
 
1278 1289
   #define USER_DESC_1 "Home & UBL Info"
1279 1290
   #define USER_GCODE_1 "G28\nG29 W"
@@ -1383,29 +1394,31 @@
1383 1394
 #endif // I2C_POSITION_ENCODERS
1384 1395
 
1385 1396
 /**
1386
-  * Debug LED's using an 8x8 LED Matrix driven by a Max7219 chip.   Fully assembled versions are available on
1387
-  * eBay for under $2.00 (including shipping) and only require 3 signal wires.
1388
-  *
1389
-  * Check out auctions similar to this: https://www.ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313&_nkw=332349290049&_sacat=0
1390
-  */
1391
-
1397
+ * MAX7219 Debug Matrix
1398
+ *
1399
+ * Add support for a low-cost 8x8 LED Matrix based on the Max7219 chip, which can be used as a status
1400
+ * display. Requires 3 signal wires. Some useful debug options are included to demonstrate its usage.
1401
+ *
1402
+ * Fully assembled MAX7219 boards can be found on the internet for under $2(US).
1403
+ * For example, see https://www.ebay.com/sch/i.html?_nkw=332349290049
1404
+ */
1392 1405
 //#define MAX7219_DEBUG
1393 1406
 #if ENABLED(MAX7219_DEBUG)
1394
-  #define Max7219_clock   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display
1395
-  #define Max7219_data_in 57  // 78 on Re-ARM
1396
-  #define Max7219_load    44  // 79 on Re-ARM
1407
+  #define MAX7219_CLK_PIN   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display
1408
+  #define MAX7219_DIN_PIN   57  // 78 on Re-ARM
1409
+  #define MAX7219_LOAD_PIN  44  // 79 on Re-ARM
1397 1410
 
1398
-  /*
1399
-   * These are sample debug features that can be turned on and configured for your use.
1400
-   * The developer will need to manage the use of the various LED's in the 8x8 matrix to avoid conflicts.
1411
+  /**
1412
+   * Sample debug features
1413
+   * If you add more debug displays, be careful to avoid conflicts!
1401 1414
    */
1402
-  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix from idle() routine if firmware is functioning
1403
-  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Display row position of stepper queue head on this line and the next line of LED matrix
1404
-  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Display row position of stepper queue tail on this line and the next line of LED matrix
1415
+  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix to show that the firmware is functioning
1416
+  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Show the stepper queue head position on this and the next LED matrix row
1417
+  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Show the stepper queue tail position on this and the next LED matrix row
1405 1418
 
1406
-  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Display row position of stepper queue depth on this line and the next line of LED matrix
1407
-                                         // If you have stuttering on your Delta printer, this option may help you understand how
1408
-                                         // various tweaks you make to your configuration are affecting the printer.
1419
+  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Show the current stepper queue depth on this and the next LED matrix row
1420
+                                         // If you experience stuttering, reboots, etc. this option can reveal how
1421
+                                         // tweaks made to the configuration are affecting the printer in real-time.
1409 1422
 #endif
1410 1423
 
1411 1424
 #endif // CONFIGURATION_ADV_H

+ 52
- 9
Marlin/example_configurations/Sanguinololu/Configuration.h View File

@@ -107,8 +107,9 @@
107 107
  *
108 108
  * 250000 works in most cases, but you might try a lower speed if
109 109
  * you commonly experience drop-outs during host printing.
110
+ * You may try up to 1000000 to speed up SD file transfer.
110 111
  *
111
- * :[2400, 9600, 19200, 38400, 57600, 115200, 250000]
112
+ * :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000]
112 113
  */
113 114
 #define BAUDRATE 115200
114 115
 
@@ -181,7 +182,7 @@
181 182
  */
182 183
 //#define PARKING_EXTRUDER
183 184
 #if ENABLED(PARKING_EXTRUDER)
184
-  #define PARKING_EXTRUDER_SOLENOIDS_INVERT           // If enabled, the solenoid not magnetized with applied voltage
185
+  #define PARKING_EXTRUDER_SOLENOIDS_INVERT           // If enabled, the solenoid is NOT magnetized with applied voltage
185 186
   #define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW  // LOW or HIGH pin signal energizes the coil
186 187
   #define PARKING_EXTRUDER_SOLENOIDS_DELAY 250        // Delay (ms) for magnetic field. No delay if 0 or not defined.
187 188
   #define PARKING_EXTRUDER_PARKING_X { -78, 184 }     // X positions for parking the extruders
@@ -790,6 +791,8 @@
790 791
 
791 792
 // @section homing
792 793
 
794
+//#define NO_MOTION_BEFORE_HOMING  // Inhibit movement until all axes have been homed
795
+
793 796
 #define Z_HOMING_HEIGHT 4    // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
794 797
                              // Be sure you have this distance over your Z_MAX_POS in case.
795 798
 
@@ -986,9 +989,11 @@
986 989
 #if ENABLED(LCD_BED_LEVELING)
987 990
   #define MBL_Z_STEP 0.025    // Step size while manually probing Z axis.
988 991
   #define LCD_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
989
-  #define LEVEL_BED_CORNERS   // Add an option to move between corners
990 992
 #endif
991 993
 
994
+// Add a menu item to move between bed corners for manual bed adjustment
995
+//#define LEVEL_BED_CORNERS
996
+
992 997
 /**
993 998
  * Commands to execute at the end of G29 probing.
994 999
  * Useful to retract or move the Z probe out of the way.
@@ -1229,7 +1234,7 @@
1229 1234
  *  - Click the controller to view the LCD menu
1230 1235
  *  - The LCD will display Japanese, Western, or Cyrillic text
1231 1236
  *
1232
- * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
1237
+ * See http://marlinfw.org/docs/development/lcd_language.html
1233 1238
  *
1234 1239
  * :['JAPANESE', 'WESTERN', 'CYRILLIC']
1235 1240
  */
@@ -1529,6 +1534,35 @@
1529 1534
 //
1530 1535
 //#define OLED_PANEL_TINYBOY2
1531 1536
 
1537
+//
1538
+// Makeboard 3D Printer Parts 3D Printer Mini Display 1602 Mini Controller
1539
+// https://www.aliexpress.com/item/Micromake-Makeboard-3D-Printer-Parts-3D-Printer-Mini-Display-1602-Mini-Controller-Compatible-with-Ramps-1/32765887917.html
1540
+//
1541
+//#define MAKEBOARD_MINI_2_LINE_DISPLAY_1602
1542
+
1543
+//
1544
+// MKS MINI12864 with graphic controller and SD support
1545
+// http://reprap.org/wiki/MKS_MINI_12864
1546
+//
1547
+//#define MKS_MINI_12864
1548
+
1549
+//
1550
+// Factory display for Creality CR-10
1551
+// https://www.aliexpress.com/item/Universal-LCD-12864-3D-Printer-Display-Screen-With-Encoder-For-CR-10-CR-7-Model/32833148327.html
1552
+//
1553
+// This is RAMPS-compatible using a single 10-pin connector.
1554
+// (For CR-10 owners who want to replace the Melzi Creality board but retain the display)
1555
+//
1556
+//#define CR10_STOCKDISPLAY
1557
+
1558
+//
1559
+// MKS OLED 1.3" 128 × 64 FULL GRAPHICS CONTROLLER
1560
+// http://reprap.org/wiki/MKS_12864OLED
1561
+//
1562
+// Tiny, but very sharp OLED display
1563
+//
1564
+//#define MKS_12864OLED
1565
+
1532 1566
 //=============================================================================
1533 1567
 //=============================== Extra Features ==============================
1534 1568
 //=============================================================================
@@ -1585,16 +1619,22 @@
1585 1619
  * Adds the M150 command to set the LED (or LED strip) color.
1586 1620
  * If pins are PWM capable (e.g., 4, 5, 6, 11) then a range of
1587 1621
  * luminance values can be set from 0 to 255.
1622
+ * For Neopixel LED overall brightness parameters is also available 
1588 1623
  *
1589 1624
  * *** CAUTION ***
1590 1625
  *  LED Strips require a MOFSET Chip between PWM lines and LEDs,
1591 1626
  *  as the Arduino cannot handle the current the LEDs will require.
1592 1627
  *  Failure to follow this precaution can destroy your Arduino!
1628
+ *  The Neopixel LED is 5V powered, but linear 5V regulator on Arduino
1629
+ *  cannot handle such current, separate 5V power supply must be used
1593 1630
  * *** CAUTION ***
1594 1631
  *
1632
+ * LED type. This options are mutualy exclusive. Uncomment only one.
1633
+ *
1595 1634
  */
1596 1635
 #define RGB_LED
1597 1636
 //#define RGBW_LED
1637
+
1598 1638
 #if ENABLED(RGB_LED) || ENABLED(RGBW_LED)
1599 1639
   #define RGB_LED_R_PIN 11
1600 1640
   #define RGB_LED_G_PIN 10
@@ -1603,11 +1643,14 @@
1603 1643
 #endif
1604 1644
 
1605 1645
 // Support for Adafruit Neopixel LED driver
1606
-//#define NEOPIXEL_RGBW_LED
1607
-#if ENABLED(NEOPIXEL_RGBW_LED)
1608
-  #define NEOPIXEL_PIN    4       // D4 (EXP2-5 on Printrboard)
1609
-  #define NEOPIXEL_PIXELS 3
1610
-  //#define NEOPIXEL_STARTUP_TEST // Cycle through colors at startup
1646
+//#define NEOPIXEL_LED
1647
+#if ENABLED(NEOPIXEL_LED)
1648
+  #define NEOPIXEL_TYPE   NEO_GRBW // NEO_GRBW / NEO_GRB - four/three channel driver type (definned in Adafruit_NeoPixel.h)
1649
+  #define NEOPIXEL_PIN    4        // LED driving pin on motherboard 4 => D4 (EXP2-5 on Printrboard) / 30 => PC7 (EXP3-13 on Rumba)
1650
+  #define NEOPIXEL_PIXELS 30       // Number of LEDs on strip
1651
+  #define NEOPIXEL_IS_SEQUENTIAL   // Sequent display for temperature change - LED by LED. Comment out for change all LED at time
1652
+  #define NEOPIXEL_BRIGHTNESS 127  // Initial brightness 0-255
1653
+  //#define NEOPIXEL_STARTUP_TEST  // Cycle through colors at startup
1611 1654
 #endif
1612 1655
 
1613 1656
 /**

+ 29
- 38
Marlin/example_configurations/Sanguinololu/Configuration_adv.h View File

@@ -499,7 +499,7 @@
499 499
 
500 500
   // SD Card Sorting options
501 501
   #if ENABLED(SDCARD_SORT_ALPHA)
502
-    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256).
502
+    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256). Costs 27 bytes each.
503 503
     #define FOLDER_SORTING     -1     // -1=above  0=none  1=below
504 504
     #define SDSORT_GCODE       false  // Allow turning sorting on/off with LCD and M34 g-code.
505 505
     #define SDSORT_USES_RAM    false  // Pre-allocate a static array for faster pre-sorting.
@@ -590,31 +590,19 @@
590 590
  */
591 591
 //#define BABYSTEPPING
592 592
 #if ENABLED(BABYSTEPPING)
593
-  #define BABYSTEP_XY              // Also enable X/Y Babystepping. Not supported on DELTA!
594
-  #define BABYSTEP_INVERT_Z false  // Change if Z babysteps should go the other way
595
-  #define BABYSTEP_MULTIPLICATOR 1 // Babysteps are very small. Increase for faster motion.
596
-  //#define BABYSTEP_ZPROBE_OFFSET // Enable to combine M851 and Babystepping
593
+  //#define BABYSTEP_XY              // Also enable X/Y Babystepping. Not supported on DELTA!
594
+  #define BABYSTEP_INVERT_Z false    // Change if Z babysteps should go the other way
595
+  #define BABYSTEP_MULTIPLICATOR 100 // Babysteps are very small. Increase for faster motion.
596
+  //#define BABYSTEP_ZPROBE_OFFSET   // Enable to combine M851 and Babystepping
597 597
   //#define DOUBLECLICK_FOR_Z_BABYSTEPPING // Double-click on the Status Screen for Z Babystepping.
598 598
   #define DOUBLECLICK_MAX_INTERVAL 1250 // Maximum interval between clicks, in milliseconds.
599 599
                                         // Note: Extra time may be added to mitigate controller latency.
600
+  //#define BABYSTEP_ZPROBE_GFX_OVERLAY // Enable graphical overlay on Z-offset editor
601
+  //#define BABYSTEP_ZPROBE_GFX_REVERSE // Reverses the direction of the CW/CCW indicators
600 602
 #endif
601 603
 
602 604
 // @section extruder
603 605
 
604
-// extruder advance constant (s2/mm3)
605
-//
606
-// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
607
-//
608
-// Hooke's law says:    force = k * distance
609
-// Bernoulli's principle says:  v ^ 2 / 2 + g . h + pressure / density = constant
610
-// so: v ^ 2 is proportional to number of steps we advance the extruder
611
-//#define ADVANCE
612
-
613
-#if ENABLED(ADVANCE)
614
-  #define EXTRUDER_ADVANCE_K .0
615
-  #define D_FILAMENT 2.85
616
-#endif
617
-
618 606
 /**
619 607
  * Implementation of linear pressure control
620 608
  *
@@ -731,7 +719,7 @@
731 719
 #define MAX_CMD_SIZE 96
732 720
 #define BUFSIZE 4
733 721
 
734
-// Transfer Buffer Size
722
+// Transmission to Host Buffer Size
735 723
 // To save 386 bytes of PROGMEM (and TX_BUFFER_SIZE+3 bytes of RAM) set to 0.
736 724
 // To buffer a simple "ok" you need 4 bytes.
737 725
 // For ADVANCED_OK (M105) you need 32 bytes.
@@ -1263,6 +1251,7 @@
1263 1251
 #if ENABLED(CUSTOM_USER_MENUS)
1264 1252
   #define USER_SCRIPT_DONE "M117 User Script Done"
1265 1253
   #define USER_SCRIPT_AUDIBLE_FEEDBACK
1254
+  //#define USER_SCRIPT_RETURN  // Return to status screen after a script
1266 1255
 
1267 1256
   #define USER_DESC_1 "Home & UBL Info"
1268 1257
   #define USER_GCODE_1 "G28\nG29 W"
@@ -1372,29 +1361,31 @@
1372 1361
 #endif // I2C_POSITION_ENCODERS
1373 1362
 
1374 1363
 /**
1375
-  * Debug LED's using an 8x8 LED Matrix driven by a Max7219 chip.   Fully assembled versions are available on
1376
-  * eBay for under $2.00 (including shipping) and only require 3 signal wires.
1377
-  *
1378
-  * Check out auctions similar to this: https://www.ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313&_nkw=332349290049&_sacat=0
1379
-  */
1380
-
1364
+ * MAX7219 Debug Matrix
1365
+ *
1366
+ * Add support for a low-cost 8x8 LED Matrix based on the Max7219 chip, which can be used as a status
1367
+ * display. Requires 3 signal wires. Some useful debug options are included to demonstrate its usage.
1368
+ *
1369
+ * Fully assembled MAX7219 boards can be found on the internet for under $2(US).
1370
+ * For example, see https://www.ebay.com/sch/i.html?_nkw=332349290049
1371
+ */
1381 1372
 //#define MAX7219_DEBUG
1382 1373
 #if ENABLED(MAX7219_DEBUG)
1383
-  #define Max7219_clock   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display
1384
-  #define Max7219_data_in 57  // 78 on Re-ARM
1385
-  #define Max7219_load    44  // 79 on Re-ARM
1374
+  #define MAX7219_CLK_PIN   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display
1375
+  #define MAX7219_DIN_PIN   57  // 78 on Re-ARM
1376
+  #define MAX7219_LOAD_PIN  44  // 79 on Re-ARM
1386 1377
 
1387
-  /*
1388
-   * These are sample debug features that can be turned on and configured for your use.
1389
-   * The developer will need to manage the use of the various LED's in the 8x8 matrix to avoid conflicts.
1378
+  /**
1379
+   * Sample debug features
1380
+   * If you add more debug displays, be careful to avoid conflicts!
1390 1381
    */
1391
-  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix from idle() routine if firmware is functioning
1392
-  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Display row position of stepper queue head on this line and the next line of LED matrix
1393
-  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Display row position of stepper queue tail on this line and the next line of LED matrix
1382
+  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix to show that the firmware is functioning
1383
+  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Show the stepper queue head position on this and the next LED matrix row
1384
+  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Show the stepper queue tail position on this and the next LED matrix row
1394 1385
 
1395
-  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Display row position of stepper queue depth on this line and the next line of LED matrix
1396
-                                         // If you have stuttering on your Delta printer, this option may help you understand how
1397
-                                         // various tweaks you make to your configuration are affecting the printer.
1386
+  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Show the current stepper queue depth on this and the next LED matrix row
1387
+                                         // If you experience stuttering, reboots, etc. this option can reveal how
1388
+                                         // tweaks made to the configuration are affecting the printer in real-time.
1398 1389
 #endif
1399 1390
 
1400 1391
 #endif // CONFIGURATION_ADV_H

+ 51
- 8
Marlin/example_configurations/TinyBoy2/Configuration.h View File

@@ -123,8 +123,9 @@
123 123
  *
124 124
  * 250000 works in most cases, but you might try a lower speed if
125 125
  * you commonly experience drop-outs during host printing.
126
+ * You may try up to 1000000 to speed up SD file transfer.
126 127
  *
127
- * :[2400, 9600, 19200, 38400, 57600, 115200, 250000]
128
+ * :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000]
128 129
  */
129 130
 #define BAUDRATE 115200
130 131
 
@@ -810,6 +811,8 @@
810 811
 
811 812
 // @section homing
812 813
 
814
+//#define NO_MOTION_BEFORE_HOMING  // Inhibit movement until all axes have been homed
815
+
813 816
 //#define Z_HOMING_HEIGHT 4  // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
814 817
                              // Be sure you have this distance over your Z_MAX_POS in case.
815 818
 
@@ -1011,9 +1014,11 @@
1011 1014
 #if ENABLED(LCD_BED_LEVELING)
1012 1015
   #define MBL_Z_STEP 0.025    // Step size while manually probing Z axis.
1013 1016
   #define LCD_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
1014
-  #define LEVEL_BED_CORNERS   // Add an option to move between corners
1015 1017
 #endif
1016 1018
 
1019
+// Add a menu item to move between bed corners for manual bed adjustment
1020
+//#define LEVEL_BED_CORNERS
1021
+
1017 1022
 /**
1018 1023
  * Commands to execute at the end of G29 probing.
1019 1024
  * Useful to retract or move the Z probe out of the way.
@@ -1254,7 +1259,7 @@
1254 1259
  *  - Click the controller to view the LCD menu
1255 1260
  *  - The LCD will display Japanese, Western, or Cyrillic text
1256 1261
  *
1257
- * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
1262
+ * See http://marlinfw.org/docs/development/lcd_language.html
1258 1263
  *
1259 1264
  * :['JAPANESE', 'WESTERN', 'CYRILLIC']
1260 1265
  */
@@ -1554,6 +1559,35 @@
1554 1559
 //
1555 1560
 #define OLED_PANEL_TINYBOY2
1556 1561
 
1562
+//
1563
+// Makeboard 3D Printer Parts 3D Printer Mini Display 1602 Mini Controller
1564
+// https://www.aliexpress.com/item/Micromake-Makeboard-3D-Printer-Parts-3D-Printer-Mini-Display-1602-Mini-Controller-Compatible-with-Ramps-1/32765887917.html
1565
+//
1566
+//#define MAKEBOARD_MINI_2_LINE_DISPLAY_1602
1567
+
1568
+//
1569
+// MKS MINI12864 with graphic controller and SD support
1570
+// http://reprap.org/wiki/MKS_MINI_12864
1571
+//
1572
+//#define MKS_MINI_12864
1573
+
1574
+//
1575
+// Factory display for Creality CR-10
1576
+// https://www.aliexpress.com/item/Universal-LCD-12864-3D-Printer-Display-Screen-With-Encoder-For-CR-10-CR-7-Model/32833148327.html
1577
+//
1578
+// This is RAMPS-compatible using a single 10-pin connector.
1579
+// (For CR-10 owners who want to replace the Melzi Creality board but retain the display)
1580
+//
1581
+//#define CR10_STOCKDISPLAY
1582
+
1583
+//
1584
+// MKS OLED 1.3" 128 × 64 FULL GRAPHICS CONTROLLER
1585
+// http://reprap.org/wiki/MKS_12864OLED
1586
+//
1587
+// Tiny, but very sharp OLED display
1588
+//
1589
+//#define MKS_12864OLED
1590
+
1557 1591
 //=============================================================================
1558 1592
 //=============================== Extra Features ==============================
1559 1593
 //=============================================================================
@@ -1610,16 +1644,22 @@
1610 1644
  * Adds the M150 command to set the LED (or LED strip) color.
1611 1645
  * If pins are PWM capable (e.g., 4, 5, 6, 11) then a range of
1612 1646
  * luminance values can be set from 0 to 255.
1647
+ * For Neopixel LED overall brightness parameters is also available 
1613 1648
  *
1614 1649
  * *** CAUTION ***
1615 1650
  *  LED Strips require a MOFSET Chip between PWM lines and LEDs,
1616 1651
  *  as the Arduino cannot handle the current the LEDs will require.
1617 1652
  *  Failure to follow this precaution can destroy your Arduino!
1653
+ *  The Neopixel LED is 5V powered, but linear 5V regulator on Arduino
1654
+ *  cannot handle such current, separate 5V power supply must be used
1618 1655
  * *** CAUTION ***
1619 1656
  *
1657
+ * LED type. This options are mutualy exclusive. Uncomment only one.
1658
+ *
1620 1659
  */
1621 1660
 //#define RGB_LED
1622 1661
 //#define RGBW_LED
1662
+
1623 1663
 #if ENABLED(RGB_LED) || ENABLED(RGBW_LED)
1624 1664
   #define RGB_LED_R_PIN 34
1625 1665
   #define RGB_LED_G_PIN 43
@@ -1628,11 +1668,14 @@
1628 1668
 #endif
1629 1669
 
1630 1670
 // Support for Adafruit Neopixel LED driver
1631
-//#define NEOPIXEL_RGBW_LED
1632
-#if ENABLED(NEOPIXEL_RGBW_LED)
1633
-  #define NEOPIXEL_PIN    4       // D4 (EXP2-5 on Printrboard)
1634
-  #define NEOPIXEL_PIXELS 3
1635
-  //#define NEOPIXEL_STARTUP_TEST // Cycle through colors at startup
1671
+//#define NEOPIXEL_LED
1672
+#if ENABLED(NEOPIXEL_LED)
1673
+  #define NEOPIXEL_TYPE   NEO_GRBW // NEO_GRBW / NEO_GRB - four/three channel driver type (definned in Adafruit_NeoPixel.h)
1674
+  #define NEOPIXEL_PIN    4        // LED driving pin on motherboard 4 => D4 (EXP2-5 on Printrboard) / 30 => PC7 (EXP3-13 on Rumba)
1675
+  #define NEOPIXEL_PIXELS 30       // Number of LEDs on strip
1676
+  #define NEOPIXEL_IS_SEQUENTIAL   // Sequent display for temperature change - LED by LED. Comment out for change all LED at time
1677
+  #define NEOPIXEL_BRIGHTNESS 127  // Initial brightness 0-255
1678
+  //#define NEOPIXEL_STARTUP_TEST  // Cycle through colors at startup
1636 1679
 #endif
1637 1680
 
1638 1681
 /**

+ 52
- 39
Marlin/example_configurations/TinyBoy2/Configuration_adv.h View File

@@ -222,7 +222,7 @@
222 222
 
223 223
 /**
224 224
  * Part-Cooling Fan Multiplexer
225
- * 
225
+ *
226 226
  * This feature allows you to digitally multiplex the fan output.
227 227
  * The multiplexer is automatically switched at tool-change.
228 228
  * Set FANMUX[012]_PINs below for up to 2, 4, or 8 multiplexed fans.
@@ -510,7 +510,7 @@
510 510
 
511 511
   // SD Card Sorting options
512 512
   #if ENABLED(SDCARD_SORT_ALPHA)
513
-    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256).
513
+    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256). Costs 27 bytes each.
514 514
     #define FOLDER_SORTING     -1     // -1=above  0=none  1=below
515 515
     #define SDSORT_GCODE       false  // Allow turning sorting on/off with LCD and M34 g-code.
516 516
     #define SDSORT_USES_RAM    false  // Pre-allocate a static array for faster pre-sorting.
@@ -601,31 +601,19 @@
601 601
  */
602 602
 //#define BABYSTEPPING
603 603
 #if ENABLED(BABYSTEPPING)
604
-  #define BABYSTEP_XY              // Also enable X/Y Babystepping. Not supported on DELTA!
605
-  #define BABYSTEP_INVERT_Z false  // Change if Z babysteps should go the other way
606
-  #define BABYSTEP_MULTIPLICATOR 1 // Babysteps are very small. Increase for faster motion.
607
-  //#define BABYSTEP_ZPROBE_OFFSET // Enable to combine M851 and Babystepping
604
+  //#define BABYSTEP_XY              // Also enable X/Y Babystepping. Not supported on DELTA!
605
+  #define BABYSTEP_INVERT_Z false    // Change if Z babysteps should go the other way
606
+  #define BABYSTEP_MULTIPLICATOR 100 // Babysteps are very small. Increase for faster motion.
607
+  //#define BABYSTEP_ZPROBE_OFFSET   // Enable to combine M851 and Babystepping
608 608
   //#define DOUBLECLICK_FOR_Z_BABYSTEPPING // Double-click on the Status Screen for Z Babystepping.
609 609
   #define DOUBLECLICK_MAX_INTERVAL 1250 // Maximum interval between clicks, in milliseconds.
610 610
                                         // Note: Extra time may be added to mitigate controller latency.
611
+  //#define BABYSTEP_ZPROBE_GFX_OVERLAY // Enable graphical overlay on Z-offset editor
612
+  //#define BABYSTEP_ZPROBE_GFX_REVERSE // Reverses the direction of the CW/CCW indicators
611 613
 #endif
612 614
 
613 615
 // @section extruder
614 616
 
615
-// extruder advance constant (s2/mm3)
616
-//
617
-// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
618
-//
619
-// Hooke's law says:    force = k * distance
620
-// Bernoulli's principle says:  v ^ 2 / 2 + g . h + pressure / density = constant
621
-// so: v ^ 2 is proportional to number of steps we advance the extruder
622
-//#define ADVANCE
623
-
624
-#if ENABLED(ADVANCE)
625
-  #define EXTRUDER_ADVANCE_K .0
626
-  #define D_FILAMENT 2.85
627
-#endif
628
-
629 617
 /**
630 618
  * Implementation of linear pressure control
631 619
  *
@@ -742,7 +730,7 @@
742 730
 #define MAX_CMD_SIZE 96
743 731
 #define BUFSIZE 4
744 732
 
745
-// Transfer Buffer Size
733
+// Transmission to Host Buffer Size
746 734
 // To save 386 bytes of PROGMEM (and TX_BUFFER_SIZE+3 bytes of RAM) set to 0.
747 735
 // To buffer a simple "ok" you need 4 bytes.
748 736
 // For ADVANCED_OK (M105) you need 32 bytes.
@@ -751,6 +739,28 @@
751 739
 // :[0, 2, 4, 8, 16, 32, 64, 128, 256]
752 740
 #define TX_BUFFER_SIZE 64
753 741
 
742
+// Host Receive Buffer Size
743
+// Without XON/XOFF flow control (see SERIAL_XON_XOFF below) 32 bytes should be enough.
744
+// To use flow control, set this buffer size to at least 1024 bytes.
745
+// :[0, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048]
746
+//#define RX_BUFFER_SIZE 1024
747
+
748
+#if RX_BUFFER_SIZE >= 1024
749
+  // Enable to have the controller send XON/XOFF control characters to
750
+  // the host to signal the RX buffer is becoming full.
751
+  //#define SERIAL_XON_XOFF
752
+#endif
753
+
754
+#if ENABLED(SDSUPPORT)
755
+  // Enable this option to collect and display the maximum
756
+  // RX queue usage after transferring a file to SD.
757
+  //#define SERIAL_STATS_MAX_RX_QUEUED
758
+
759
+  // Enable this option to collect and display the number
760
+  // of dropped bytes after a file transfer to SD.
761
+  //#define SERIAL_STATS_DROPPED_RX
762
+#endif
763
+
754 764
 // Enable an emergency-command parser to intercept certain commands as they
755 765
 // enter the serial receive buffer, so they cannot be blocked.
756 766
 // Currently handles M108, M112, M410
@@ -1274,6 +1284,7 @@
1274 1284
 #if ENABLED(CUSTOM_USER_MENUS)
1275 1285
   #define USER_SCRIPT_DONE "M117 User Script Done"
1276 1286
   #define USER_SCRIPT_AUDIBLE_FEEDBACK
1287
+  //#define USER_SCRIPT_RETURN  // Return to status screen after a script
1277 1288
 
1278 1289
   #define USER_DESC_1 "Home & UBL Info"
1279 1290
   #define USER_GCODE_1 "G28\nG29 W"
@@ -1383,29 +1394,31 @@
1383 1394
 #endif // I2C_POSITION_ENCODERS
1384 1395
 
1385 1396
 /**
1386
-  * Debug LED's using an 8x8 LED Matrix driven by a Max7219 chip.   Fully assembled versions are available on
1387
-  * eBay for under $2.00 (including shipping) and only require 3 signal wires.
1388
-  *
1389
-  * Check out auctions similar to this: https://www.ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313&_nkw=332349290049&_sacat=0
1390
-  */
1391
-
1397
+ * MAX7219 Debug Matrix
1398
+ *
1399
+ * Add support for a low-cost 8x8 LED Matrix based on the Max7219 chip, which can be used as a status
1400
+ * display. Requires 3 signal wires. Some useful debug options are included to demonstrate its usage.
1401
+ *
1402
+ * Fully assembled MAX7219 boards can be found on the internet for under $2(US).
1403
+ * For example, see https://www.ebay.com/sch/i.html?_nkw=332349290049
1404
+ */
1392 1405
 //#define MAX7219_DEBUG
1393 1406
 #if ENABLED(MAX7219_DEBUG)
1394
-  #define Max7219_clock   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display
1395
-  #define Max7219_data_in 57  // 78 on Re-ARM
1396
-  #define Max7219_load    44  // 79 on Re-ARM
1407
+  #define MAX7219_CLK_PIN   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display
1408
+  #define MAX7219_DIN_PIN   57  // 78 on Re-ARM
1409
+  #define MAX7219_LOAD_PIN  44  // 79 on Re-ARM
1397 1410
 
1398
-  /*
1399
-   * These are sample debug features that can be turned on and configured for your use.
1400
-   * The developer will need to manage the use of the various LED's in the 8x8 matrix to avoid conflicts.
1411
+  /**
1412
+   * Sample debug features
1413
+   * If you add more debug displays, be careful to avoid conflicts!
1401 1414
    */
1402
-  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix from idle() routine if firmware is functioning
1403
-  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Display row position of stepper queue head on this line and the next line of LED matrix
1404
-  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Display row position of stepper queue tail on this line and the next line of LED matrix
1415
+  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix to show that the firmware is functioning
1416
+  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Show the stepper queue head position on this and the next LED matrix row
1417
+  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Show the stepper queue tail position on this and the next LED matrix row
1405 1418
 
1406
-  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Display row position of stepper queue depth on this line and the next line of LED matrix
1407
-                                         // If you have stuttering on your Delta printer, this option may help you understand how
1408
-                                         // various tweaks you make to your configuration are affecting the printer.
1419
+  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Show the current stepper queue depth on this and the next LED matrix row
1420
+                                         // If you experience stuttering, reboots, etc. this option can reveal how
1421
+                                         // tweaks made to the configuration are affecting the printer in real-time.
1409 1422
 #endif
1410 1423
 
1411 1424
 #endif // CONFIGURATION_ADV_H

+ 52
- 8
Marlin/example_configurations/Velleman/K8200/Configuration.h View File

@@ -123,8 +123,9 @@
123 123
  *
124 124
  * 250000 works in most cases, but you might try a lower speed if
125 125
  * you commonly experience drop-outs during host printing.
126
+ * You may try up to 1000000 to speed up SD file transfer.
126 127
  *
127
- * :[2400, 9600, 19200, 38400, 57600, 115200, 250000]
128
+ * :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000]
128 129
  */
129 130
 #define BAUDRATE 250000
130 131
 
@@ -787,6 +788,9 @@
787 788
 #define INVERT_E4_DIR true
788 789
 
789 790
 // @section homing
791
+
792
+//#define NO_MOTION_BEFORE_HOMING  // Inhibit movement until all axes have been homed
793
+
790 794
 // K8200: it is usual to have clamps for the glass plate on the heatbed
791 795
 #define Z_HOMING_HEIGHT 4   // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
792 796
                             // Be sure you have this distance over your Z_MAX_POS in case.
@@ -984,9 +988,11 @@
984 988
 #if ENABLED(LCD_BED_LEVELING)
985 989
   #define MBL_Z_STEP 0.025    // Step size while manually probing Z axis.
986 990
   #define LCD_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
987
-  #define LEVEL_BED_CORNERS   // Add an option to move between corners
988 991
 #endif
989 992
 
993
+// Add a menu item to move between bed corners for manual bed adjustment
994
+//#define LEVEL_BED_CORNERS
995
+
990 996
 /**
991 997
  * Commands to execute at the end of G29 probing.
992 998
  * Useful to retract or move the Z probe out of the way.
@@ -1230,7 +1236,7 @@
1230 1236
  *  - Click the controller to view the LCD menu
1231 1237
  *  - The LCD will display Japanese, Western, or Cyrillic text
1232 1238
  *
1233
- * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
1239
+ * See http://marlinfw.org/docs/development/lcd_language.html
1234 1240
  *
1235 1241
  * :['JAPANESE', 'WESTERN', 'CYRILLIC']
1236 1242
  */
@@ -1530,6 +1536,35 @@
1530 1536
 //
1531 1537
 //#define OLED_PANEL_TINYBOY2
1532 1538
 
1539
+//
1540
+// Makeboard 3D Printer Parts 3D Printer Mini Display 1602 Mini Controller
1541
+// https://www.aliexpress.com/item/Micromake-Makeboard-3D-Printer-Parts-3D-Printer-Mini-Display-1602-Mini-Controller-Compatible-with-Ramps-1/32765887917.html
1542
+//
1543
+//#define MAKEBOARD_MINI_2_LINE_DISPLAY_1602
1544
+
1545
+//
1546
+// MKS MINI12864 with graphic controller and SD support
1547
+// http://reprap.org/wiki/MKS_MINI_12864
1548
+//
1549
+//#define MKS_MINI_12864
1550
+
1551
+//
1552
+// Factory display for Creality CR-10
1553
+// https://www.aliexpress.com/item/Universal-LCD-12864-3D-Printer-Display-Screen-With-Encoder-For-CR-10-CR-7-Model/32833148327.html
1554
+//
1555
+// This is RAMPS-compatible using a single 10-pin connector.
1556
+// (For CR-10 owners who want to replace the Melzi Creality board but retain the display)
1557
+//
1558
+//#define CR10_STOCKDISPLAY
1559
+
1560
+//
1561
+// MKS OLED 1.3" 128 × 64 FULL GRAPHICS CONTROLLER
1562
+// http://reprap.org/wiki/MKS_12864OLED
1563
+//
1564
+// Tiny, but very sharp OLED display
1565
+//
1566
+//#define MKS_12864OLED
1567
+
1533 1568
 #endif // K8200_VM8201
1534 1569
 
1535 1570
 //=============================================================================
@@ -1588,16 +1623,22 @@
1588 1623
  * Adds the M150 command to set the LED (or LED strip) color.
1589 1624
  * If pins are PWM capable (e.g., 4, 5, 6, 11) then a range of
1590 1625
  * luminance values can be set from 0 to 255.
1626
+ * For Neopixel LED overall brightness parameters is also available 
1591 1627
  *
1592 1628
  * *** CAUTION ***
1593 1629
  *  LED Strips require a MOFSET Chip between PWM lines and LEDs,
1594 1630
  *  as the Arduino cannot handle the current the LEDs will require.
1595 1631
  *  Failure to follow this precaution can destroy your Arduino!
1632
+ *  The Neopixel LED is 5V powered, but linear 5V regulator on Arduino
1633
+ *  cannot handle such current, separate 5V power supply must be used
1596 1634
  * *** CAUTION ***
1597 1635
  *
1636
+ * LED type. This options are mutualy exclusive. Uncomment only one.
1637
+ *
1598 1638
  */
1599 1639
 //#define RGB_LED
1600 1640
 //#define RGBW_LED
1641
+
1601 1642
 #if ENABLED(RGB_LED) || ENABLED(RGBW_LED)
1602 1643
   #define RGB_LED_R_PIN 34
1603 1644
   #define RGB_LED_G_PIN 43
@@ -1606,11 +1647,14 @@
1606 1647
 #endif
1607 1648
 
1608 1649
 // Support for Adafruit Neopixel LED driver
1609
-//#define NEOPIXEL_RGBW_LED
1610
-#if ENABLED(NEOPIXEL_RGBW_LED)
1611
-  #define NEOPIXEL_PIN    4       // D4 (EXP2-5 on Printrboard)
1612
-  #define NEOPIXEL_PIXELS 3
1613
-  //#define NEOPIXEL_STARTUP_TEST // Cycle through colors at startup
1650
+//#define NEOPIXEL_LED
1651
+#if ENABLED(NEOPIXEL_LED)
1652
+  #define NEOPIXEL_TYPE   NEO_GRBW // NEO_GRBW / NEO_GRB - four/three channel driver type (definned in Adafruit_NeoPixel.h)
1653
+  #define NEOPIXEL_PIN    4        // LED driving pin on motherboard 4 => D4 (EXP2-5 on Printrboard) / 30 => PC7 (EXP3-13 on Rumba)
1654
+  #define NEOPIXEL_PIXELS 30       // Number of LEDs on strip
1655
+  #define NEOPIXEL_IS_SEQUENTIAL   // Sequent display for temperature change - LED by LED. Comment out for change all LED at time
1656
+  #define NEOPIXEL_BRIGHTNESS 127  // Initial brightness 0-255
1657
+  //#define NEOPIXEL_STARTUP_TEST  // Cycle through colors at startup
1614 1658
 #endif
1615 1659
 
1616 1660
 /**

+ 52
- 39
Marlin/example_configurations/Velleman/K8200/Configuration_adv.h View File

@@ -235,7 +235,7 @@
235 235
 
236 236
 /**
237 237
  * Part-Cooling Fan Multiplexer
238
- * 
238
+ *
239 239
  * This feature allows you to digitally multiplex the fan output.
240 240
  * The multiplexer is automatically switched at tool-change.
241 241
  * Set FANMUX[012]_PINs below for up to 2, 4, or 8 multiplexed fans.
@@ -523,7 +523,7 @@
523 523
 
524 524
   // SD Card Sorting options
525 525
   #if ENABLED(SDCARD_SORT_ALPHA)
526
-    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256).
526
+    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256). Costs 27 bytes each.
527 527
     #define FOLDER_SORTING     -1     // -1=above  0=none  1=below
528 528
     #define SDSORT_GCODE       false  // Allow turning sorting on/off with LCD and M34 g-code.
529 529
     #define SDSORT_USES_RAM    false  // Pre-allocate a static array for faster pre-sorting.
@@ -614,31 +614,19 @@
614 614
  */
615 615
 #define BABYSTEPPING
616 616
 #if ENABLED(BABYSTEPPING)
617
-  #define BABYSTEP_XY              // Also enable X/Y Babystepping. Not supported on DELTA!
618
-  #define BABYSTEP_INVERT_Z false  // Change if Z babysteps should go the other way
619
-  #define BABYSTEP_MULTIPLICATOR 1 // Babysteps are very small. Increase for faster motion.
620
-  //#define BABYSTEP_ZPROBE_OFFSET // Enable to combine M851 and Babystepping
617
+  //#define BABYSTEP_XY              // Also enable X/Y Babystepping. Not supported on DELTA!
618
+  #define BABYSTEP_INVERT_Z false    // Change if Z babysteps should go the other way
619
+  #define BABYSTEP_MULTIPLICATOR 100 // Babysteps are very small. Increase for faster motion.
620
+  //#define BABYSTEP_ZPROBE_OFFSET   // Enable to combine M851 and Babystepping
621 621
   //#define DOUBLECLICK_FOR_Z_BABYSTEPPING // Double-click on the Status Screen for Z Babystepping.
622 622
   #define DOUBLECLICK_MAX_INTERVAL 1250 // Maximum interval between clicks, in milliseconds.
623 623
                                         // Note: Extra time may be added to mitigate controller latency.
624
+  //#define BABYSTEP_ZPROBE_GFX_OVERLAY // Enable graphical overlay on Z-offset editor
625
+  //#define BABYSTEP_ZPROBE_GFX_REVERSE // Reverses the direction of the CW/CCW indicators
624 626
 #endif
625 627
 
626 628
 // @section extruder
627 629
 
628
-// extruder advance constant (s2/mm3)
629
-//
630
-// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
631
-//
632
-// Hooke's law says:    force = k * distance
633
-// Bernoulli's principle says:  v ^ 2 / 2 + g . h + pressure / density = constant
634
-// so: v ^ 2 is proportional to number of steps we advance the extruder
635
-//#define ADVANCE
636
-
637
-#if ENABLED(ADVANCE)
638
-  #define EXTRUDER_ADVANCE_K .0
639
-  #define D_FILAMENT 2.85
640
-#endif
641
-
642 630
 /**
643 631
  * Implementation of linear pressure control
644 632
  *
@@ -755,7 +743,7 @@
755 743
 #define MAX_CMD_SIZE 96
756 744
 #define BUFSIZE 4
757 745
 
758
-// Transfer Buffer Size
746
+// Transmission to Host Buffer Size
759 747
 // To save 386 bytes of PROGMEM (and TX_BUFFER_SIZE+3 bytes of RAM) set to 0.
760 748
 // To buffer a simple "ok" you need 4 bytes.
761 749
 // For ADVANCED_OK (M105) you need 32 bytes.
@@ -764,6 +752,28 @@
764 752
 // :[0, 2, 4, 8, 16, 32, 64, 128, 256]
765 753
 #define TX_BUFFER_SIZE 128
766 754
 
755
+// Host Receive Buffer Size
756
+// Without XON/XOFF flow control (see SERIAL_XON_XOFF below) 32 bytes should be enough.
757
+// To use flow control, set this buffer size to at least 1024 bytes.
758
+// :[0, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048]
759
+//#define RX_BUFFER_SIZE 1024
760
+
761
+#if RX_BUFFER_SIZE >= 1024
762
+  // Enable to have the controller send XON/XOFF control characters to
763
+  // the host to signal the RX buffer is becoming full.
764
+  //#define SERIAL_XON_XOFF
765
+#endif
766
+
767
+#if ENABLED(SDSUPPORT)
768
+  // Enable this option to collect and display the maximum
769
+  // RX queue usage after transferring a file to SD.
770
+  //#define SERIAL_STATS_MAX_RX_QUEUED
771
+
772
+  // Enable this option to collect and display the number
773
+  // of dropped bytes after a file transfer to SD.
774
+  //#define SERIAL_STATS_DROPPED_RX
775
+#endif
776
+
767 777
 // Enable an emergency-command parser to intercept certain commands as they
768 778
 // enter the serial receive buffer, so they cannot be blocked.
769 779
 // Currently handles M108, M112, M410
@@ -1287,6 +1297,7 @@
1287 1297
 #if ENABLED(CUSTOM_USER_MENUS)
1288 1298
   #define USER_SCRIPT_DONE "M117 User Script Done"
1289 1299
   #define USER_SCRIPT_AUDIBLE_FEEDBACK
1300
+  //#define USER_SCRIPT_RETURN  // Return to status screen after a script
1290 1301
 
1291 1302
   #define USER_DESC_1 "Home & UBL Info"
1292 1303
   #define USER_GCODE_1 "G28\nG29 W"
@@ -1396,29 +1407,31 @@
1396 1407
 #endif // I2C_POSITION_ENCODERS
1397 1408
 
1398 1409
 /**
1399
-  * Debug LED's using an 8x8 LED Matrix driven by a Max7219 chip.   Fully assembled versions are available on
1400
-  * eBay for under $2.00 (including shipping) and only require 3 signal wires.
1401
-  *
1402
-  * Check out auctions similar to this: https://www.ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313&_nkw=332349290049&_sacat=0
1403
-  */
1404
-
1410
+ * MAX7219 Debug Matrix
1411
+ *
1412
+ * Add support for a low-cost 8x8 LED Matrix based on the Max7219 chip, which can be used as a status
1413
+ * display. Requires 3 signal wires. Some useful debug options are included to demonstrate its usage.
1414
+ *
1415
+ * Fully assembled MAX7219 boards can be found on the internet for under $2(US).
1416
+ * For example, see https://www.ebay.com/sch/i.html?_nkw=332349290049
1417
+ */
1405 1418
 //#define MAX7219_DEBUG
1406 1419
 #if ENABLED(MAX7219_DEBUG)
1407
-  #define Max7219_clock   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display
1408
-  #define Max7219_data_in 57  // 78 on Re-ARM
1409
-  #define Max7219_load    44  // 79 on Re-ARM
1420
+  #define MAX7219_CLK_PIN   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display
1421
+  #define MAX7219_DIN_PIN   57  // 78 on Re-ARM
1422
+  #define MAX7219_LOAD_PIN  44  // 79 on Re-ARM
1410 1423
 
1411
-  /*
1412
-   * These are sample debug features that can be turned on and configured for your use.
1413
-   * The developer will need to manage the use of the various LED's in the 8x8 matrix to avoid conflicts.
1424
+  /**
1425
+   * Sample debug features
1426
+   * If you add more debug displays, be careful to avoid conflicts!
1414 1427
    */
1415
-  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix from idle() routine if firmware is functioning
1416
-  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Display row position of stepper queue head on this line and the next line of LED matrix
1417
-  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Display row position of stepper queue tail on this line and the next line of LED matrix
1428
+  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix to show that the firmware is functioning
1429
+  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Show the stepper queue head position on this and the next LED matrix row
1430
+  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Show the stepper queue tail position on this and the next LED matrix row
1418 1431
 
1419
-  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Display row position of stepper queue depth on this line and the next line of LED matrix
1420
-                                         // If you have stuttering on your Delta printer, this option may help you understand how
1421
-                                         // various tweaks you make to your configuration are affecting the printer.
1432
+  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Show the current stepper queue depth on this and the next LED matrix row
1433
+                                         // If you experience stuttering, reboots, etc. this option can reveal how
1434
+                                         // tweaks made to the configuration are affecting the printer in real-time.
1422 1435
 #endif
1423 1436
 
1424 1437
 #endif // CONFIGURATION_ADV_H

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

@@ -107,8 +107,9 @@
107 107
  *
108 108
  * 250000 works in most cases, but you might try a lower speed if
109 109
  * you commonly experience drop-outs during host printing.
110
+ * You may try up to 1000000 to speed up SD file transfer.
110 111
  *
111
- * :[2400, 9600, 19200, 38400, 57600, 115200, 250000]
112
+ * :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000]
112 113
  */
113 114
 #define BAUDRATE 250000
114 115
 
@@ -759,6 +760,8 @@
759 760
 
760 761
 // @section homing
761 762
 
763
+//#define NO_MOTION_BEFORE_HOMING  // Inhibit movement until all axes have been homed
764
+
762 765
 //#define Z_HOMING_HEIGHT 4  // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
763 766
                              // Be sure you have this distance over your Z_MAX_POS in case.
764 767
 
@@ -955,9 +958,11 @@
955 958
 #if ENABLED(LCD_BED_LEVELING)
956 959
   #define MBL_Z_STEP 0.025    // Step size while manually probing Z axis.
957 960
   #define LCD_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
958
-  #define LEVEL_BED_CORNERS   // Add an option to move between corners
959 961
 #endif
960 962
 
963
+// Add a menu item to move between bed corners for manual bed adjustment
964
+//#define LEVEL_BED_CORNERS
965
+
961 966
 /**
962 967
  * Commands to execute at the end of G29 probing.
963 968
  * Useful to retract or move the Z probe out of the way.
@@ -1198,7 +1203,7 @@
1198 1203
  *  - Click the controller to view the LCD menu
1199 1204
  *  - The LCD will display Japanese, Western, or Cyrillic text
1200 1205
  *
1201
- * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
1206
+ * See http://marlinfw.org/docs/development/lcd_language.html
1202 1207
  *
1203 1208
  * :['JAPANESE', 'WESTERN', 'CYRILLIC']
1204 1209
  */
@@ -1498,6 +1503,35 @@
1498 1503
 //
1499 1504
 //#define OLED_PANEL_TINYBOY2
1500 1505
 
1506
+//
1507
+// Makeboard 3D Printer Parts 3D Printer Mini Display 1602 Mini Controller
1508
+// https://www.aliexpress.com/item/Micromake-Makeboard-3D-Printer-Parts-3D-Printer-Mini-Display-1602-Mini-Controller-Compatible-with-Ramps-1/32765887917.html
1509
+//
1510
+//#define MAKEBOARD_MINI_2_LINE_DISPLAY_1602
1511
+
1512
+//
1513
+// MKS MINI12864 with graphic controller and SD support
1514
+// http://reprap.org/wiki/MKS_MINI_12864
1515
+//
1516
+//#define MKS_MINI_12864
1517
+
1518
+//
1519
+// Factory display for Creality CR-10
1520
+// https://www.aliexpress.com/item/Universal-LCD-12864-3D-Printer-Display-Screen-With-Encoder-For-CR-10-CR-7-Model/32833148327.html
1521
+//
1522
+// This is RAMPS-compatible using a single 10-pin connector.
1523
+// (For CR-10 owners who want to replace the Melzi Creality board but retain the display)
1524
+//
1525
+//#define CR10_STOCKDISPLAY
1526
+
1527
+//
1528
+// MKS OLED 1.3" 128 × 64 FULL GRAPHICS CONTROLLER
1529
+// http://reprap.org/wiki/MKS_12864OLED
1530
+//
1531
+// Tiny, but very sharp OLED display
1532
+//
1533
+//#define MKS_12864OLED
1534
+
1501 1535
 //=============================================================================
1502 1536
 //=============================== Extra Features ==============================
1503 1537
 //=============================================================================
@@ -1554,16 +1588,22 @@
1554 1588
  * Adds the M150 command to set the LED (or LED strip) color.
1555 1589
  * If pins are PWM capable (e.g., 4, 5, 6, 11) then a range of
1556 1590
  * luminance values can be set from 0 to 255.
1591
+ * For Neopixel LED overall brightness parameters is also available 
1557 1592
  *
1558 1593
  * *** CAUTION ***
1559 1594
  *  LED Strips require a MOFSET Chip between PWM lines and LEDs,
1560 1595
  *  as the Arduino cannot handle the current the LEDs will require.
1561 1596
  *  Failure to follow this precaution can destroy your Arduino!
1597
+ *  The Neopixel LED is 5V powered, but linear 5V regulator on Arduino
1598
+ *  cannot handle such current, separate 5V power supply must be used
1562 1599
  * *** CAUTION ***
1563 1600
  *
1601
+ * LED type. This options are mutualy exclusive. Uncomment only one.
1602
+ *
1564 1603
  */
1565 1604
 //#define RGB_LED
1566 1605
 //#define RGBW_LED
1606
+
1567 1607
 #if ENABLED(RGB_LED) || ENABLED(RGBW_LED)
1568 1608
   #define RGB_LED_R_PIN 34
1569 1609
   #define RGB_LED_G_PIN 43
@@ -1572,11 +1612,14 @@
1572 1612
 #endif
1573 1613
 
1574 1614
 // Support for Adafruit Neopixel LED driver
1575
-//#define NEOPIXEL_RGBW_LED
1576
-#if ENABLED(NEOPIXEL_RGBW_LED)
1577
-  #define NEOPIXEL_PIN    4       // D4 (EXP2-5 on Printrboard)
1578
-  #define NEOPIXEL_PIXELS 3
1579
-  //#define NEOPIXEL_STARTUP_TEST // Cycle through colors at startup
1615
+//#define NEOPIXEL_LED
1616
+#if ENABLED(NEOPIXEL_LED)
1617
+  #define NEOPIXEL_TYPE   NEO_GRBW // NEO_GRBW / NEO_GRB - four/three channel driver type (definned in Adafruit_NeoPixel.h)
1618
+  #define NEOPIXEL_PIN    4        // LED driving pin on motherboard 4 => D4 (EXP2-5 on Printrboard) / 30 => PC7 (EXP3-13 on Rumba)
1619
+  #define NEOPIXEL_PIXELS 30       // Number of LEDs on strip
1620
+  #define NEOPIXEL_IS_SEQUENTIAL   // Sequent display for temperature change - LED by LED. Comment out for change all LED at time
1621
+  #define NEOPIXEL_BRIGHTNESS 127  // Initial brightness 0-255
1622
+  //#define NEOPIXEL_STARTUP_TEST  // Cycle through colors at startup
1580 1623
 #endif
1581 1624
 
1582 1625
 /**

+ 52
- 39
Marlin/example_configurations/Velleman/K8400/Configuration_adv.h View File

@@ -222,7 +222,7 @@
222 222
 
223 223
 /**
224 224
  * Part-Cooling Fan Multiplexer
225
- * 
225
+ *
226 226
  * This feature allows you to digitally multiplex the fan output.
227 227
  * The multiplexer is automatically switched at tool-change.
228 228
  * Set FANMUX[012]_PINs below for up to 2, 4, or 8 multiplexed fans.
@@ -510,7 +510,7 @@
510 510
 
511 511
   // SD Card Sorting options
512 512
   #if ENABLED(SDCARD_SORT_ALPHA)
513
-    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256).
513
+    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256). Costs 27 bytes each.
514 514
     #define FOLDER_SORTING     -1     // -1=above  0=none  1=below
515 515
     #define SDSORT_GCODE       false  // Allow turning sorting on/off with LCD and M34 g-code.
516 516
     #define SDSORT_USES_RAM    false  // Pre-allocate a static array for faster pre-sorting.
@@ -601,31 +601,19 @@
601 601
  */
602 602
 //#define BABYSTEPPING
603 603
 #if ENABLED(BABYSTEPPING)
604
-  #define BABYSTEP_XY              // Also enable X/Y Babystepping. Not supported on DELTA!
605
-  #define BABYSTEP_INVERT_Z false  // Change if Z babysteps should go the other way
606
-  #define BABYSTEP_MULTIPLICATOR 1 // Babysteps are very small. Increase for faster motion.
607
-  //#define BABYSTEP_ZPROBE_OFFSET // Enable to combine M851 and Babystepping
604
+  //#define BABYSTEP_XY              // Also enable X/Y Babystepping. Not supported on DELTA!
605
+  #define BABYSTEP_INVERT_Z false    // Change if Z babysteps should go the other way
606
+  #define BABYSTEP_MULTIPLICATOR 100 // Babysteps are very small. Increase for faster motion.
607
+  //#define BABYSTEP_ZPROBE_OFFSET   // Enable to combine M851 and Babystepping
608 608
   //#define DOUBLECLICK_FOR_Z_BABYSTEPPING // Double-click on the Status Screen for Z Babystepping.
609 609
   #define DOUBLECLICK_MAX_INTERVAL 1250 // Maximum interval between clicks, in milliseconds.
610 610
                                         // Note: Extra time may be added to mitigate controller latency.
611
+  //#define BABYSTEP_ZPROBE_GFX_OVERLAY // Enable graphical overlay on Z-offset editor
612
+  //#define BABYSTEP_ZPROBE_GFX_REVERSE // Reverses the direction of the CW/CCW indicators
611 613
 #endif
612 614
 
613 615
 // @section extruder
614 616
 
615
-// extruder advance constant (s2/mm3)
616
-//
617
-// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
618
-//
619
-// Hooke's law says:    force = k * distance
620
-// Bernoulli's principle says:  v ^ 2 / 2 + g . h + pressure / density = constant
621
-// so: v ^ 2 is proportional to number of steps we advance the extruder
622
-//#define ADVANCE
623
-
624
-#if ENABLED(ADVANCE)
625
-  #define EXTRUDER_ADVANCE_K .0
626
-  #define D_FILAMENT 2.85
627
-#endif
628
-
629 617
 /**
630 618
  * Implementation of linear pressure control
631 619
  *
@@ -742,7 +730,7 @@
742 730
 #define MAX_CMD_SIZE 96
743 731
 #define BUFSIZE 26
744 732
 
745
-// Transfer Buffer Size
733
+// Transmission to Host Buffer Size
746 734
 // To save 386 bytes of PROGMEM (and TX_BUFFER_SIZE+3 bytes of RAM) set to 0.
747 735
 // To buffer a simple "ok" you need 4 bytes.
748 736
 // For ADVANCED_OK (M105) you need 32 bytes.
@@ -751,6 +739,28 @@
751 739
 // :[0, 2, 4, 8, 16, 32, 64, 128, 256]
752 740
 #define TX_BUFFER_SIZE 0
753 741
 
742
+// Host Receive Buffer Size
743
+// Without XON/XOFF flow control (see SERIAL_XON_XOFF below) 32 bytes should be enough.
744
+// To use flow control, set this buffer size to at least 1024 bytes.
745
+// :[0, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048]
746
+//#define RX_BUFFER_SIZE 1024
747
+
748
+#if RX_BUFFER_SIZE >= 1024
749
+  // Enable to have the controller send XON/XOFF control characters to
750
+  // the host to signal the RX buffer is becoming full.
751
+  //#define SERIAL_XON_XOFF
752
+#endif
753
+
754
+#if ENABLED(SDSUPPORT)
755
+  // Enable this option to collect and display the maximum
756
+  // RX queue usage after transferring a file to SD.
757
+  //#define SERIAL_STATS_MAX_RX_QUEUED
758
+
759
+  // Enable this option to collect and display the number
760
+  // of dropped bytes after a file transfer to SD.
761
+  //#define SERIAL_STATS_DROPPED_RX
762
+#endif
763
+
754 764
 // Enable an emergency-command parser to intercept certain commands as they
755 765
 // enter the serial receive buffer, so they cannot be blocked.
756 766
 // Currently handles M108, M112, M410
@@ -1274,6 +1284,7 @@
1274 1284
 #if ENABLED(CUSTOM_USER_MENUS)
1275 1285
   #define USER_SCRIPT_DONE "M117 User Script Done"
1276 1286
   #define USER_SCRIPT_AUDIBLE_FEEDBACK
1287
+  //#define USER_SCRIPT_RETURN  // Return to status screen after a script
1277 1288
 
1278 1289
   #define USER_DESC_1 "Home & UBL Info"
1279 1290
   #define USER_GCODE_1 "G28\nG29 W"
@@ -1383,29 +1394,31 @@
1383 1394
 #endif // I2C_POSITION_ENCODERS
1384 1395
 
1385 1396
 /**
1386
-  * Debug LED's using an 8x8 LED Matrix driven by a Max7219 chip.   Fully assembled versions are available on
1387
-  * eBay for under $2.00 (including shipping) and only require 3 signal wires.
1388
-  *
1389
-  * Check out auctions similar to this: https://www.ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313&_nkw=332349290049&_sacat=0
1390
-  */
1391
-
1397
+ * MAX7219 Debug Matrix
1398
+ *
1399
+ * Add support for a low-cost 8x8 LED Matrix based on the Max7219 chip, which can be used as a status
1400
+ * display. Requires 3 signal wires. Some useful debug options are included to demonstrate its usage.
1401
+ *
1402
+ * Fully assembled MAX7219 boards can be found on the internet for under $2(US).
1403
+ * For example, see https://www.ebay.com/sch/i.html?_nkw=332349290049
1404
+ */
1392 1405
 //#define MAX7219_DEBUG
1393 1406
 #if ENABLED(MAX7219_DEBUG)
1394
-  #define Max7219_clock   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display
1395
-  #define Max7219_data_in 57  // 78 on Re-ARM
1396
-  #define Max7219_load    44  // 79 on Re-ARM
1407
+  #define MAX7219_CLK_PIN   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display
1408
+  #define MAX7219_DIN_PIN   57  // 78 on Re-ARM
1409
+  #define MAX7219_LOAD_PIN  44  // 79 on Re-ARM
1397 1410
 
1398
-  /*
1399
-   * These are sample debug features that can be turned on and configured for your use.
1400
-   * The developer will need to manage the use of the various LED's in the 8x8 matrix to avoid conflicts.
1411
+  /**
1412
+   * Sample debug features
1413
+   * If you add more debug displays, be careful to avoid conflicts!
1401 1414
    */
1402
-  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix from idle() routine if firmware is functioning
1403
-  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Display row position of stepper queue head on this line and the next line of LED matrix
1404
-  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Display row position of stepper queue tail on this line and the next line of LED matrix
1415
+  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix to show that the firmware is functioning
1416
+  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Show the stepper queue head position on this and the next LED matrix row
1417
+  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Show the stepper queue tail position on this and the next LED matrix row
1405 1418
 
1406
-  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Display row position of stepper queue depth on this line and the next line of LED matrix
1407
-                                         // If you have stuttering on your Delta printer, this option may help you understand how
1408
-                                         // various tweaks you make to your configuration are affecting the printer.
1419
+  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Show the current stepper queue depth on this and the next LED matrix row
1420
+                                         // If you experience stuttering, reboots, etc. this option can reveal how
1421
+                                         // tweaks made to the configuration are affecting the printer in real-time.
1409 1422
 #endif
1410 1423
 
1411 1424
 #endif // CONFIGURATION_ADV_H

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

@@ -107,8 +107,9 @@
107 107
  *
108 108
  * 250000 works in most cases, but you might try a lower speed if
109 109
  * you commonly experience drop-outs during host printing.
110
+ * You may try up to 1000000 to speed up SD file transfer.
110 111
  *
111
- * :[2400, 9600, 19200, 38400, 57600, 115200, 250000]
112
+ * :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000]
112 113
  */
113 114
 #define BAUDRATE 250000
114 115
 
@@ -759,6 +760,8 @@
759 760
 
760 761
 // @section homing
761 762
 
763
+//#define NO_MOTION_BEFORE_HOMING  // Inhibit movement until all axes have been homed
764
+
762 765
 //#define Z_HOMING_HEIGHT 4  // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
763 766
                              // Be sure you have this distance over your Z_MAX_POS in case.
764 767
 
@@ -955,9 +958,11 @@
955 958
 #if ENABLED(LCD_BED_LEVELING)
956 959
   #define MBL_Z_STEP 0.025    // Step size while manually probing Z axis.
957 960
   #define LCD_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
958
-  #define LEVEL_BED_CORNERS   // Add an option to move between corners
959 961
 #endif
960 962
 
963
+// Add a menu item to move between bed corners for manual bed adjustment
964
+//#define LEVEL_BED_CORNERS
965
+
961 966
 /**
962 967
  * Commands to execute at the end of G29 probing.
963 968
  * Useful to retract or move the Z probe out of the way.
@@ -1198,7 +1203,7 @@
1198 1203
  *  - Click the controller to view the LCD menu
1199 1204
  *  - The LCD will display Japanese, Western, or Cyrillic text
1200 1205
  *
1201
- * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
1206
+ * See http://marlinfw.org/docs/development/lcd_language.html
1202 1207
  *
1203 1208
  * :['JAPANESE', 'WESTERN', 'CYRILLIC']
1204 1209
  */
@@ -1498,6 +1503,35 @@
1498 1503
 //
1499 1504
 //#define OLED_PANEL_TINYBOY2
1500 1505
 
1506
+//
1507
+// Makeboard 3D Printer Parts 3D Printer Mini Display 1602 Mini Controller
1508
+// https://www.aliexpress.com/item/Micromake-Makeboard-3D-Printer-Parts-3D-Printer-Mini-Display-1602-Mini-Controller-Compatible-with-Ramps-1/32765887917.html
1509
+//
1510
+//#define MAKEBOARD_MINI_2_LINE_DISPLAY_1602
1511
+
1512
+//
1513
+// MKS MINI12864 with graphic controller and SD support
1514
+// http://reprap.org/wiki/MKS_MINI_12864
1515
+//
1516
+//#define MKS_MINI_12864
1517
+
1518
+//
1519
+// Factory display for Creality CR-10
1520
+// https://www.aliexpress.com/item/Universal-LCD-12864-3D-Printer-Display-Screen-With-Encoder-For-CR-10-CR-7-Model/32833148327.html
1521
+//
1522
+// This is RAMPS-compatible using a single 10-pin connector.
1523
+// (For CR-10 owners who want to replace the Melzi Creality board but retain the display)
1524
+//
1525
+//#define CR10_STOCKDISPLAY
1526
+
1527
+//
1528
+// MKS OLED 1.3" 128 × 64 FULL GRAPHICS CONTROLLER
1529
+// http://reprap.org/wiki/MKS_12864OLED
1530
+//
1531
+// Tiny, but very sharp OLED display
1532
+//
1533
+//#define MKS_12864OLED
1534
+
1501 1535
 //=============================================================================
1502 1536
 //=============================== Extra Features ==============================
1503 1537
 //=============================================================================
@@ -1554,16 +1588,22 @@
1554 1588
  * Adds the M150 command to set the LED (or LED strip) color.
1555 1589
  * If pins are PWM capable (e.g., 4, 5, 6, 11) then a range of
1556 1590
  * luminance values can be set from 0 to 255.
1591
+ * For Neopixel LED overall brightness parameters is also available 
1557 1592
  *
1558 1593
  * *** CAUTION ***
1559 1594
  *  LED Strips require a MOFSET Chip between PWM lines and LEDs,
1560 1595
  *  as the Arduino cannot handle the current the LEDs will require.
1561 1596
  *  Failure to follow this precaution can destroy your Arduino!
1597
+ *  The Neopixel LED is 5V powered, but linear 5V regulator on Arduino
1598
+ *  cannot handle such current, separate 5V power supply must be used
1562 1599
  * *** CAUTION ***
1563 1600
  *
1601
+ * LED type. This options are mutualy exclusive. Uncomment only one.
1602
+ *
1564 1603
  */
1565 1604
 //#define RGB_LED
1566 1605
 //#define RGBW_LED
1606
+
1567 1607
 #if ENABLED(RGB_LED) || ENABLED(RGBW_LED)
1568 1608
   #define RGB_LED_R_PIN 34
1569 1609
   #define RGB_LED_G_PIN 43
@@ -1572,11 +1612,14 @@
1572 1612
 #endif
1573 1613
 
1574 1614
 // Support for Adafruit Neopixel LED driver
1575
-//#define NEOPIXEL_RGBW_LED
1576
-#if ENABLED(NEOPIXEL_RGBW_LED)
1577
-  #define NEOPIXEL_PIN    4       // D4 (EXP2-5 on Printrboard)
1578
-  #define NEOPIXEL_PIXELS 3
1579
-  //#define NEOPIXEL_STARTUP_TEST // Cycle through colors at startup
1615
+//#define NEOPIXEL_LED
1616
+#if ENABLED(NEOPIXEL_LED)
1617
+  #define NEOPIXEL_TYPE   NEO_GRBW // NEO_GRBW / NEO_GRB - four/three channel driver type (definned in Adafruit_NeoPixel.h)
1618
+  #define NEOPIXEL_PIN    4        // LED driving pin on motherboard 4 => D4 (EXP2-5 on Printrboard) / 30 => PC7 (EXP3-13 on Rumba)
1619
+  #define NEOPIXEL_PIXELS 30       // Number of LEDs on strip
1620
+  #define NEOPIXEL_IS_SEQUENTIAL   // Sequent display for temperature change - LED by LED. Comment out for change all LED at time
1621
+  #define NEOPIXEL_BRIGHTNESS 127  // Initial brightness 0-255
1622
+  //#define NEOPIXEL_STARTUP_TEST  // Cycle through colors at startup
1580 1623
 #endif
1581 1624
 
1582 1625
 /**

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

@@ -107,8 +107,9 @@
107 107
  *
108 108
  * 250000 works in most cases, but you might try a lower speed if
109 109
  * you commonly experience drop-outs during host printing.
110
+ * You may try up to 1000000 to speed up SD file transfer.
110 111
  *
111
- * :[2400, 9600, 19200, 38400, 57600, 115200, 250000]
112
+ * :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000]
112 113
  */
113 114
 #define BAUDRATE 250000
114 115
 
@@ -759,6 +760,8 @@
759 760
 
760 761
 // @section homing
761 762
 
763
+//#define NO_MOTION_BEFORE_HOMING  // Inhibit movement until all axes have been homed
764
+
762 765
 //#define Z_HOMING_HEIGHT 4  // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
763 766
                              // Be sure you have this distance over your Z_MAX_POS in case.
764 767
 
@@ -955,9 +958,11 @@
955 958
 #if ENABLED(LCD_BED_LEVELING)
956 959
   #define MBL_Z_STEP 0.025    // Step size while manually probing Z axis.
957 960
   #define LCD_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
958
-  #define LEVEL_BED_CORNERS   // Add an option to move between corners
959 961
 #endif
960 962
 
963
+// Add a menu item to move between bed corners for manual bed adjustment
964
+//#define LEVEL_BED_CORNERS
965
+
961 966
 /**
962 967
  * Commands to execute at the end of G29 probing.
963 968
  * Useful to retract or move the Z probe out of the way.
@@ -1198,7 +1203,7 @@
1198 1203
  *  - Click the controller to view the LCD menu
1199 1204
  *  - The LCD will display Japanese, Western, or Cyrillic text
1200 1205
  *
1201
- * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
1206
+ * See http://marlinfw.org/docs/development/lcd_language.html
1202 1207
  *
1203 1208
  * :['JAPANESE', 'WESTERN', 'CYRILLIC']
1204 1209
  */
@@ -1498,6 +1503,35 @@
1498 1503
 //
1499 1504
 //#define OLED_PANEL_TINYBOY2
1500 1505
 
1506
+//
1507
+// Makeboard 3D Printer Parts 3D Printer Mini Display 1602 Mini Controller
1508
+// https://www.aliexpress.com/item/Micromake-Makeboard-3D-Printer-Parts-3D-Printer-Mini-Display-1602-Mini-Controller-Compatible-with-Ramps-1/32765887917.html
1509
+//
1510
+//#define MAKEBOARD_MINI_2_LINE_DISPLAY_1602
1511
+
1512
+//
1513
+// MKS MINI12864 with graphic controller and SD support
1514
+// http://reprap.org/wiki/MKS_MINI_12864
1515
+//
1516
+//#define MKS_MINI_12864
1517
+
1518
+//
1519
+// Factory display for Creality CR-10
1520
+// https://www.aliexpress.com/item/Universal-LCD-12864-3D-Printer-Display-Screen-With-Encoder-For-CR-10-CR-7-Model/32833148327.html
1521
+//
1522
+// This is RAMPS-compatible using a single 10-pin connector.
1523
+// (For CR-10 owners who want to replace the Melzi Creality board but retain the display)
1524
+//
1525
+//#define CR10_STOCKDISPLAY
1526
+
1527
+//
1528
+// MKS OLED 1.3" 128 × 64 FULL GRAPHICS CONTROLLER
1529
+// http://reprap.org/wiki/MKS_12864OLED
1530
+//
1531
+// Tiny, but very sharp OLED display
1532
+//
1533
+//#define MKS_12864OLED
1534
+
1501 1535
 //=============================================================================
1502 1536
 //=============================== Extra Features ==============================
1503 1537
 //=============================================================================
@@ -1554,16 +1588,22 @@
1554 1588
  * Adds the M150 command to set the LED (or LED strip) color.
1555 1589
  * If pins are PWM capable (e.g., 4, 5, 6, 11) then a range of
1556 1590
  * luminance values can be set from 0 to 255.
1591
+ * For Neopixel LED overall brightness parameters is also available 
1557 1592
  *
1558 1593
  * *** CAUTION ***
1559 1594
  *  LED Strips require a MOFSET Chip between PWM lines and LEDs,
1560 1595
  *  as the Arduino cannot handle the current the LEDs will require.
1561 1596
  *  Failure to follow this precaution can destroy your Arduino!
1597
+ *  The Neopixel LED is 5V powered, but linear 5V regulator on Arduino
1598
+ *  cannot handle such current, separate 5V power supply must be used
1562 1599
  * *** CAUTION ***
1563 1600
  *
1601
+ * LED type. This options are mutualy exclusive. Uncomment only one.
1602
+ *
1564 1603
  */
1565 1604
 //#define RGB_LED
1566 1605
 //#define RGBW_LED
1606
+
1567 1607
 #if ENABLED(RGB_LED) || ENABLED(RGBW_LED)
1568 1608
   #define RGB_LED_R_PIN 34
1569 1609
   #define RGB_LED_G_PIN 43
@@ -1572,11 +1612,14 @@
1572 1612
 #endif
1573 1613
 
1574 1614
 // Support for Adafruit Neopixel LED driver
1575
-//#define NEOPIXEL_RGBW_LED
1576
-#if ENABLED(NEOPIXEL_RGBW_LED)
1577
-  #define NEOPIXEL_PIN    4       // D4 (EXP2-5 on Printrboard)
1578
-  #define NEOPIXEL_PIXELS 3
1579
-  //#define NEOPIXEL_STARTUP_TEST // Cycle through colors at startup
1615
+//#define NEOPIXEL_LED
1616
+#if ENABLED(NEOPIXEL_LED)
1617
+  #define NEOPIXEL_TYPE   NEO_GRBW // NEO_GRBW / NEO_GRB - four/three channel driver type (definned in Adafruit_NeoPixel.h)
1618
+  #define NEOPIXEL_PIN    4        // LED driving pin on motherboard 4 => D4 (EXP2-5 on Printrboard) / 30 => PC7 (EXP3-13 on Rumba)
1619
+  #define NEOPIXEL_PIXELS 30       // Number of LEDs on strip
1620
+  #define NEOPIXEL_IS_SEQUENTIAL   // Sequent display for temperature change - LED by LED. Comment out for change all LED at time
1621
+  #define NEOPIXEL_BRIGHTNESS 127  // Initial brightness 0-255
1622
+  //#define NEOPIXEL_STARTUP_TEST  // Cycle through colors at startup
1580 1623
 #endif
1581 1624
 
1582 1625
 /**

+ 51
- 8
Marlin/example_configurations/delta/FLSUN/auto_calibrate/Configuration.h View File

@@ -107,8 +107,9 @@
107 107
  *
108 108
  * 250000 works in most cases, but you might try a lower speed if
109 109
  * you commonly experience drop-outs during host printing.
110
+ * You may try up to 1000000 to speed up SD file transfer.
110 111
  *
111
- * :[2400, 9600, 19200, 38400, 57600, 115200, 250000]
112
+ * :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000]
112 113
  */
113 114
 #define BAUDRATE 250000
114 115
 
@@ -883,6 +884,8 @@
883 884
 
884 885
 // @section homing
885 886
 
887
+//#define NO_MOTION_BEFORE_HOMING  // Inhibit movement until all axes have been homed
888
+
886 889
 #define Z_HOMING_HEIGHT 15   // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
887 890
                              // Be sure you have this distance over your Z_MAX_POS in case.
888 891
 
@@ -1083,9 +1086,11 @@
1083 1086
 #if ENABLED(LCD_BED_LEVELING)
1084 1087
   #define MBL_Z_STEP 0.025    // Step size while manually probing Z axis.
1085 1088
   #define LCD_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
1086
-  #define LEVEL_BED_CORNERS   // Add an option to move between corners
1087 1089
 #endif
1088 1090
 
1091
+// Add a menu item to move between bed corners for manual bed adjustment
1092
+//#define LEVEL_BED_CORNERS
1093
+
1089 1094
 /**
1090 1095
  * Commands to execute at the end of G29 probing.
1091 1096
  * Useful to retract or move the Z probe out of the way.
@@ -1325,7 +1330,7 @@
1325 1330
  *  - Click the controller to view the LCD menu
1326 1331
  *  - The LCD will display Japanese, Western, or Cyrillic text
1327 1332
  *
1328
- * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
1333
+ * See http://marlinfw.org/docs/development/lcd_language.html
1329 1334
  *
1330 1335
  * :['JAPANESE', 'WESTERN', 'CYRILLIC']
1331 1336
  */
@@ -1626,6 +1631,35 @@
1626 1631
 //
1627 1632
 //#define OLED_PANEL_TINYBOY2
1628 1633
 
1634
+//
1635
+// Makeboard 3D Printer Parts 3D Printer Mini Display 1602 Mini Controller
1636
+// https://www.aliexpress.com/item/Micromake-Makeboard-3D-Printer-Parts-3D-Printer-Mini-Display-1602-Mini-Controller-Compatible-with-Ramps-1/32765887917.html
1637
+//
1638
+//#define MAKEBOARD_MINI_2_LINE_DISPLAY_1602
1639
+
1640
+//
1641
+// MKS MINI12864 with graphic controller and SD support
1642
+// http://reprap.org/wiki/MKS_MINI_12864
1643
+//
1644
+//#define MKS_MINI_12864
1645
+
1646
+//
1647
+// Factory display for Creality CR-10
1648
+// https://www.aliexpress.com/item/Universal-LCD-12864-3D-Printer-Display-Screen-With-Encoder-For-CR-10-CR-7-Model/32833148327.html
1649
+//
1650
+// This is RAMPS-compatible using a single 10-pin connector.
1651
+// (For CR-10 owners who want to replace the Melzi Creality board but retain the display)
1652
+//
1653
+//#define CR10_STOCKDISPLAY
1654
+
1655
+//
1656
+// MKS OLED 1.3" 128 × 64 FULL GRAPHICS CONTROLLER
1657
+// http://reprap.org/wiki/MKS_12864OLED
1658
+//
1659
+// Tiny, but very sharp OLED display
1660
+//
1661
+//#define MKS_12864OLED
1662
+
1629 1663
 //=============================================================================
1630 1664
 //=============================== Extra Features ==============================
1631 1665
 //=============================================================================
@@ -1682,16 +1716,22 @@
1682 1716
  * Adds the M150 command to set the LED (or LED strip) color.
1683 1717
  * If pins are PWM capable (e.g., 4, 5, 6, 11) then a range of
1684 1718
  * luminance values can be set from 0 to 255.
1719
+ * For Neopixel LED overall brightness parameters is also available 
1685 1720
  *
1686 1721
  * *** CAUTION ***
1687 1722
  *  LED Strips require a MOFSET Chip between PWM lines and LEDs,
1688 1723
  *  as the Arduino cannot handle the current the LEDs will require.
1689 1724
  *  Failure to follow this precaution can destroy your Arduino!
1725
+ *  The Neopixel LED is 5V powered, but linear 5V regulator on Arduino
1726
+ *  cannot handle such current, separate 5V power supply must be used
1690 1727
  * *** CAUTION ***
1691 1728
  *
1729
+ * LED type. This options are mutualy exclusive. Uncomment only one.
1730
+ *
1692 1731
  */
1693 1732
 //#define RGB_LED
1694 1733
 //#define RGBW_LED
1734
+
1695 1735
 #if ENABLED(RGB_LED) || ENABLED(RGBW_LED)
1696 1736
   #define RGB_LED_R_PIN 34
1697 1737
   #define RGB_LED_G_PIN 43
@@ -1700,11 +1740,14 @@
1700 1740
 #endif
1701 1741
 
1702 1742
 // Support for Adafruit Neopixel LED driver
1703
-//#define NEOPIXEL_RGBW_LED
1704
-#if ENABLED(NEOPIXEL_RGBW_LED)
1705
-  #define NEOPIXEL_PIN    4       // D4 (EXP2-5 on Printrboard)
1706
-  #define NEOPIXEL_PIXELS 3
1707
-  //#define NEOPIXEL_STARTUP_TEST // Cycle through colors at startup
1743
+//#define NEOPIXEL_LED
1744
+#if ENABLED(NEOPIXEL_LED)
1745
+  #define NEOPIXEL_TYPE   NEO_GRBW // NEO_GRBW / NEO_GRB - four/three channel driver type (definned in Adafruit_NeoPixel.h)
1746
+  #define NEOPIXEL_PIN    4        // LED driving pin on motherboard 4 => D4 (EXP2-5 on Printrboard) / 30 => PC7 (EXP3-13 on Rumba)
1747
+  #define NEOPIXEL_PIXELS 30       // Number of LEDs on strip
1748
+  #define NEOPIXEL_IS_SEQUENTIAL   // Sequent display for temperature change - LED by LED. Comment out for change all LED at time
1749
+  #define NEOPIXEL_BRIGHTNESS 127  // Initial brightness 0-255
1750
+  //#define NEOPIXEL_STARTUP_TEST  // Cycle through colors at startup
1708 1751
 #endif
1709 1752
 
1710 1753
 /**

+ 48
- 35
Marlin/example_configurations/delta/FLSUN/auto_calibrate/Configuration_adv.h View File

@@ -222,7 +222,7 @@
222 222
 
223 223
 /**
224 224
  * Part-Cooling Fan Multiplexer
225
- * 
225
+ *
226 226
  * This feature allows you to digitally multiplex the fan output.
227 227
  * The multiplexer is automatically switched at tool-change.
228 228
  * Set FANMUX[012]_PINs below for up to 2, 4, or 8 multiplexed fans.
@@ -512,7 +512,7 @@
512 512
 
513 513
   // SD Card Sorting options
514 514
   #if ENABLED(SDCARD_SORT_ALPHA)
515
-    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256).
515
+    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256). Costs 27 bytes each.
516 516
     #define FOLDER_SORTING     -1     // -1=above  0=none  1=below
517 517
     #define SDSORT_GCODE       false  // Allow turning sorting on/off with LCD and M34 g-code.
518 518
     #define SDSORT_USES_RAM    false  // Pre-allocate a static array for faster pre-sorting.
@@ -610,24 +610,12 @@
610 610
   //#define DOUBLECLICK_FOR_Z_BABYSTEPPING // Double-click on the Status Screen for Z Babystepping.
611 611
   #define DOUBLECLICK_MAX_INTERVAL 1250 // Maximum interval between clicks, in milliseconds.
612 612
                                         // Note: Extra time may be added to mitigate controller latency.
613
+  //#define BABYSTEP_ZPROBE_GFX_OVERLAY // Enable graphical overlay on Z-offset editor
614
+  //#define BABYSTEP_ZPROBE_GFX_REVERSE // Reverses the direction of the CW/CCW indicators
613 615
 #endif
614 616
 
615 617
 // @section extruder
616 618
 
617
-// extruder advance constant (s2/mm3)
618
-//
619
-// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
620
-//
621
-// Hooke's law says:    force = k * distance
622
-// Bernoulli's principle says:  v ^ 2 / 2 + g . h + pressure / density = constant
623
-// so: v ^ 2 is proportional to number of steps we advance the extruder
624
-//#define ADVANCE
625
-
626
-#if ENABLED(ADVANCE)
627
-  #define EXTRUDER_ADVANCE_K .0
628
-  #define D_FILAMENT 2.85
629
-#endif
630
-
631 619
 /**
632 620
  * Implementation of linear pressure control
633 621
  *
@@ -744,7 +732,7 @@
744 732
 #define MAX_CMD_SIZE 96
745 733
 #define BUFSIZE 4
746 734
 
747
-// Transfer Buffer Size
735
+// Transmission to Host Buffer Size
748 736
 // To save 386 bytes of PROGMEM (and TX_BUFFER_SIZE+3 bytes of RAM) set to 0.
749 737
 // To buffer a simple "ok" you need 4 bytes.
750 738
 // For ADVANCED_OK (M105) you need 32 bytes.
@@ -753,6 +741,28 @@
753 741
 // :[0, 2, 4, 8, 16, 32, 64, 128, 256]
754 742
 #define TX_BUFFER_SIZE 0
755 743
 
744
+// Host Receive Buffer Size
745
+// Without XON/XOFF flow control (see SERIAL_XON_XOFF below) 32 bytes should be enough.
746
+// To use flow control, set this buffer size to at least 1024 bytes.
747
+// :[0, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048]
748
+//#define RX_BUFFER_SIZE 1024
749
+
750
+#if RX_BUFFER_SIZE >= 1024
751
+  // Enable to have the controller send XON/XOFF control characters to
752
+  // the host to signal the RX buffer is becoming full.
753
+  //#define SERIAL_XON_XOFF
754
+#endif
755
+
756
+#if ENABLED(SDSUPPORT)
757
+  // Enable this option to collect and display the maximum
758
+  // RX queue usage after transferring a file to SD.
759
+  //#define SERIAL_STATS_MAX_RX_QUEUED
760
+
761
+  // Enable this option to collect and display the number
762
+  // of dropped bytes after a file transfer to SD.
763
+  //#define SERIAL_STATS_DROPPED_RX
764
+#endif
765
+
756 766
 // Enable an emergency-command parser to intercept certain commands as they
757 767
 // enter the serial receive buffer, so they cannot be blocked.
758 768
 // Currently handles M108, M112, M410
@@ -1276,6 +1286,7 @@
1276 1286
 #if ENABLED(CUSTOM_USER_MENUS)
1277 1287
   #define USER_SCRIPT_DONE "M117 User Script Done"
1278 1288
   #define USER_SCRIPT_AUDIBLE_FEEDBACK
1289
+  //#define USER_SCRIPT_RETURN  // Return to status screen after a script
1279 1290
 
1280 1291
   #define USER_DESC_1 "Home & UBL Info"
1281 1292
   #define USER_GCODE_1 "G28\nG29 W"
@@ -1385,29 +1396,31 @@
1385 1396
 #endif // I2C_POSITION_ENCODERS
1386 1397
 
1387 1398
 /**
1388
-  * Debug LED's using an 8x8 LED Matrix driven by a Max7219 chip.   Fully assembled versions are available on
1389
-  * eBay for under $2.00 (including shipping) and only require 3 signal wires.
1390
-  *
1391
-  * Check out auctions similar to this: https://www.ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313&_nkw=332349290049&_sacat=0
1392
-  */
1393
-
1399
+ * MAX7219 Debug Matrix
1400
+ *
1401
+ * Add support for a low-cost 8x8 LED Matrix based on the Max7219 chip, which can be used as a status
1402
+ * display. Requires 3 signal wires. Some useful debug options are included to demonstrate its usage.
1403
+ *
1404
+ * Fully assembled MAX7219 boards can be found on the internet for under $2(US).
1405
+ * For example, see https://www.ebay.com/sch/i.html?_nkw=332349290049
1406
+ */
1394 1407
 //#define MAX7219_DEBUG
1395 1408
 #if ENABLED(MAX7219_DEBUG)
1396
-  #define Max7219_clock   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display
1397
-  #define Max7219_data_in 57  // 78 on Re-ARM
1398
-  #define Max7219_load    44  // 79 on Re-ARM
1409
+  #define MAX7219_CLK_PIN   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display
1410
+  #define MAX7219_DIN_PIN   57  // 78 on Re-ARM
1411
+  #define MAX7219_LOAD_PIN  44  // 79 on Re-ARM
1399 1412
 
1400
-  /*
1401
-   * These are sample debug features that can be turned on and configured for your use.
1402
-   * The developer will need to manage the use of the various LED's in the 8x8 matrix to avoid conflicts.
1413
+  /**
1414
+   * Sample debug features
1415
+   * If you add more debug displays, be careful to avoid conflicts!
1403 1416
    */
1404
-  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix from idle() routine if firmware is functioning
1405
-  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Display row position of stepper queue head on this line and the next line of LED matrix
1406
-  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Display row position of stepper queue tail on this line and the next line of LED matrix
1417
+  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix to show that the firmware is functioning
1418
+  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Show the stepper queue head position on this and the next LED matrix row
1419
+  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Show the stepper queue tail position on this and the next LED matrix row
1407 1420
 
1408
-  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Display row position of stepper queue depth on this line and the next line of LED matrix
1409
-                                         // If you have stuttering on your Delta printer, this option may help you understand how
1410
-                                         // various tweaks you make to your configuration are affecting the printer.
1421
+  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Show the current stepper queue depth on this and the next LED matrix row
1422
+                                         // If you experience stuttering, reboots, etc. this option can reveal how
1423
+                                         // tweaks made to the configuration are affecting the printer in real-time.
1411 1424
 #endif
1412 1425
 
1413 1426
 #endif // CONFIGURATION_ADV_H

+ 51
- 8
Marlin/example_configurations/delta/FLSUN/kossel_mini/Configuration.h View File

@@ -107,8 +107,9 @@
107 107
  *
108 108
  * 250000 works in most cases, but you might try a lower speed if
109 109
  * you commonly experience drop-outs during host printing.
110
+ * You may try up to 1000000 to speed up SD file transfer.
110 111
  *
111
- * :[2400, 9600, 19200, 38400, 57600, 115200, 250000]
112
+ * :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000]
112 113
  */
113 114
 #define BAUDRATE 250000
114 115
 
@@ -883,6 +884,8 @@
883 884
 
884 885
 // @section homing
885 886
 
887
+//#define NO_MOTION_BEFORE_HOMING  // Inhibit movement until all axes have been homed
888
+
886 889
 #define Z_HOMING_HEIGHT 15   // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
887 890
                              // Be sure you have this distance over your Z_MAX_POS in case.
888 891
 
@@ -1077,9 +1080,11 @@
1077 1080
 #if ENABLED(LCD_BED_LEVELING)
1078 1081
   #define MBL_Z_STEP 0.025    // Step size while manually probing Z axis.
1079 1082
   #define LCD_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
1080
-  #define LEVEL_BED_CORNERS   // Add an option to move between corners
1081 1083
 #endif
1082 1084
 
1085
+// Add a menu item to move between bed corners for manual bed adjustment
1086
+//#define LEVEL_BED_CORNERS
1087
+
1083 1088
 /**
1084 1089
  * Commands to execute at the end of G29 probing.
1085 1090
  * Useful to retract or move the Z probe out of the way.
@@ -1319,7 +1324,7 @@
1319 1324
  *  - Click the controller to view the LCD menu
1320 1325
  *  - The LCD will display Japanese, Western, or Cyrillic text
1321 1326
  *
1322
- * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
1327
+ * See http://marlinfw.org/docs/development/lcd_language.html
1323 1328
  *
1324 1329
  * :['JAPANESE', 'WESTERN', 'CYRILLIC']
1325 1330
  */
@@ -1619,6 +1624,35 @@
1619 1624
 //
1620 1625
 //#define OLED_PANEL_TINYBOY2
1621 1626
 
1627
+//
1628
+// Makeboard 3D Printer Parts 3D Printer Mini Display 1602 Mini Controller
1629
+// https://www.aliexpress.com/item/Micromake-Makeboard-3D-Printer-Parts-3D-Printer-Mini-Display-1602-Mini-Controller-Compatible-with-Ramps-1/32765887917.html
1630
+//
1631
+//#define MAKEBOARD_MINI_2_LINE_DISPLAY_1602
1632
+
1633
+//
1634
+// MKS MINI12864 with graphic controller and SD support
1635
+// http://reprap.org/wiki/MKS_MINI_12864
1636
+//
1637
+//#define MKS_MINI_12864
1638
+
1639
+//
1640
+// Factory display for Creality CR-10
1641
+// https://www.aliexpress.com/item/Universal-LCD-12864-3D-Printer-Display-Screen-With-Encoder-For-CR-10-CR-7-Model/32833148327.html
1642
+//
1643
+// This is RAMPS-compatible using a single 10-pin connector.
1644
+// (For CR-10 owners who want to replace the Melzi Creality board but retain the display)
1645
+//
1646
+//#define CR10_STOCKDISPLAY
1647
+
1648
+//
1649
+// MKS OLED 1.3" 128 × 64 FULL GRAPHICS CONTROLLER
1650
+// http://reprap.org/wiki/MKS_12864OLED
1651
+//
1652
+// Tiny, but very sharp OLED display
1653
+//
1654
+//#define MKS_12864OLED
1655
+
1622 1656
 //=============================================================================
1623 1657
 //=============================== Extra Features ==============================
1624 1658
 //=============================================================================
@@ -1675,16 +1709,22 @@
1675 1709
  * Adds the M150 command to set the LED (or LED strip) color.
1676 1710
  * If pins are PWM capable (e.g., 4, 5, 6, 11) then a range of
1677 1711
  * luminance values can be set from 0 to 255.
1712
+ * For Neopixel LED overall brightness parameters is also available 
1678 1713
  *
1679 1714
  * *** CAUTION ***
1680 1715
  *  LED Strips require a MOFSET Chip between PWM lines and LEDs,
1681 1716
  *  as the Arduino cannot handle the current the LEDs will require.
1682 1717
  *  Failure to follow this precaution can destroy your Arduino!
1718
+ *  The Neopixel LED is 5V powered, but linear 5V regulator on Arduino
1719
+ *  cannot handle such current, separate 5V power supply must be used
1683 1720
  * *** CAUTION ***
1684 1721
  *
1722
+ * LED type. This options are mutualy exclusive. Uncomment only one.
1723
+ *
1685 1724
  */
1686 1725
 //#define RGB_LED
1687 1726
 //#define RGBW_LED
1727
+
1688 1728
 #if ENABLED(RGB_LED) || ENABLED(RGBW_LED)
1689 1729
   #define RGB_LED_R_PIN 34
1690 1730
   #define RGB_LED_G_PIN 43
@@ -1693,11 +1733,14 @@
1693 1733
 #endif
1694 1734
 
1695 1735
 // Support for Adafruit Neopixel LED driver
1696
-//#define NEOPIXEL_RGBW_LED
1697
-#if ENABLED(NEOPIXEL_RGBW_LED)
1698
-  #define NEOPIXEL_PIN    4       // D4 (EXP2-5 on Printrboard)
1699
-  #define NEOPIXEL_PIXELS 3
1700
-  //#define NEOPIXEL_STARTUP_TEST // Cycle through colors at startup
1736
+//#define NEOPIXEL_LED
1737
+#if ENABLED(NEOPIXEL_LED)
1738
+  #define NEOPIXEL_TYPE   NEO_GRBW // NEO_GRBW / NEO_GRB - four/three channel driver type (definned in Adafruit_NeoPixel.h)
1739
+  #define NEOPIXEL_PIN    4        // LED driving pin on motherboard 4 => D4 (EXP2-5 on Printrboard) / 30 => PC7 (EXP3-13 on Rumba)
1740
+  #define NEOPIXEL_PIXELS 30       // Number of LEDs on strip
1741
+  #define NEOPIXEL_IS_SEQUENTIAL   // Sequent display for temperature change - LED by LED. Comment out for change all LED at time
1742
+  #define NEOPIXEL_BRIGHTNESS 127  // Initial brightness 0-255
1743
+  //#define NEOPIXEL_STARTUP_TEST  // Cycle through colors at startup
1701 1744
 #endif
1702 1745
 
1703 1746
 /**

+ 52
- 39
Marlin/example_configurations/delta/FLSUN/kossel_mini/Configuration_adv.h View File

@@ -222,7 +222,7 @@
222 222
 
223 223
 /**
224 224
  * Part-Cooling Fan Multiplexer
225
- * 
225
+ *
226 226
  * This feature allows you to digitally multiplex the fan output.
227 227
  * The multiplexer is automatically switched at tool-change.
228 228
  * Set FANMUX[012]_PINs below for up to 2, 4, or 8 multiplexed fans.
@@ -512,7 +512,7 @@
512 512
 
513 513
   // SD Card Sorting options
514 514
   #if ENABLED(SDCARD_SORT_ALPHA)
515
-    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256).
515
+    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256). Costs 27 bytes each.
516 516
     #define FOLDER_SORTING     -1     // -1=above  0=none  1=below
517 517
     #define SDSORT_GCODE       false  // Allow turning sorting on/off with LCD and M34 g-code.
518 518
     #define SDSORT_USES_RAM    false  // Pre-allocate a static array for faster pre-sorting.
@@ -603,31 +603,19 @@
603 603
  */
604 604
 //#define BABYSTEPPING
605 605
 #if ENABLED(BABYSTEPPING)
606
-  #define BABYSTEP_XY              // Also enable X/Y Babystepping. Not supported on DELTA!
607
-  #define BABYSTEP_INVERT_Z false  // Change if Z babysteps should go the other way
608
-  #define BABYSTEP_MULTIPLICATOR 1 // Babysteps are very small. Increase for faster motion.
609
-  //#define BABYSTEP_ZPROBE_OFFSET // Enable to combine M851 and Babystepping
606
+  //#define BABYSTEP_XY              // Also enable X/Y Babystepping. Not supported on DELTA!
607
+  #define BABYSTEP_INVERT_Z false    // Change if Z babysteps should go the other way
608
+  #define BABYSTEP_MULTIPLICATOR 100 // Babysteps are very small. Increase for faster motion.
609
+  //#define BABYSTEP_ZPROBE_OFFSET   // Enable to combine M851 and Babystepping
610 610
   //#define DOUBLECLICK_FOR_Z_BABYSTEPPING // Double-click on the Status Screen for Z Babystepping.
611 611
   #define DOUBLECLICK_MAX_INTERVAL 1250 // Maximum interval between clicks, in milliseconds.
612 612
                                         // Note: Extra time may be added to mitigate controller latency.
613
+  //#define BABYSTEP_ZPROBE_GFX_OVERLAY // Enable graphical overlay on Z-offset editor
614
+  //#define BABYSTEP_ZPROBE_GFX_REVERSE // Reverses the direction of the CW/CCW indicators
613 615
 #endif
614 616
 
615 617
 // @section extruder
616 618
 
617
-// extruder advance constant (s2/mm3)
618
-//
619
-// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
620
-//
621
-// Hooke's law says:    force = k * distance
622
-// Bernoulli's principle says:  v ^ 2 / 2 + g . h + pressure / density = constant
623
-// so: v ^ 2 is proportional to number of steps we advance the extruder
624
-//#define ADVANCE
625
-
626
-#if ENABLED(ADVANCE)
627
-  #define EXTRUDER_ADVANCE_K .0
628
-  #define D_FILAMENT 2.85
629
-#endif
630
-
631 619
 /**
632 620
  * Implementation of linear pressure control
633 621
  *
@@ -744,7 +732,7 @@
744 732
 #define MAX_CMD_SIZE 96
745 733
 #define BUFSIZE 4
746 734
 
747
-// Transfer Buffer Size
735
+// Transmission to Host Buffer Size
748 736
 // To save 386 bytes of PROGMEM (and TX_BUFFER_SIZE+3 bytes of RAM) set to 0.
749 737
 // To buffer a simple "ok" you need 4 bytes.
750 738
 // For ADVANCED_OK (M105) you need 32 bytes.
@@ -753,6 +741,28 @@
753 741
 // :[0, 2, 4, 8, 16, 32, 64, 128, 256]
754 742
 #define TX_BUFFER_SIZE 0
755 743
 
744
+// Host Receive Buffer Size
745
+// Without XON/XOFF flow control (see SERIAL_XON_XOFF below) 32 bytes should be enough.
746
+// To use flow control, set this buffer size to at least 1024 bytes.
747
+// :[0, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048]
748
+//#define RX_BUFFER_SIZE 1024
749
+
750
+#if RX_BUFFER_SIZE >= 1024
751
+  // Enable to have the controller send XON/XOFF control characters to
752
+  // the host to signal the RX buffer is becoming full.
753
+  //#define SERIAL_XON_XOFF
754
+#endif
755
+
756
+#if ENABLED(SDSUPPORT)
757
+  // Enable this option to collect and display the maximum
758
+  // RX queue usage after transferring a file to SD.
759
+  //#define SERIAL_STATS_MAX_RX_QUEUED
760
+
761
+  // Enable this option to collect and display the number
762
+  // of dropped bytes after a file transfer to SD.
763
+  //#define SERIAL_STATS_DROPPED_RX
764
+#endif
765
+
756 766
 // Enable an emergency-command parser to intercept certain commands as they
757 767
 // enter the serial receive buffer, so they cannot be blocked.
758 768
 // Currently handles M108, M112, M410
@@ -1276,6 +1286,7 @@
1276 1286
 #if ENABLED(CUSTOM_USER_MENUS)
1277 1287
   #define USER_SCRIPT_DONE "M117 User Script Done"
1278 1288
   #define USER_SCRIPT_AUDIBLE_FEEDBACK
1289
+  //#define USER_SCRIPT_RETURN  // Return to status screen after a script
1279 1290
 
1280 1291
   #define USER_DESC_1 "Home & UBL Info"
1281 1292
   #define USER_GCODE_1 "G28\nG29 W"
@@ -1385,29 +1396,31 @@
1385 1396
 #endif // I2C_POSITION_ENCODERS
1386 1397
 
1387 1398
 /**
1388
-  * Debug LED's using an 8x8 LED Matrix driven by a Max7219 chip.   Fully assembled versions are available on
1389
-  * eBay for under $2.00 (including shipping) and only require 3 signal wires.
1390
-  *
1391
-  * Check out auctions similar to this: https://www.ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313&_nkw=332349290049&_sacat=0
1392
-  */
1393
-
1399
+ * MAX7219 Debug Matrix
1400
+ *
1401
+ * Add support for a low-cost 8x8 LED Matrix based on the Max7219 chip, which can be used as a status
1402
+ * display. Requires 3 signal wires. Some useful debug options are included to demonstrate its usage.
1403
+ *
1404
+ * Fully assembled MAX7219 boards can be found on the internet for under $2(US).
1405
+ * For example, see https://www.ebay.com/sch/i.html?_nkw=332349290049
1406
+ */
1394 1407
 //#define MAX7219_DEBUG
1395 1408
 #if ENABLED(MAX7219_DEBUG)
1396
-  #define Max7219_clock   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display
1397
-  #define Max7219_data_in 57  // 78 on Re-ARM
1398
-  #define Max7219_load    44  // 79 on Re-ARM
1409
+  #define MAX7219_CLK_PIN   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display
1410
+  #define MAX7219_DIN_PIN   57  // 78 on Re-ARM
1411
+  #define MAX7219_LOAD_PIN  44  // 79 on Re-ARM
1399 1412
 
1400
-  /*
1401
-   * These are sample debug features that can be turned on and configured for your use.
1402
-   * The developer will need to manage the use of the various LED's in the 8x8 matrix to avoid conflicts.
1413
+  /**
1414
+   * Sample debug features
1415
+   * If you add more debug displays, be careful to avoid conflicts!
1403 1416
    */
1404
-  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix from idle() routine if firmware is functioning
1405
-  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Display row position of stepper queue head on this line and the next line of LED matrix
1406
-  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Display row position of stepper queue tail on this line and the next line of LED matrix
1417
+  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix to show that the firmware is functioning
1418
+  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Show the stepper queue head position on this and the next LED matrix row
1419
+  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Show the stepper queue tail position on this and the next LED matrix row
1407 1420
 
1408
-  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Display row position of stepper queue depth on this line and the next line of LED matrix
1409
-                                         // If you have stuttering on your Delta printer, this option may help you understand how
1410
-                                         // various tweaks you make to your configuration are affecting the printer.
1421
+  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Show the current stepper queue depth on this and the next LED matrix row
1422
+                                         // If you experience stuttering, reboots, etc. this option can reveal how
1423
+                                         // tweaks made to the configuration are affecting the printer in real-time.
1411 1424
 #endif
1412 1425
 
1413 1426
 #endif // CONFIGURATION_ADV_H

+ 51
- 8
Marlin/example_configurations/delta/generic/Configuration.h View File

@@ -107,8 +107,9 @@
107 107
  *
108 108
  * 250000 works in most cases, but you might try a lower speed if
109 109
  * you commonly experience drop-outs during host printing.
110
+ * You may try up to 1000000 to speed up SD file transfer.
110 111
  *
111
- * :[2400, 9600, 19200, 38400, 57600, 115200, 250000]
112
+ * :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000]
112 113
  */
113 114
 #define BAUDRATE 250000
114 115
 
@@ -870,6 +871,8 @@
870 871
 
871 872
 // @section homing
872 873
 
874
+//#define NO_MOTION_BEFORE_HOMING  // Inhibit movement until all axes have been homed
875
+
873 876
 //#define Z_HOMING_HEIGHT 4  // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
874 877
                              // Be sure you have this distance over your Z_MAX_POS in case.
875 878
 
@@ -1072,9 +1075,11 @@
1072 1075
 #if ENABLED(LCD_BED_LEVELING)
1073 1076
   #define MBL_Z_STEP 0.025    // Step size while manually probing Z axis.
1074 1077
   #define LCD_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
1075
-  #define LEVEL_BED_CORNERS   // Add an option to move between corners
1076 1078
 #endif
1077 1079
 
1080
+// Add a menu item to move between bed corners for manual bed adjustment
1081
+//#define LEVEL_BED_CORNERS
1082
+
1078 1083
 /**
1079 1084
  * Commands to execute at the end of G29 probing.
1080 1085
  * Useful to retract or move the Z probe out of the way.
@@ -1314,7 +1319,7 @@
1314 1319
  *  - Click the controller to view the LCD menu
1315 1320
  *  - The LCD will display Japanese, Western, or Cyrillic text
1316 1321
  *
1317
- * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
1322
+ * See http://marlinfw.org/docs/development/lcd_language.html
1318 1323
  *
1319 1324
  * :['JAPANESE', 'WESTERN', 'CYRILLIC']
1320 1325
  */
@@ -1614,6 +1619,35 @@
1614 1619
 //
1615 1620
 //#define OLED_PANEL_TINYBOY2
1616 1621
 
1622
+//
1623
+// Makeboard 3D Printer Parts 3D Printer Mini Display 1602 Mini Controller
1624
+// https://www.aliexpress.com/item/Micromake-Makeboard-3D-Printer-Parts-3D-Printer-Mini-Display-1602-Mini-Controller-Compatible-with-Ramps-1/32765887917.html
1625
+//
1626
+//#define MAKEBOARD_MINI_2_LINE_DISPLAY_1602
1627
+
1628
+//
1629
+// MKS MINI12864 with graphic controller and SD support
1630
+// http://reprap.org/wiki/MKS_MINI_12864
1631
+//
1632
+//#define MKS_MINI_12864
1633
+
1634
+//
1635
+// Factory display for Creality CR-10
1636
+// https://www.aliexpress.com/item/Universal-LCD-12864-3D-Printer-Display-Screen-With-Encoder-For-CR-10-CR-7-Model/32833148327.html
1637
+//
1638
+// This is RAMPS-compatible using a single 10-pin connector.
1639
+// (For CR-10 owners who want to replace the Melzi Creality board but retain the display)
1640
+//
1641
+//#define CR10_STOCKDISPLAY
1642
+
1643
+//
1644
+// MKS OLED 1.3" 128 × 64 FULL GRAPHICS CONTROLLER
1645
+// http://reprap.org/wiki/MKS_12864OLED
1646
+//
1647
+// Tiny, but very sharp OLED display
1648
+//
1649
+//#define MKS_12864OLED
1650
+
1617 1651
 //=============================================================================
1618 1652
 //=============================== Extra Features ==============================
1619 1653
 //=============================================================================
@@ -1670,16 +1704,22 @@
1670 1704
  * Adds the M150 command to set the LED (or LED strip) color.
1671 1705
  * If pins are PWM capable (e.g., 4, 5, 6, 11) then a range of
1672 1706
  * luminance values can be set from 0 to 255.
1707
+ * For Neopixel LED overall brightness parameters is also available 
1673 1708
  *
1674 1709
  * *** CAUTION ***
1675 1710
  *  LED Strips require a MOFSET Chip between PWM lines and LEDs,
1676 1711
  *  as the Arduino cannot handle the current the LEDs will require.
1677 1712
  *  Failure to follow this precaution can destroy your Arduino!
1713
+ *  The Neopixel LED is 5V powered, but linear 5V regulator on Arduino
1714
+ *  cannot handle such current, separate 5V power supply must be used
1678 1715
  * *** CAUTION ***
1679 1716
  *
1717
+ * LED type. This options are mutualy exclusive. Uncomment only one.
1718
+ *
1680 1719
  */
1681 1720
 //#define RGB_LED
1682 1721
 //#define RGBW_LED
1722
+
1683 1723
 #if ENABLED(RGB_LED) || ENABLED(RGBW_LED)
1684 1724
   #define RGB_LED_R_PIN 34
1685 1725
   #define RGB_LED_G_PIN 43
@@ -1688,11 +1728,14 @@
1688 1728
 #endif
1689 1729
 
1690 1730
 // Support for Adafruit Neopixel LED driver
1691
-//#define NEOPIXEL_RGBW_LED
1692
-#if ENABLED(NEOPIXEL_RGBW_LED)
1693
-  #define NEOPIXEL_PIN    4       // D4 (EXP2-5 on Printrboard)
1694
-  #define NEOPIXEL_PIXELS 3
1695
-  //#define NEOPIXEL_STARTUP_TEST // Cycle through colors at startup
1731
+//#define NEOPIXEL_LED
1732
+#if ENABLED(NEOPIXEL_LED)
1733
+  #define NEOPIXEL_TYPE   NEO_GRBW // NEO_GRBW / NEO_GRB - four/three channel driver type (definned in Adafruit_NeoPixel.h)
1734
+  #define NEOPIXEL_PIN    4        // LED driving pin on motherboard 4 => D4 (EXP2-5 on Printrboard) / 30 => PC7 (EXP3-13 on Rumba)
1735
+  #define NEOPIXEL_PIXELS 30       // Number of LEDs on strip
1736
+  #define NEOPIXEL_IS_SEQUENTIAL   // Sequent display for temperature change - LED by LED. Comment out for change all LED at time
1737
+  #define NEOPIXEL_BRIGHTNESS 127  // Initial brightness 0-255
1738
+  //#define NEOPIXEL_STARTUP_TEST  // Cycle through colors at startup
1696 1739
 #endif
1697 1740
 
1698 1741
 /**

+ 52
- 39
Marlin/example_configurations/delta/generic/Configuration_adv.h View File

@@ -222,7 +222,7 @@
222 222
 
223 223
 /**
224 224
  * Part-Cooling Fan Multiplexer
225
- * 
225
+ *
226 226
  * This feature allows you to digitally multiplex the fan output.
227 227
  * The multiplexer is automatically switched at tool-change.
228 228
  * Set FANMUX[012]_PINs below for up to 2, 4, or 8 multiplexed fans.
@@ -512,7 +512,7 @@
512 512
 
513 513
   // SD Card Sorting options
514 514
   #if ENABLED(SDCARD_SORT_ALPHA)
515
-    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256).
515
+    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256). Costs 27 bytes each.
516 516
     #define FOLDER_SORTING     -1     // -1=above  0=none  1=below
517 517
     #define SDSORT_GCODE       false  // Allow turning sorting on/off with LCD and M34 g-code.
518 518
     #define SDSORT_USES_RAM    false  // Pre-allocate a static array for faster pre-sorting.
@@ -603,31 +603,19 @@
603 603
  */
604 604
 //#define BABYSTEPPING
605 605
 #if ENABLED(BABYSTEPPING)
606
-  #define BABYSTEP_XY              // Also enable X/Y Babystepping. Not supported on DELTA!
607
-  #define BABYSTEP_INVERT_Z false  // Change if Z babysteps should go the other way
608
-  #define BABYSTEP_MULTIPLICATOR 1 // Babysteps are very small. Increase for faster motion.
609
-  //#define BABYSTEP_ZPROBE_OFFSET // Enable to combine M851 and Babystepping
606
+  //#define BABYSTEP_XY              // Also enable X/Y Babystepping. Not supported on DELTA!
607
+  #define BABYSTEP_INVERT_Z false    // Change if Z babysteps should go the other way
608
+  #define BABYSTEP_MULTIPLICATOR 100 // Babysteps are very small. Increase for faster motion.
609
+  //#define BABYSTEP_ZPROBE_OFFSET   // Enable to combine M851 and Babystepping
610 610
   //#define DOUBLECLICK_FOR_Z_BABYSTEPPING // Double-click on the Status Screen for Z Babystepping.
611 611
   #define DOUBLECLICK_MAX_INTERVAL 1250 // Maximum interval between clicks, in milliseconds.
612 612
                                         // Note: Extra time may be added to mitigate controller latency.
613
+  //#define BABYSTEP_ZPROBE_GFX_OVERLAY // Enable graphical overlay on Z-offset editor
614
+  //#define BABYSTEP_ZPROBE_GFX_REVERSE // Reverses the direction of the CW/CCW indicators
613 615
 #endif
614 616
 
615 617
 // @section extruder
616 618
 
617
-// extruder advance constant (s2/mm3)
618
-//
619
-// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
620
-//
621
-// Hooke's law says:    force = k * distance
622
-// Bernoulli's principle says:  v ^ 2 / 2 + g . h + pressure / density = constant
623
-// so: v ^ 2 is proportional to number of steps we advance the extruder
624
-//#define ADVANCE
625
-
626
-#if ENABLED(ADVANCE)
627
-  #define EXTRUDER_ADVANCE_K .0
628
-  #define D_FILAMENT 2.85
629
-#endif
630
-
631 619
 /**
632 620
  * Implementation of linear pressure control
633 621
  *
@@ -744,7 +732,7 @@
744 732
 #define MAX_CMD_SIZE 96
745 733
 #define BUFSIZE 4
746 734
 
747
-// Transfer Buffer Size
735
+// Transmission to Host Buffer Size
748 736
 // To save 386 bytes of PROGMEM (and TX_BUFFER_SIZE+3 bytes of RAM) set to 0.
749 737
 // To buffer a simple "ok" you need 4 bytes.
750 738
 // For ADVANCED_OK (M105) you need 32 bytes.
@@ -753,6 +741,28 @@
753 741
 // :[0, 2, 4, 8, 16, 32, 64, 128, 256]
754 742
 #define TX_BUFFER_SIZE 0
755 743
 
744
+// Host Receive Buffer Size
745
+// Without XON/XOFF flow control (see SERIAL_XON_XOFF below) 32 bytes should be enough.
746
+// To use flow control, set this buffer size to at least 1024 bytes.
747
+// :[0, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048]
748
+//#define RX_BUFFER_SIZE 1024
749
+
750
+#if RX_BUFFER_SIZE >= 1024
751
+  // Enable to have the controller send XON/XOFF control characters to
752
+  // the host to signal the RX buffer is becoming full.
753
+  //#define SERIAL_XON_XOFF
754
+#endif
755
+
756
+#if ENABLED(SDSUPPORT)
757
+  // Enable this option to collect and display the maximum
758
+  // RX queue usage after transferring a file to SD.
759
+  //#define SERIAL_STATS_MAX_RX_QUEUED
760
+
761
+  // Enable this option to collect and display the number
762
+  // of dropped bytes after a file transfer to SD.
763
+  //#define SERIAL_STATS_DROPPED_RX
764
+#endif
765
+
756 766
 // Enable an emergency-command parser to intercept certain commands as they
757 767
 // enter the serial receive buffer, so they cannot be blocked.
758 768
 // Currently handles M108, M112, M410
@@ -1276,6 +1286,7 @@
1276 1286
 #if ENABLED(CUSTOM_USER_MENUS)
1277 1287
   #define USER_SCRIPT_DONE "M117 User Script Done"
1278 1288
   #define USER_SCRIPT_AUDIBLE_FEEDBACK
1289
+  //#define USER_SCRIPT_RETURN  // Return to status screen after a script
1279 1290
 
1280 1291
   #define USER_DESC_1 "Home & UBL Info"
1281 1292
   #define USER_GCODE_1 "G28\nG29 W"
@@ -1385,29 +1396,31 @@
1385 1396
 #endif // I2C_POSITION_ENCODERS
1386 1397
 
1387 1398
 /**
1388
-  * Debug LED's using an 8x8 LED Matrix driven by a Max7219 chip.   Fully assembled versions are available on
1389
-  * eBay for under $2.00 (including shipping) and only require 3 signal wires.
1390
-  *
1391
-  * Check out auctions similar to this: https://www.ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313&_nkw=332349290049&_sacat=0
1392
-  */
1393
-
1399
+ * MAX7219 Debug Matrix
1400
+ *
1401
+ * Add support for a low-cost 8x8 LED Matrix based on the Max7219 chip, which can be used as a status
1402
+ * display. Requires 3 signal wires. Some useful debug options are included to demonstrate its usage.
1403
+ *
1404
+ * Fully assembled MAX7219 boards can be found on the internet for under $2(US).
1405
+ * For example, see https://www.ebay.com/sch/i.html?_nkw=332349290049
1406
+ */
1394 1407
 //#define MAX7219_DEBUG
1395 1408
 #if ENABLED(MAX7219_DEBUG)
1396
-  #define Max7219_clock   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display
1397
-  #define Max7219_data_in 57  // 78 on Re-ARM
1398
-  #define Max7219_load    44  // 79 on Re-ARM
1409
+  #define MAX7219_CLK_PIN   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display
1410
+  #define MAX7219_DIN_PIN   57  // 78 on Re-ARM
1411
+  #define MAX7219_LOAD_PIN  44  // 79 on Re-ARM
1399 1412
 
1400
-  /*
1401
-   * These are sample debug features that can be turned on and configured for your use.
1402
-   * The developer will need to manage the use of the various LED's in the 8x8 matrix to avoid conflicts.
1413
+  /**
1414
+   * Sample debug features
1415
+   * If you add more debug displays, be careful to avoid conflicts!
1403 1416
    */
1404
-  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix from idle() routine if firmware is functioning
1405
-  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Display row position of stepper queue head on this line and the next line of LED matrix
1406
-  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Display row position of stepper queue tail on this line and the next line of LED matrix
1417
+  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix to show that the firmware is functioning
1418
+  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Show the stepper queue head position on this and the next LED matrix row
1419
+  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Show the stepper queue tail position on this and the next LED matrix row
1407 1420
 
1408
-  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Display row position of stepper queue depth on this line and the next line of LED matrix
1409
-                                         // If you have stuttering on your Delta printer, this option may help you understand how
1410
-                                         // various tweaks you make to your configuration are affecting the printer.
1421
+  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Show the current stepper queue depth on this and the next LED matrix row
1422
+                                         // If you experience stuttering, reboots, etc. this option can reveal how
1423
+                                         // tweaks made to the configuration are affecting the printer in real-time.
1411 1424
 #endif
1412 1425
 
1413 1426
 #endif // CONFIGURATION_ADV_H

+ 51
- 8
Marlin/example_configurations/delta/kossel_mini/Configuration.h View File

@@ -107,8 +107,9 @@
107 107
  *
108 108
  * 250000 works in most cases, but you might try a lower speed if
109 109
  * you commonly experience drop-outs during host printing.
110
+ * You may try up to 1000000 to speed up SD file transfer.
110 111
  *
111
- * :[2400, 9600, 19200, 38400, 57600, 115200, 250000]
112
+ * :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000]
112 113
  */
113 114
 #define BAUDRATE 250000
114 115
 
@@ -873,6 +874,8 @@
873 874
 
874 875
 // @section homing
875 876
 
877
+//#define NO_MOTION_BEFORE_HOMING  // Inhibit movement until all axes have been homed
878
+
876 879
 //#define Z_HOMING_HEIGHT 15 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
877 880
                              // Be sure you have this distance over your Z_MAX_POS in case.
878 881
 
@@ -1075,9 +1078,11 @@
1075 1078
 #if ENABLED(LCD_BED_LEVELING)
1076 1079
   #define MBL_Z_STEP 0.025    // Step size while manually probing Z axis.
1077 1080
   #define LCD_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
1078
-  #define LEVEL_BED_CORNERS   // Add an option to move between corners
1079 1081
 #endif
1080 1082
 
1083
+// Add a menu item to move between bed corners for manual bed adjustment
1084
+//#define LEVEL_BED_CORNERS
1085
+
1081 1086
 /**
1082 1087
  * Commands to execute at the end of G29 probing.
1083 1088
  * Useful to retract or move the Z probe out of the way.
@@ -1317,7 +1322,7 @@
1317 1322
  *  - Click the controller to view the LCD menu
1318 1323
  *  - The LCD will display Japanese, Western, or Cyrillic text
1319 1324
  *
1320
- * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
1325
+ * See http://marlinfw.org/docs/development/lcd_language.html
1321 1326
  *
1322 1327
  * :['JAPANESE', 'WESTERN', 'CYRILLIC']
1323 1328
  */
@@ -1617,6 +1622,35 @@
1617 1622
 //
1618 1623
 //#define OLED_PANEL_TINYBOY2
1619 1624
 
1625
+//
1626
+// Makeboard 3D Printer Parts 3D Printer Mini Display 1602 Mini Controller
1627
+// https://www.aliexpress.com/item/Micromake-Makeboard-3D-Printer-Parts-3D-Printer-Mini-Display-1602-Mini-Controller-Compatible-with-Ramps-1/32765887917.html
1628
+//
1629
+//#define MAKEBOARD_MINI_2_LINE_DISPLAY_1602
1630
+
1631
+//
1632
+// MKS MINI12864 with graphic controller and SD support
1633
+// http://reprap.org/wiki/MKS_MINI_12864
1634
+//
1635
+//#define MKS_MINI_12864
1636
+
1637
+//
1638
+// Factory display for Creality CR-10
1639
+// https://www.aliexpress.com/item/Universal-LCD-12864-3D-Printer-Display-Screen-With-Encoder-For-CR-10-CR-7-Model/32833148327.html
1640
+//
1641
+// This is RAMPS-compatible using a single 10-pin connector.
1642
+// (For CR-10 owners who want to replace the Melzi Creality board but retain the display)
1643
+//
1644
+//#define CR10_STOCKDISPLAY
1645
+
1646
+//
1647
+// MKS OLED 1.3" 128 × 64 FULL GRAPHICS CONTROLLER
1648
+// http://reprap.org/wiki/MKS_12864OLED
1649
+//
1650
+// Tiny, but very sharp OLED display
1651
+//
1652
+//#define MKS_12864OLED
1653
+
1620 1654
 //=============================================================================
1621 1655
 //=============================== Extra Features ==============================
1622 1656
 //=============================================================================
@@ -1673,16 +1707,22 @@
1673 1707
  * Adds the M150 command to set the LED (or LED strip) color.
1674 1708
  * If pins are PWM capable (e.g., 4, 5, 6, 11) then a range of
1675 1709
  * luminance values can be set from 0 to 255.
1710
+ * For Neopixel LED overall brightness parameters is also available 
1676 1711
  *
1677 1712
  * *** CAUTION ***
1678 1713
  *  LED Strips require a MOFSET Chip between PWM lines and LEDs,
1679 1714
  *  as the Arduino cannot handle the current the LEDs will require.
1680 1715
  *  Failure to follow this precaution can destroy your Arduino!
1716
+ *  The Neopixel LED is 5V powered, but linear 5V regulator on Arduino
1717
+ *  cannot handle such current, separate 5V power supply must be used
1681 1718
  * *** CAUTION ***
1682 1719
  *
1720
+ * LED type. This options are mutualy exclusive. Uncomment only one.
1721
+ *
1683 1722
  */
1684 1723
 //#define RGB_LED
1685 1724
 //#define RGBW_LED
1725
+
1686 1726
 #if ENABLED(RGB_LED) || ENABLED(RGBW_LED)
1687 1727
   #define RGB_LED_R_PIN 34
1688 1728
   #define RGB_LED_G_PIN 43
@@ -1691,11 +1731,14 @@
1691 1731
 #endif
1692 1732
 
1693 1733
 // Support for Adafruit Neopixel LED driver
1694
-//#define NEOPIXEL_RGBW_LED
1695
-#if ENABLED(NEOPIXEL_RGBW_LED)
1696
-  #define NEOPIXEL_PIN    4       // D4 (EXP2-5 on Printrboard)
1697
-  #define NEOPIXEL_PIXELS 3
1698
-  //#define NEOPIXEL_STARTUP_TEST // Cycle through colors at startup
1734
+//#define NEOPIXEL_LED
1735
+#if ENABLED(NEOPIXEL_LED)
1736
+  #define NEOPIXEL_TYPE   NEO_GRBW // NEO_GRBW / NEO_GRB - four/three channel driver type (definned in Adafruit_NeoPixel.h)
1737
+  #define NEOPIXEL_PIN    4        // LED driving pin on motherboard 4 => D4 (EXP2-5 on Printrboard) / 30 => PC7 (EXP3-13 on Rumba)
1738
+  #define NEOPIXEL_PIXELS 30       // Number of LEDs on strip
1739
+  #define NEOPIXEL_IS_SEQUENTIAL   // Sequent display for temperature change - LED by LED. Comment out for change all LED at time
1740
+  #define NEOPIXEL_BRIGHTNESS 127  // Initial brightness 0-255
1741
+  //#define NEOPIXEL_STARTUP_TEST  // Cycle through colors at startup
1699 1742
 #endif
1700 1743
 
1701 1744
 /**

+ 52
- 39
Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h View File

@@ -222,7 +222,7 @@
222 222
 
223 223
 /**
224 224
  * Part-Cooling Fan Multiplexer
225
- * 
225
+ *
226 226
  * This feature allows you to digitally multiplex the fan output.
227 227
  * The multiplexer is automatically switched at tool-change.
228 228
  * Set FANMUX[012]_PINs below for up to 2, 4, or 8 multiplexed fans.
@@ -512,7 +512,7 @@
512 512
 
513 513
   // SD Card Sorting options
514 514
   #if ENABLED(SDCARD_SORT_ALPHA)
515
-    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256).
515
+    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256). Costs 27 bytes each.
516 516
     #define FOLDER_SORTING     -1     // -1=above  0=none  1=below
517 517
     #define SDSORT_GCODE       false  // Allow turning sorting on/off with LCD and M34 g-code.
518 518
     #define SDSORT_USES_RAM    false  // Pre-allocate a static array for faster pre-sorting.
@@ -603,31 +603,19 @@
603 603
  */
604 604
 //#define BABYSTEPPING
605 605
 #if ENABLED(BABYSTEPPING)
606
-  #define BABYSTEP_XY              // Also enable X/Y Babystepping. Not supported on DELTA!
607
-  #define BABYSTEP_INVERT_Z false  // Change if Z babysteps should go the other way
608
-  #define BABYSTEP_MULTIPLICATOR 1 // Babysteps are very small. Increase for faster motion.
609
-  //#define BABYSTEP_ZPROBE_OFFSET // Enable to combine M851 and Babystepping
606
+  //#define BABYSTEP_XY              // Also enable X/Y Babystepping. Not supported on DELTA!
607
+  #define BABYSTEP_INVERT_Z false    // Change if Z babysteps should go the other way
608
+  #define BABYSTEP_MULTIPLICATOR 100 // Babysteps are very small. Increase for faster motion.
609
+  //#define BABYSTEP_ZPROBE_OFFSET   // Enable to combine M851 and Babystepping
610 610
   //#define DOUBLECLICK_FOR_Z_BABYSTEPPING // Double-click on the Status Screen for Z Babystepping.
611 611
   #define DOUBLECLICK_MAX_INTERVAL 1250 // Maximum interval between clicks, in milliseconds.
612 612
                                         // Note: Extra time may be added to mitigate controller latency.
613
+  //#define BABYSTEP_ZPROBE_GFX_OVERLAY // Enable graphical overlay on Z-offset editor
614
+  //#define BABYSTEP_ZPROBE_GFX_REVERSE // Reverses the direction of the CW/CCW indicators
613 615
 #endif
614 616
 
615 617
 // @section extruder
616 618
 
617
-// extruder advance constant (s2/mm3)
618
-//
619
-// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
620
-//
621
-// Hooke's law says:    force = k * distance
622
-// Bernoulli's principle says:  v ^ 2 / 2 + g . h + pressure / density = constant
623
-// so: v ^ 2 is proportional to number of steps we advance the extruder
624
-//#define ADVANCE
625
-
626
-#if ENABLED(ADVANCE)
627
-  #define EXTRUDER_ADVANCE_K .0
628
-  #define D_FILAMENT 2.85
629
-#endif
630
-
631 619
 /**
632 620
  * Implementation of linear pressure control
633 621
  *
@@ -744,7 +732,7 @@
744 732
 #define MAX_CMD_SIZE 96
745 733
 #define BUFSIZE 4
746 734
 
747
-// Transfer Buffer Size
735
+// Transmission to Host Buffer Size
748 736
 // To save 386 bytes of PROGMEM (and TX_BUFFER_SIZE+3 bytes of RAM) set to 0.
749 737
 // To buffer a simple "ok" you need 4 bytes.
750 738
 // For ADVANCED_OK (M105) you need 32 bytes.
@@ -753,6 +741,28 @@
753 741
 // :[0, 2, 4, 8, 16, 32, 64, 128, 256]
754 742
 #define TX_BUFFER_SIZE 0
755 743
 
744
+// Host Receive Buffer Size
745
+// Without XON/XOFF flow control (see SERIAL_XON_XOFF below) 32 bytes should be enough.
746
+// To use flow control, set this buffer size to at least 1024 bytes.
747
+// :[0, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048]
748
+//#define RX_BUFFER_SIZE 1024
749
+
750
+#if RX_BUFFER_SIZE >= 1024
751
+  // Enable to have the controller send XON/XOFF control characters to
752
+  // the host to signal the RX buffer is becoming full.
753
+  //#define SERIAL_XON_XOFF
754
+#endif
755
+
756
+#if ENABLED(SDSUPPORT)
757
+  // Enable this option to collect and display the maximum
758
+  // RX queue usage after transferring a file to SD.
759
+  //#define SERIAL_STATS_MAX_RX_QUEUED
760
+
761
+  // Enable this option to collect and display the number
762
+  // of dropped bytes after a file transfer to SD.
763
+  //#define SERIAL_STATS_DROPPED_RX
764
+#endif
765
+
756 766
 // Enable an emergency-command parser to intercept certain commands as they
757 767
 // enter the serial receive buffer, so they cannot be blocked.
758 768
 // Currently handles M108, M112, M410
@@ -1276,6 +1286,7 @@
1276 1286
 #if ENABLED(CUSTOM_USER_MENUS)
1277 1287
   #define USER_SCRIPT_DONE "M117 User Script Done"
1278 1288
   #define USER_SCRIPT_AUDIBLE_FEEDBACK
1289
+  //#define USER_SCRIPT_RETURN  // Return to status screen after a script
1279 1290
 
1280 1291
   #define USER_DESC_1 "Home & UBL Info"
1281 1292
   #define USER_GCODE_1 "G28\nG29 W"
@@ -1385,29 +1396,31 @@
1385 1396
 #endif // I2C_POSITION_ENCODERS
1386 1397
 
1387 1398
 /**
1388
-  * Debug LED's using an 8x8 LED Matrix driven by a Max7219 chip.   Fully assembled versions are available on
1389
-  * eBay for under $2.00 (including shipping) and only require 3 signal wires.
1390
-  *
1391
-  * Check out auctions similar to this: https://www.ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313&_nkw=332349290049&_sacat=0
1392
-  */
1393
-
1399
+ * MAX7219 Debug Matrix
1400
+ *
1401
+ * Add support for a low-cost 8x8 LED Matrix based on the Max7219 chip, which can be used as a status
1402
+ * display. Requires 3 signal wires. Some useful debug options are included to demonstrate its usage.
1403
+ *
1404
+ * Fully assembled MAX7219 boards can be found on the internet for under $2(US).
1405
+ * For example, see https://www.ebay.com/sch/i.html?_nkw=332349290049
1406
+ */
1394 1407
 //#define MAX7219_DEBUG
1395 1408
 #if ENABLED(MAX7219_DEBUG)
1396
-  #define Max7219_clock   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display
1397
-  #define Max7219_data_in 57  // 78 on Re-ARM
1398
-  #define Max7219_load    44  // 79 on Re-ARM
1409
+  #define MAX7219_CLK_PIN   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display
1410
+  #define MAX7219_DIN_PIN   57  // 78 on Re-ARM
1411
+  #define MAX7219_LOAD_PIN  44  // 79 on Re-ARM
1399 1412
 
1400
-  /*
1401
-   * These are sample debug features that can be turned on and configured for your use.
1402
-   * The developer will need to manage the use of the various LED's in the 8x8 matrix to avoid conflicts.
1413
+  /**
1414
+   * Sample debug features
1415
+   * If you add more debug displays, be careful to avoid conflicts!
1403 1416
    */
1404
-  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix from idle() routine if firmware is functioning
1405
-  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Display row position of stepper queue head on this line and the next line of LED matrix
1406
-  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Display row position of stepper queue tail on this line and the next line of LED matrix
1417
+  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix to show that the firmware is functioning
1418
+  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Show the stepper queue head position on this and the next LED matrix row
1419
+  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Show the stepper queue tail position on this and the next LED matrix row
1407 1420
 
1408
-  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Display row position of stepper queue depth on this line and the next line of LED matrix
1409
-                                         // If you have stuttering on your Delta printer, this option may help you understand how
1410
-                                         // various tweaks you make to your configuration are affecting the printer.
1421
+  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Show the current stepper queue depth on this and the next LED matrix row
1422
+                                         // If you experience stuttering, reboots, etc. this option can reveal how
1423
+                                         // tweaks made to the configuration are affecting the printer in real-time.
1411 1424
 #endif
1412 1425
 
1413 1426
 #endif // CONFIGURATION_ADV_H

+ 51
- 8
Marlin/example_configurations/delta/kossel_pro/Configuration.h View File

@@ -111,8 +111,9 @@
111 111
  *
112 112
  * 250000 works in most cases, but you might try a lower speed if
113 113
  * you commonly experience drop-outs during host printing.
114
+ * You may try up to 1000000 to speed up SD file transfer.
114 115
  *
115
- * :[2400, 9600, 19200, 38400, 57600, 115200, 250000]
116
+ * :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000]
116 117
  */
117 118
 #define BAUDRATE 115200
118 119
 
@@ -873,6 +874,8 @@
873 874
 
874 875
 // @section homing
875 876
 
877
+//#define NO_MOTION_BEFORE_HOMING  // Inhibit movement until all axes have been homed
878
+
876 879
 //#define Z_HOMING_HEIGHT 4  // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
877 880
                              // Be sure you have this distance over your Z_MAX_POS in case.
878 881
 
@@ -1075,9 +1078,11 @@
1075 1078
 #if ENABLED(LCD_BED_LEVELING)
1076 1079
   #define MBL_Z_STEP 0.025    // Step size while manually probing Z axis.
1077 1080
   #define LCD_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
1078
-  #define LEVEL_BED_CORNERS   // Add an option to move between corners
1079 1081
 #endif
1080 1082
 
1083
+// Add a menu item to move between bed corners for manual bed adjustment
1084
+//#define LEVEL_BED_CORNERS
1085
+
1081 1086
 /**
1082 1087
  * Commands to execute at the end of G29 probing.
1083 1088
  * Useful to retract or move the Z probe out of the way.
@@ -1317,7 +1322,7 @@
1317 1322
  *  - Click the controller to view the LCD menu
1318 1323
  *  - The LCD will display Japanese, Western, or Cyrillic text
1319 1324
  *
1320
- * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
1325
+ * See http://marlinfw.org/docs/development/lcd_language.html
1321 1326
  *
1322 1327
  * :['JAPANESE', 'WESTERN', 'CYRILLIC']
1323 1328
  */
@@ -1617,6 +1622,35 @@
1617 1622
 //
1618 1623
 //#define OLED_PANEL_TINYBOY2
1619 1624
 
1625
+//
1626
+// Makeboard 3D Printer Parts 3D Printer Mini Display 1602 Mini Controller
1627
+// https://www.aliexpress.com/item/Micromake-Makeboard-3D-Printer-Parts-3D-Printer-Mini-Display-1602-Mini-Controller-Compatible-with-Ramps-1/32765887917.html
1628
+//
1629
+//#define MAKEBOARD_MINI_2_LINE_DISPLAY_1602
1630
+
1631
+//
1632
+// MKS MINI12864 with graphic controller and SD support
1633
+// http://reprap.org/wiki/MKS_MINI_12864
1634
+//
1635
+//#define MKS_MINI_12864
1636
+
1637
+//
1638
+// Factory display for Creality CR-10
1639
+// https://www.aliexpress.com/item/Universal-LCD-12864-3D-Printer-Display-Screen-With-Encoder-For-CR-10-CR-7-Model/32833148327.html
1640
+//
1641
+// This is RAMPS-compatible using a single 10-pin connector.
1642
+// (For CR-10 owners who want to replace the Melzi Creality board but retain the display)
1643
+//
1644
+//#define CR10_STOCKDISPLAY
1645
+
1646
+//
1647
+// MKS OLED 1.3" 128 × 64 FULL GRAPHICS CONTROLLER
1648
+// http://reprap.org/wiki/MKS_12864OLED
1649
+//
1650
+// Tiny, but very sharp OLED display
1651
+//
1652
+//#define MKS_12864OLED
1653
+
1620 1654
 //=============================================================================
1621 1655
 //=============================== Extra Features ==============================
1622 1656
 //=============================================================================
@@ -1673,16 +1707,22 @@
1673 1707
  * Adds the M150 command to set the LED (or LED strip) color.
1674 1708
  * If pins are PWM capable (e.g., 4, 5, 6, 11) then a range of
1675 1709
  * luminance values can be set from 0 to 255.
1710
+ * For Neopixel LED overall brightness parameters is also available 
1676 1711
  *
1677 1712
  * *** CAUTION ***
1678 1713
  *  LED Strips require a MOFSET Chip between PWM lines and LEDs,
1679 1714
  *  as the Arduino cannot handle the current the LEDs will require.
1680 1715
  *  Failure to follow this precaution can destroy your Arduino!
1716
+ *  The Neopixel LED is 5V powered, but linear 5V regulator on Arduino
1717
+ *  cannot handle such current, separate 5V power supply must be used
1681 1718
  * *** CAUTION ***
1682 1719
  *
1720
+ * LED type. This options are mutualy exclusive. Uncomment only one.
1721
+ *
1683 1722
  */
1684 1723
 //#define RGB_LED
1685 1724
 //#define RGBW_LED
1725
+
1686 1726
 #if ENABLED(RGB_LED) || ENABLED(RGBW_LED)
1687 1727
   #define RGB_LED_R_PIN 34
1688 1728
   #define RGB_LED_G_PIN 43
@@ -1691,11 +1731,14 @@
1691 1731
 #endif
1692 1732
 
1693 1733
 // Support for Adafruit Neopixel LED driver
1694
-//#define NEOPIXEL_RGBW_LED
1695
-#if ENABLED(NEOPIXEL_RGBW_LED)
1696
-  #define NEOPIXEL_PIN    4       // D4 (EXP2-5 on Printrboard)
1697
-  #define NEOPIXEL_PIXELS 3
1698
-  //#define NEOPIXEL_STARTUP_TEST // Cycle through colors at startup
1734
+//#define NEOPIXEL_LED
1735
+#if ENABLED(NEOPIXEL_LED)
1736
+  #define NEOPIXEL_TYPE   NEO_GRBW // NEO_GRBW / NEO_GRB - four/three channel driver type (definned in Adafruit_NeoPixel.h)
1737
+  #define NEOPIXEL_PIN    4        // LED driving pin on motherboard 4 => D4 (EXP2-5 on Printrboard) / 30 => PC7 (EXP3-13 on Rumba)
1738
+  #define NEOPIXEL_PIXELS 30       // Number of LEDs on strip
1739
+  #define NEOPIXEL_IS_SEQUENTIAL   // Sequent display for temperature change - LED by LED. Comment out for change all LED at time
1740
+  #define NEOPIXEL_BRIGHTNESS 127  // Initial brightness 0-255
1741
+  //#define NEOPIXEL_STARTUP_TEST  // Cycle through colors at startup
1699 1742
 #endif
1700 1743
 
1701 1744
 /**

+ 52
- 39
Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h View File

@@ -227,7 +227,7 @@
227 227
 
228 228
 /**
229 229
  * Part-Cooling Fan Multiplexer
230
- * 
230
+ *
231 231
  * This feature allows you to digitally multiplex the fan output.
232 232
  * The multiplexer is automatically switched at tool-change.
233 233
  * Set FANMUX[012]_PINs below for up to 2, 4, or 8 multiplexed fans.
@@ -517,7 +517,7 @@
517 517
 
518 518
   // SD Card Sorting options
519 519
   #if ENABLED(SDCARD_SORT_ALPHA)
520
-    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256).
520
+    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256). Costs 27 bytes each.
521 521
     #define FOLDER_SORTING     -1     // -1=above  0=none  1=below
522 522
     #define SDSORT_GCODE       false  // Allow turning sorting on/off with LCD and M34 g-code.
523 523
     #define SDSORT_USES_RAM    false  // Pre-allocate a static array for faster pre-sorting.
@@ -608,31 +608,19 @@
608 608
  */
609 609
 //#define BABYSTEPPING
610 610
 #if ENABLED(BABYSTEPPING)
611
-  #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
613
-  #define BABYSTEP_MULTIPLICATOR 1 // Babysteps are very small. Increase for faster motion.
614
-  //#define BABYSTEP_ZPROBE_OFFSET // Enable to combine M851 and Babystepping
611
+  //#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
613
+  #define BABYSTEP_MULTIPLICATOR 100 // Babysteps are very small. Increase for faster motion.
614
+  //#define BABYSTEP_ZPROBE_OFFSET   // Enable to combine M851 and Babystepping
615 615
   //#define DOUBLECLICK_FOR_Z_BABYSTEPPING // Double-click on the Status Screen for Z Babystepping.
616 616
   #define DOUBLECLICK_MAX_INTERVAL 1250 // Maximum interval between clicks, in milliseconds.
617 617
                                         // Note: Extra time may be added to mitigate controller latency.
618
+  //#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
618 620
 #endif
619 621
 
620 622
 // @section extruder
621 623
 
622
-// extruder advance constant (s2/mm3)
623
-//
624
-// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
625
-//
626
-// Hooke's law says:    force = k * distance
627
-// Bernoulli's principle says:  v ^ 2 / 2 + g . h + pressure / density = constant
628
-// so: v ^ 2 is proportional to number of steps we advance the extruder
629
-//#define ADVANCE
630
-
631
-#if ENABLED(ADVANCE)
632
-  #define EXTRUDER_ADVANCE_K .0
633
-  #define D_FILAMENT 2.85
634
-#endif
635
-
636 624
 /**
637 625
  * Implementation of linear pressure control
638 626
  *
@@ -749,7 +737,7 @@
749 737
 #define MAX_CMD_SIZE 96
750 738
 #define BUFSIZE 4
751 739
 
752
-// Transfer Buffer Size
740
+// Transmission to Host Buffer Size
753 741
 // To save 386 bytes of PROGMEM (and TX_BUFFER_SIZE+3 bytes of RAM) set to 0.
754 742
 // To buffer a simple "ok" you need 4 bytes.
755 743
 // For ADVANCED_OK (M105) you need 32 bytes.
@@ -758,6 +746,28 @@
758 746
 // :[0, 2, 4, 8, 16, 32, 64, 128, 256]
759 747
 #define TX_BUFFER_SIZE 0
760 748
 
749
+// Host Receive Buffer Size
750
+// Without XON/XOFF flow control (see SERIAL_XON_XOFF below) 32 bytes should be enough.
751
+// To use flow control, set this buffer size to at least 1024 bytes.
752
+// :[0, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048]
753
+//#define RX_BUFFER_SIZE 1024
754
+
755
+#if RX_BUFFER_SIZE >= 1024
756
+  // Enable to have the controller send XON/XOFF control characters to
757
+  // the host to signal the RX buffer is becoming full.
758
+  //#define SERIAL_XON_XOFF
759
+#endif
760
+
761
+#if ENABLED(SDSUPPORT)
762
+  // Enable this option to collect and display the maximum
763
+  // RX queue usage after transferring a file to SD.
764
+  //#define SERIAL_STATS_MAX_RX_QUEUED
765
+
766
+  // Enable this option to collect and display the number
767
+  // of dropped bytes after a file transfer to SD.
768
+  //#define SERIAL_STATS_DROPPED_RX
769
+#endif
770
+
761 771
 // Enable an emergency-command parser to intercept certain commands as they
762 772
 // enter the serial receive buffer, so they cannot be blocked.
763 773
 // Currently handles M108, M112, M410
@@ -1281,6 +1291,7 @@
1281 1291
 #if ENABLED(CUSTOM_USER_MENUS)
1282 1292
   #define USER_SCRIPT_DONE "M117 User Script Done"
1283 1293
   #define USER_SCRIPT_AUDIBLE_FEEDBACK
1294
+  //#define USER_SCRIPT_RETURN  // Return to status screen after a script
1284 1295
 
1285 1296
   #define USER_DESC_1 "Home & UBL Info"
1286 1297
   #define USER_GCODE_1 "G28\nG29 W"
@@ -1390,29 +1401,31 @@
1390 1401
 #endif // I2C_POSITION_ENCODERS
1391 1402
 
1392 1403
 /**
1393
-  * Debug LED's using an 8x8 LED Matrix driven by a Max7219 chip.   Fully assembled versions are available on
1394
-  * eBay for under $2.00 (including shipping) and only require 3 signal wires.
1395
-  *
1396
-  * Check out auctions similar to this: https://www.ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313&_nkw=332349290049&_sacat=0
1397
-  */
1398
-
1404
+ * MAX7219 Debug Matrix
1405
+ *
1406
+ * Add support for a low-cost 8x8 LED Matrix based on the Max7219 chip, which can be used as a status
1407
+ * display. Requires 3 signal wires. Some useful debug options are included to demonstrate its usage.
1408
+ *
1409
+ * Fully assembled MAX7219 boards can be found on the internet for under $2(US).
1410
+ * For example, see https://www.ebay.com/sch/i.html?_nkw=332349290049
1411
+ */
1399 1412
 //#define MAX7219_DEBUG
1400 1413
 #if ENABLED(MAX7219_DEBUG)
1401
-  #define Max7219_clock   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display
1402
-  #define Max7219_data_in 57  // 78 on Re-ARM
1403
-  #define Max7219_load    44  // 79 on Re-ARM
1414
+  #define MAX7219_CLK_PIN   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display
1415
+  #define MAX7219_DIN_PIN   57  // 78 on Re-ARM
1416
+  #define MAX7219_LOAD_PIN  44  // 79 on Re-ARM
1404 1417
 
1405
-  /*
1406
-   * These are sample debug features that can be turned on and configured for your use.
1407
-   * The developer will need to manage the use of the various LED's in the 8x8 matrix to avoid conflicts.
1418
+  /**
1419
+   * Sample debug features
1420
+   * If you add more debug displays, be careful to avoid conflicts!
1408 1421
    */
1409
-  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix from idle() routine if firmware is functioning
1410
-  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Display row position of stepper queue head on this line and the next line of LED matrix
1411
-  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Display row position of stepper queue tail on this line and the next line of LED matrix
1422
+  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix to show that the firmware is functioning
1423
+  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Show the stepper queue head position on this and the next LED matrix row
1424
+  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Show the stepper queue tail position on this and the next LED matrix row
1412 1425
 
1413
-  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Display row position of stepper queue depth on this line and the next line of LED matrix
1414
-                                         // If you have stuttering on your Delta printer, this option may help you understand how
1415
-                                         // various tweaks you make to your configuration are affecting the printer.
1426
+  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Show the current stepper queue depth on this and the next LED matrix row
1427
+                                         // If you experience stuttering, reboots, etc. this option can reveal how
1428
+                                         // tweaks made to the configuration are affecting the printer in real-time.
1416 1429
 #endif
1417 1430
 
1418 1431
 #endif // CONFIGURATION_ADV_H

+ 51
- 8
Marlin/example_configurations/delta/kossel_xl/Configuration.h View File

@@ -107,8 +107,9 @@
107 107
  *
108 108
  * 250000 works in most cases, but you might try a lower speed if
109 109
  * you commonly experience drop-outs during host printing.
110
+ * You may try up to 1000000 to speed up SD file transfer.
110 111
  *
111
- * :[2400, 9600, 19200, 38400, 57600, 115200, 250000]
112
+ * :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000]
112 113
  */
113 114
 #define BAUDRATE 250000
114 115
 
@@ -882,6 +883,8 @@
882 883
 
883 884
 // @section homing
884 885
 
886
+//#define NO_MOTION_BEFORE_HOMING  // Inhibit movement until all axes have been homed
887
+
885 888
 //#define Z_HOMING_HEIGHT 4  // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
886 889
                              // Be sure you have this distance over your Z_MAX_POS in case.
887 890
 
@@ -1084,9 +1087,11 @@
1084 1087
 #if ENABLED(LCD_BED_LEVELING)
1085 1088
   #define MBL_Z_STEP 0.025    // Step size while manually probing Z axis.
1086 1089
   #define LCD_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
1087
-  #define LEVEL_BED_CORNERS   // Add an option to move between corners
1088 1090
 #endif
1089 1091
 
1092
+// Add a menu item to move between bed corners for manual bed adjustment
1093
+//#define LEVEL_BED_CORNERS
1094
+
1090 1095
 /**
1091 1096
  * Commands to execute at the end of G29 probing.
1092 1097
  * Useful to retract or move the Z probe out of the way.
@@ -1326,7 +1331,7 @@
1326 1331
  *  - Click the controller to view the LCD menu
1327 1332
  *  - The LCD will display Japanese, Western, or Cyrillic text
1328 1333
  *
1329
- * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
1334
+ * See http://marlinfw.org/docs/development/lcd_language.html
1330 1335
  *
1331 1336
  * :['JAPANESE', 'WESTERN', 'CYRILLIC']
1332 1337
  */
@@ -1626,6 +1631,35 @@
1626 1631
 //
1627 1632
 //#define OLED_PANEL_TINYBOY2
1628 1633
 
1634
+//
1635
+// Makeboard 3D Printer Parts 3D Printer Mini Display 1602 Mini Controller
1636
+// https://www.aliexpress.com/item/Micromake-Makeboard-3D-Printer-Parts-3D-Printer-Mini-Display-1602-Mini-Controller-Compatible-with-Ramps-1/32765887917.html
1637
+//
1638
+//#define MAKEBOARD_MINI_2_LINE_DISPLAY_1602
1639
+
1640
+//
1641
+// MKS MINI12864 with graphic controller and SD support
1642
+// http://reprap.org/wiki/MKS_MINI_12864
1643
+//
1644
+//#define MKS_MINI_12864
1645
+
1646
+//
1647
+// Factory display for Creality CR-10
1648
+// https://www.aliexpress.com/item/Universal-LCD-12864-3D-Printer-Display-Screen-With-Encoder-For-CR-10-CR-7-Model/32833148327.html
1649
+//
1650
+// This is RAMPS-compatible using a single 10-pin connector.
1651
+// (For CR-10 owners who want to replace the Melzi Creality board but retain the display)
1652
+//
1653
+//#define CR10_STOCKDISPLAY
1654
+
1655
+//
1656
+// MKS OLED 1.3" 128 × 64 FULL GRAPHICS CONTROLLER
1657
+// http://reprap.org/wiki/MKS_12864OLED
1658
+//
1659
+// Tiny, but very sharp OLED display
1660
+//
1661
+//#define MKS_12864OLED
1662
+
1629 1663
 //=============================================================================
1630 1664
 //=============================== Extra Features ==============================
1631 1665
 //=============================================================================
@@ -1682,16 +1716,22 @@
1682 1716
  * Adds the M150 command to set the LED (or LED strip) color.
1683 1717
  * If pins are PWM capable (e.g., 4, 5, 6, 11) then a range of
1684 1718
  * luminance values can be set from 0 to 255.
1719
+ * For Neopixel LED overall brightness parameters is also available 
1685 1720
  *
1686 1721
  * *** CAUTION ***
1687 1722
  *  LED Strips require a MOFSET Chip between PWM lines and LEDs,
1688 1723
  *  as the Arduino cannot handle the current the LEDs will require.
1689 1724
  *  Failure to follow this precaution can destroy your Arduino!
1725
+ *  The Neopixel LED is 5V powered, but linear 5V regulator on Arduino
1726
+ *  cannot handle such current, separate 5V power supply must be used
1690 1727
  * *** CAUTION ***
1691 1728
  *
1729
+ * LED type. This options are mutualy exclusive. Uncomment only one.
1730
+ *
1692 1731
  */
1693 1732
 //#define RGB_LED
1694 1733
 //#define RGBW_LED
1734
+
1695 1735
 #if ENABLED(RGB_LED) || ENABLED(RGBW_LED)
1696 1736
   #define RGB_LED_R_PIN 34
1697 1737
   #define RGB_LED_G_PIN 43
@@ -1700,11 +1740,14 @@
1700 1740
 #endif
1701 1741
 
1702 1742
 // Support for Adafruit Neopixel LED driver
1703
-//#define NEOPIXEL_RGBW_LED
1704
-#if ENABLED(NEOPIXEL_RGBW_LED)
1705
-  #define NEOPIXEL_PIN    4       // D4 (EXP2-5 on Printrboard)
1706
-  #define NEOPIXEL_PIXELS 3
1707
-  //#define NEOPIXEL_STARTUP_TEST // Cycle through colors at startup
1743
+//#define NEOPIXEL_LED
1744
+#if ENABLED(NEOPIXEL_LED)
1745
+  #define NEOPIXEL_TYPE   NEO_GRBW // NEO_GRBW / NEO_GRB - four/three channel driver type (definned in Adafruit_NeoPixel.h)
1746
+  #define NEOPIXEL_PIN    4        // LED driving pin on motherboard 4 => D4 (EXP2-5 on Printrboard) / 30 => PC7 (EXP3-13 on Rumba)
1747
+  #define NEOPIXEL_PIXELS 30       // Number of LEDs on strip
1748
+  #define NEOPIXEL_IS_SEQUENTIAL   // Sequent display for temperature change - LED by LED. Comment out for change all LED at time
1749
+  #define NEOPIXEL_BRIGHTNESS 127  // Initial brightness 0-255
1750
+  //#define NEOPIXEL_STARTUP_TEST  // Cycle through colors at startup
1708 1751
 #endif
1709 1752
 
1710 1753
 /**

+ 52
- 39
Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h View File

@@ -222,7 +222,7 @@
222 222
 
223 223
 /**
224 224
  * Part-Cooling Fan Multiplexer
225
- * 
225
+ *
226 226
  * This feature allows you to digitally multiplex the fan output.
227 227
  * The multiplexer is automatically switched at tool-change.
228 228
  * Set FANMUX[012]_PINs below for up to 2, 4, or 8 multiplexed fans.
@@ -512,7 +512,7 @@
512 512
 
513 513
   // SD Card Sorting options
514 514
   #if ENABLED(SDCARD_SORT_ALPHA)
515
-    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256).
515
+    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256). Costs 27 bytes each.
516 516
     #define FOLDER_SORTING     -1     // -1=above  0=none  1=below
517 517
     #define SDSORT_GCODE       false  // Allow turning sorting on/off with LCD and M34 g-code.
518 518
     #define SDSORT_USES_RAM    false  // Pre-allocate a static array for faster pre-sorting.
@@ -603,31 +603,19 @@
603 603
  */
604 604
 //#define BABYSTEPPING
605 605
 #if ENABLED(BABYSTEPPING)
606
-  #define BABYSTEP_XY              // Also enable X/Y Babystepping. Not supported on DELTA!
607
-  #define BABYSTEP_INVERT_Z false  // Change if Z babysteps should go the other way
608
-  #define BABYSTEP_MULTIPLICATOR 1 // Babysteps are very small. Increase for faster motion.
609
-  //#define BABYSTEP_ZPROBE_OFFSET // Enable to combine M851 and Babystepping
606
+  //#define BABYSTEP_XY              // Also enable X/Y Babystepping. Not supported on DELTA!
607
+  #define BABYSTEP_INVERT_Z false    // Change if Z babysteps should go the other way
608
+  #define BABYSTEP_MULTIPLICATOR 100 // Babysteps are very small. Increase for faster motion.
609
+  //#define BABYSTEP_ZPROBE_OFFSET   // Enable to combine M851 and Babystepping
610 610
   //#define DOUBLECLICK_FOR_Z_BABYSTEPPING // Double-click on the Status Screen for Z Babystepping.
611 611
   #define DOUBLECLICK_MAX_INTERVAL 1250 // Maximum interval between clicks, in milliseconds.
612 612
                                         // Note: Extra time may be added to mitigate controller latency.
613
+  //#define BABYSTEP_ZPROBE_GFX_OVERLAY // Enable graphical overlay on Z-offset editor
614
+  //#define BABYSTEP_ZPROBE_GFX_REVERSE // Reverses the direction of the CW/CCW indicators
613 615
 #endif
614 616
 
615 617
 // @section extruder
616 618
 
617
-// extruder advance constant (s2/mm3)
618
-//
619
-// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
620
-//
621
-// Hooke's law says:    force = k * distance
622
-// Bernoulli's principle says:  v ^ 2 / 2 + g . h + pressure / density = constant
623
-// so: v ^ 2 is proportional to number of steps we advance the extruder
624
-//#define ADVANCE
625
-
626
-#if ENABLED(ADVANCE)
627
-  #define EXTRUDER_ADVANCE_K .0
628
-  #define D_FILAMENT 2.85
629
-#endif
630
-
631 619
 /**
632 620
  * Implementation of linear pressure control
633 621
  *
@@ -744,7 +732,7 @@
744 732
 #define MAX_CMD_SIZE 96
745 733
 #define BUFSIZE 4
746 734
 
747
-// Transfer Buffer Size
735
+// Transmission to Host Buffer Size
748 736
 // To save 386 bytes of PROGMEM (and TX_BUFFER_SIZE+3 bytes of RAM) set to 0.
749 737
 // To buffer a simple "ok" you need 4 bytes.
750 738
 // For ADVANCED_OK (M105) you need 32 bytes.
@@ -753,6 +741,28 @@
753 741
 // :[0, 2, 4, 8, 16, 32, 64, 128, 256]
754 742
 #define TX_BUFFER_SIZE 0
755 743
 
744
+// Host Receive Buffer Size
745
+// Without XON/XOFF flow control (see SERIAL_XON_XOFF below) 32 bytes should be enough.
746
+// To use flow control, set this buffer size to at least 1024 bytes.
747
+// :[0, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048]
748
+//#define RX_BUFFER_SIZE 1024
749
+
750
+#if RX_BUFFER_SIZE >= 1024
751
+  // Enable to have the controller send XON/XOFF control characters to
752
+  // the host to signal the RX buffer is becoming full.
753
+  //#define SERIAL_XON_XOFF
754
+#endif
755
+
756
+#if ENABLED(SDSUPPORT)
757
+  // Enable this option to collect and display the maximum
758
+  // RX queue usage after transferring a file to SD.
759
+  //#define SERIAL_STATS_MAX_RX_QUEUED
760
+
761
+  // Enable this option to collect and display the number
762
+  // of dropped bytes after a file transfer to SD.
763
+  //#define SERIAL_STATS_DROPPED_RX
764
+#endif
765
+
756 766
 // Enable an emergency-command parser to intercept certain commands as they
757 767
 // enter the serial receive buffer, so they cannot be blocked.
758 768
 // Currently handles M108, M112, M410
@@ -1276,6 +1286,7 @@
1276 1286
 #if ENABLED(CUSTOM_USER_MENUS)
1277 1287
   #define USER_SCRIPT_DONE "M117 User Script Done"
1278 1288
   #define USER_SCRIPT_AUDIBLE_FEEDBACK
1289
+  //#define USER_SCRIPT_RETURN  // Return to status screen after a script
1279 1290
 
1280 1291
   #define USER_DESC_1 "Home & UBL Info"
1281 1292
   #define USER_GCODE_1 "G28\nG29 W"
@@ -1385,29 +1396,31 @@
1385 1396
 #endif // I2C_POSITION_ENCODERS
1386 1397
 
1387 1398
 /**
1388
-  * Debug LED's using an 8x8 LED Matrix driven by a Max7219 chip.   Fully assembled versions are available on
1389
-  * eBay for under $2.00 (including shipping) and only require 3 signal wires.
1390
-  *
1391
-  * Check out auctions similar to this: https://www.ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313&_nkw=332349290049&_sacat=0
1392
-  */
1393
-
1399
+ * MAX7219 Debug Matrix
1400
+ *
1401
+ * Add support for a low-cost 8x8 LED Matrix based on the Max7219 chip, which can be used as a status
1402
+ * display. Requires 3 signal wires. Some useful debug options are included to demonstrate its usage.
1403
+ *
1404
+ * Fully assembled MAX7219 boards can be found on the internet for under $2(US).
1405
+ * For example, see https://www.ebay.com/sch/i.html?_nkw=332349290049
1406
+ */
1394 1407
 //#define MAX7219_DEBUG
1395 1408
 #if ENABLED(MAX7219_DEBUG)
1396
-  #define Max7219_clock   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display
1397
-  #define Max7219_data_in 57  // 78 on Re-ARM
1398
-  #define Max7219_load    44  // 79 on Re-ARM
1409
+  #define MAX7219_CLK_PIN   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display
1410
+  #define MAX7219_DIN_PIN   57  // 78 on Re-ARM
1411
+  #define MAX7219_LOAD_PIN  44  // 79 on Re-ARM
1399 1412
 
1400
-  /*
1401
-   * These are sample debug features that can be turned on and configured for your use.
1402
-   * The developer will need to manage the use of the various LED's in the 8x8 matrix to avoid conflicts.
1413
+  /**
1414
+   * Sample debug features
1415
+   * If you add more debug displays, be careful to avoid conflicts!
1403 1416
    */
1404
-  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix from idle() routine if firmware is functioning
1405
-  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Display row position of stepper queue head on this line and the next line of LED matrix
1406
-  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Display row position of stepper queue tail on this line and the next line of LED matrix
1417
+  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix to show that the firmware is functioning
1418
+  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Show the stepper queue head position on this and the next LED matrix row
1419
+  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Show the stepper queue tail position on this and the next LED matrix row
1407 1420
 
1408
-  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Display row position of stepper queue depth on this line and the next line of LED matrix
1409
-                                         // If you have stuttering on your Delta printer, this option may help you understand how
1410
-                                         // various tweaks you make to your configuration are affecting the printer.
1421
+  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Show the current stepper queue depth on this and the next LED matrix row
1422
+                                         // If you experience stuttering, reboots, etc. this option can reveal how
1423
+                                         // tweaks made to the configuration are affecting the printer in real-time.
1411 1424
 #endif
1412 1425
 
1413 1426
 #endif // CONFIGURATION_ADV_H

+ 51
- 8
Marlin/example_configurations/gCreate/gMax1.5+/Configuration.h View File

@@ -107,8 +107,9 @@
107 107
  *
108 108
  * 250000 works in most cases, but you might try a lower speed if
109 109
  * you commonly experience drop-outs during host printing.
110
+ * You may try up to 1000000 to speed up SD file transfer.
110 111
  *
111
- * :[2400, 9600, 19200, 38400, 57600, 115200, 250000]
112
+ * :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000]
112 113
  */
113 114
 #define BAUDRATE 250000
114 115
 
@@ -772,6 +773,8 @@
772 773
 
773 774
 // @section homing
774 775
 
776
+//#define NO_MOTION_BEFORE_HOMING  // Inhibit movement until all axes have been homed
777
+
775 778
 #define Z_HOMING_HEIGHT 10   // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
776 779
                              // Be sure you have this distance over your Z_MAX_POS in case.
777 780
 
@@ -969,9 +972,11 @@
969 972
 #if ENABLED(LCD_BED_LEVELING)
970 973
   #define MBL_Z_STEP 0.025    // Step size while manually probing Z axis.
971 974
   #define LCD_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
972
-  #define LEVEL_BED_CORNERS   // Add an option to move between corners
973 975
 #endif
974 976
 
977
+// Add a menu item to move between bed corners for manual bed adjustment
978
+//#define LEVEL_BED_CORNERS
979
+
975 980
 /**
976 981
  * Commands to execute at the end of G29 probing.
977 982
  * Useful to retract or move the Z probe out of the way.
@@ -1212,7 +1217,7 @@
1212 1217
  *  - Click the controller to view the LCD menu
1213 1218
  *  - The LCD will display Japanese, Western, or Cyrillic text
1214 1219
  *
1215
- * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
1220
+ * See http://marlinfw.org/docs/development/lcd_language.html
1216 1221
  *
1217 1222
  * :['JAPANESE', 'WESTERN', 'CYRILLIC']
1218 1223
  */
@@ -1512,6 +1517,35 @@
1512 1517
 //
1513 1518
 //#define OLED_PANEL_TINYBOY2
1514 1519
 
1520
+//
1521
+// Makeboard 3D Printer Parts 3D Printer Mini Display 1602 Mini Controller
1522
+// https://www.aliexpress.com/item/Micromake-Makeboard-3D-Printer-Parts-3D-Printer-Mini-Display-1602-Mini-Controller-Compatible-with-Ramps-1/32765887917.html
1523
+//
1524
+//#define MAKEBOARD_MINI_2_LINE_DISPLAY_1602
1525
+
1526
+//
1527
+// MKS MINI12864 with graphic controller and SD support
1528
+// http://reprap.org/wiki/MKS_MINI_12864
1529
+//
1530
+//#define MKS_MINI_12864
1531
+
1532
+//
1533
+// Factory display for Creality CR-10
1534
+// https://www.aliexpress.com/item/Universal-LCD-12864-3D-Printer-Display-Screen-With-Encoder-For-CR-10-CR-7-Model/32833148327.html
1535
+//
1536
+// This is RAMPS-compatible using a single 10-pin connector.
1537
+// (For CR-10 owners who want to replace the Melzi Creality board but retain the display)
1538
+//
1539
+//#define CR10_STOCKDISPLAY
1540
+
1541
+//
1542
+// MKS OLED 1.3" 128 × 64 FULL GRAPHICS CONTROLLER
1543
+// http://reprap.org/wiki/MKS_12864OLED
1544
+//
1545
+// Tiny, but very sharp OLED display
1546
+//
1547
+//#define MKS_12864OLED
1548
+
1515 1549
 //=============================================================================
1516 1550
 //=============================== Extra Features ==============================
1517 1551
 //=============================================================================
@@ -1568,16 +1602,22 @@
1568 1602
  * Adds the M150 command to set the LED (or LED strip) color.
1569 1603
  * If pins are PWM capable (e.g., 4, 5, 6, 11) then a range of
1570 1604
  * luminance values can be set from 0 to 255.
1605
+ * For Neopixel LED overall brightness parameters is also available 
1571 1606
  *
1572 1607
  * *** CAUTION ***
1573 1608
  *  LED Strips require a MOFSET Chip between PWM lines and LEDs,
1574 1609
  *  as the Arduino cannot handle the current the LEDs will require.
1575 1610
  *  Failure to follow this precaution can destroy your Arduino!
1611
+ *  The Neopixel LED is 5V powered, but linear 5V regulator on Arduino
1612
+ *  cannot handle such current, separate 5V power supply must be used
1576 1613
  * *** CAUTION ***
1577 1614
  *
1615
+ * LED type. This options are mutualy exclusive. Uncomment only one.
1616
+ *
1578 1617
  */
1579 1618
 //#define RGB_LED
1580 1619
 //#define RGBW_LED
1620
+
1581 1621
 #if ENABLED(RGB_LED) || ENABLED(RGBW_LED)
1582 1622
   #define RGB_LED_R_PIN 34
1583 1623
   #define RGB_LED_G_PIN 43
@@ -1586,11 +1626,14 @@
1586 1626
 #endif
1587 1627
 
1588 1628
 // Support for Adafruit Neopixel LED driver
1589
-//#define NEOPIXEL_RGBW_LED
1590
-#if ENABLED(NEOPIXEL_RGBW_LED)
1591
-  #define NEOPIXEL_PIN    4       // D4 (EXP2-5 on Printrboard)
1592
-  #define NEOPIXEL_PIXELS 3
1593
-  //#define NEOPIXEL_STARTUP_TEST // Cycle through colors at startup
1629
+//#define NEOPIXEL_LED
1630
+#if ENABLED(NEOPIXEL_LED)
1631
+  #define NEOPIXEL_TYPE   NEO_GRBW // NEO_GRBW / NEO_GRB - four/three channel driver type (definned in Adafruit_NeoPixel.h)
1632
+  #define NEOPIXEL_PIN    4        // LED driving pin on motherboard 4 => D4 (EXP2-5 on Printrboard) / 30 => PC7 (EXP3-13 on Rumba)
1633
+  #define NEOPIXEL_PIXELS 30       // Number of LEDs on strip
1634
+  #define NEOPIXEL_IS_SEQUENTIAL   // Sequent display for temperature change - LED by LED. Comment out for change all LED at time
1635
+  #define NEOPIXEL_BRIGHTNESS 127  // Initial brightness 0-255
1636
+  //#define NEOPIXEL_STARTUP_TEST  // Cycle through colors at startup
1594 1637
 #endif
1595 1638
 
1596 1639
 /**

+ 49
- 35
Marlin/example_configurations/gCreate/gMax1.5+/Configuration_adv.h View File

@@ -222,7 +222,7 @@
222 222
 
223 223
 /**
224 224
  * Part-Cooling Fan Multiplexer
225
- * 
225
+ *
226 226
  * This feature allows you to digitally multiplex the fan output.
227 227
  * The multiplexer is automatically switched at tool-change.
228 228
  * Set FANMUX[012]_PINs below for up to 2, 4, or 8 multiplexed fans.
@@ -510,7 +510,7 @@
510 510
 
511 511
   // SD Card Sorting options
512 512
   #if ENABLED(SDCARD_SORT_ALPHA)
513
-    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256).
513
+    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256). Costs 27 bytes each.
514 514
     #define FOLDER_SORTING     -1     // -1=above  0=none  1=below
515 515
     #define SDSORT_GCODE       false  // Allow turning sorting on/off with LCD and M34 g-code.
516 516
     #define SDSORT_USES_RAM    false  // Pre-allocate a static array for faster pre-sorting.
@@ -601,31 +601,19 @@
601 601
  */
602 602
 #define BABYSTEPPING
603 603
 #if ENABLED(BABYSTEPPING)
604
-  #define BABYSTEP_XY              // Also enable X/Y Babystepping. Not supported on DELTA!
604
+  //#define BABYSTEP_XY            // Also enable X/Y Babystepping. Not supported on DELTA!
605 605
   #define BABYSTEP_INVERT_Z false  // Change if Z babysteps should go the other way
606 606
   #define BABYSTEP_MULTIPLICATOR 1 // Babysteps are very small. Increase for faster motion.
607 607
   //#define BABYSTEP_ZPROBE_OFFSET // Enable to combine M851 and Babystepping
608 608
   #define DOUBLECLICK_FOR_Z_BABYSTEPPING // Double-click on the Status Screen for Z Babystepping.
609 609
   #define DOUBLECLICK_MAX_INTERVAL 1250 // Maximum interval between clicks, in milliseconds.
610 610
                                         // Note: Extra time may be added to mitigate controller latency.
611
+  //#define BABYSTEP_ZPROBE_GFX_OVERLAY // Enable graphical overlay on Z-offset editor
612
+  //#define BABYSTEP_ZPROBE_GFX_REVERSE // Reverses the direction of the CW/CCW indicators
611 613
 #endif
612 614
 
613 615
 // @section extruder
614 616
 
615
-// extruder advance constant (s2/mm3)
616
-//
617
-// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
618
-//
619
-// Hooke's law says:    force = k * distance
620
-// Bernoulli's principle says:  v ^ 2 / 2 + g . h + pressure / density = constant
621
-// so: v ^ 2 is proportional to number of steps we advance the extruder
622
-//#define ADVANCE
623
-
624
-#if ENABLED(ADVANCE)
625
-  #define EXTRUDER_ADVANCE_K .0
626
-  #define D_FILAMENT 2.85
627
-#endif
628
-
629 617
 /**
630 618
  * Implementation of linear pressure control
631 619
  *
@@ -742,7 +730,7 @@
742 730
 #define MAX_CMD_SIZE 96
743 731
 #define BUFSIZE 4
744 732
 
745
-// Transfer Buffer Size
733
+// Transmission to Host Buffer Size
746 734
 // To save 386 bytes of PROGMEM (and TX_BUFFER_SIZE+3 bytes of RAM) set to 0.
747 735
 // To buffer a simple "ok" you need 4 bytes.
748 736
 // For ADVANCED_OK (M105) you need 32 bytes.
@@ -751,6 +739,28 @@
751 739
 // :[0, 2, 4, 8, 16, 32, 64, 128, 256]
752 740
 #define TX_BUFFER_SIZE 32
753 741
 
742
+// Host Receive Buffer Size
743
+// Without XON/XOFF flow control (see SERIAL_XON_XOFF below) 32 bytes should be enough.
744
+// To use flow control, set this buffer size to at least 1024 bytes.
745
+// :[0, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048]
746
+//#define RX_BUFFER_SIZE 1024
747
+
748
+#if RX_BUFFER_SIZE >= 1024
749
+  // Enable to have the controller send XON/XOFF control characters to
750
+  // the host to signal the RX buffer is becoming full.
751
+  //#define SERIAL_XON_XOFF
752
+#endif
753
+
754
+#if ENABLED(SDSUPPORT)
755
+  // Enable this option to collect and display the maximum
756
+  // RX queue usage after transferring a file to SD.
757
+  //#define SERIAL_STATS_MAX_RX_QUEUED
758
+
759
+  // Enable this option to collect and display the number
760
+  // of dropped bytes after a file transfer to SD.
761
+  //#define SERIAL_STATS_DROPPED_RX
762
+#endif
763
+
754 764
 // Enable an emergency-command parser to intercept certain commands as they
755 765
 // enter the serial receive buffer, so they cannot be blocked.
756 766
 // Currently handles M108, M112, M410
@@ -1274,6 +1284,7 @@
1274 1284
 #if ENABLED(CUSTOM_USER_MENUS)
1275 1285
   #define USER_SCRIPT_DONE "M117 User Script Done"
1276 1286
   #define USER_SCRIPT_AUDIBLE_FEEDBACK
1287
+  //#define USER_SCRIPT_RETURN  // Return to status screen after a script
1277 1288
 
1278 1289
   #define USER_DESC_1 "Home & UBL Info"
1279 1290
   #define USER_GCODE_1 "G28\nG29 W"
@@ -1383,29 +1394,32 @@
1383 1394
 #endif // I2C_POSITION_ENCODERS
1384 1395
 
1385 1396
 /**
1386
-  * Debug LED's using an 8x8 LED Matrix driven by a Max7219 chip.   Fully assembled versions are available on
1387
-  * eBay for under $2.00 (including shipping) and only require 3 signal wires.
1388
-  *
1389
-  * Check out auctions similar to this: https://www.ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313&_nkw=332349290049&_sacat=0
1390
-  */
1397
+ * MAX7219 Debug Matrix
1398
+ *
1399
+ * Add support for a low-cost 8x8 LED Matrix based on the Max7219 chip, which can be used as a status
1400
+ * display. Requires 3 signal wires. Some useful debug options are included to demonstrate its usage.
1401
+ *
1402
+ * Fully assembled MAX7219 boards can be found on the internet for under $2(US).
1403
+ * For example, see https://www.ebay.com/sch/i.html?_nkw=332349290049
1404
+ */
1391 1405
 
1392 1406
 #define MAX7219_DEBUG
1393 1407
 #if ENABLED(MAX7219_DEBUG)
1394
-  #define Max7219_clock   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display 
1395
-  #define Max7219_data_in 57  // 78 on Re-ARM
1396
-  #define Max7219_load    44  // 79 on Re-ARM
1408
+  #define MAX7219_CLK_PIN   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display
1409
+  #define MAX7219_DIN_PIN   57  // 78 on Re-ARM
1410
+  #define MAX7219_LOAD_PIN  44  // 79 on Re-ARM
1397 1411
 
1398
-  /*
1399
-   * These are sample debug features that can be turned on and configured for your use.
1400
-   * The developer will need to manage the use of the various LED's in the 8x8 matrix to avoid conflicts.
1412
+  /**
1413
+   * Sample debug features
1414
+   * If you add more debug displays, be careful to avoid conflicts!
1401 1415
    */
1402
-  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix from idle() routine if firmware is functioning
1403
-  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Display row position of stepper queue head on this line and the next line of LED matrix
1404
-  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Display row position of stepper queue tail on this line and the next line of LED matrix
1416
+  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix to show that the firmware is functioning
1417
+  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Show the stepper queue head position on this and the next LED matrix row
1418
+  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Show the stepper queue tail position on this and the next LED matrix row
1405 1419
 
1406
-  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Display row position of stepper queue depth on this line and the next line of LED matrix
1407
-                                         // If you have stuttering on your Delta printer, this option may help you understand how
1408
-                                         // various tweaks you make to your configuration are affecting the printer.
1420
+  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Show the current stepper queue depth on this and the next LED matrix row
1421
+                                         // If you experience stuttering, reboots, etc. this option can reveal how
1422
+                                         // tweaks made to the configuration are affecting the printer in real-time.
1409 1423
 #endif
1410 1424
 
1411 1425
 #endif // CONFIGURATION_ADV_H

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

@@ -107,8 +107,9 @@
107 107
  *
108 108
  * 250000 works in most cases, but you might try a lower speed if
109 109
  * you commonly experience drop-outs during host printing.
110
+ * You may try up to 1000000 to speed up SD file transfer.
110 111
  *
111
- * :[2400, 9600, 19200, 38400, 57600, 115200, 250000]
112
+ * :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000]
112 113
  */
113 114
 #define BAUDRATE 250000
114 115
 
@@ -762,6 +763,8 @@
762 763
 
763 764
 // @section homing
764 765
 
766
+//#define NO_MOTION_BEFORE_HOMING  // Inhibit movement until all axes have been homed
767
+
765 768
 //#define Z_HOMING_HEIGHT 4  // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
766 769
                              // Be sure you have this distance over your Z_MAX_POS in case.
767 770
 
@@ -958,9 +961,11 @@
958 961
 #if ENABLED(LCD_BED_LEVELING)
959 962
   #define MBL_Z_STEP 0.025    // Step size while manually probing Z axis.
960 963
   #define LCD_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
961
-  #define LEVEL_BED_CORNERS   // Add an option to move between corners
962 964
 #endif
963 965
 
966
+// Add a menu item to move between bed corners for manual bed adjustment
967
+//#define LEVEL_BED_CORNERS
968
+
964 969
 /**
965 970
  * Commands to execute at the end of G29 probing.
966 971
  * Useful to retract or move the Z probe out of the way.
@@ -1201,7 +1206,7 @@
1201 1206
  *  - Click the controller to view the LCD menu
1202 1207
  *  - The LCD will display Japanese, Western, or Cyrillic text
1203 1208
  *
1204
- * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
1209
+ * See http://marlinfw.org/docs/development/lcd_language.html
1205 1210
  *
1206 1211
  * :['JAPANESE', 'WESTERN', 'CYRILLIC']
1207 1212
  */
@@ -1501,6 +1506,35 @@
1501 1506
 //
1502 1507
 //#define OLED_PANEL_TINYBOY2
1503 1508
 
1509
+//
1510
+// Makeboard 3D Printer Parts 3D Printer Mini Display 1602 Mini Controller
1511
+// https://www.aliexpress.com/item/Micromake-Makeboard-3D-Printer-Parts-3D-Printer-Mini-Display-1602-Mini-Controller-Compatible-with-Ramps-1/32765887917.html
1512
+//
1513
+//#define MAKEBOARD_MINI_2_LINE_DISPLAY_1602
1514
+
1515
+//
1516
+// MKS MINI12864 with graphic controller and SD support
1517
+// http://reprap.org/wiki/MKS_MINI_12864
1518
+//
1519
+//#define MKS_MINI_12864
1520
+
1521
+//
1522
+// Factory display for Creality CR-10
1523
+// https://www.aliexpress.com/item/Universal-LCD-12864-3D-Printer-Display-Screen-With-Encoder-For-CR-10-CR-7-Model/32833148327.html
1524
+//
1525
+// This is RAMPS-compatible using a single 10-pin connector.
1526
+// (For CR-10 owners who want to replace the Melzi Creality board but retain the display)
1527
+//
1528
+//#define CR10_STOCKDISPLAY
1529
+
1530
+//
1531
+// MKS OLED 1.3" 128 × 64 FULL GRAPHICS CONTROLLER
1532
+// http://reprap.org/wiki/MKS_12864OLED
1533
+//
1534
+// Tiny, but very sharp OLED display
1535
+//
1536
+//#define MKS_12864OLED
1537
+
1504 1538
 //=============================================================================
1505 1539
 //=============================== Extra Features ==============================
1506 1540
 //=============================================================================
@@ -1557,16 +1591,22 @@
1557 1591
  * Adds the M150 command to set the LED (or LED strip) color.
1558 1592
  * If pins are PWM capable (e.g., 4, 5, 6, 11) then a range of
1559 1593
  * luminance values can be set from 0 to 255.
1594
+ * For Neopixel LED overall brightness parameters is also available 
1560 1595
  *
1561 1596
  * *** CAUTION ***
1562 1597
  *  LED Strips require a MOFSET Chip between PWM lines and LEDs,
1563 1598
  *  as the Arduino cannot handle the current the LEDs will require.
1564 1599
  *  Failure to follow this precaution can destroy your Arduino!
1600
+ *  The Neopixel LED is 5V powered, but linear 5V regulator on Arduino
1601
+ *  cannot handle such current, separate 5V power supply must be used
1565 1602
  * *** CAUTION ***
1566 1603
  *
1604
+ * LED type. This options are mutualy exclusive. Uncomment only one.
1605
+ *
1567 1606
  */
1568 1607
 //#define RGB_LED
1569 1608
 //#define RGBW_LED
1609
+
1570 1610
 #if ENABLED(RGB_LED) || ENABLED(RGBW_LED)
1571 1611
   #define RGB_LED_R_PIN 34
1572 1612
   #define RGB_LED_G_PIN 43
@@ -1575,11 +1615,14 @@
1575 1615
 #endif
1576 1616
 
1577 1617
 // Support for Adafruit Neopixel LED driver
1578
-//#define NEOPIXEL_RGBW_LED
1579
-#if ENABLED(NEOPIXEL_RGBW_LED)
1580
-  #define NEOPIXEL_PIN    4       // D4 (EXP2-5 on Printrboard)
1581
-  #define NEOPIXEL_PIXELS 3
1582
-  //#define NEOPIXEL_STARTUP_TEST // Cycle through colors at startup
1618
+//#define NEOPIXEL_LED
1619
+#if ENABLED(NEOPIXEL_LED)
1620
+  #define NEOPIXEL_TYPE   NEO_GRBW // NEO_GRBW / NEO_GRB - four/three channel driver type (definned in Adafruit_NeoPixel.h)
1621
+  #define NEOPIXEL_PIN    4        // LED driving pin on motherboard 4 => D4 (EXP2-5 on Printrboard) / 30 => PC7 (EXP3-13 on Rumba)
1622
+  #define NEOPIXEL_PIXELS 30       // Number of LEDs on strip
1623
+  #define NEOPIXEL_IS_SEQUENTIAL   // Sequent display for temperature change - LED by LED. Comment out for change all LED at time
1624
+  #define NEOPIXEL_BRIGHTNESS 127  // Initial brightness 0-255
1625
+  //#define NEOPIXEL_STARTUP_TEST  // Cycle through colors at startup
1583 1626
 #endif
1584 1627
 
1585 1628
 /**

+ 52
- 39
Marlin/example_configurations/makibox/Configuration_adv.h View File

@@ -222,7 +222,7 @@
222 222
 
223 223
 /**
224 224
  * Part-Cooling Fan Multiplexer
225
- * 
225
+ *
226 226
  * This feature allows you to digitally multiplex the fan output.
227 227
  * The multiplexer is automatically switched at tool-change.
228 228
  * Set FANMUX[012]_PINs below for up to 2, 4, or 8 multiplexed fans.
@@ -510,7 +510,7 @@
510 510
 
511 511
   // SD Card Sorting options
512 512
   #if ENABLED(SDCARD_SORT_ALPHA)
513
-    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256).
513
+    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256). Costs 27 bytes each.
514 514
     #define FOLDER_SORTING     -1     // -1=above  0=none  1=below
515 515
     #define SDSORT_GCODE       false  // Allow turning sorting on/off with LCD and M34 g-code.
516 516
     #define SDSORT_USES_RAM    false  // Pre-allocate a static array for faster pre-sorting.
@@ -601,31 +601,19 @@
601 601
  */
602 602
 //#define BABYSTEPPING
603 603
 #if ENABLED(BABYSTEPPING)
604
-  #define BABYSTEP_XY              // Also enable X/Y Babystepping. Not supported on DELTA!
605
-  #define BABYSTEP_INVERT_Z false  // Change if Z babysteps should go the other way
606
-  #define BABYSTEP_MULTIPLICATOR 1 // Babysteps are very small. Increase for faster motion.
607
-  //#define BABYSTEP_ZPROBE_OFFSET // Enable to combine M851 and Babystepping
604
+  //#define BABYSTEP_XY              // Also enable X/Y Babystepping. Not supported on DELTA!
605
+  #define BABYSTEP_INVERT_Z false    // Change if Z babysteps should go the other way
606
+  #define BABYSTEP_MULTIPLICATOR 100 // Babysteps are very small. Increase for faster motion.
607
+  //#define BABYSTEP_ZPROBE_OFFSET   // Enable to combine M851 and Babystepping
608 608
   //#define DOUBLECLICK_FOR_Z_BABYSTEPPING // Double-click on the Status Screen for Z Babystepping.
609 609
   #define DOUBLECLICK_MAX_INTERVAL 1250 // Maximum interval between clicks, in milliseconds.
610 610
                                         // Note: Extra time may be added to mitigate controller latency.
611
+  //#define BABYSTEP_ZPROBE_GFX_OVERLAY // Enable graphical overlay on Z-offset editor
612
+  //#define BABYSTEP_ZPROBE_GFX_REVERSE // Reverses the direction of the CW/CCW indicators
611 613
 #endif
612 614
 
613 615
 // @section extruder
614 616
 
615
-// extruder advance constant (s2/mm3)
616
-//
617
-// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
618
-//
619
-// Hooke's law says:    force = k * distance
620
-// Bernoulli's principle says:  v ^ 2 / 2 + g . h + pressure / density = constant
621
-// so: v ^ 2 is proportional to number of steps we advance the extruder
622
-//#define ADVANCE
623
-
624
-#if ENABLED(ADVANCE)
625
-  #define EXTRUDER_ADVANCE_K .0
626
-  #define D_FILAMENT 2.85
627
-#endif
628
-
629 617
 /**
630 618
  * Implementation of linear pressure control
631 619
  *
@@ -742,7 +730,7 @@
742 730
 #define MAX_CMD_SIZE 96
743 731
 #define BUFSIZE 4
744 732
 
745
-// Transfer Buffer Size
733
+// Transmission to Host Buffer Size
746 734
 // To save 386 bytes of PROGMEM (and TX_BUFFER_SIZE+3 bytes of RAM) set to 0.
747 735
 // To buffer a simple "ok" you need 4 bytes.
748 736
 // For ADVANCED_OK (M105) you need 32 bytes.
@@ -751,6 +739,28 @@
751 739
 // :[0, 2, 4, 8, 16, 32, 64, 128, 256]
752 740
 #define TX_BUFFER_SIZE 0
753 741
 
742
+// Host Receive Buffer Size
743
+// Without XON/XOFF flow control (see SERIAL_XON_XOFF below) 32 bytes should be enough.
744
+// To use flow control, set this buffer size to at least 1024 bytes.
745
+// :[0, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048]
746
+//#define RX_BUFFER_SIZE 1024
747
+
748
+#if RX_BUFFER_SIZE >= 1024
749
+  // Enable to have the controller send XON/XOFF control characters to
750
+  // the host to signal the RX buffer is becoming full.
751
+  //#define SERIAL_XON_XOFF
752
+#endif
753
+
754
+#if ENABLED(SDSUPPORT)
755
+  // Enable this option to collect and display the maximum
756
+  // RX queue usage after transferring a file to SD.
757
+  //#define SERIAL_STATS_MAX_RX_QUEUED
758
+
759
+  // Enable this option to collect and display the number
760
+  // of dropped bytes after a file transfer to SD.
761
+  //#define SERIAL_STATS_DROPPED_RX
762
+#endif
763
+
754 764
 // Enable an emergency-command parser to intercept certain commands as they
755 765
 // enter the serial receive buffer, so they cannot be blocked.
756 766
 // Currently handles M108, M112, M410
@@ -1274,6 +1284,7 @@
1274 1284
 #if ENABLED(CUSTOM_USER_MENUS)
1275 1285
   #define USER_SCRIPT_DONE "M117 User Script Done"
1276 1286
   #define USER_SCRIPT_AUDIBLE_FEEDBACK
1287
+  //#define USER_SCRIPT_RETURN  // Return to status screen after a script
1277 1288
 
1278 1289
   #define USER_DESC_1 "Home & UBL Info"
1279 1290
   #define USER_GCODE_1 "G28\nG29 W"
@@ -1383,29 +1394,31 @@
1383 1394
 #endif // I2C_POSITION_ENCODERS
1384 1395
 
1385 1396
 /**
1386
-  * Debug LED's using an 8x8 LED Matrix driven by a Max7219 chip.   Fully assembled versions are available on
1387
-  * eBay for under $2.00 (including shipping) and only require 3 signal wires.
1388
-  *
1389
-  * Check out auctions similar to this: https://www.ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313&_nkw=332349290049&_sacat=0
1390
-  */
1391
-
1397
+ * MAX7219 Debug Matrix
1398
+ *
1399
+ * Add support for a low-cost 8x8 LED Matrix based on the Max7219 chip, which can be used as a status
1400
+ * display. Requires 3 signal wires. Some useful debug options are included to demonstrate its usage.
1401
+ *
1402
+ * Fully assembled MAX7219 boards can be found on the internet for under $2(US).
1403
+ * For example, see https://www.ebay.com/sch/i.html?_nkw=332349290049
1404
+ */
1392 1405
 //#define MAX7219_DEBUG
1393 1406
 #if ENABLED(MAX7219_DEBUG)
1394
-  #define Max7219_clock   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display
1395
-  #define Max7219_data_in 57  // 78 on Re-ARM
1396
-  #define Max7219_load    44  // 79 on Re-ARM
1407
+  #define MAX7219_CLK_PIN   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display
1408
+  #define MAX7219_DIN_PIN   57  // 78 on Re-ARM
1409
+  #define MAX7219_LOAD_PIN  44  // 79 on Re-ARM
1397 1410
 
1398
-  /*
1399
-   * These are sample debug features that can be turned on and configured for your use.
1400
-   * The developer will need to manage the use of the various LED's in the 8x8 matrix to avoid conflicts.
1411
+  /**
1412
+   * Sample debug features
1413
+   * If you add more debug displays, be careful to avoid conflicts!
1401 1414
    */
1402
-  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix from idle() routine if firmware is functioning
1403
-  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Display row position of stepper queue head on this line and the next line of LED matrix
1404
-  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Display row position of stepper queue tail on this line and the next line of LED matrix
1415
+  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix to show that the firmware is functioning
1416
+  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Show the stepper queue head position on this and the next LED matrix row
1417
+  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Show the stepper queue tail position on this and the next LED matrix row
1405 1418
 
1406
-  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Display row position of stepper queue depth on this line and the next line of LED matrix
1407
-                                         // If you have stuttering on your Delta printer, this option may help you understand how
1408
-                                         // various tweaks you make to your configuration are affecting the printer.
1419
+  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Show the current stepper queue depth on this and the next LED matrix row
1420
+                                         // If you experience stuttering, reboots, etc. this option can reveal how
1421
+                                         // tweaks made to the configuration are affecting the printer in real-time.
1409 1422
 #endif
1410 1423
 
1411 1424
 #endif // CONFIGURATION_ADV_H

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

@@ -107,8 +107,9 @@
107 107
  *
108 108
  * 250000 works in most cases, but you might try a lower speed if
109 109
  * you commonly experience drop-outs during host printing.
110
+ * You may try up to 1000000 to speed up SD file transfer.
110 111
  *
111
- * :[2400, 9600, 19200, 38400, 57600, 115200, 250000]
112
+ * :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000]
112 113
  */
113 114
 #define BAUDRATE 250000
114 115
 
@@ -754,6 +755,8 @@
754 755
 
755 756
 // @section homing
756 757
 
758
+//#define NO_MOTION_BEFORE_HOMING  // Inhibit movement until all axes have been homed
759
+
757 760
 //#define Z_HOMING_HEIGHT 4  // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
758 761
                              // Be sure you have this distance over your Z_MAX_POS in case.
759 762
 
@@ -950,9 +953,11 @@
950 953
 #if ENABLED(LCD_BED_LEVELING)
951 954
   #define MBL_Z_STEP 0.025    // Step size while manually probing Z axis.
952 955
   #define LCD_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
953
-  #define LEVEL_BED_CORNERS   // Add an option to move between corners
954 956
 #endif
955 957
 
958
+// Add a menu item to move between bed corners for manual bed adjustment
959
+//#define LEVEL_BED_CORNERS
960
+
956 961
 /**
957 962
  * Commands to execute at the end of G29 probing.
958 963
  * Useful to retract or move the Z probe out of the way.
@@ -1193,7 +1198,7 @@
1193 1198
  *  - Click the controller to view the LCD menu
1194 1199
  *  - The LCD will display Japanese, Western, or Cyrillic text
1195 1200
  *
1196
- * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
1201
+ * See http://marlinfw.org/docs/development/lcd_language.html
1197 1202
  *
1198 1203
  * :['JAPANESE', 'WESTERN', 'CYRILLIC']
1199 1204
  */
@@ -1493,6 +1498,35 @@
1493 1498
 //
1494 1499
 //#define OLED_PANEL_TINYBOY2
1495 1500
 
1501
+//
1502
+// Makeboard 3D Printer Parts 3D Printer Mini Display 1602 Mini Controller
1503
+// https://www.aliexpress.com/item/Micromake-Makeboard-3D-Printer-Parts-3D-Printer-Mini-Display-1602-Mini-Controller-Compatible-with-Ramps-1/32765887917.html
1504
+//
1505
+//#define MAKEBOARD_MINI_2_LINE_DISPLAY_1602
1506
+
1507
+//
1508
+// MKS MINI12864 with graphic controller and SD support
1509
+// http://reprap.org/wiki/MKS_MINI_12864
1510
+//
1511
+//#define MKS_MINI_12864
1512
+
1513
+//
1514
+// Factory display for Creality CR-10
1515
+// https://www.aliexpress.com/item/Universal-LCD-12864-3D-Printer-Display-Screen-With-Encoder-For-CR-10-CR-7-Model/32833148327.html
1516
+//
1517
+// This is RAMPS-compatible using a single 10-pin connector.
1518
+// (For CR-10 owners who want to replace the Melzi Creality board but retain the display)
1519
+//
1520
+//#define CR10_STOCKDISPLAY
1521
+
1522
+//
1523
+// MKS OLED 1.3" 128 × 64 FULL GRAPHICS CONTROLLER
1524
+// http://reprap.org/wiki/MKS_12864OLED
1525
+//
1526
+// Tiny, but very sharp OLED display
1527
+//
1528
+//#define MKS_12864OLED
1529
+
1496 1530
 //=============================================================================
1497 1531
 //=============================== Extra Features ==============================
1498 1532
 //=============================================================================
@@ -1549,16 +1583,22 @@
1549 1583
  * Adds the M150 command to set the LED (or LED strip) color.
1550 1584
  * If pins are PWM capable (e.g., 4, 5, 6, 11) then a range of
1551 1585
  * luminance values can be set from 0 to 255.
1586
+ * For Neopixel LED overall brightness parameters is also available 
1552 1587
  *
1553 1588
  * *** CAUTION ***
1554 1589
  *  LED Strips require a MOFSET Chip between PWM lines and LEDs,
1555 1590
  *  as the Arduino cannot handle the current the LEDs will require.
1556 1591
  *  Failure to follow this precaution can destroy your Arduino!
1592
+ *  The Neopixel LED is 5V powered, but linear 5V regulator on Arduino
1593
+ *  cannot handle such current, separate 5V power supply must be used
1557 1594
  * *** CAUTION ***
1558 1595
  *
1596
+ * LED type. This options are mutualy exclusive. Uncomment only one.
1597
+ *
1559 1598
  */
1560 1599
 //#define RGB_LED
1561 1600
 //#define RGBW_LED
1601
+
1562 1602
 #if ENABLED(RGB_LED) || ENABLED(RGBW_LED)
1563 1603
   #define RGB_LED_R_PIN 34
1564 1604
   #define RGB_LED_G_PIN 43
@@ -1567,11 +1607,14 @@
1567 1607
 #endif
1568 1608
 
1569 1609
 // Support for Adafruit Neopixel LED driver
1570
-//#define NEOPIXEL_RGBW_LED
1571
-#if ENABLED(NEOPIXEL_RGBW_LED)
1572
-  #define NEOPIXEL_PIN    4       // D4 (EXP2-5 on Printrboard)
1573
-  #define NEOPIXEL_PIXELS 3
1574
-  //#define NEOPIXEL_STARTUP_TEST // Cycle through colors at startup
1610
+//#define NEOPIXEL_LED
1611
+#if ENABLED(NEOPIXEL_LED)
1612
+  #define NEOPIXEL_TYPE   NEO_GRBW // NEO_GRBW / NEO_GRB - four/three channel driver type (definned in Adafruit_NeoPixel.h)
1613
+  #define NEOPIXEL_PIN    4        // LED driving pin on motherboard 4 => D4 (EXP2-5 on Printrboard) / 30 => PC7 (EXP3-13 on Rumba)
1614
+  #define NEOPIXEL_PIXELS 30       // Number of LEDs on strip
1615
+  #define NEOPIXEL_IS_SEQUENTIAL   // Sequent display for temperature change - LED by LED. Comment out for change all LED at time
1616
+  #define NEOPIXEL_BRIGHTNESS 127  // Initial brightness 0-255
1617
+  //#define NEOPIXEL_STARTUP_TEST  // Cycle through colors at startup
1575 1618
 #endif
1576 1619
 
1577 1620
 /**

+ 52
- 39
Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h View File

@@ -222,7 +222,7 @@
222 222
 
223 223
 /**
224 224
  * Part-Cooling Fan Multiplexer
225
- * 
225
+ *
226 226
  * This feature allows you to digitally multiplex the fan output.
227 227
  * The multiplexer is automatically switched at tool-change.
228 228
  * Set FANMUX[012]_PINs below for up to 2, 4, or 8 multiplexed fans.
@@ -510,7 +510,7 @@
510 510
 
511 511
   // SD Card Sorting options
512 512
   #if ENABLED(SDCARD_SORT_ALPHA)
513
-    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256).
513
+    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256). Costs 27 bytes each.
514 514
     #define FOLDER_SORTING     -1     // -1=above  0=none  1=below
515 515
     #define SDSORT_GCODE       false  // Allow turning sorting on/off with LCD and M34 g-code.
516 516
     #define SDSORT_USES_RAM    false  // Pre-allocate a static array for faster pre-sorting.
@@ -601,31 +601,19 @@
601 601
  */
602 602
 //#define BABYSTEPPING
603 603
 #if ENABLED(BABYSTEPPING)
604
-  #define BABYSTEP_XY              // Also enable X/Y Babystepping. Not supported on DELTA!
605
-  #define BABYSTEP_INVERT_Z false  // Change if Z babysteps should go the other way
606
-  #define BABYSTEP_MULTIPLICATOR 1 // Babysteps are very small. Increase for faster motion.
607
-  //#define BABYSTEP_ZPROBE_OFFSET // Enable to combine M851 and Babystepping
604
+  //#define BABYSTEP_XY              // Also enable X/Y Babystepping. Not supported on DELTA!
605
+  #define BABYSTEP_INVERT_Z false    // Change if Z babysteps should go the other way
606
+  #define BABYSTEP_MULTIPLICATOR 100 // Babysteps are very small. Increase for faster motion.
607
+  //#define BABYSTEP_ZPROBE_OFFSET   // Enable to combine M851 and Babystepping
608 608
   //#define DOUBLECLICK_FOR_Z_BABYSTEPPING // Double-click on the Status Screen for Z Babystepping.
609 609
   #define DOUBLECLICK_MAX_INTERVAL 1250 // Maximum interval between clicks, in milliseconds.
610 610
                                         // Note: Extra time may be added to mitigate controller latency.
611
+  //#define BABYSTEP_ZPROBE_GFX_OVERLAY // Enable graphical overlay on Z-offset editor
612
+  //#define BABYSTEP_ZPROBE_GFX_REVERSE // Reverses the direction of the CW/CCW indicators
611 613
 #endif
612 614
 
613 615
 // @section extruder
614 616
 
615
-// extruder advance constant (s2/mm3)
616
-//
617
-// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
618
-//
619
-// Hooke's law says:    force = k * distance
620
-// Bernoulli's principle says:  v ^ 2 / 2 + g . h + pressure / density = constant
621
-// so: v ^ 2 is proportional to number of steps we advance the extruder
622
-//#define ADVANCE
623
-
624
-#if ENABLED(ADVANCE)
625
-  #define EXTRUDER_ADVANCE_K .0
626
-  #define D_FILAMENT 2.85
627
-#endif
628
-
629 617
 /**
630 618
  * Implementation of linear pressure control
631 619
  *
@@ -742,7 +730,7 @@
742 730
 #define MAX_CMD_SIZE 96
743 731
 #define BUFSIZE 4
744 732
 
745
-// Transfer Buffer Size
733
+// Transmission to Host Buffer Size
746 734
 // To save 386 bytes of PROGMEM (and TX_BUFFER_SIZE+3 bytes of RAM) set to 0.
747 735
 // To buffer a simple "ok" you need 4 bytes.
748 736
 // For ADVANCED_OK (M105) you need 32 bytes.
@@ -751,6 +739,28 @@
751 739
 // :[0, 2, 4, 8, 16, 32, 64, 128, 256]
752 740
 #define TX_BUFFER_SIZE 0
753 741
 
742
+// Host Receive Buffer Size
743
+// Without XON/XOFF flow control (see SERIAL_XON_XOFF below) 32 bytes should be enough.
744
+// To use flow control, set this buffer size to at least 1024 bytes.
745
+// :[0, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048]
746
+//#define RX_BUFFER_SIZE 1024
747
+
748
+#if RX_BUFFER_SIZE >= 1024
749
+  // Enable to have the controller send XON/XOFF control characters to
750
+  // the host to signal the RX buffer is becoming full.
751
+  //#define SERIAL_XON_XOFF
752
+#endif
753
+
754
+#if ENABLED(SDSUPPORT)
755
+  // Enable this option to collect and display the maximum
756
+  // RX queue usage after transferring a file to SD.
757
+  //#define SERIAL_STATS_MAX_RX_QUEUED
758
+
759
+  // Enable this option to collect and display the number
760
+  // of dropped bytes after a file transfer to SD.
761
+  //#define SERIAL_STATS_DROPPED_RX
762
+#endif
763
+
754 764
 // Enable an emergency-command parser to intercept certain commands as they
755 765
 // enter the serial receive buffer, so they cannot be blocked.
756 766
 // Currently handles M108, M112, M410
@@ -1274,6 +1284,7 @@
1274 1284
 #if ENABLED(CUSTOM_USER_MENUS)
1275 1285
   #define USER_SCRIPT_DONE "M117 User Script Done"
1276 1286
   #define USER_SCRIPT_AUDIBLE_FEEDBACK
1287
+  //#define USER_SCRIPT_RETURN  // Return to status screen after a script
1277 1288
 
1278 1289
   #define USER_DESC_1 "Home & UBL Info"
1279 1290
   #define USER_GCODE_1 "G28\nG29 W"
@@ -1383,29 +1394,31 @@
1383 1394
 #endif // I2C_POSITION_ENCODERS
1384 1395
 
1385 1396
 /**
1386
-  * Debug LED's using an 8x8 LED Matrix driven by a Max7219 chip.   Fully assembled versions are available on
1387
-  * eBay for under $2.00 (including shipping) and only require 3 signal wires.
1388
-  *
1389
-  * Check out auctions similar to this: https://www.ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313&_nkw=332349290049&_sacat=0
1390
-  */
1391
-
1397
+ * MAX7219 Debug Matrix
1398
+ *
1399
+ * Add support for a low-cost 8x8 LED Matrix based on the Max7219 chip, which can be used as a status
1400
+ * display. Requires 3 signal wires. Some useful debug options are included to demonstrate its usage.
1401
+ *
1402
+ * Fully assembled MAX7219 boards can be found on the internet for under $2(US).
1403
+ * For example, see https://www.ebay.com/sch/i.html?_nkw=332349290049
1404
+ */
1392 1405
 //#define MAX7219_DEBUG
1393 1406
 #if ENABLED(MAX7219_DEBUG)
1394
-  #define Max7219_clock   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display
1395
-  #define Max7219_data_in 57  // 78 on Re-ARM
1396
-  #define Max7219_load    44  // 79 on Re-ARM
1407
+  #define MAX7219_CLK_PIN   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display
1408
+  #define MAX7219_DIN_PIN   57  // 78 on Re-ARM
1409
+  #define MAX7219_LOAD_PIN  44  // 79 on Re-ARM
1397 1410
 
1398
-  /*
1399
-   * These are sample debug features that can be turned on and configured for your use.
1400
-   * The developer will need to manage the use of the various LED's in the 8x8 matrix to avoid conflicts.
1411
+  /**
1412
+   * Sample debug features
1413
+   * If you add more debug displays, be careful to avoid conflicts!
1401 1414
    */
1402
-  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix from idle() routine if firmware is functioning
1403
-  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Display row position of stepper queue head on this line and the next line of LED matrix
1404
-  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Display row position of stepper queue tail on this line and the next line of LED matrix
1415
+  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix to show that the firmware is functioning
1416
+  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Show the stepper queue head position on this and the next LED matrix row
1417
+  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Show the stepper queue tail position on this and the next LED matrix row
1405 1418
 
1406
-  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Display row position of stepper queue depth on this line and the next line of LED matrix
1407
-                                         // If you have stuttering on your Delta printer, this option may help you understand how
1408
-                                         // various tweaks you make to your configuration are affecting the printer.
1419
+  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Show the current stepper queue depth on this and the next LED matrix row
1420
+                                         // If you experience stuttering, reboots, etc. this option can reveal how
1421
+                                         // tweaks made to the configuration are affecting the printer in real-time.
1409 1422
 #endif
1410 1423
 
1411 1424
 #endif // CONFIGURATION_ADV_H

+ 51
- 8
Marlin/example_configurations/wt150/Configuration.h View File

@@ -107,8 +107,9 @@
107 107
  *
108 108
  * 250000 works in most cases, but you might try a lower speed if
109 109
  * you commonly experience drop-outs during host printing.
110
+ * You may try up to 1000000 to speed up SD file transfer.
110 111
  *
111
- * :[2400, 9600, 19200, 38400, 57600, 115200, 250000]
112
+ * :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000]
112 113
  */
113 114
 #define BAUDRATE 115200
114 115
 
@@ -764,6 +765,8 @@
764 765
 
765 766
 // @section homing
766 767
 
768
+//#define NO_MOTION_BEFORE_HOMING  // Inhibit movement until all axes have been homed
769
+
767 770
 //#define Z_HOMING_HEIGHT 4  // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
768 771
                              // Be sure you have this distance over your Z_MAX_POS in case.
769 772
 
@@ -960,9 +963,11 @@
960 963
 #if ENABLED(LCD_BED_LEVELING)
961 964
   #define MBL_Z_STEP 0.025    // Step size while manually probing Z axis.
962 965
   #define LCD_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
963
-  #define LEVEL_BED_CORNERS   // Add an option to move between corners
964 966
 #endif
965 967
 
968
+// Add a menu item to move between bed corners for manual bed adjustment
969
+//#define LEVEL_BED_CORNERS
970
+
966 971
 /**
967 972
  * Commands to execute at the end of G29 probing.
968 973
  * Useful to retract or move the Z probe out of the way.
@@ -1203,7 +1208,7 @@
1203 1208
  *  - Click the controller to view the LCD menu
1204 1209
  *  - The LCD will display Japanese, Western, or Cyrillic text
1205 1210
  *
1206
- * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
1211
+ * See http://marlinfw.org/docs/development/lcd_language.html
1207 1212
  *
1208 1213
  * :['JAPANESE', 'WESTERN', 'CYRILLIC']
1209 1214
  */
@@ -1503,6 +1508,35 @@
1503 1508
 //
1504 1509
 //#define OLED_PANEL_TINYBOY2
1505 1510
 
1511
+//
1512
+// Makeboard 3D Printer Parts 3D Printer Mini Display 1602 Mini Controller
1513
+// https://www.aliexpress.com/item/Micromake-Makeboard-3D-Printer-Parts-3D-Printer-Mini-Display-1602-Mini-Controller-Compatible-with-Ramps-1/32765887917.html
1514
+//
1515
+//#define MAKEBOARD_MINI_2_LINE_DISPLAY_1602
1516
+
1517
+//
1518
+// MKS MINI12864 with graphic controller and SD support
1519
+// http://reprap.org/wiki/MKS_MINI_12864
1520
+//
1521
+//#define MKS_MINI_12864
1522
+
1523
+//
1524
+// Factory display for Creality CR-10
1525
+// https://www.aliexpress.com/item/Universal-LCD-12864-3D-Printer-Display-Screen-With-Encoder-For-CR-10-CR-7-Model/32833148327.html
1526
+//
1527
+// This is RAMPS-compatible using a single 10-pin connector.
1528
+// (For CR-10 owners who want to replace the Melzi Creality board but retain the display)
1529
+//
1530
+//#define CR10_STOCKDISPLAY
1531
+
1532
+//
1533
+// MKS OLED 1.3" 128 × 64 FULL GRAPHICS CONTROLLER
1534
+// http://reprap.org/wiki/MKS_12864OLED
1535
+//
1536
+// Tiny, but very sharp OLED display
1537
+//
1538
+//#define MKS_12864OLED
1539
+
1506 1540
 //=============================================================================
1507 1541
 //=============================== Extra Features ==============================
1508 1542
 //=============================================================================
@@ -1559,16 +1593,22 @@
1559 1593
  * Adds the M150 command to set the LED (or LED strip) color.
1560 1594
  * If pins are PWM capable (e.g., 4, 5, 6, 11) then a range of
1561 1595
  * luminance values can be set from 0 to 255.
1596
+ * For Neopixel LED overall brightness parameters is also available 
1562 1597
  *
1563 1598
  * *** CAUTION ***
1564 1599
  *  LED Strips require a MOFSET Chip between PWM lines and LEDs,
1565 1600
  *  as the Arduino cannot handle the current the LEDs will require.
1566 1601
  *  Failure to follow this precaution can destroy your Arduino!
1602
+ *  The Neopixel LED is 5V powered, but linear 5V regulator on Arduino
1603
+ *  cannot handle such current, separate 5V power supply must be used
1567 1604
  * *** CAUTION ***
1568 1605
  *
1606
+ * LED type. This options are mutualy exclusive. Uncomment only one.
1607
+ *
1569 1608
  */
1570 1609
 //#define RGB_LED
1571 1610
 //#define RGBW_LED
1611
+
1572 1612
 #if ENABLED(RGB_LED) || ENABLED(RGBW_LED)
1573 1613
   #define RGB_LED_R_PIN 34
1574 1614
   #define RGB_LED_G_PIN 43
@@ -1577,11 +1617,14 @@
1577 1617
 #endif
1578 1618
 
1579 1619
 // Support for Adafruit Neopixel LED driver
1580
-//#define NEOPIXEL_RGBW_LED
1581
-#if ENABLED(NEOPIXEL_RGBW_LED)
1582
-  #define NEOPIXEL_PIN    4       // D4 (EXP2-5 on Printrboard)
1583
-  #define NEOPIXEL_PIXELS 3
1584
-  //#define NEOPIXEL_STARTUP_TEST // Cycle through colors at startup
1620
+//#define NEOPIXEL_LED
1621
+#if ENABLED(NEOPIXEL_LED)
1622
+  #define NEOPIXEL_TYPE   NEO_GRBW // NEO_GRBW / NEO_GRB - four/three channel driver type (definned in Adafruit_NeoPixel.h)
1623
+  #define NEOPIXEL_PIN    4        // LED driving pin on motherboard 4 => D4 (EXP2-5 on Printrboard) / 30 => PC7 (EXP3-13 on Rumba)
1624
+  #define NEOPIXEL_PIXELS 30       // Number of LEDs on strip
1625
+  #define NEOPIXEL_IS_SEQUENTIAL   // Sequent display for temperature change - LED by LED. Comment out for change all LED at time
1626
+  #define NEOPIXEL_BRIGHTNESS 127  // Initial brightness 0-255
1627
+  //#define NEOPIXEL_STARTUP_TEST  // Cycle through colors at startup
1585 1628
 #endif
1586 1629
 
1587 1630
 /**

+ 52
- 39
Marlin/example_configurations/wt150/Configuration_adv.h View File

@@ -222,7 +222,7 @@
222 222
 
223 223
 /**
224 224
  * Part-Cooling Fan Multiplexer
225
- * 
225
+ *
226 226
  * This feature allows you to digitally multiplex the fan output.
227 227
  * The multiplexer is automatically switched at tool-change.
228 228
  * Set FANMUX[012]_PINs below for up to 2, 4, or 8 multiplexed fans.
@@ -510,7 +510,7 @@
510 510
 
511 511
   // SD Card Sorting options
512 512
   #if ENABLED(SDCARD_SORT_ALPHA)
513
-    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256).
513
+    #define SDSORT_LIMIT       40     // Maximum number of sorted items (10-256). Costs 27 bytes each.
514 514
     #define FOLDER_SORTING     -1     // -1=above  0=none  1=below
515 515
     #define SDSORT_GCODE       false  // Allow turning sorting on/off with LCD and M34 g-code.
516 516
     #define SDSORT_USES_RAM    false  // Pre-allocate a static array for faster pre-sorting.
@@ -601,31 +601,19 @@
601 601
  */
602 602
 //#define BABYSTEPPING
603 603
 #if ENABLED(BABYSTEPPING)
604
-  #define BABYSTEP_XY              // Also enable X/Y Babystepping. Not supported on DELTA!
605
-  #define BABYSTEP_INVERT_Z false  // Change if Z babysteps should go the other way
606
-  #define BABYSTEP_MULTIPLICATOR 1 // Babysteps are very small. Increase for faster motion.
607
-  //#define BABYSTEP_ZPROBE_OFFSET // Enable to combine M851 and Babystepping
604
+  //#define BABYSTEP_XY              // Also enable X/Y Babystepping. Not supported on DELTA!
605
+  #define BABYSTEP_INVERT_Z false    // Change if Z babysteps should go the other way
606
+  #define BABYSTEP_MULTIPLICATOR 100 // Babysteps are very small. Increase for faster motion.
607
+  //#define BABYSTEP_ZPROBE_OFFSET   // Enable to combine M851 and Babystepping
608 608
   //#define DOUBLECLICK_FOR_Z_BABYSTEPPING // Double-click on the Status Screen for Z Babystepping.
609 609
   #define DOUBLECLICK_MAX_INTERVAL 1250 // Maximum interval between clicks, in milliseconds.
610 610
                                         // Note: Extra time may be added to mitigate controller latency.
611
+  //#define BABYSTEP_ZPROBE_GFX_OVERLAY // Enable graphical overlay on Z-offset editor
612
+  //#define BABYSTEP_ZPROBE_GFX_REVERSE // Reverses the direction of the CW/CCW indicators
611 613
 #endif
612 614
 
613 615
 // @section extruder
614 616
 
615
-// extruder advance constant (s2/mm3)
616
-//
617
-// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
618
-//
619
-// Hooke's law says:    force = k * distance
620
-// Bernoulli's principle says:  v ^ 2 / 2 + g . h + pressure / density = constant
621
-// so: v ^ 2 is proportional to number of steps we advance the extruder
622
-//#define ADVANCE
623
-
624
-#if ENABLED(ADVANCE)
625
-  #define EXTRUDER_ADVANCE_K .0
626
-  #define D_FILAMENT 2.85
627
-#endif
628
-
629 617
 /**
630 618
  * Implementation of linear pressure control
631 619
  *
@@ -742,7 +730,7 @@
742 730
 #define MAX_CMD_SIZE 96
743 731
 #define BUFSIZE 4
744 732
 
745
-// Transfer Buffer Size
733
+// Transmission to Host Buffer Size
746 734
 // To save 386 bytes of PROGMEM (and TX_BUFFER_SIZE+3 bytes of RAM) set to 0.
747 735
 // To buffer a simple "ok" you need 4 bytes.
748 736
 // For ADVANCED_OK (M105) you need 32 bytes.
@@ -751,6 +739,28 @@
751 739
 // :[0, 2, 4, 8, 16, 32, 64, 128, 256]
752 740
 #define TX_BUFFER_SIZE 0
753 741
 
742
+// Host Receive Buffer Size
743
+// Without XON/XOFF flow control (see SERIAL_XON_XOFF below) 32 bytes should be enough.
744
+// To use flow control, set this buffer size to at least 1024 bytes.
745
+// :[0, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048]
746
+//#define RX_BUFFER_SIZE 1024
747
+
748
+#if RX_BUFFER_SIZE >= 1024
749
+  // Enable to have the controller send XON/XOFF control characters to
750
+  // the host to signal the RX buffer is becoming full.
751
+  //#define SERIAL_XON_XOFF
752
+#endif
753
+
754
+#if ENABLED(SDSUPPORT)
755
+  // Enable this option to collect and display the maximum
756
+  // RX queue usage after transferring a file to SD.
757
+  //#define SERIAL_STATS_MAX_RX_QUEUED
758
+
759
+  // Enable this option to collect and display the number
760
+  // of dropped bytes after a file transfer to SD.
761
+  //#define SERIAL_STATS_DROPPED_RX
762
+#endif
763
+
754 764
 // Enable an emergency-command parser to intercept certain commands as they
755 765
 // enter the serial receive buffer, so they cannot be blocked.
756 766
 // Currently handles M108, M112, M410
@@ -1274,6 +1284,7 @@
1274 1284
 #if ENABLED(CUSTOM_USER_MENUS)
1275 1285
   #define USER_SCRIPT_DONE "M117 User Script Done"
1276 1286
   #define USER_SCRIPT_AUDIBLE_FEEDBACK
1287
+  //#define USER_SCRIPT_RETURN  // Return to status screen after a script
1277 1288
 
1278 1289
   #define USER_DESC_1 "Home & UBL Info"
1279 1290
   #define USER_GCODE_1 "G28\nG29 W"
@@ -1383,29 +1394,31 @@
1383 1394
 #endif // I2C_POSITION_ENCODERS
1384 1395
 
1385 1396
 /**
1386
-  * Debug LED's using an 8x8 LED Matrix driven by a Max7219 chip.   Fully assembled versions are available on
1387
-  * eBay for under $2.00 (including shipping) and only require 3 signal wires.
1388
-  *
1389
-  * Check out auctions similar to this: https://www.ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313&_nkw=332349290049&_sacat=0
1390
-  */
1391
-
1397
+ * MAX7219 Debug Matrix
1398
+ *
1399
+ * Add support for a low-cost 8x8 LED Matrix based on the Max7219 chip, which can be used as a status
1400
+ * display. Requires 3 signal wires. Some useful debug options are included to demonstrate its usage.
1401
+ *
1402
+ * Fully assembled MAX7219 boards can be found on the internet for under $2(US).
1403
+ * For example, see https://www.ebay.com/sch/i.html?_nkw=332349290049
1404
+ */
1392 1405
 //#define MAX7219_DEBUG
1393 1406
 #if ENABLED(MAX7219_DEBUG)
1394
-  #define Max7219_clock   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display
1395
-  #define Max7219_data_in 57  // 78 on Re-ARM
1396
-  #define Max7219_load    44  // 79 on Re-ARM
1407
+  #define MAX7219_CLK_PIN   64  // 77 on Re-ARM       // Configuration of the 3 pins to control the display
1408
+  #define MAX7219_DIN_PIN   57  // 78 on Re-ARM
1409
+  #define MAX7219_LOAD_PIN  44  // 79 on Re-ARM
1397 1410
 
1398
-  /*
1399
-   * These are sample debug features that can be turned on and configured for your use.
1400
-   * The developer will need to manage the use of the various LED's in the 8x8 matrix to avoid conflicts.
1411
+  /**
1412
+   * Sample debug features
1413
+   * If you add more debug displays, be careful to avoid conflicts!
1401 1414
    */
1402
-  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix from idle() routine if firmware is functioning
1403
-  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Display row position of stepper queue head on this line and the next line of LED matrix
1404
-  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Display row position of stepper queue tail on this line and the next line of LED matrix
1415
+  #define MAX7219_DEBUG_PRINTER_ALIVE    // Blink corner LED of 8x8 matrix to show that the firmware is functioning
1416
+  #define MAX7219_DEBUG_STEPPER_HEAD  3  // Show the stepper queue head position on this and the next LED matrix row
1417
+  #define MAX7219_DEBUG_STEPPER_TAIL  5  // Show the stepper queue tail position on this and the next LED matrix row
1405 1418
 
1406
-  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Display row position of stepper queue depth on this line and the next line of LED matrix
1407
-                                         // If you have stuttering on your Delta printer, this option may help you understand how
1408
-                                         // various tweaks you make to your configuration are affecting the printer.
1419
+  #define MAX7219_DEBUG_STEPPER_QUEUE 0  // Show the current stepper queue depth on this and the next LED matrix row
1420
+                                         // If you experience stuttering, reboots, etc. this option can reveal how
1421
+                                         // tweaks made to the configuration are affecting the printer in real-time.
1409 1422
 #endif
1410 1423
 
1411 1424
 #endif // CONFIGURATION_ADV_H

+ 2
- 4
Marlin/language.h View File

@@ -44,7 +44,7 @@
44 44
 //
45 45
 //   ==> ALWAYS TRY TO COMPILE MARLIN WITH/WITHOUT "ULTIPANEL" / "ULTRALCD" / "SDSUPPORT" #define IN "Configuration.h"
46 46
 //   ==> ALSO TRY ALL AVAILABLE LANGUAGE OPTIONS
47
-// See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
47
+// See also http://marlinfw.org/docs/development/lcd_language.html
48 48
 
49 49
 // Languages
50 50
 // an         Aragonese
@@ -160,6 +160,7 @@
160 160
 #define MSG_ERR_MATERIAL_INDEX              "M145 S<index> out of range (0-1)"
161 161
 #define MSG_ERR_M355_NONE                   "No case light"
162 162
 #define MSG_ERR_M421_PARAMETERS             "M421 incorrect parameter usage"
163
+#define MSG_ERR_BAD_PLANE_MODE              "G5 requires XY plane mode"
163 164
 #define MSG_ERR_MESH_XY                     "Mesh point cannot be resolved"
164 165
 #define MSG_ERR_ARC_ARGS                    "G2/G3 bad parameters"
165 166
 #define MSG_ERR_PROTECTED_PIN               "Protected Pin"
@@ -197,9 +198,6 @@
197 198
 #define MSG_ERR_COLD_EXTRUDE_STOP           " cold extrusion prevented"
198 199
 #define MSG_ERR_LONG_EXTRUDE_STOP           " too long extrusion prevented"
199 200
 #define MSG_TOO_COLD_FOR_M600               "M600 Hotend too cold to change filament"
200
-#define MSG_BABYSTEPPING_X                  "Babystepping X"
201
-#define MSG_BABYSTEPPING_Y                  "Babystepping Y"
202
-#define MSG_BABYSTEPPING_Z                  "Babystepping Z"
203 201
 #define MSG_SERIAL_ERROR_MENU_STRUCTURE     "Error in menu structure"
204 202
 
205 203
 #define MSG_ERR_EEPROM_WRITE                "Error writing to EEPROM!"

+ 1
- 1
Marlin/language_an.h View File

@@ -24,7 +24,7 @@
24 24
  * Aragonese
25 25
  *
26 26
  * LCD Menu Messages
27
- * See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
27
+ * See also http://marlinfw.org/docs/development/lcd_language.html
28 28
  *
29 29
  */
30 30
 #ifndef LANGUAGE_AN_H

+ 1
- 1
Marlin/language_bg.h View File

@@ -24,7 +24,7 @@
24 24
  * Bulgarian
25 25
  *
26 26
  * LCD Menu Messages
27
- * See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
27
+ * See also http://marlinfw.org/docs/development/lcd_language.html
28 28
  *
29 29
  */
30 30
 #ifndef LANGUAGE_BG_H

+ 1
- 1
Marlin/language_ca.h View File

@@ -24,7 +24,7 @@
24 24
  * Catalan
25 25
  *
26 26
  * LCD Menu Messages
27
- * See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
27
+ * See also http://marlinfw.org/docs/development/lcd_language.html
28 28
  *
29 29
  */
30 30
 #ifndef LANGUAGE_CA_H

+ 1
- 1
Marlin/language_cn.h View File

@@ -24,7 +24,7 @@
24 24
  * Chinese
25 25
  *
26 26
  * LCD Menu Messages
27
- * See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
27
+ * See also http://marlinfw.org/docs/development/lcd_language.html
28 28
  *
29 29
  */
30 30
 #ifndef LANGUAGE_CN_H

+ 1
- 1
Marlin/language_cz.h View File

@@ -24,7 +24,7 @@
24 24
  * Czech
25 25
  *
26 26
  * LCD Menu Messages
27
- * See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
27
+ * See also http://marlinfw.org/docs/development/lcd_language.html
28 28
  *
29 29
  * Translated by Petr Zahradnik, Computer Laboratory
30 30
  * Blog and video blog Zahradnik se bavi

+ 1
- 1
Marlin/language_cz_utf8.h View File

@@ -25,7 +25,7 @@
25 25
  * UTF-8 for Graphical Display
26 26
  *
27 27
  * LCD Menu Messages
28
- * See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
28
+ * See also http://marlinfw.org/docs/development/lcd_language.html
29 29
  *
30 30
  * Translated by Petr Zahradnik, Computer Laboratory
31 31
  * Blog and video blog Zahradnik se bavi

+ 1
- 1
Marlin/language_da.h View File

@@ -24,7 +24,7 @@
24 24
  * Danish
25 25
  *
26 26
  * LCD Menu Messages
27
- * See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
27
+ * See also http://marlinfw.org/docs/development/lcd_language.html
28 28
  *
29 29
  */
30 30
 #ifndef LANGUAGE_DA_H

+ 1
- 1
Marlin/language_de.h View File

@@ -24,7 +24,7 @@
24 24
  * German
25 25
  *
26 26
  * LCD Menu Messages
27
- * See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
27
+ * See also http://marlinfw.org/docs/development/lcd_language.html
28 28
  *
29 29
  */
30 30
 #ifndef LANGUAGE_DE_H

+ 1
- 1
Marlin/language_el-gr.h View File

@@ -24,7 +24,7 @@
24 24
  * Greek (Greece)
25 25
  *
26 26
  * LCD Menu Messages
27
- * See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
27
+ * See also http://marlinfw.org/docs/development/lcd_language.html
28 28
  *
29 29
  */
30 30
 #ifndef LANGUAGE_EL_GR_H

+ 1
- 1
Marlin/language_el.h View File

@@ -24,7 +24,7 @@
24 24
  * Greek
25 25
  *
26 26
  * LCD Menu Messages
27
- * See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
27
+ * See also http://marlinfw.org/docs/development/lcd_language.html
28 28
  *
29 29
  */
30 30
 #ifndef LANGUAGE_EL_H

+ 1
- 1
Marlin/language_en.h View File

@@ -24,7 +24,7 @@
24 24
  * English
25 25
  *
26 26
  * LCD Menu Messages
27
- * See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
27
+ * See also http://marlinfw.org/docs/development/lcd_language.html
28 28
  *
29 29
  */
30 30
 #ifndef LANGUAGE_EN_H

+ 1
- 1
Marlin/language_es.h View File

@@ -24,7 +24,7 @@
24 24
  * Spanish
25 25
  *
26 26
  * LCD Menu Messages
27
- * See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
27
+ * See also http://marlinfw.org/docs/development/lcd_language.html
28 28
  *
29 29
  */
30 30
 #ifndef LANGUAGE_ES_H

+ 1
- 1
Marlin/language_eu.h View File

@@ -24,7 +24,7 @@
24 24
  * Basque-Euskera
25 25
  *
26 26
  * LCD Menu Messages
27
- * See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
27
+ * See also http://marlinfw.org/docs/development/lcd_language.html
28 28
  *
29 29
  */
30 30
 #ifndef LANGUAGE_EU_H

+ 1
- 1
Marlin/language_fi.h View File

@@ -24,7 +24,7 @@
24 24
  * Finnish
25 25
  *
26 26
  * LCD Menu Messages
27
- * See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
27
+ * See also http://marlinfw.org/docs/development/lcd_language.html
28 28
  *
29 29
  */
30 30
 #ifndef LANGUAGE_FI_H

+ 1
- 1
Marlin/language_fr.h View File

@@ -24,7 +24,7 @@
24 24
  * French
25 25
  *
26 26
  * LCD Menu Messages
27
- * See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
27
+ * See also http://marlinfw.org/docs/development/lcd_language.html
28 28
  *
29 29
  */
30 30
 #ifndef LANGUAGE_FR_H

+ 1
- 1
Marlin/language_gl.h View File

@@ -24,7 +24,7 @@
24 24
  * Galician language (ISO "gl")
25 25
  *
26 26
  * LCD Menu Messages
27
- * See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
27
+ * See also http://marlinfw.org/docs/development/lcd_language.html
28 28
  *
29 29
  */
30 30
 #ifndef LANGUAGE_GL_H

+ 0
- 0
Marlin/language_hr.h View File


Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save