Browse Source

Merge remote-tracking branch 'upstream/Development' into Development

Conflicts:
	Marlin/Configuration.h
	Marlin/Marlin_main.cpp
Jérémie FRANCOIS 9 years ago
parent
commit
9d75a56b56
95 changed files with 8151 additions and 4779 deletions
  1. 3
    3
      Documentation/BedLeveling.md
  2. 222
    161
      Marlin/Configuration.h
  3. 595
    470
      Marlin/ConfigurationStore.cpp
  4. 7
    7
      Marlin/ConfigurationStore.h
  5. 1
    1
      Marlin/Configuration_adv.h
  6. 3
    1
      Marlin/DOGMbitmaps.h
  7. 3
    1
      Marlin/Marlin.h
  8. 123
    158
      Marlin/Marlin_main.cpp
  9. 3
    3
      Marlin/SdBaseFile.cpp
  10. 5
    3
      Marlin/SdFatConfig.h
  11. 150
    190
      Marlin/Servo.cpp
  12. 42
    42
      Marlin/Servo.h
  13. 4
    1
      Marlin/boards.h
  14. 9
    9
      Marlin/cardreader.cpp
  15. 5
    5
      Marlin/cardreader.h
  16. 81
    70
      Marlin/dogm_lcd_implementation.h
  17. 834
    0
      Marlin/example_configurations/Hephestos/Configuration.h
  18. 535
    0
      Marlin/example_configurations/Hephestos/Configuration_adv.h
  19. 48
    13
      Marlin/example_configurations/K8200/Configuration.h
  20. 16
    4
      Marlin/example_configurations/K8200/Configuration_adv.h
  21. 4
    1
      Marlin/example_configurations/K8200/readme.md
  22. 48
    8
      Marlin/example_configurations/SCARA/Configuration.h
  23. 1
    1
      Marlin/example_configurations/SCARA/Configuration_adv.h
  24. 838
    0
      Marlin/example_configurations/WITBOX/Configuration.h
  25. 535
    0
      Marlin/example_configurations/WITBOX/Configuration_adv.h
  26. 50
    9
      Marlin/example_configurations/delta/Configuration.h
  27. 1
    1
      Marlin/example_configurations/delta/Configuration_adv.h
  28. 52
    9
      Marlin/example_configurations/makibox/Configuration.h
  29. 1
    1
      Marlin/example_configurations/makibox/Configuration_adv.h
  30. 51
    9
      Marlin/example_configurations/tvrrug/Round2/Configuration.h
  31. 1
    1
      Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h
  32. 92
    25
      Marlin/language.h
  33. 4
    26
      Marlin/language_an.h
  34. 4
    25
      Marlin/language_ca.h
  35. 73
    96
      Marlin/language_de.h
  36. 244
    42
      Marlin/language_en.h
  37. 4
    34
      Marlin/language_es.h
  38. 4
    25
      Marlin/language_eu.h
  39. 4
    25
      Marlin/language_fi.h
  40. 4
    26
      Marlin/language_fr.h
  41. 7
    37
      Marlin/language_it.h
  42. 4
    25
      Marlin/language_nl.h
  43. 5
    27
      Marlin/language_pl.h
  44. 130
    0
      Marlin/language_pt-br.h
  45. 81
    107
      Marlin/language_pt.h
  46. 39
    60
      Marlin/language_ru.h
  47. 135
    2977
      Marlin/pins.h
  48. 37
    0
      Marlin/pins_3DRAG.h
  49. 75
    0
      Marlin/pins_5DPRINT.h
  50. 38
    0
      Marlin/pins_99.h
  51. 7
    0
      Marlin/pins_AZTEEG_X1.h
  52. 5
    0
      Marlin/pins_AZTEEG_X3.h
  53. 30
    0
      Marlin/pins_AZTEEG_X3_PRO.h
  54. 61
    0
      Marlin/pins_BRAINWAVE.h
  55. 95
    0
      Marlin/pins_CHEAPTRONIC.h
  56. 43
    0
      Marlin/pins_DUEMILANOVE_328P.h
  57. 116
    0
      Marlin/pins_ELEFU_3.h
  58. 61
    0
      Marlin/pins_GEN3_MONOLITHIC.h
  59. 45
    0
      Marlin/pins_GEN3_PLUS.h
  60. 62
    0
      Marlin/pins_GEN6.h
  61. 5
    0
      Marlin/pins_GEN6_DELUXE.h
  62. 72
    0
      Marlin/pins_GEN7_12.h
  63. 8
    0
      Marlin/pins_GEN7_13.h
  64. 60
    0
      Marlin/pins_GEN7_14.h
  65. 76
    0
      Marlin/pins_GEN7_CUSTOM.h
  66. 5
    0
      Marlin/pins_HEPHESTOS.h
  67. 6
    0
      Marlin/pins_K8200.h
  68. 62
    0
      Marlin/pins_LEAPFROG.h
  69. 92
    0
      Marlin/pins_MEGATRONICS.h
  70. 88
    0
      Marlin/pins_MEGATRONICS_1.h
  71. 103
    0
      Marlin/pins_MEGATRONICS_2.h
  72. 89
    0
      Marlin/pins_MEGATRONICS_3.h
  73. 11
    0
      Marlin/pins_MELZI.h
  74. 15
    0
      Marlin/pins_MELZI_1284.h
  75. 91
    0
      Marlin/pins_OMCA.h
  76. 78
    0
      Marlin/pins_OMCA_A.h
  77. 88
    0
      Marlin/pins_PRINTRBOARD.h
  78. 165
    0
      Marlin/pins_RAMBO.h
  79. 227
    0
      Marlin/pins_RAMPS_13.h
  80. 69
    0
      Marlin/pins_RAMPS_OLD.h
  81. 113
    0
      Marlin/pins_RUMBA.h
  82. 172
    0
      Marlin/pins_SANGUINOLOLU_11.h
  83. 19
    0
      Marlin/pins_SANGUINOLOLU_12.h
  84. 88
    0
      Marlin/pins_SAV_MKI.h
  85. 71
    0
      Marlin/pins_SETHI.h
  86. 11
    0
      Marlin/pins_STB_11.h
  87. 115
    0
      Marlin/pins_TEENSY2.h
  88. 85
    0
      Marlin/pins_TEENSYLU.h
  89. 80
    0
      Marlin/pins_ULTIMAIN_2.h
  90. 100
    0
      Marlin/pins_ULTIMAKER.h
  91. 62
    0
      Marlin/pins_ULTIMAKER_OLD.h
  92. 5
    0
      Marlin/pins_WITBOX.h
  93. 33
    33
      Marlin/ultralcd.cpp
  94. 5
    5
      Marlin/ultralcd_implementation_hitachi_HD44780.h
  95. 2
    2
      Marlin/ultralcd_st7920_u8glib_rrd.h

+ 3
- 3
Documentation/BedLeveling.md View File

@@ -60,9 +60,9 @@ My preferred method:
60 60
 * g) You can raise the z probe with M402 command;
61 61
 * h) Fill the defines bellow multiplying the values by "-1" (just change the signal)
62 62
 
63
-
64
-* \#define X_PROBE_OFFSET_FROM_EXTRUDER -24.3
65
-* \#define Y_PROBE_OFFSET_FROM_EXTRUDER 31.4
63
+* X and Y-Offset must be Integers!
64
+* \#define X_PROBE_OFFSET_FROM_EXTRUDER -24
65
+* \#define Y_PROBE_OFFSET_FROM_EXTRUDER 31
66 66
 * \#define Z_PROBE_OFFSET_FROM_EXTRUDER -5.1
67 67
 
68 68
 Sled Option Notes

+ 222
- 161
Marlin/Configuration.h View File

@@ -3,6 +3,20 @@
3 3
 
4 4
 #include "boards.h"
5 5
 
6
+//===========================================================================
7
+//============================= Getting Started =============================
8
+//===========================================================================
9
+/*
10
+Here are some standard links for getting your machine calibrated:
11
+ * http://reprap.org/wiki/Calibration 
12
+ * http://youtu.be/wAL9d7FgInk
13
+ * http://calculator.josefprusa.cz
14
+ * http://reprap.org/wiki/Triffid_Hunter%27s_Calibration_Guide
15
+ * http://www.thingiverse.com/thing:5573
16
+ * https://sites.google.com/site/repraplogphase/calibration-of-your-reprap
17
+ * http://www.thingiverse.com/thing:298812
18
+*/
19
+
6 20
 // This configuration file contains the basic settings.
7 21
 // Advanced settings can be found in Configuration_adv.h
8 22
 // BASIC SETTINGS: select your board type, temperature sensor type, axis scaling, and endstop configuration
@@ -14,15 +28,22 @@
14 28
 // example_configurations/delta directory.
15 29
 //
16 30
 
31
+//===========================================================================
32
+//============================= SCARA Printer ===============================
33
+//===========================================================================
34
+// For a Delta printer replace the configuration files with the files in the
35
+// example_configurations/SCARA directory.
36
+//
17 37
 
18 38
 // User-specified version info of this build to display in [Pronterface, etc] terminal window during
19 39
 // startup. Implementation of an idea by Prof Braino to inform user that any changes made to this
20 40
 // build by the user have been successfully uploaded into firmware.
21
-#define STRING_VERSION "v1.0.2"
41
+#define STRING_VERSION "1.0.2"
22 42
 #define STRING_URL "reprap.org"
23 43
 #define STRING_VERSION_CONFIG_H __DATE__ " " __TIME__ // build date and time
24
-#define STRING_CONFIG_H_AUTHOR "(Jeremie, Tridimake)" // JFR - Who made the changes.
25
-#define STRING_SPLASH STRING_VERSION " - " STRING_URL // will be shown during bootup
44
+#define STRING_CONFIG_H_AUTHOR "(none, default config)" // Who made the changes.
45
+#define STRING_SPLASH_LINE1 "v" STRING_VERSION // will be shown during bootup in line 1
46
+//#define STRING_SPLASH_LINE2 STRING_VERSION_CONFIG_H // will be shown during bootup in line2
26 47
 
27 48
 // SERIAL_PORT selects which serial port should be used for communication with the host.
28 49
 // This allows the connection of wireless adapters (for instance) to non-default port pins.
@@ -30,8 +51,7 @@
30 51
 #define SERIAL_PORT 0
31 52
 
32 53
 // This determines the communication speed of the printer
33
-//#define BAUDRATE 250000
34
-#define BAUDRATE 115200
54
+#define BAUDRATE 250000
35 55
 
36 56
 // This enables the serial port associated to the Bluetooth interface
37 57
 //#define BTENABLED              // Enable BT interface on AT90USB devices
@@ -39,11 +59,11 @@
39 59
 // The following define selects which electronics board you have.
40 60
 // Please choose the name from boards.h that matches your setup
41 61
 #ifndef MOTHERBOARD
42
-  #define MOTHERBOARD 33 // JFR - was BOARD_ULTIMAKER
62
+  #define MOTHERBOARD BOARD_ULTIMAKER
43 63
 #endif
44 64
 
45 65
 // Define this to set a custom name for your generic Mendel,
46
-#define CUSTOM_MENDEL_NAME "[RMud]HP" // JFR -was "This Mendel"
66
+// #define CUSTOM_MENDEL_NAME "This Mendel"
47 67
 
48 68
 // Define this to set a unique identifier for this printer, (Used by some programs to differentiate between machines)
49 69
 // You can use an online service to generate a random UUID. (eg http://www.uuidgenerator.net/version4)
@@ -62,51 +82,7 @@
62 82
 // #define PS_DEFAULT_OFF
63 83
 
64 84
 //===========================================================================
65
-//============================== Delta Settings =============================
66
-//===========================================================================
67
-// Enable DELTA kinematics and most of the default configuration for Deltas
68
-#define DELTA
69
-
70
-// Make delta curves from many straight lines (linear interpolation).
71
-// This is a trade-off between visible corners (not enough segments)
72
-// and processor overload (too many expensive sqrt calls).
73
-#define DELTA_SEGMENTS_PER_SECOND 100 // JFR: was 200
74
-
75
-/*
76
-  Parameter essential for delta calibration:
77
-
78
-            C, Y-Axis
79
-            |                        |___| CARRIAGE_HORIZONTAL_OFFSET
80
-            |                        |   \
81
-            |_________ X-axis        |    \
82
-           / \                       |     \  DELTA_DIAGONAL_ROD
83
-          /   \                             \
84
-         /     \                             \    Carriage is at printer center!
85
-         A      B                             \_____/
86
-                                              |--| END_EFFECTOR_HORIZONTAL_OFFSET
87
-                                         |----| DELTA_RADIUS
88
-                                     |-----------| PRINTER_RADIUS
89
-
90
-  Column angles are measured from X-axis counterclockwise
91
-*/
92
-
93
-// Center-to-center distance of the holes in the diagonal push rods.
94
-#define DELTA_DIAGONAL_ROD (202.4) // mm JFR: was 202 for LABSUD
95
-
96
-// Horizontal offset from middle of printer to smooth rod center.
97
-#define DELTA_SMOOTH_ROD_OFFSET 139.5 // mm
98
-
99
-// Horizontal offset of the universal joints on the end effector.
100
-#define DELTA_EFFECTOR_OFFSET 18.0 // mm
101
-
102
-// Horizontal offset of the universal joints on the carriages.
103
-#define DELTA_CARRIAGE_OFFSET 18.0 // mm
104
-
105
-// Effective horizontal distance bridged by diagonal push rods.
106
-#define DELTA_RADIUS (DELTA_SMOOTH_ROD_OFFSET-DELTA_EFFECTOR_OFFSET-DELTA_CARRIAGE_OFFSET)
107
-
108
-//===========================================================================
109
-//=============================Thermal Settings  ============================
85
+//============================= Thermal Settings ============================
110 86
 //===========================================================================
111 87
 //
112 88
 //--NORMAL IS 4.7kohm PULLUP!-- 1kohm pullup can be used on hotend sensor, using correct resistor and table
@@ -143,8 +119,8 @@
143 119
 // 147 is Pt100 with 4k7 pullup
144 120
 // 110 is Pt100 with 1k pullup (non standard)
145 121
 
146
-#define TEMP_SENSOR_0 1 // JFR -was -1
147
-#define TEMP_SENSOR_1 0 // JFR -was -1
122
+#define TEMP_SENSOR_0 -1
123
+#define TEMP_SENSOR_1 -1
148 124
 #define TEMP_SENSOR_2 0
149 125
 #define TEMP_SENSOR_BED 0
150 126
 
@@ -153,7 +129,7 @@
153 129
 #define MAX_REDUNDANT_TEMP_SENSOR_DIFF 10
154 130
 
155 131
 // Actual temperature must be close to target for this long before M109 returns success
156
-#define TEMP_RESIDENCY_TIME 4  //  // JFR -was 10 (seconds)
132
+#define TEMP_RESIDENCY_TIME 10  // (seconds)
157 133
 #define TEMP_HYSTERESIS 3       // (degC) range of +/- temperatures considered "close" to the target one
158 134
 #define TEMP_WINDOW     1       // (degC) Window around target to start the residency timer x degC early.
159 135
 
@@ -182,26 +158,32 @@
182 158
 //#define EXTRUDER_WATTS (12.0*12.0/6.7) //  P=I^2/R
183 159
 //#define BED_WATTS (12.0*12.0/1.1)      // P=I^2/R
184 160
 
185
-// PID settings:
161
+//===========================================================================
162
+//============================= PID Settings ================================
163
+//===========================================================================
164
+// PID Tuning Guide here: http://reprap.org/wiki/PID_Tuning
165
+
186 166
 // Comment the following line to disable PID and enable bang-bang.
187 167
 #define PIDTEMP
188
-#define BANG_MAX 80  // JFR -was 255 // limits current to nozzle while in bang-bang mode; 255=full current
189
-#define PID_MAX 70  // JFR -was BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
168
+#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
169
+#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
190 170
 #ifdef PIDTEMP
191 171
   //#define PID_DEBUG // Sends debug data to the serial port.
192 172
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
173
+  //#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
174
+  //#define PID_PARAMS_PER_EXTRUDER // Uses separate PID parameters for each extruder (useful for mismatched extruders)
175
+                                    // Set/get with gcode: M301 E[extruder number, 0-2]
193 176
   #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
194 177
                                   // is more then PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
195 178
   #define PID_INTEGRAL_DRIVE_MAX PID_MAX  //limit for the integral term
196 179
   #define K1 0.95 //smoothing factor within the PID
197
-// JFR: was  #define PID_dT ((OVERSAMPLENR * 10.0)/(F_CPU / 64.0 / 256.0)) //sampling period of the temperature routine
198
-  #define PID_dT ((16.0 * 8.0)/(F_CPU / 64.0 / 256.0)) //sampling period of the temperature routine
180
+  #define PID_dT ((OVERSAMPLENR * 10.0)/(F_CPU / 64.0 / 256.0)) //sampling period of the temperature routine
199 181
 
200 182
 // If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it
201 183
 // Ultimaker
202
-//    #define  DEFAULT_Kp 22.2
203
-//    #define  DEFAULT_Ki 1.08
204
-//    #define  DEFAULT_Kd 114
184
+    #define  DEFAULT_Kp 22.2
185
+    #define  DEFAULT_Ki 1.08
186
+    #define  DEFAULT_Kd 114
205 187
 
206 188
 // MakerGear
207 189
 //    #define  DEFAULT_Kp 7.0
@@ -212,15 +194,11 @@
212 194
 //    #define  DEFAULT_Kp 63.0
213 195
 //    #define  DEFAULT_Ki 2.25
214 196
 //    #define  DEFAULT_Kd 440
215
-
216
-// E3D 24v calibrée par frafa  avec buse 12v30W alimentée en 24v
217
-    #define  DEFAULT_Kp 12.48
218
-    #define  DEFAULT_Ki 1.63
219
-    #define  DEFAULT_Kd 23.93
220
-
221 197
 #endif // PIDTEMP
222 198
 
223
-// Bed Temperature Control
199
+//===========================================================================
200
+//============================= PID > Bed Temperature Control ===============
201
+//===========================================================================
224 202
 // Select PID or bang-bang with PIDTEMPBED. If bang-bang, BED_LIMIT_SWITCHING will enable hysteresis
225 203
 //
226 204
 // Uncomment this to enable PID on the bed. It uses the same frequency PWM as the extruder.
@@ -257,17 +235,19 @@
257 235
 #endif // PIDTEMPBED
258 236
 
259 237
 
260
-
261 238
 //this prevents dangerous Extruder moves, i.e. if the temperature is under the limit
262 239
 //can be software-disabled for whatever purposes by
263
-//#define PREVENT_DANGEROUS_EXTRUDE // JFR - was enabled
240
+#define PREVENT_DANGEROUS_EXTRUDE
264 241
 //if PREVENT_DANGEROUS_EXTRUDE is on, you can still disable (uncomment) very long bits of extrusion separately.
265 242
 #define PREVENT_LENGTHY_EXTRUDE
266 243
 
267 244
 #define EXTRUDE_MINTEMP 170
268 245
 #define EXTRUDE_MAXLENGTH (X_MAX_LENGTH+Y_MAX_LENGTH) //prevent extrusion of very large distances.
269 246
 
270
-/*================== Thermal Runaway Protection ==============================
247
+//===========================================================================
248
+//============================= Thermal Runaway Protection ==================
249
+//===========================================================================
250
+/*
271 251
 This is a feature to protect your printer from burn up in flames if it has
272 252
 a thermistor coming off place (this happened to a friend of mine recently and
273 253
 motivated me writing this feature).
@@ -302,13 +282,15 @@ your extruder heater takes 2 minutes to hit the target on heating.
302 282
 // Parameters for the bed heater
303 283
 //#define THERMAL_RUNAWAY_PROTECTION_BED_PERIOD 20 //in seconds
304 284
 //#define THERMAL_RUNAWAY_PROTECTION_BED_HYSTERESIS 2 // in degree Celsius
305
-//===========================================================================
306 285
 
307 286
 
308 287
 //===========================================================================
309
-//=============================Mechanical Settings===========================
288
+//============================= Mechanical Settings =========================
310 289
 //===========================================================================
311 290
 
291
+// Uncomment the following line to enable CoreXY kinematics
292
+// #define COREXY
293
+
312 294
 // coarse Endstop Settings
313 295
 #define ENDSTOPPULLUPS // Comment this out (using // at the start of the line) to disable the endstop pullup resistors
314 296
 
@@ -335,12 +317,12 @@ your extruder heater takes 2 minutes to hit the target on heating.
335 317
 const bool X_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
336 318
 const bool Y_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
337 319
 const bool Z_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
338
-const bool X_MAX_ENDSTOP_INVERTING = false; // JFR -was true // set to true to invert the logic of the endstop.
339
-const bool Y_MAX_ENDSTOP_INVERTING = false; // JFR -was true // set to true to invert the logic of the endstop.
340
-const bool Z_MAX_ENDSTOP_INVERTING = false; // JFR -was true // set to true to invert the logic of the endstop.
320
+const bool X_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
321
+const bool Y_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
322
+const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
341 323
 //#define DISABLE_MAX_ENDSTOPS
342
-// Deltas never have min endstops
343
-//#define DISABLE_MIN_ENDSTOPS // JFR- was not commented out!
324
+//#define DISABLE_MIN_ENDSTOPS
325
+
344 326
 // Disable max endstops for compatibility with endstop checking routine
345 327
 #if defined(COREXY) && !defined(DISABLE_MAX_ENDSTOPS)
346 328
   #define DISABLE_MAX_ENDSTOPS
@@ -359,39 +341,153 @@ const bool Z_MAX_ENDSTOP_INVERTING = false; // JFR -was true // set to true to i
359 341
 #define DISABLE_E false // For all extruders
360 342
 #define DISABLE_INACTIVE_EXTRUDER true //disable only inactive extruders and keep active extruder enabled
361 343
 
362
-#define INVERT_X_DIR false // DELTA does not invert
363
-#define INVERT_Y_DIR false
364
-#define INVERT_Z_DIR false
365
-
366
-#define INVERT_E0_DIR true   // JFR - was false // for direct drive extruder v9 set to true, for geared extruder set to false
344
+#define INVERT_X_DIR true    // for Mendel set to false, for Orca set to true
345
+#define INVERT_Y_DIR false    // for Mendel set to true, for Orca set to false
346
+#define INVERT_Z_DIR true     // for Mendel set to false, for Orca set to true
347
+#define INVERT_E0_DIR false   // for direct drive extruder v9 set to true, for geared extruder set to false
367 348
 #define INVERT_E1_DIR false    // for direct drive extruder v9 set to true, for geared extruder set to false
368 349
 #define INVERT_E2_DIR false   // for direct drive extruder v9 set to true, for geared extruder set to false
369 350
 
370 351
 // ENDSTOP SETTINGS:
371 352
 // Sets direction of endstops when homing; 1=MAX, -1=MIN
372
-// deltas always home to max
373
-#define X_HOME_DIR 1
374
-#define Y_HOME_DIR 1
375
-#define Z_HOME_DIR 1
353
+#define X_HOME_DIR -1
354
+#define Y_HOME_DIR -1
355
+#define Z_HOME_DIR -1
376 356
 
377 357
 #define min_software_endstops true // If true, axis won't move to coordinates less than HOME_POS.
378 358
 #define max_software_endstops true  // If true, axis won't move to coordinates greater than the defined lengths below.
379 359
 
380
-// Travel limits after homing
381
-#define X_MAX_POS 85 // JFR - was 205
382
-#define X_MIN_POS -85 // JFR - was 0
383
-#define Y_MAX_POS 85 // JFR - was 205
384
-#define Y_MIN_POS -85 // JFR - was 0
385
-#define Z_MAX_POS MANUAL_Z_HOME_POS // JFR - was 200
360
+// Travel limits after homing (units are in mm)
361
+#define X_MAX_POS 205
362
+#define X_MIN_POS 0
363
+#define Y_MAX_POS 205
364
+#define Y_MIN_POS 0
365
+#define Z_MAX_POS 200
386 366
 #define Z_MIN_POS 0
387 367
 
388 368
 #define X_MAX_LENGTH (X_MAX_POS - X_MIN_POS)
389 369
 #define Y_MAX_LENGTH (Y_MAX_POS - Y_MIN_POS)
390 370
 #define Z_MAX_LENGTH (Z_MAX_POS - Z_MIN_POS)
371
+
372
+
373
+//===========================================================================
391 374
 //============================= Bed Auto Leveling ===========================
392
-//Bed Auto Leveling is still not compatible with Delta Kinematics
375
+//===========================================================================
376
+
377
+//#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
378
+#define Z_PROBE_REPEATABILITY_TEST  // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled.
379
+
380
+#ifdef ENABLE_AUTO_BED_LEVELING
381
+
382
+// There are 2 different ways to pick the X and Y locations to probe:
393 383
 
384
+//  - "grid" mode
385
+//    Probe every point in a rectangular grid
386
+//    You must specify the rectangle, and the density of sample points
387
+//    This mode is preferred because there are more measurements.
388
+//    It used to be called ACCURATE_BED_LEVELING but "grid" is more descriptive
394 389
 
390
+//  - "3-point" mode
391
+//    Probe 3 arbitrary points on the bed (that aren't colinear)
392
+//    You must specify the X & Y coordinates of all 3 points
393
+
394
+  #define AUTO_BED_LEVELING_GRID
395
+  // with AUTO_BED_LEVELING_GRID, the bed is sampled in a
396
+  // AUTO_BED_LEVELING_GRID_POINTSxAUTO_BED_LEVELING_GRID_POINTS grid
397
+  // and least squares solution is calculated
398
+  // Note: this feature occupies 10'206 byte
399
+  #ifdef AUTO_BED_LEVELING_GRID
400
+
401
+    // set the rectangle in which to probe
402
+    #define LEFT_PROBE_BED_POSITION 15
403
+    #define RIGHT_PROBE_BED_POSITION 170
404
+    #define BACK_PROBE_BED_POSITION 180
405
+    #define FRONT_PROBE_BED_POSITION 20
406
+
407
+     // set the number of grid points per dimension
408
+     // I wouldn't see a reason to go above 3 (=9 probing points on the bed)
409
+    #define AUTO_BED_LEVELING_GRID_POINTS 2
410
+
411
+
412
+  #else  // not AUTO_BED_LEVELING_GRID
413
+    // with no grid, just probe 3 arbitrary points.  A simple cross-product
414
+    // is used to esimate the plane of the print bed
415
+
416
+      #define ABL_PROBE_PT_1_X 15
417
+      #define ABL_PROBE_PT_1_Y 180
418
+      #define ABL_PROBE_PT_2_X 15
419
+      #define ABL_PROBE_PT_2_Y 20
420
+      #define ABL_PROBE_PT_3_X 170
421
+      #define ABL_PROBE_PT_3_Y 20
422
+
423
+  #endif // AUTO_BED_LEVELING_GRID
424
+
425
+
426
+  // these are the offsets to the probe relative to the extruder tip (Hotend - Probe)
427
+  // X and Y offsets must be integers
428
+  #define X_PROBE_OFFSET_FROM_EXTRUDER -25
429
+  #define Y_PROBE_OFFSET_FROM_EXTRUDER -29
430
+  #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35
431
+
432
+  #define Z_RAISE_BEFORE_HOMING 4       // (in mm) Raise Z before homing (G28) for Probe Clearance.
433
+                                        // Be sure you have this distance over your Z_MAX_POS in case
434
+
435
+  #define XY_TRAVEL_SPEED 8000         // X and Y axis travel speed between probes, in mm/min
436
+
437
+  #define Z_RAISE_BEFORE_PROBING 15    //How much the extruder will be raised before traveling to the first probing point.
438
+  #define Z_RAISE_BETWEEN_PROBINGS 5  //How much the extruder will be raised when traveling from between next probing points
439
+
440
+  //#define Z_PROBE_SLED // turn on if you have a z-probe mounted on a sled like those designed by Charles Bell
441
+  //#define SLED_DOCKING_OFFSET 5 // the extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.
442
+
443
+  //If defined, the Probe servo will be turned on only during movement and then turned off to avoid jerk
444
+  //The value is the delay to turn the servo off after powered on - depends on the servo speed; 300ms is good value, but you can try lower it.
445
+  // You MUST HAVE the SERVO_ENDSTOPS defined to use here a value higher than zero otherwise your code will not compile.
446
+
447
+//  #define PROBE_SERVO_DEACTIVATION_DELAY 300
448
+
449
+
450
+//If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
451
+//it is highly recommended you let this Z_SAFE_HOMING enabled!!!
452
+
453
+  #define Z_SAFE_HOMING   // This feature is meant to avoid Z homing with probe outside the bed area.
454
+                          // When defined, it will:
455
+                          // - Allow Z homing only after X and Y homing AND stepper drivers still enabled
456
+                          // - If stepper drivers timeout, it will need X and Y homing again before Z homing
457
+                          // - Position the probe in a defined XY point before Z Homing when homing all axis (G28)
458
+                          // - Block Z homing only when the probe is outside bed area.
459
+
460
+  #ifdef Z_SAFE_HOMING
461
+
462
+    #define Z_SAFE_HOMING_X_POINT (X_MAX_LENGTH/2)    // X point for Z homing when homing all axis (G28)
463
+    #define Z_SAFE_HOMING_Y_POINT (Y_MAX_LENGTH/2)    // Y point for Z homing when homing all axis (G28)
464
+
465
+  #endif
466
+
467
+  #ifdef AUTO_BED_LEVELING_GRID	// Check if Probe_Offset * Grid Points is greater than Probing Range
468
+    #if X_PROBE_OFFSET_FROM_EXTRUDER < 0
469
+      #if (-(X_PROBE_OFFSET_FROM_EXTRUDER * (AUTO_BED_LEVELING_GRID_POINTS-1)) >= (RIGHT_PROBE_BED_POSITION - LEFT_PROBE_BED_POSITION))
470
+	     #error "The X axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS"
471
+	  #endif
472
+	#else
473
+      #if ((X_PROBE_OFFSET_FROM_EXTRUDER * (AUTO_BED_LEVELING_GRID_POINTS-1)) >= (RIGHT_PROBE_BED_POSITION - LEFT_PROBE_BED_POSITION))
474
+	     #error "The X axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS"
475
+	  #endif
476
+	#endif
477
+    #if Y_PROBE_OFFSET_FROM_EXTRUDER < 0
478
+      #if (-(Y_PROBE_OFFSET_FROM_EXTRUDER * (AUTO_BED_LEVELING_GRID_POINTS-1)) >= (BACK_PROBE_BED_POSITION - FRONT_PROBE_BED_POSITION))
479
+	     #error "The Y axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS"
480
+	  #endif
481
+	#else
482
+      #if ((Y_PROBE_OFFSET_FROM_EXTRUDER * (AUTO_BED_LEVELING_GRID_POINTS-1)) >= (BACK_PROBE_BED_POSITION - FRONT_PROBE_BED_POSITION))
483
+	     #error "The Y axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS"
484
+	  #endif
485
+	#endif
486
+
487
+	
488
+  #endif
489
+  
490
+#endif // ENABLE_AUTO_BED_LEVELING
395 491
 
396 492
 
397 493
 // The position of the homing switches
@@ -399,62 +495,24 @@ const bool Z_MAX_ENDSTOP_INVERTING = false; // JFR -was true // set to true to i
399 495
 //#define BED_CENTER_AT_0_0  // If defined, the center of the bed is at (X=0, Y=0)
400 496
 
401 497
 //Manual homing switch locations:
402
-
403
-#define MANUAL_HOME_POSITIONS  // MANUAL_*_HOME_POS below will be used // JFR- was disabled
404 498
 // For deltabots this means top and center of the Cartesian print volume.
405 499
 #define MANUAL_X_HOME_POS 0
406 500
 #define MANUAL_Y_HOME_POS 0
407
-#define MANUAL_Z_HOME_POS (142.7-1)
501
+#define MANUAL_Z_HOME_POS 0
408 502
 //#define MANUAL_Z_HOME_POS 402 // For delta: Distance between nozzle and print surface after homing.
409 503
 
410 504
 //// MOVEMENT SETTINGS
411 505
 #define NUM_AXIS 4 // The axis order in all axis related arrays is X, Y, Z, E
412
-
413
-// delta homing speeds must be the same on xyz
414
-#define HOMING_FEEDRATE {200*60, 200*60, 200*60, 0}  // set the homing speeds (mm/min)
415
-
416
-// ================>>>>> N.R. with bug fixes by JFR
417
-// Compute speed, feedrate and acceleration by means of pulley & motor specs only
506
+#define HOMING_FEEDRATE {50*60, 50*60, 4*60, 0}  // set the homing speeds (mm/min)
418 507
 
419 508
 // default settings
420
-#define PI 3.14159265
421
-#define G  9806.65
422
-
423
-//Motors (movement)
424
-#define MVT_N        3      // g acceleration for movement (3 ok)
425
-#define MVT_SPR      200.0  // step per revolution
426
-#define MVT_MS       32     // microstep (1/32 only possible with DRV8825 -- also 2.5A)
427
-#define MVT_OMEG     900.0  // maximum number of revolutions per minute at 19V (was 600-900)
428
-#define PULLEY_TN    26.0   // number of teeth on X/Y/Z pulley
429
-#define PULLEY_STEP  3.0    // pulley tooth size (mm)
430
-
431
-//Extruder motor
432
-#define XTR_N        MVT_N   // g acceleration for extruder
433
-#define XTR_SPR      (MVT_SPR*5) // step per revolution (with 5:1 reductor)
434
-#define XTR_MS       MVT_MS  // microstep
435
-#define XTR_OMEG     225.0   // maximum number of revolutions per minute // was 600-900
436
-#define MVT_DHB      10.56   // Hobbed bolt diameter
437
-
438
-#define MVT_PCIRC    ( PULLEY_TN * PULLEY_STEP ) // pulley circumference
439
-#define MVT_S        ( MVT_SPR * MVT_MS / MVT_PCIRC ) // step_per_revolution * microstepping / circumference
440
-#define MVT_V        ( MVT_OMEG * MVT_PCIRC / 60.0 ) // max velocity (mm/s)
441
-
442
-#define XTR_HBCIRC   ( PI * MVT_DHB ) // hobbed bolt circumference from diameter
443
-#define XTR_S        ( XTR_SPR * XTR_MS / XTR_HBCIRC )     //step per mm
444
-#define XTR_V        ( XTR_OMEG * XTR_HBCIRC / 60 ) // max velocity (mm/s)
445
-
446
-// the second axis sometimes needs /2 (BROKEN DRIVER??!!)
447
-#define DEFAULT_AXIS_STEPS_PER_UNIT   { MVT_S, MVT_S, MVT_S, XTR_S }
448
-#define DEFAULT_MAX_FEEDRATE          { MVT_V, MVT_V, MVT_V, XTR_V }  // (mm/sec)
449
-//JFR: is this OK?? #define DEFAULT_MAX_ACCELERATION      { MVT_N*G, MVT_N*G, MVT_N*G, XTR_N*G }  // X, Y, Z, E maximum start speed for accelerated moves.
450
-#define DEFAULT_MAX_ACCELERATION      {9000,9000,9000,10000}    // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for skeinforge 40+, for older versions raise them a lot.
451
-
452
-// JFR: do we want to multiply here by MVT_N and XTR_N ipo N ?
453
-#define DEFAULT_ACCELERATION          (MVT_N*G*3/4)   // X, Y, Z and E max acceleration in mm/s^2 for printing moves
454
-#define DEFAULT_RETRACT_ACCELERATION  (XTR_N*G*3/4)   // X, Y, Z and E max acceleration in mm/s^2 for r retracts
455 509
 
456
-//<<<<<================ JFR / N.R.
510
+#define DEFAULT_AXIS_STEPS_PER_UNIT   {78.7402,78.7402,200.0*8/3,760*1.1}  // default steps per unit for Ultimaker
511
+#define DEFAULT_MAX_FEEDRATE          {500, 500, 5, 25}    // (mm/sec)
512
+#define DEFAULT_MAX_ACCELERATION      {9000,9000,100,10000}    // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for Skeinforge 40+, for older versions raise them a lot.
457 513
 
514
+#define DEFAULT_ACCELERATION          3000    // X, Y, Z and E max acceleration in mm/s^2 for printing moves
515
+#define DEFAULT_RETRACT_ACCELERATION  3000   // X, Y, Z and E max acceleration in mm/s^2 for retracts
458 516
 
459 517
 // Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
460 518
 // The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).
@@ -464,12 +522,13 @@ const bool Z_MAX_ENDSTOP_INVERTING = false; // JFR -was true // set to true to i
464 522
 
465 523
 // The speed change that does not require acceleration (i.e. the software might assume it can be done instantaneously)
466 524
 #define DEFAULT_XYJERK                20.0    // (mm/sec)
467
-#define DEFAULT_ZJERK                 20.0    // (mm/sec) Must be same as XY for delta
525
+#define DEFAULT_ZJERK                 0.4     // (mm/sec)
468 526
 #define DEFAULT_EJERK                 5.0    // (mm/sec)
469 527
 
470
-//===========================================================================
471
-//=============================Additional Features===========================
472
-//===========================================================================
528
+
529
+//=============================================================================
530
+//============================= Additional Features ===========================
531
+//=============================================================================
473 532
 
474 533
 // Custom M code points
475 534
 #define CUSTOM_M_CODES
@@ -489,7 +548,7 @@ const bool Z_MAX_ENDSTOP_INVERTING = false; // JFR -was true // set to true to i
489 548
 //#define EEPROM_SETTINGS
490 549
 //to disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
491 550
 // please keep turned on if you can.
492
-#define EEPROM_CHITCHAT
551
+//#define EEPROM_CHITCHAT
493 552
 
494 553
 // Preheat Constants
495 554
 #define PLA_PREHEAT_HOTEND_TEMP 180
@@ -500,7 +559,17 @@ const bool Z_MAX_ENDSTOP_INVERTING = false; // JFR -was true // set to true to i
500 559
 #define ABS_PREHEAT_HPB_TEMP 100
501 560
 #define ABS_PREHEAT_FAN_SPEED 255   // Insert Value between 0 and 255
502 561
 
503
-//LCD and SD support
562
+//==============================LCD and SD support=============================
563
+
564
+// Define your display language below. Replace (en) with your language code and uncomment.
565
+// en, pl, fr, de, es, ru, it, pt, pt-br, fi, an, nl, ca, eu
566
+// See also language.h
567
+//#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en)
568
+
569
+// Character based displays can have different extended charsets.
570
+#define DISPLAY_CHARSET_HD44780_JAPAN     // "ääööüüß23°"
571
+//#define DISPLAY_CHARSET_HD44780_WESTERN // "ÄäÖöÜüß²³°" if you see a '~' instead of a 'arrow_right' at the right of submenuitems - this is the right one.
572
+
504 573
 //#define ULTRA_LCD  //general LCD support, also 16x2
505 574
 //#define DOGLCD  // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family)
506 575
 //#define SDSUPPORT // Enable SD Card Support in Hardware Console
@@ -519,7 +588,7 @@ const bool Z_MAX_ENDSTOP_INVERTING = false; // JFR -was true // set to true to i
519 588
 
520 589
 // The RepRapDiscount Smart Controller (white PCB)
521 590
 // http://reprap.org/wiki/RepRapDiscount_Smart_Controller
522
-#define REPRAP_DISCOUNT_SMART_CONTROLLER
591
+//#define REPRAP_DISCOUNT_SMART_CONTROLLER
523 592
 
524 593
 // The GADGETS3D G3D LCD/SD Controller (blue PCB)
525 594
 // http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel
@@ -541,13 +610,6 @@ const bool Z_MAX_ENDSTOP_INVERTING = false; // JFR -was true // set to true to i
541 610
 // REMEMBER TO INSTALL LiquidCrystal_I2C.h in your ARDUINO library folder: https://github.com/kiyoshigawa/LiquidCrystal_I2C
542 611
 //#define RA_CONTROL_PANEL
543 612
 
544
-// Delta calibration menu
545
-// uncomment to add three points calibration menu option.
546
-// See http://minow.blogspot.com/index.html#4918805519571907051
547
-// If needed, adjust the X, Y, Z calibration coordinates
548
-// in ultralcd.cpp@lcd_delta_calibrate_menu()
549
-#define DELTA_CALIBRATION_MENU // JFR - was disabled
550
-
551 613
 //automatic expansion
552 614
 #if defined (MAKRPANEL)
553 615
  #define DOGLCD
@@ -653,7 +715,7 @@ const bool Z_MAX_ENDSTOP_INVERTING = false; // JFR -was true // set to true to i
653 715
   #define SDSUPPORT
654 716
   #define ULTRA_LCD
655 717
   #ifdef DOGLCD // Change number of lines to match the DOG graphic display
656
-    #define LCD_WIDTH 20
718
+    #define LCD_WIDTH 22
657 719
     #define LCD_HEIGHT 5
658 720
   #else
659 721
     #define LCD_WIDTH 20
@@ -662,7 +724,7 @@ const bool Z_MAX_ENDSTOP_INVERTING = false; // JFR -was true // set to true to i
662 724
 #else //no panel but just LCD
663 725
   #ifdef ULTRA_LCD
664 726
   #ifdef DOGLCD // Change number of lines to match the 128x64 graphics display
665
-    #define LCD_WIDTH 20
727
+    #define LCD_WIDTH 22
666 728
     #define LCD_HEIGHT 5
667 729
   #else
668 730
     #define LCD_WIDTH 16
@@ -746,13 +808,13 @@ const bool Z_MAX_ENDSTOP_INVERTING = false; // JFR -was true // set to true to i
746 808
 // Uncomment below to enable
747 809
 //#define FILAMENT_SENSOR
748 810
 
749
-#define FILAMENT_SENSOR_EXTRUDER_NUM  0  //The number of the extruder that has the filament sensor (0,1,2)
750
-#define MEASUREMENT_DELAY_CM      14  //measurement delay in cm.  This is the distance from filament sensor to middle of barrel
811
+#define FILAMENT_SENSOR_EXTRUDER_NUM	0  //The number of the extruder that has the filament sensor (0,1,2)
812
+#define MEASUREMENT_DELAY_CM			14  //measurement delay in cm.  This is the distance from filament sensor to middle of barrel
751 813
 
752 814
 #define DEFAULT_NOMINAL_FILAMENT_DIA  3.0  //Enter the diameter (in mm) of the filament generally used (3.0 mm or 1.75 mm) - this is then used in the slicer software.  Used for sensor reading validation
753 815
 #define MEASURED_UPPER_LIMIT          3.30  //upper limit factor used for sensor reading validation in mm
754 816
 #define MEASURED_LOWER_LIMIT          1.90  //lower limit factor for sensor reading validation in mm
755
-#define MAX_MEASUREMENT_DELAY     20  //delay buffer size in bytes (1 byte = 1cm)- limits maximum measurement delay allowable (must be larger than MEASUREMENT_DELAY_CM  and lower number saves RAM)
817
+#define MAX_MEASUREMENT_DELAY			20  //delay buffer size in bytes (1 byte = 1cm)- limits maximum measurement delay allowable (must be larger than MEASUREMENT_DELAY_CM  and lower number saves RAM)
756 818
 
757 819
 //defines used in the code
758 820
 #define DEFAULT_MEASURED_FILAMENT_DIA  DEFAULT_NOMINAL_FILAMENT_DIA  //set measured to nominal initially 
@@ -765,7 +827,6 @@ const bool Z_MAX_ENDSTOP_INVERTING = false; // JFR -was true // set to true to i
765 827
 
766 828
 
767 829
 
768
-
769 830
 #include "Configuration_adv.h"
770 831
 #include "thermistortables.h"
771 832
 

+ 595
- 470
Marlin/ConfigurationStore.cpp
File diff suppressed because it is too large
View File


+ 7
- 7
Marlin/ConfigurationStore.h View File

@@ -6,17 +6,17 @@
6 6
 void Config_ResetDefault();
7 7
 
8 8
 #ifndef DISABLE_M503
9
-void Config_PrintSettings();
9
+  void Config_PrintSettings(bool forReplay=false);
10 10
 #else
11
-FORCE_INLINE void Config_PrintSettings() {}
11
+  FORCE_INLINE void Config_PrintSettings(bool forReplay=false) {}
12 12
 #endif
13 13
 
14 14
 #ifdef EEPROM_SETTINGS
15
-void Config_StoreSettings();
16
-void Config_RetrieveSettings();
15
+  void Config_StoreSettings();
16
+  void Config_RetrieveSettings();
17 17
 #else
18
-FORCE_INLINE void Config_StoreSettings() {}
19
-FORCE_INLINE void Config_RetrieveSettings() { Config_ResetDefault(); Config_PrintSettings(); }
18
+  FORCE_INLINE void Config_StoreSettings() {}
19
+  FORCE_INLINE void Config_RetrieveSettings() { Config_ResetDefault(); Config_PrintSettings(); }
20 20
 #endif
21 21
 
22
-#endif//CONFIG_STORE_H
22
+#endif // __CONFIG_STORE_H

+ 1
- 1
Marlin/Configuration_adv.h View File

@@ -228,7 +228,7 @@
228 228
 #define INVERT_Z_STEP_PIN false
229 229
 #define INVERT_E_STEP_PIN false
230 230
 
231
-//default stepper release if idle
231
+//default stepper release if idle. Set to 0 to deactivate.
232 232
 #define DEFAULT_STEPPER_DEACTIVE_TIME 60
233 233
 
234 234
 #define DEFAULT_MINIMUMFEEDRATE       0.0     // minimum feedrate

+ 3
- 1
Marlin/DOGMbitmaps.h View File

@@ -1,6 +1,8 @@
1 1
 // BitMap for splashscreen
2 2
 // Generated with: http://www.digole.com/tools/PicturetoC_Hex_converter.php
3
-// Please note that using the high-res version takes about 0.5KB of 
3
+// Please note that using the high-res version takes 402Bytes of PROGMEM. 
4
+//#define START_BMPHIGH
5
+
4 6
 #ifdef START_BMPHIGH
5 7
   #define START_BMPWIDTH      112
6 8
   #define START_BMPHEIGHT      38

+ 3
- 1
Marlin/Marlin.h View File

@@ -34,7 +34,7 @@
34 34
 
35 35
 // Arduino < 1.0.0 does not define this, so we need to do it ourselves
36 36
 #ifndef analogInputToDigitalPin
37
-# define analogInputToDigitalPin(p) ((p) + A0)
37
+# define analogInputToDigitalPin(p) ((p) + 0xA0)
38 38
 #endif
39 39
 
40 40
 #ifdef AT90USB
@@ -86,6 +86,8 @@ extern const char echomagic[] PROGMEM;
86 86
 
87 87
 #define SERIAL_ECHOPAIR(name,value) (serial_echopair_P(PSTR(name),(value)))
88 88
 
89
+#define SERIAL_EOL SERIAL_ECHOLN("")
90
+
89 91
 void serial_echopair_P(const char *s_P, float v);
90 92
 void serial_echopair_P(const char *s_P, double v);
91 93
 void serial_echopair_P(const char *s_P, unsigned long v);

+ 123
- 158
Marlin/Marlin_main.cpp View File

@@ -49,20 +49,18 @@
49 49
 #include "math.h"
50 50
 
51 51
 #ifdef BLINKM
52
-#include "BlinkM.h"
53
-#include "Wire.h"
52
+  #include "BlinkM.h"
53
+  #include "Wire.h"
54 54
 #endif
55 55
 
56 56
 #if NUM_SERVOS > 0
57
-#include "Servo.h"
57
+  #include "Servo.h"
58 58
 #endif
59 59
 
60 60
 #if defined(DIGIPOTSS_PIN) && DIGIPOTSS_PIN > -1
61
-#include <SPI.h>
61
+  #include <SPI.h>
62 62
 #endif
63 63
 
64
-#define VERSION_STRING  "1.0.0"
65
-
66 64
 // look here for descriptions of G-codes: http://linuxcnc.org/handbook/gcode/g-code.html
67 65
 // http://objects.reprap.org/wiki/Mendel_User_Manual:_RepRapGCodes
68 66
 
@@ -140,17 +138,17 @@
140 138
 // M203 - Set maximum feedrate that your machine can sustain (M203 X200 Y200 Z300 E10000) in mm/sec
141 139
 // M204 - Set default acceleration: S normal moves T filament only moves (M204 S3000 T7000) in mm/sec^2  also sets minimum segment time in ms (B20000) to prevent buffer under-runs and M20 minimum feedrate
142 140
 // M205 -  advanced settings:  minimum travel speed S=while printing T=travel only,  B=minimum segment time X= maximum xy jerk, Z=maximum Z jerk, E=maximum E jerk
143
-// M206 - set additional homing offset
144
-// M207 - set retract length S[positive mm] F[feedrate mm/min] Z[additional zlift/hop], stays in mm regardless of M200 setting
145
-// M208 - set recover=unretract length S[positive mm surplus to the M207 S*] F[feedrate mm/sec]
141
+// M206 - Set additional homing offset
142
+// M207 - Set retract length S[positive mm] F[feedrate mm/min] Z[additional zlift/hop], stays in mm regardless of M200 setting
143
+// M208 - Set recover=unretract length S[positive mm surplus to the M207 S*] F[feedrate mm/sec]
146 144
 // M209 - S<1=true/0=false> enable automatic retract detect if the slicer did not support G10/11: every normal extrude-only move will be classified as retract depending on the direction.
147
-// M218 - set hotend offset (in mm): T<extruder_number> X<offset_on_X> Y<offset_on_Y>
145
+// M218 - Set hotend offset (in mm): T<extruder_number> X<offset_on_X> Y<offset_on_Y>
148 146
 // M220 S<factor in percent>- set speed factor override percentage
149 147
 // M221 S<factor in percent>- set extrude factor override percentage
150 148
 // M226 P<pin number> S<pin state>- Wait until the specified pin reaches the state required
151 149
 // M240 - Trigger a camera to take a photograph
152 150
 // M250 - Set LCD contrast C<contrast value> (value 0..63)
153
-// M280 - set servo position absolute. P: servo index, S: angle or microseconds
151
+// M280 - Set servo position absolute. P: servo index, S: angle or microseconds
154 152
 // M300 - Play beep sound S<frequency Hz> P<duration ms>
155 153
 // M301 - Set PID parameters P I and D
156 154
 // M302 - Allow cold extrudes, or set the minimum extrude S<temperature>.
@@ -163,14 +161,14 @@
163 161
 // M405 - Turn on Filament Sensor extrusion control.  Optional D<delay in cm> to set delay in centimeters between sensor and extruder 
164 162
 // M406 - Turn off Filament Sensor extrusion control 
165 163
 // M407 - Displays measured filament diameter 
166
-// M500 - stores parameters in EEPROM
167
-// M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).
168
-// M502 - reverts to the default "factory settings".  You still need to store them in EEPROM afterwards if you want to.
169
-// M503 - print the current settings (from memory not from EEPROM)
164
+// M500 - Store parameters in EEPROM
165
+// M501 - Read parameters from EEPROM (if you need reset them after you changed them temporarily).
166
+// M502 - Revert to the default "factory settings".  You still need to store them in EEPROM afterwards if you want to.
167
+// M503 - Print the current settings (from memory not from EEPROM). Use S0 to leave off headings.
170 168
 // M540 - Use S[0|1] to enable or disable the stop SD card print on endstop hit (requires ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED)
171 169
 // M600 - Pause for filament change X[pos] Y[pos] Z[relative lift] E[initial retract] L[later retract distance for removal]
172
-// M665 - set delta configurations
173
-// M666 - set delta endstop adjustment
170
+// M665 - Set delta configurations
171
+// M666 - Set delta endstop adjustment
174 172
 // M605 - Set dual x-carriage movement mode: S<mode> [ X<duplication x-offset> R<duplication temp offset> ]
175 173
 // M907 - Set digital trimpot motor current using axis codes.
176 174
 // M908 - Control digital trimpot directly.
@@ -189,25 +187,16 @@
189 187
 // M928 - Start SD logging (M928 filename.g) - ended by M29
190 188
 // M999 - Restart after being stopped by error
191 189
 
192
-//Stepper Movement Variables
193
-
194
-//===========================================================================
195
-//=============================imported variables============================
196
-//===========================================================================
197
-
198
-
199
-//===========================================================================
200
-//=============================public variables=============================
201
-//===========================================================================
202 190
 #ifdef SDSUPPORT
203
-CardReader card;
191
+  CardReader card;
204 192
 #endif
193
+
205 194
 float homing_feedrate[] = HOMING_FEEDRATE;
206 195
 bool axis_relative_modes[] = AXIS_RELATIVE_MODES;
207
-int feedmultiply=100; //100->1 200->2
196
+int feedmultiply = 100; //100->1 200->2
208 197
 int saved_feedmultiply;
209
-int extrudemultiply=100; //100->1 200->2
210
-int extruder_multiply[EXTRUDERS] = {100
198
+int extrudemultiply = 100; //100->1 200->2
199
+int extruder_multiply[EXTRUDERS] = { 100
211 200
   #if EXTRUDERS > 1
212 201
     , 100
213 202
     #if EXTRUDERS > 2
@@ -242,14 +231,14 @@ float volumetric_multiplier[EXTRUDERS] = {1.0
242 231
   #endif
243 232
 };
244 233
 float current_position[NUM_AXIS] = { 0.0, 0.0, 0.0, 0.0 };
245
-float add_homing[3]={0,0,0};
234
+float add_homing[3] = { 0, 0, 0 };
246 235
 #ifdef DELTA
247
-float endstop_adj[3]={0,0,0};
236
+  float endstop_adj[3] = { 0, 0, 0 };
248 237
 #endif
249 238
 
250 239
 float min_pos[3] = { X_MIN_POS, Y_MIN_POS, Z_MIN_POS };
251 240
 float max_pos[3] = { X_MAX_POS, Y_MAX_POS, Z_MAX_POS };
252
-bool axis_known_position[3] = {false, false, false};
241
+bool axis_known_position[3] = { false, false, false };
253 242
 float zprobe_zoffset;
254 243
 
255 244
 // Extruder offset
@@ -260,25 +249,37 @@ float zprobe_zoffset;
260 249
   #define NUM_EXTRUDER_OFFSETS 3 // supports offsets in XYZ plane
261 250
 #endif
262 251
 float extruder_offset[NUM_EXTRUDER_OFFSETS][EXTRUDERS] = {
263
-#if defined(EXTRUDER_OFFSET_X) && defined(EXTRUDER_OFFSET_Y)
264
-  EXTRUDER_OFFSET_X, EXTRUDER_OFFSET_Y
265
-#endif
252
+  #if defined(EXTRUDER_OFFSET_X)
253
+    EXTRUDER_OFFSET_X
254
+  #else
255
+    0
256
+  #endif
257
+  ,
258
+  #if defined(EXTRUDER_OFFSET_Y)
259
+    EXTRUDER_OFFSET_Y
260
+  #else
261
+    0
262
+  #endif
266 263
 };
267 264
 #endif
265
+
268 266
 uint8_t active_extruder = 0;
269
-int fanSpeed=0;
267
+int fanSpeed = 0;
268
+
270 269
 #ifdef SERVO_ENDSTOPS
271 270
   int servo_endstops[] = SERVO_ENDSTOPS;
272 271
   int servo_endstop_angles[] = SERVO_ENDSTOP_ANGLES;
273 272
 #endif
273
+
274 274
 #ifdef BARICUDA
275
-int ValvePressure=0;
276
-int EtoPPressure=0;
275
+  int ValvePressure = 0;
276
+  int EtoPPressure = 0;
277 277
 #endif
278 278
 
279 279
 #ifdef FWRETRACT
280
-  bool autoretract_enabled=false;
281
-  bool retracted[EXTRUDERS]={false
280
+
281
+  bool autoretract_enabled = false;
282
+  bool retracted[EXTRUDERS] = { false
282 283
     #if EXTRUDERS > 1
283 284
       , false
284 285
       #if EXTRUDERS > 2
@@ -289,7 +290,7 @@ int EtoPPressure=0;
289 290
       #endif
290 291
     #endif
291 292
   };
292
-  bool retracted_swap[EXTRUDERS]={false
293
+  bool retracted_swap[EXTRUDERS] = { false
293 294
     #if EXTRUDERS > 1
294 295
       , false
295 296
       #if EXTRUDERS > 2
@@ -308,38 +309,41 @@ int EtoPPressure=0;
308 309
   float retract_recover_length = RETRACT_RECOVER_LENGTH;
309 310
   float retract_recover_length_swap = RETRACT_RECOVER_LENGTH_SWAP;
310 311
   float retract_recover_feedrate = RETRACT_RECOVER_FEEDRATE;
312
+
311 313
 #endif // FWRETRACT
312 314
 
313 315
 #ifdef ULTIPANEL
314
-  #ifdef PS_DEFAULT_OFF
315
-    bool powersupply = false;
316
-  #else
317
-	  bool powersupply = true;
318
-  #endif
316
+  bool powersupply = 
317
+    #ifdef PS_DEFAULT_OFF
318
+      false
319
+    #else
320
+  	  true
321
+    #endif
322
+  ;
319 323
 #endif
320 324
 
321 325
 #ifdef DELTA
322
-  float delta[3] = {0.0, 0.0, 0.0};
326
+  float delta[3] = { 0, 0, 0 };
323 327
   #define SIN_60 0.8660254037844386
324 328
   #define COS_60 0.5
325 329
   // these are the default values, can be overriden with M665
326
-  float delta_radius= DELTA_RADIUS;
327
-  float delta_tower1_x= -SIN_60*delta_radius; // front left tower
328
-  float delta_tower1_y= -COS_60*delta_radius;	   
329
-  float delta_tower2_x=  SIN_60*delta_radius; // front right tower
330
-  float delta_tower2_y= -COS_60*delta_radius;	   
331
-  float delta_tower3_x= 0.0;                  // back middle tower
332
-  float delta_tower3_y= delta_radius;
333
-  float delta_diagonal_rod= DELTA_DIAGONAL_ROD;
334
-  float delta_diagonal_rod_2= sq(delta_diagonal_rod);
335
-  float delta_segments_per_second= DELTA_SEGMENTS_PER_SECOND;
330
+  float delta_radius = DELTA_RADIUS;
331
+  float delta_tower1_x = -SIN_60 * delta_radius; // front left tower
332
+  float delta_tower1_y = -COS_60 * delta_radius;	   
333
+  float delta_tower2_x =  SIN_60 * delta_radius; // front right tower
334
+  float delta_tower2_y = -COS_60 * delta_radius;	   
335
+  float delta_tower3_x = 0;                      // back middle tower
336
+  float delta_tower3_y = delta_radius;
337
+  float delta_diagonal_rod = DELTA_DIAGONAL_ROD;
338
+  float delta_diagonal_rod_2 = sq(delta_diagonal_rod);
339
+  float delta_segments_per_second = DELTA_SEGMENTS_PER_SECOND;
336 340
 #endif
337 341
 
338
-#ifdef SCARA                              // Build size scaling
339
-float axis_scaling[3]={1,1,1};  // Build size scaling, default to 1
342
+#ifdef SCARA
343
+  float axis_scaling[3] = { 1, 1, 1 };    // Build size scaling, default to 1
340 344
 #endif				
341 345
 
342
-bool cancel_heatup = false ;
346
+bool cancel_heatup = false;
343 347
 
344 348
 #ifdef FILAMENT_SENSOR
345 349
   //Variables for Filament Sensor input 
@@ -356,17 +360,14 @@ bool cancel_heatup = false ;
356 360
 const char errormagic[] PROGMEM = "Error:";
357 361
 const char echomagic[] PROGMEM = "echo:";
358 362
 
359
-//===========================================================================
360
-//=============================Private Variables=============================
361
-//===========================================================================
362 363
 const char axis_codes[NUM_AXIS] = {'X', 'Y', 'Z', 'E'};
363
-static float destination[NUM_AXIS] = {  0.0, 0.0, 0.0, 0.0};
364
+static float destination[NUM_AXIS] = { 0, 0, 0, 0 };
364 365
 
365 366
 #ifndef DELTA
366
-static float delta[3] = {0.0, 0.0, 0.0};
367
+  static float delta[3] = { 0, 0, 0 };
367 368
 #endif
368 369
 
369
-static float offset[3] = {0.0, 0.0, 0.0};
370
+static float offset[3] = { 0, 0, 0 };
370 371
 static bool home_all_axis = true;
371 372
 static float feedrate = 1500.0, next_feedrate, saved_feedrate;
372 373
 static long gcode_N, gcode_LastN, Stopped_gcode_LastN = 0;
@@ -378,31 +379,28 @@ static bool fromsd[BUFSIZE];
378 379
 static int bufindr = 0;
379 380
 static int bufindw = 0;
380 381
 static int buflen = 0;
381
-//static int i = 0;
382
+
382 383
 static char serial_char;
383 384
 static int serial_count = 0;
384 385
 static boolean comment_mode = false;
385
-static char *strchr_pointer; // just a pointer to find chars in the command string like X, Y, Z, E, etc
386
+static char *strchr_pointer; ///< A pointer to find chars in the command string (X, Y, Z, E, etc.)
386 387
 
387 388
 const char* queued_commands_P= NULL; /* pointer to the current line in the active sequence of commands, or NULL when none */
388 389
 
389
-const int sensitive_pins[] = SENSITIVE_PINS; // Sensitive pin list for M42
390
+const int sensitive_pins[] = SENSITIVE_PINS; ///< Sensitive pin list for M42
390 391
 
391
-//static float tt = 0;
392
-//static float bt = 0;
393
-
394
-//Inactivity shutdown variables
392
+// Inactivity shutdown
395 393
 static unsigned long previous_millis_cmd = 0;
396 394
 static unsigned long max_inactive_time = 0;
397 395
 static unsigned long stepper_inactive_time = DEFAULT_STEPPER_DEACTIVE_TIME*1000l;
398 396
 
399
-unsigned long starttime=0;
400
-unsigned long stoptime=0;
397
+unsigned long starttime = 0; ///< Print job start time
398
+unsigned long stoptime = 0;  ///< Print job stop time
401 399
 
402 400
 static uint8_t tmp_extruder;
403 401
 
404 402
 
405
-bool Stopped=false;
403
+bool Stopped = false;
406 404
 
407 405
 #if NUM_SERVOS > 0
408 406
   Servo servos[NUM_SERVOS];
@@ -411,10 +409,9 @@ bool Stopped=false;
411 409
 bool CooldownNoWait = true;
412 410
 bool target_direction;
413 411
 
414
-//Insert variables if CHDK is defined
415 412
 #ifdef CHDK
416
-unsigned long chdkHigh = 0;
417
-boolean chdkActive = false;
413
+  unsigned long chdkHigh = 0;
414
+  boolean chdkActive = false;
418 415
 #endif
419 416
 
420 417
 //===========================================================================
@@ -614,7 +611,7 @@ void setup()
614 611
   MCUSR=0;
615 612
 
616 613
   SERIAL_ECHOPGM(MSG_MARLIN);
617
-  SERIAL_ECHOLNPGM(VERSION_STRING);
614
+  SERIAL_ECHOLNPGM(STRING_VERSION);
618 615
   #ifdef STRING_VERSION_CONFIG_H
619 616
     #ifdef STRING_CONFIG_H_AUTHOR
620 617
       SERIAL_ECHO_START;
@@ -2926,26 +2923,16 @@ Sigma_Exit:
2926 2923
 
2927 2924
         float area = .0;
2928 2925
         if(code_seen('D')) {
2929
-          float diameter = (float)code_value();
2930
-          if (diameter == 0.0) {
2931
-            // setting any extruder filament size disables volumetric on the assumption that
2932
-            // slicers either generate in extruder values as cubic mm or as as filament feeds
2933
-            // for all extruders
2934
-            volumetric_enabled = false;
2935
-          } else {
2936
-            filament_size[tmp_extruder] = (float)code_value();
2926
+          float diameter = code_value();
2927
+          // setting any extruder filament size disables volumetric on the assumption that
2928
+          // slicers either generate in extruder values as cubic mm or as as filament feeds
2929
+          // for all extruders
2930
+          volumetric_enabled = (diameter != 0.0);
2931
+          if (volumetric_enabled) {
2932
+            filament_size[tmp_extruder] = diameter;
2937 2933
             // make sure all extruders have some sane value for the filament size
2938
-            filament_size[0] = (filament_size[0] == 0.0 ? DEFAULT_NOMINAL_FILAMENT_DIA : filament_size[0]);
2939
-#if EXTRUDERS > 1
2940
-            filament_size[1] = (filament_size[1] == 0.0 ? DEFAULT_NOMINAL_FILAMENT_DIA : filament_size[1]);
2941
-#if EXTRUDERS > 2
2942
-            filament_size[2] = (filament_size[2] == 0.0 ? DEFAULT_NOMINAL_FILAMENT_DIA : filament_size[2]);
2943
-#if EXTRUDERS > 3
2944
-            filament_size[3] = (filament_size[3] == 0.0 ? DEFAULT_NOMINAL_FILAMENT_DIA : filament_size[3]);
2945
-#endif //EXTRUDERS > 3
2946
-#endif //EXTRUDERS > 2
2947
-#endif //EXTRUDERS > 1
2948
-            volumetric_enabled = true;
2934
+            for (int i=0; i<EXTRUDERS; i++)
2935
+              if (! filament_size[i]) filament_size[i] = DEFAULT_NOMINAL_FILAMENT_DIA;
2949 2936
           }
2950 2937
         } else {
2951 2938
           //reserved for setting filament diameter via UFID or filament measuring device
@@ -3064,33 +3051,11 @@ Sigma_Exit:
3064 3051
         int t= code_value() ;
3065 3052
         switch(t)
3066 3053
         {
3067
-          case 0: 
3068
-          {
3069
-            autoretract_enabled=false;
3070
-            retracted[0]=false;
3071
-#if EXTRUDERS > 1
3072
-            retracted[1]=false;
3073
-#endif
3074
-#if EXTRUDERS > 2
3075
-            retracted[2]=false;
3076
-#endif
3077
-#if EXTRUDERS > 3
3078
-            retracted[3]=false;
3079
-#endif
3080
-          }break;
3081
-          case 1: 
3054
+          case 0:
3055
+          case 1:
3082 3056
           {
3083
-            autoretract_enabled=true;
3084
-            retracted[0]=false;
3085
-#if EXTRUDERS > 1
3086
-            retracted[1]=false;
3087
-#endif
3088
-#if EXTRUDERS > 2
3089
-            retracted[2]=false;
3090
-#endif
3091
-#if EXTRUDERS > 3
3092
-            retracted[3]=false;
3093
-#endif
3057
+            autoretract_enabled = (t == 1);
3058
+            for (int i=0; i<EXTRUDERS; i++) retracted[i] = false;
3094 3059
           }break;
3095 3060
           default:
3096 3061
             SERIAL_ECHO_START;
@@ -3613,7 +3578,7 @@ case 404:  //M404 Enter the nominal filament width (3mm, 1.75mm ) N<3.0> or disp
3613 3578
     break;
3614 3579
     case 503: // M503 print settings currently in memory
3615 3580
     {
3616
-        Config_PrintSettings();
3581
+        Config_PrintSettings(code_seen('S') && code_value == 0);
3617 3582
     }
3618 3583
     break;
3619 3584
     #ifdef ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED
@@ -3663,16 +3628,17 @@ case 404:  //M404 Enter the nominal filament width (3mm, 1.75mm ) N<3.0> or disp
3663 3628
     #ifdef FILAMENTCHANGEENABLE
3664 3629
     case 600: //Pause for filament change X[pos] Y[pos] Z[relative lift] E[initial retract] L[later retract distance for removal]
3665 3630
     {
3666
-        float target[4];
3667
-        float lastpos[4];
3668
-        target[X_AXIS]=current_position[X_AXIS];
3669
-        target[Y_AXIS]=current_position[Y_AXIS];
3670
-        target[Z_AXIS]=current_position[Z_AXIS];
3671
-        target[E_AXIS]=current_position[E_AXIS];
3672
-        lastpos[X_AXIS]=current_position[X_AXIS];
3673
-        lastpos[Y_AXIS]=current_position[Y_AXIS];
3674
-        lastpos[Z_AXIS]=current_position[Z_AXIS];
3675
-        lastpos[E_AXIS]=current_position[E_AXIS];
3631
+        float target[NUM_AXIS], lastpos[NUM_AXIS], fr60 = feedrate/60;
3632
+        for (int i=0; i<NUM_AXIS; i++)
3633
+          target[i] = lastpos[i] = current_position[i];
3634
+
3635
+        #define BASICPLAN plan_buffer_line(target[X_AXIS], target[Y_AXIS], target[Z_AXIS], target[E_AXIS], fr60, active_extruder);
3636
+        #ifdef DELTA
3637
+          #define RUNPLAN calculate_delta(target); BASICPLAN
3638
+        #else
3639
+          #define RUNPLAN BASICPLAN
3640
+        #endif
3641
+
3676 3642
         //retract by E
3677 3643
         if(code_seen('E'))
3678 3644
         {
@@ -3684,7 +3650,7 @@ case 404:  //M404 Enter the nominal filament width (3mm, 1.75mm ) N<3.0> or disp
3684 3650
             target[E_AXIS]+= FILAMENTCHANGE_FIRSTRETRACT ;
3685 3651
           #endif
3686 3652
         }
3687
-        plan_buffer_line(target[X_AXIS], target[Y_AXIS], target[Z_AXIS], target[E_AXIS], feedrate/60, active_extruder);
3653
+        RUNPLAN;
3688 3654
 
3689 3655
         //lift Z
3690 3656
         if(code_seen('Z'))
@@ -3697,12 +3663,12 @@ case 404:  //M404 Enter the nominal filament width (3mm, 1.75mm ) N<3.0> or disp
3697 3663
             target[Z_AXIS]+= FILAMENTCHANGE_ZADD ;
3698 3664
           #endif
3699 3665
         }
3700
-        plan_buffer_line(target[X_AXIS], target[Y_AXIS], target[Z_AXIS], target[E_AXIS], feedrate/60, active_extruder);
3666
+        RUNPLAN;
3701 3667
 
3702 3668
         //move xy
3703 3669
         if(code_seen('X'))
3704 3670
         {
3705
-          target[X_AXIS]+= code_value();
3671
+          target[X_AXIS]= code_value();
3706 3672
         }
3707 3673
         else
3708 3674
         {
@@ -3721,7 +3687,7 @@ case 404:  //M404 Enter the nominal filament width (3mm, 1.75mm ) N<3.0> or disp
3721 3687
           #endif
3722 3688
         }
3723 3689
 
3724
-        plan_buffer_line(target[X_AXIS], target[Y_AXIS], target[Z_AXIS], target[E_AXIS], feedrate/60, active_extruder);
3690
+        RUNPLAN;
3725 3691
 
3726 3692
         if(code_seen('L'))
3727 3693
         {
@@ -3734,7 +3700,7 @@ case 404:  //M404 Enter the nominal filament width (3mm, 1.75mm ) N<3.0> or disp
3734 3700
           #endif
3735 3701
         }
3736 3702
 
3737
-        plan_buffer_line(target[X_AXIS], target[Y_AXIS], target[Z_AXIS], target[E_AXIS], feedrate/60, active_extruder);
3703
+        RUNPLAN;
3738 3704
 
3739 3705
         //finish moves
3740 3706
         st_synchronize();
@@ -3782,10 +3748,18 @@ case 404:  //M404 Enter the nominal filament width (3mm, 1.75mm ) N<3.0> or disp
3782 3748
         }
3783 3749
         current_position[E_AXIS]=target[E_AXIS]; //the long retract of L is compensated by manual filament feeding
3784 3750
         plan_set_e_position(current_position[E_AXIS]);
3785
-        plan_buffer_line(target[X_AXIS], target[Y_AXIS], target[Z_AXIS], target[E_AXIS], feedrate/60, active_extruder); //should do nothing
3786
-        plan_buffer_line(lastpos[X_AXIS], lastpos[Y_AXIS], target[Z_AXIS], target[E_AXIS], feedrate/60, active_extruder); //move xy back
3787
-        plan_buffer_line(lastpos[X_AXIS], lastpos[Y_AXIS], lastpos[Z_AXIS], target[E_AXIS], feedrate/60, active_extruder); //move z back
3788
-        plan_buffer_line(lastpos[X_AXIS], lastpos[Y_AXIS], lastpos[Z_AXIS], lastpos[E_AXIS], feedrate/60, active_extruder); //final untretract
3751
+
3752
+        RUNPLAN; //should do nothing
3753
+
3754
+        #ifdef DELTA
3755
+          calculate_delta(lastpos);
3756
+          plan_buffer_line(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], target[E_AXIS], fr60, active_extruder); //move xyz back
3757
+          plan_buffer_line(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], lastpos[E_AXIS], fr60, active_extruder); //final untretract
3758
+        #else
3759
+          plan_buffer_line(lastpos[X_AXIS], lastpos[Y_AXIS], target[Z_AXIS], target[E_AXIS], fr60, active_extruder); //move xy back
3760
+          plan_buffer_line(lastpos[X_AXIS], lastpos[Y_AXIS], lastpos[Z_AXIS], target[E_AXIS], fr60, active_extruder); //move z back
3761
+          plan_buffer_line(lastpos[X_AXIS], lastpos[Y_AXIS], lastpos[Z_AXIS], lastpos[E_AXIS], fr60, active_extruder); //final untretract
3762
+        #endif
3789 3763
     }
3790 3764
     break;
3791 3765
     #endif //FILAMENTCHANGEENABLE
@@ -4729,15 +4703,6 @@ float calculate_volumetric_multiplier(float diameter) {
4729 4703
 }
4730 4704
 
4731 4705
 void calculate_volumetric_multipliers() {
4732
-	volumetric_multiplier[0] = calculate_volumetric_multiplier(filament_size[0]);
4733
-#if EXTRUDERS > 1
4734
-	volumetric_multiplier[1] = calculate_volumetric_multiplier(filament_size[1]);
4735
-#if EXTRUDERS > 2
4736
-	volumetric_multiplier[2] = calculate_volumetric_multiplier(filament_size[2]);
4737
-#if EXTRUDERS > 3
4738
-	volumetric_multiplier[3] = calculate_volumetric_multiplier(filament_size[3]);
4739
-#endif //EXTRUDERS > 3
4740
-#endif //EXTRUDERS > 2
4741
-#endif //EXTRUDERS > 1
4706
+  for (int i=0; i<EXTRUDERS; i++)
4707
+  	volumetric_multiplier[i] = calculate_volumetric_multiplier(filament_size[i]);
4742 4708
 }
4743
-

+ 3
- 3
Marlin/SdBaseFile.cpp View File

@@ -1012,7 +1012,7 @@ void SdBaseFile::printFatTime( uint16_t fatTime) {
1012 1012
  * the value zero, false, is returned for failure.
1013 1013
  */
1014 1014
 bool SdBaseFile::printName() {
1015
-  char name[13];
1015
+  char name[FILENAME_LENGTH];
1016 1016
   if (!getFilename(name)) return false;
1017 1017
   MYSERIAL.print(name);
1018 1018
   return true;
@@ -1135,7 +1135,7 @@ int8_t SdBaseFile::readDir(dir_t* dir, char* longFilename) {
1135 1135
     	if (VFAT->firstClusterLow == 0 && (VFAT->sequenceNumber & 0x1F) > 0 && (VFAT->sequenceNumber & 0x1F) <= MAX_VFAT_ENTRIES)
1136 1136
     	{
1137 1137
 			//TODO: Store the filename checksum to verify if a none-long filename aware system modified the file table.
1138
-    		n = ((VFAT->sequenceNumber & 0x1F) - 1) * 13;
1138
+    		n = ((VFAT->sequenceNumber & 0x1F) - 1) * FILENAME_LENGTH;
1139 1139
 			longFilename[n+0] = VFAT->name1[0];
1140 1140
 			longFilename[n+1] = VFAT->name1[1];
1141 1141
 			longFilename[n+2] = VFAT->name1[2];
@@ -1151,7 +1151,7 @@ int8_t SdBaseFile::readDir(dir_t* dir, char* longFilename) {
1151 1151
 			longFilename[n+12] = VFAT->name3[1];
1152 1152
 			//If this VFAT entry is the last one, add a NUL terminator at the end of the string
1153 1153
 			if (VFAT->sequenceNumber & 0x40)
1154
-				longFilename[n+13] = '\0';
1154
+				longFilename[n+FILENAME_LENGTH] = '\0';
1155 1155
 		}
1156 1156
     }
1157 1157
     // return if normal file or subdirectory

+ 5
- 3
Marlin/SdFatConfig.h View File

@@ -108,15 +108,17 @@ uint8_t const SOFT_SPI_SCK_PIN = 13;
108 108
  * a pure virtual function is called.
109 109
  */
110 110
 #define USE_CXA_PURE_VIRTUAL 1
111
+
112
+/** Number of UTF-16 characters per entry */
113
+#define FILENAME_LENGTH 13
114
+
111 115
 /**
112 116
  * Defines for long (vfat) filenames
113 117
  */
114 118
 /** Number of VFAT entries used. Every entry has 13 UTF-16 characters */
115 119
 #define MAX_VFAT_ENTRIES (2)
116
-/** Number of UTF-16 characters per entry */
117
-#define FILENAME_LENGTH 13
118 120
 /** Total size of the buffer used to store the long filenames */
119
-#define LONG_FILENAME_LENGTH (13*MAX_VFAT_ENTRIES+1)
121
+#define LONG_FILENAME_LENGTH (FILENAME_LENGTH*MAX_VFAT_ENTRIES+1)
120 122
 #endif  // SdFatConfig_h
121 123
 
122 124
 

+ 150
- 190
Marlin/Servo.cpp View File

@@ -44,6 +44,7 @@
44 44
 #include "Configuration.h" 
45 45
 
46 46
 #ifdef NUM_SERVOS
47
+
47 48
 #include <avr/interrupt.h>
48 49
 #include <Arduino.h>
49 50
 
@@ -52,7 +53,6 @@
52 53
 #define usToTicks(_us)    (( clockCyclesPerMicrosecond()* _us) / 8)     // converts microseconds to tick (assumes prescale of 8)  // 12 Aug 2009
53 54
 #define ticksToUs(_ticks) (( (unsigned)_ticks * 8)/ clockCyclesPerMicrosecond() ) // converts from ticks back to microseconds
54 55
 
55
-
56 56
 #define TRIM_DURATION       2                               // compensation ticks to trim adjust for digitalWrite delays // 12 August 2009
57 57
 
58 58
 //#define NBR_TIMERS        (MAX_SERVOS / SERVOS_PER_TIMER)
@@ -74,24 +74,23 @@ uint8_t ServoCount = 0;                                     // the total number
74 74
 
75 75
 /************ static functions common to all instances ***********************/
76 76
 
77
-static inline void handle_interrupts(timer16_Sequence_t timer, volatile uint16_t *TCNTn, volatile uint16_t* OCRnA)
78
-{
79
-  if( Channel[timer] < 0 )
77
+static inline void handle_interrupts(timer16_Sequence_t timer, volatile uint16_t *TCNTn, volatile uint16_t* OCRnA) {
78
+  if (Channel[timer] < 0)
80 79
     *TCNTn = 0; // channel set to -1 indicated that refresh interval completed so reset the timer
81
-  else{
82
-    if( SERVO_INDEX(timer,Channel[timer]) < ServoCount && SERVO(timer,Channel[timer]).Pin.isActive == true )
80
+  else {
81
+    if (SERVO_INDEX(timer,Channel[timer]) < ServoCount && SERVO(timer,Channel[timer]).Pin.isActive)
83 82
       digitalWrite( SERVO(timer,Channel[timer]).Pin.nbr,LOW); // pulse this channel low if activated
84 83
   }
85 84
 
86 85
   Channel[timer]++;    // increment to the next channel
87
-  if( SERVO_INDEX(timer,Channel[timer]) < ServoCount && Channel[timer] < SERVOS_PER_TIMER) {
86
+  if (SERVO_INDEX(timer,Channel[timer]) < ServoCount && Channel[timer] < SERVOS_PER_TIMER) {
88 87
     *OCRnA = *TCNTn + SERVO(timer,Channel[timer]).ticks;
89
-    if(SERVO(timer,Channel[timer]).Pin.isActive == true)     // check if activated
88
+    if (SERVO(timer,Channel[timer]).Pin.isActive)     // check if activated
90 89
       digitalWrite( SERVO(timer,Channel[timer]).Pin.nbr,HIGH); // its an active channel so pulse it high
91 90
   }
92 91
   else {
93 92
     // finished all channels so wait for the refresh period to expire before starting over
94
-    if( ((unsigned)*TCNTn) + 4 < usToTicks(REFRESH_INTERVAL) )  // allow a few ticks to ensure the next OCR1A not missed
93
+    if ( ((unsigned)*TCNTn) + 4 < usToTicks(REFRESH_INTERVAL) )  // allow a few ticks to ensure the next OCR1A not missed
95 94
       *OCRnA = (unsigned int)usToTicks(REFRESH_INTERVAL);
96 95
     else
97 96
       *OCRnA = *TCNTn + 4;  // at least REFRESH_INTERVAL has elapsed
@@ -100,142 +99,126 @@ static inline void handle_interrupts(timer16_Sequence_t timer, volatile uint16_t
100 99
 }
101 100
 
102 101
 #ifndef WIRING // Wiring pre-defines signal handlers so don't define any if compiling for the Wiring platform
103
-// Interrupt handlers for Arduino
104
-#if defined(_useTimer1)
105
-SIGNAL (TIMER1_COMPA_vect)
106
-{
107
-  handle_interrupts(_timer1, &TCNT1, &OCR1A);
108
-}
109
-#endif
110
-
111
-#if defined(_useTimer3)
112
-SIGNAL (TIMER3_COMPA_vect)
113
-{
114
-  handle_interrupts(_timer3, &TCNT3, &OCR3A);
115
-}
116
-#endif
117 102
 
118
-#if defined(_useTimer4)
119
-SIGNAL (TIMER4_COMPA_vect)
120
-{
121
-  handle_interrupts(_timer4, &TCNT4, &OCR4A);
103
+  // Interrupt handlers for Arduino
104
+  #if defined(_useTimer1)
105
+    SIGNAL (TIMER1_COMPA_vect) { handle_interrupts(_timer1, &TCNT1, &OCR1A); }
106
+  #endif
107
+
108
+  #if defined(_useTimer3)
109
+    SIGNAL (TIMER3_COMPA_vect) { handle_interrupts(_timer3, &TCNT3, &OCR3A); }
110
+  #endif
111
+
112
+  #if defined(_useTimer4)
113
+    SIGNAL (TIMER4_COMPA_vect) { handle_interrupts(_timer4, &TCNT4, &OCR4A); }
114
+  #endif
115
+
116
+  #if defined(_useTimer5)
117
+    SIGNAL (TIMER5_COMPA_vect) { handle_interrupts(_timer5, &TCNT5, &OCR5A); }
118
+  #endif
119
+
120
+#else //!WIRING
121
+
122
+  // Interrupt handlers for Wiring
123
+  #if defined(_useTimer1)
124
+    void Timer1Service() { handle_interrupts(_timer1, &TCNT1, &OCR1A); }
125
+  #endif
126
+  #if defined(_useTimer3)
127
+    void Timer3Service() { handle_interrupts(_timer3, &TCNT3, &OCR3A); }
128
+  #endif
129
+
130
+#endif //!WIRING
131
+
132
+
133
+static void initISR(timer16_Sequence_t timer) {
134
+  #if defined(_useTimer1)
135
+    if (timer == _timer1) {
136
+      TCCR1A = 0;             // normal counting mode
137
+      TCCR1B = _BV(CS11);     // set prescaler of 8
138
+      TCNT1 = 0;              // clear the timer count
139
+      #if defined(__AVR_ATmega8__)|| defined(__AVR_ATmega128__)
140
+        TIFR |= _BV(OCF1A);      // clear any pending interrupts;
141
+        TIMSK |= _BV(OCIE1A);    // enable the output compare interrupt
142
+      #else
143
+        // here if not ATmega8 or ATmega128
144
+        TIFR1 |= _BV(OCF1A);     // clear any pending interrupts;
145
+        TIMSK1 |= _BV(OCIE1A);   // enable the output compare interrupt
146
+      #endif
147
+      #if defined(WIRING)
148
+        timerAttach(TIMER1OUTCOMPAREA_INT, Timer1Service);
149
+      #endif
150
+    }
151
+  #endif
152
+
153
+  #if defined(_useTimer3)
154
+    if (timer == _timer3) {
155
+      TCCR3A = 0;             // normal counting mode
156
+      TCCR3B = _BV(CS31);     // set prescaler of 8
157
+      TCNT3 = 0;              // clear the timer count
158
+      #if defined(__AVR_ATmega128__)
159
+        TIFR |= _BV(OCF3A);     // clear any pending interrupts;
160
+      	ETIMSK |= _BV(OCIE3A);  // enable the output compare interrupt
161
+      #else
162
+        TIFR3 = _BV(OCF3A);     // clear any pending interrupts;
163
+        TIMSK3 =  _BV(OCIE3A) ; // enable the output compare interrupt
164
+      #endif
165
+      #if defined(WIRING)
166
+        timerAttach(TIMER3OUTCOMPAREA_INT, Timer3Service);  // for Wiring platform only
167
+      #endif
168
+    }
169
+  #endif
170
+
171
+  #if defined(_useTimer4)
172
+    if (timer == _timer4) {
173
+      TCCR4A = 0;             // normal counting mode
174
+      TCCR4B = _BV(CS41);     // set prescaler of 8
175
+      TCNT4 = 0;              // clear the timer count
176
+      TIFR4 = _BV(OCF4A);     // clear any pending interrupts;
177
+      TIMSK4 =  _BV(OCIE4A) ; // enable the output compare interrupt
178
+    }
179
+  #endif
180
+
181
+  #if defined(_useTimer5)
182
+    if (timer == _timer5) {
183
+      TCCR5A = 0;             // normal counting mode
184
+      TCCR5B = _BV(CS51);     // set prescaler of 8
185
+      TCNT5 = 0;              // clear the timer count
186
+      TIFR5 = _BV(OCF5A);     // clear any pending interrupts;
187
+      TIMSK5 =  _BV(OCIE5A) ; // enable the output compare interrupt
188
+    }
189
+  #endif
122 190
 }
123
-#endif
124 191
 
125
-#if defined(_useTimer5)
126
-SIGNAL (TIMER5_COMPA_vect)
127
-{
128
-  handle_interrupts(_timer5, &TCNT5, &OCR5A);
192
+static void finISR(timer16_Sequence_t timer) {
193
+  // Disable use of the given timer
194
+  #if defined(WIRING)
195
+    if (timer == _timer1) {
196
+      #if defined(__AVR_ATmega1281__) || defined(__AVR_ATmega2561__)
197
+        TIMSK1
198
+      #else
199
+        TIMSK
200
+      #endif
201
+          &= ~_BV(OCIE1A);    // disable timer 1 output compare interrupt
202
+      timerDetach(TIMER1OUTCOMPAREA_INT);
203
+    }
204
+    else if (timer == _timer3) {
205
+      #if defined(__AVR_ATmega1281__) || defined(__AVR_ATmega2561__)
206
+        TIMSK3
207
+      #else
208
+        ETIMSK
209
+      #endif
210
+          &= ~_BV(OCIE3A);    // disable the timer3 output compare A interrupt
211
+      timerDetach(TIMER3OUTCOMPAREA_INT);
212
+    }
213
+  #else //!WIRING
214
+    // For arduino - in future: call here to a currently undefined function to reset the timer
215
+  #endif
129 216
 }
130
-#endif
131 217
 
132
-#elif defined WIRING
133
-// Interrupt handlers for Wiring
134
-#if defined(_useTimer1)
135
-void Timer1Service()
136
-{
137
-  handle_interrupts(_timer1, &TCNT1, &OCR1A);
138
-}
139
-#endif
140
-#if defined(_useTimer3)
141
-void Timer3Service()
142
-{
143
-  handle_interrupts(_timer3, &TCNT3, &OCR3A);
144
-}
145
-#endif
146
-#endif
147
-
148
-
149
-static void initISR(timer16_Sequence_t timer)
150
-{
151
-#if defined (_useTimer1)
152
-  if(timer == _timer1) {
153
-    TCCR1A = 0;             // normal counting mode
154
-    TCCR1B = _BV(CS11);     // set prescaler of 8
155
-    TCNT1 = 0;              // clear the timer count
156
-#if defined(__AVR_ATmega8__)|| defined(__AVR_ATmega128__)
157
-    TIFR |= _BV(OCF1A);      // clear any pending interrupts;
158
-    TIMSK |=  _BV(OCIE1A) ;  // enable the output compare interrupt
159
-#else
160
-    // here if not ATmega8 or ATmega128
161
-    TIFR1 |= _BV(OCF1A);     // clear any pending interrupts;
162
-    TIMSK1 |=  _BV(OCIE1A) ; // enable the output compare interrupt
163
-#endif
164
-#if defined(WIRING)
165
-    timerAttach(TIMER1OUTCOMPAREA_INT, Timer1Service);
166
-#endif
167
-  }
168
-#endif
169
-
170
-#if defined (_useTimer3)
171
-  if(timer == _timer3) {
172
-    TCCR3A = 0;             // normal counting mode
173
-    TCCR3B = _BV(CS31);     // set prescaler of 8
174
-    TCNT3 = 0;              // clear the timer count
175
-#if defined(__AVR_ATmega128__)
176
-    TIFR |= _BV(OCF3A);     // clear any pending interrupts;
177
-	ETIMSK |= _BV(OCIE3A);  // enable the output compare interrupt
178
-#else
179
-    TIFR3 = _BV(OCF3A);     // clear any pending interrupts;
180
-    TIMSK3 =  _BV(OCIE3A) ; // enable the output compare interrupt
181
-#endif
182
-#if defined(WIRING)
183
-    timerAttach(TIMER3OUTCOMPAREA_INT, Timer3Service);  // for Wiring platform only
184
-#endif
185
-  }
186
-#endif
187
-
188
-#if defined (_useTimer4)
189
-  if(timer == _timer4) {
190
-    TCCR4A = 0;             // normal counting mode
191
-    TCCR4B = _BV(CS41);     // set prescaler of 8
192
-    TCNT4 = 0;              // clear the timer count
193
-    TIFR4 = _BV(OCF4A);     // clear any pending interrupts;
194
-    TIMSK4 =  _BV(OCIE4A) ; // enable the output compare interrupt
195
-  }
196
-#endif
197
-
198
-#if defined (_useTimer5)
199
-  if(timer == _timer5) {
200
-    TCCR5A = 0;             // normal counting mode
201
-    TCCR5B = _BV(CS51);     // set prescaler of 8
202
-    TCNT5 = 0;              // clear the timer count
203
-    TIFR5 = _BV(OCF5A);     // clear any pending interrupts;
204
-    TIMSK5 =  _BV(OCIE5A) ; // enable the output compare interrupt
205
-  }
206
-#endif
207
-}
208
-
209
-static void finISR(timer16_Sequence_t timer)
210
-{
211
-    //disable use of the given timer
212
-#if defined WIRING   // Wiring
213
-  if(timer == _timer1) {
214
-    #if defined(__AVR_ATmega1281__)||defined(__AVR_ATmega2561__)
215
-    TIMSK1 &=  ~_BV(OCIE1A) ;  // disable timer 1 output compare interrupt
216
-    #else
217
-    TIMSK &=  ~_BV(OCIE1A) ;  // disable timer 1 output compare interrupt
218
-    #endif
219
-    timerDetach(TIMER1OUTCOMPAREA_INT);
220
-  }
221
-  else if(timer == _timer3) {
222
-    #if defined(__AVR_ATmega1281__)||defined(__AVR_ATmega2561__)
223
-    TIMSK3 &= ~_BV(OCIE3A);    // disable the timer3 output compare A interrupt
224
-    #else
225
-    ETIMSK &= ~_BV(OCIE3A);    // disable the timer3 output compare A interrupt
226
-    #endif
227
-    timerDetach(TIMER3OUTCOMPAREA_INT);
228
-  }
229
-#else
230
-    //For arduino - in future: call here to a currently undefined function to reset the timer
231
-#endif
232
-}
233
-
234
-static boolean isTimerActive(timer16_Sequence_t timer)
235
-{
218
+static boolean isTimerActive(timer16_Sequence_t timer) {
236 219
   // returns true if any servo is active on this timer
237 220
   for(uint8_t channel=0; channel < SERVOS_PER_TIMER; channel++) {
238
-    if(SERVO(timer,channel).Pin.isActive == true)
221
+    if (SERVO(timer,channel).Pin.isActive)
239 222
       return true;
240 223
   }
241 224
   return false;
@@ -244,70 +227,59 @@ static boolean isTimerActive(timer16_Sequence_t timer)
244 227
 
245 228
 /****************** end of static functions ******************************/
246 229
 
247
-Servo::Servo()
248
-{
249
-  if( ServoCount < MAX_SERVOS) {
230
+Servo::Servo() {
231
+  if ( ServoCount < MAX_SERVOS) {
250 232
     this->servoIndex = ServoCount++;                    // assign a servo index to this instance
251
-	servos[this->servoIndex].ticks = usToTicks(DEFAULT_PULSE_WIDTH);   // store default values  - 12 Aug 2009
233
+    servos[this->servoIndex].ticks = usToTicks(DEFAULT_PULSE_WIDTH);   // store default values  - 12 Aug 2009
252 234
   }
253 235
   else
254
-    this->servoIndex = INVALID_SERVO ;  // too many servos
236
+    this->servoIndex = INVALID_SERVO;  // too many servos
255 237
 }
256 238
 
257
-uint8_t Servo::attach(int pin)
258
-{
239
+uint8_t Servo::attach(int pin) {
259 240
   return this->attach(pin, MIN_PULSE_WIDTH, MAX_PULSE_WIDTH);
260 241
 }
261 242
 
262
-uint8_t Servo::attach(int pin, int min, int max)
263
-{
264
-  if(this->servoIndex < MAX_SERVOS ) {
265
-#if defined (ENABLE_AUTO_BED_LEVELING) && (PROBE_SERVO_DEACTIVATION_DELAY > 0)
243
+uint8_t Servo::attach(int pin, int min, int max) {
244
+  if (this->servoIndex < MAX_SERVOS ) {
245
+  #if defined(ENABLE_AUTO_BED_LEVELING) && (PROBE_SERVO_DEACTIVATION_DELAY > 0)
266 246
     if (pin > 0) this->pin = pin; else pin = this->pin;
267
-#endif
268
-    pinMode( pin, OUTPUT) ;                                   // set servo pin to output
247
+  #endif
248
+    pinMode(pin, OUTPUT);                                   // set servo pin to output
269 249
     servos[this->servoIndex].Pin.nbr = pin;
270 250
     // todo min/max check: abs(min - MIN_PULSE_WIDTH) /4 < 128
271
-    this->min  = (MIN_PULSE_WIDTH - min)/4; //resolution of min/max is 4 uS
272
-    this->max  = (MAX_PULSE_WIDTH - max)/4;
251
+    this->min = (MIN_PULSE_WIDTH - min) / 4; //resolution of min/max is 4 uS
252
+    this->max = (MAX_PULSE_WIDTH - max) / 4;
273 253
     // initialize the timer if it has not already been initialized
274 254
     timer16_Sequence_t timer = SERVO_INDEX_TO_TIMER(servoIndex);
275
-    if(isTimerActive(timer) == false)
276
-      initISR(timer);
255
+    if (!isTimerActive(timer)) initISR(timer);
277 256
     servos[this->servoIndex].Pin.isActive = true;  // this must be set after the check for isTimerActive
278 257
   }
279
-  return this->servoIndex ;
258
+  return this->servoIndex;
280 259
 }
281 260
 
282
-void Servo::detach()
283
-{
261
+void Servo::detach() {
284 262
   servos[this->servoIndex].Pin.isActive = false;
285 263
   timer16_Sequence_t timer = SERVO_INDEX_TO_TIMER(servoIndex);
286
-  if(isTimerActive(timer) == false) {
287
-    finISR(timer);
288
-  }
264
+  if (!isTimerActive(timer)) finISR(timer);
289 265
 }
290 266
 
291
-void Servo::write(int value)
292
-{
293
-  if(value < MIN_PULSE_WIDTH)
294
-  {  // treat values less than 544 as angles in degrees (valid values in microseconds are handled as microseconds)
295
-    if(value < 0) value = 0;
296
-    if(value > 180) value = 180;
267
+void Servo::write(int value) {
268
+  if (value < MIN_PULSE_WIDTH) { // treat values less than 544 as angles in degrees (valid values in microseconds are handled as microseconds)
269
+    if (value < 0) value = 0;
270
+    if (value > 180) value = 180;
297 271
     value = map(value, 0, 180, SERVO_MIN(),  SERVO_MAX());
298 272
   }
299 273
   this->writeMicroseconds(value);
300 274
 }
301 275
 
302
-void Servo::writeMicroseconds(int value)
303
-{
276
+void Servo::writeMicroseconds(int value) {
304 277
   // calculate and store the values for the given channel
305 278
   byte channel = this->servoIndex;
306
-  if( (channel < MAX_SERVOS) )   // ensure channel is valid
307
-  {
308
-    if( value < SERVO_MIN() )          // ensure pulse width is valid
279
+  if (channel < MAX_SERVOS) {  // ensure channel is valid
280
+    if (value < SERVO_MIN())   // ensure pulse width is valid
309 281
       value = SERVO_MIN();
310
-    else if( value > SERVO_MAX() )
282
+    else if (value > SERVO_MAX())
311 283
       value = SERVO_MAX();
312 284
 
313 285
   	value = value - TRIM_DURATION;
@@ -320,25 +292,13 @@ void Servo::writeMicroseconds(int value)
320 292
   }
321 293
 }
322 294
 
323
-int Servo::read() // return the value as degrees
324
-{
325
-  return  map( this->readMicroseconds()+1, SERVO_MIN(), SERVO_MAX(), 0, 180);
326
-}
295
+// return the value as degrees
296
+int Servo::read() { return map( this->readMicroseconds()+1, SERVO_MIN(), SERVO_MAX(), 0, 180); }
327 297
 
328
-int Servo::readMicroseconds()
329
-{
330
-  unsigned int pulsewidth;
331
-  if( this->servoIndex != INVALID_SERVO )
332
-    pulsewidth = ticksToUs(servos[this->servoIndex].ticks)  + TRIM_DURATION ;   // 12 aug 2009
333
-  else
334
-    pulsewidth  = 0;
335
-
336
-  return pulsewidth;
298
+int Servo::readMicroseconds() {
299
+  return (this->servoIndex == INVALID_SERVO) ? 0 : ticksToUs(servos[this->servoIndex].ticks) + TRIM_DURATION;
337 300
 }
338 301
 
339
-bool Servo::attached()
340
-{
341
-  return servos[this->servoIndex].Pin.isActive ;
342
-}
302
+bool Servo::attached() { return servos[this->servoIndex].Pin.isActive; }
343 303
 
344 304
 #endif

+ 42
- 42
Marlin/Servo.h View File

@@ -58,35 +58,36 @@
58 58
 
59 59
 // Say which 16 bit timers can be used and in what order
60 60
 #if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
61
-#define _useTimer5
62
-//#define _useTimer1
63
-#define _useTimer3
64
-#define _useTimer4
65
-//typedef enum { _timer5, _timer1, _timer3, _timer4, _Nbr_16timers } timer16_Sequence_t ;
66
-typedef enum { _timer5, _timer3, _timer4, _Nbr_16timers } timer16_Sequence_t ;
61
+  #define _useTimer5
62
+  //#define _useTimer1
63
+  #define _useTimer3
64
+  #define _useTimer4
65
+  //typedef enum { _timer5, _timer1, _timer3, _timer4, _Nbr_16timers } timer16_Sequence_t ;
66
+  typedef enum { _timer5, _timer3, _timer4, _Nbr_16timers } timer16_Sequence_t ;
67 67
 
68 68
 #elif defined(__AVR_ATmega32U4__)
69
-//#define _useTimer1
70
-#define _useTimer3
71
-//typedef enum { _timer1, _Nbr_16timers } timer16_Sequence_t ;
72
-typedef enum { _timer3, _Nbr_16timers } timer16_Sequence_t ;
69
+  //#define _useTimer1
70
+  #define _useTimer3
71
+  //typedef enum { _timer1, _Nbr_16timers } timer16_Sequence_t ;
72
+  typedef enum { _timer3, _Nbr_16timers } timer16_Sequence_t ;
73 73
 
74 74
 #elif defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB1286__)
75
-#define _useTimer3
76
-//#define _useTimer1
77
-//typedef enum { _timer3, _timer1, _Nbr_16timers } timer16_Sequence_t ;
78
-typedef enum { _timer3, _Nbr_16timers } timer16_Sequence_t ;
75
+  #define _useTimer3
76
+  //#define _useTimer1
77
+  //typedef enum { _timer3, _timer1, _Nbr_16timers } timer16_Sequence_t ;
78
+  typedef enum { _timer3, _Nbr_16timers } timer16_Sequence_t ;
79 79
 
80 80
 #elif defined(__AVR_ATmega128__) ||defined(__AVR_ATmega1281__) || defined(__AVR_ATmega1284P__) ||defined(__AVR_ATmega2561__)
81
-#define _useTimer3
82
-//#define _useTimer1
83
-//typedef enum { _timer3, _timer1, _Nbr_16timers } timer16_Sequence_t ;
84
-typedef enum { _timer3, _Nbr_16timers } timer16_Sequence_t ;
81
+  #define _useTimer3
82
+  //#define _useTimer1
83
+  //typedef enum { _timer3, _timer1, _Nbr_16timers } timer16_Sequence_t ;
84
+  typedef enum { _timer3, _Nbr_16timers } timer16_Sequence_t ;
85 85
 
86 86
 #else  // everything else
87
-//#define _useTimer1
88
-//typedef enum { _timer1, _Nbr_16timers } timer16_Sequence_t ;
89
-typedef enum { _Nbr_16timers } timer16_Sequence_t ;
87
+  //#define _useTimer1
88
+  //typedef enum { _timer1, _Nbr_16timers } timer16_Sequence_t ;
89
+  typedef enum { _Nbr_16timers } timer16_Sequence_t ;
90
+
90 91
 #endif
91 92
 
92 93
 #define Servo_VERSION           2     // software version of this library
@@ -101,35 +102,34 @@ typedef enum { _Nbr_16timers } timer16_Sequence_t ;
101 102
 
102 103
 #define INVALID_SERVO         255     // flag indicating an invalid servo index
103 104
 
104
-typedef struct  {
105
+typedef struct {
105 106
   uint8_t nbr        :6 ;             // a pin number from 0 to 63
106 107
   uint8_t isActive   :1 ;             // true if this channel is enabled, pin not pulsed if false
107
-} ServoPin_t   ;
108
+} ServoPin_t;
108 109
 
109 110
 typedef struct {
110 111
   ServoPin_t Pin;
111 112
   unsigned int ticks;
112 113
 } servo_t;
113 114
 
114
-class Servo
115
-{
116
-public:
117
-  Servo();
118
-  uint8_t attach(int pin);           // attach the given pin to the next free channel, sets pinMode, returns channel number or 0 if failure
119
-  uint8_t attach(int pin, int min, int max); // as above but also sets min and max values for writes.
120
-  void detach();
121
-  void write(int value);             // if value is < 200 it is treated as an angle, otherwise as pulse width in microseconds
122
-  void writeMicroseconds(int value); // Write pulse width in microseconds
123
-  int read();                        // returns current pulse width as an angle between 0 and 180 degrees
124
-  int readMicroseconds();            // returns current pulse width in microseconds for this servo (was read_us() in first release)
125
-  bool attached();                   // return true if this servo is attached, otherwise false
126
-#if defined (ENABLE_AUTO_BED_LEVELING) && (PROBE_SERVO_DEACTIVATION_DELAY > 0)
127
-  int pin;                           // store the hardware pin of the servo
128
-#endif
129
-private:
130
-   uint8_t servoIndex;               // index into the channel data for this servo
131
-   int8_t min;                       // minimum is this value times 4 added to MIN_PULSE_WIDTH
132
-   int8_t max;                       // maximum is this value times 4 added to MAX_PULSE_WIDTH
115
+class Servo {
116
+  public:
117
+    Servo();
118
+    uint8_t attach(int pin);           // attach the given pin to the next free channel, sets pinMode, returns channel number or 0 if failure
119
+    uint8_t attach(int pin, int min, int max); // as above but also sets min and max values for writes.
120
+    void detach();
121
+    void write(int value);             // if value is < 200 it is treated as an angle, otherwise as pulse width in microseconds
122
+    void writeMicroseconds(int value); // Write pulse width in microseconds
123
+    int read();                        // returns current pulse width as an angle between 0 and 180 degrees
124
+    int readMicroseconds();            // returns current pulse width in microseconds for this servo (was read_us() in first release)
125
+    bool attached();                   // return true if this servo is attached, otherwise false
126
+    #if defined (ENABLE_AUTO_BED_LEVELING) && (PROBE_SERVO_DEACTIVATION_DELAY > 0)
127
+      int pin;                           // store the hardware pin of the servo
128
+    #endif
129
+  private:
130
+    uint8_t servoIndex;               // index into the channel data for this servo
131
+    int8_t min;                       // minimum is this value times 4 added to MIN_PULSE_WIDTH
132
+    int8_t max;                       // maximum is this value times 4 added to MAX_PULSE_WIDTH
133 133
 };
134 134
 
135 135
 #endif

+ 4
- 1
Marlin/boards.h View File

@@ -14,7 +14,7 @@
14 14
 #define BOARD_RAMPS_13_EEB      34   // RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Bed)
15 15
 #define BOARD_RAMPS_13_EFF      35   // RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Fan)
16 16
 #define BOARD_RAMPS_13_EEF      36   // RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Fan)
17
-#define BOARD_DUEMILANOVE_328P  4    // Duemilanove w/ ATMega328P pin assignment
17
+#define BOARD_DUEMILANOVE_328P  4    // Duemilanove w/ ATMega328P pin assignments
18 18
 #define BOARD_GEN6              5    // Gen6
19 19
 #define BOARD_GEN6_DELUXE       51   // Gen6 deluxe
20 20
 #define BOARD_SANGUINOLOLU_11   6    // Sanguinololu < 1.2
@@ -41,12 +41,15 @@
41 41
 #define BOARD_MEGATRONICS       70   // Megatronics
42 42
 #define BOARD_MEGATRONICS_2     701  // Megatronics v2.0
43 43
 #define BOARD_MEGATRONICS_1     702  // Minitronics v1.0
44
+#define BOARD_MEGATRONICS_3     703  // Megatronics v3.0
44 45
 #define BOARD_OMCA_A            90   // Alpha OMCA board
45 46
 #define BOARD_OMCA              91   // Final OMCA board
46 47
 #define BOARD_RAMBO             301  // Rambo
47 48
 #define BOARD_ELEFU_3           21   // Elefu Ra Board (v3)
48 49
 #define BOARD_5DPRINT           88   // 5DPrint D8 Driver Board
49 50
 #define BOARD_LEAPFROG          999  // Leapfrog
51
+#define BOARD_WITBOX            41   // bq WITBOX
52
+#define BOARD_HEPHESTOS         42   // bq Prusa i3 Hephestos
50 53
 
51 54
 #define BOARD_99                99   // This is in pins.h but...?
52 55
 

+ 9
- 9
Marlin/cardreader.cpp View File

@@ -23,7 +23,7 @@ CardReader::CardReader()
23 23
    memset(workDirParents, 0, sizeof(workDirParents));
24 24
 
25 25
    autostart_stilltocheck=true; //the SD start is delayed, because otherwise the serial cannot answer fast enough to make contact with the host software.
26
-   lastnr=0;
26
+   autostart_index=0;
27 27
   //power to SD reader
28 28
   #if SDPOWER > -1
29 29
     SET_OUTPUT(SDPOWER); 
@@ -60,8 +60,8 @@ void CardReader::lsDive(const char *prepend, SdFile parent, const char * const m
60 60
     if( DIR_IS_SUBDIR(&p) && lsAction!=LS_Count && lsAction!=LS_GetFilename) // hence LS_SerialPrint
61 61
     {
62 62
 
63
-      char path[13*2];
64
-      char lfilename[13];
63
+      char path[FILENAME_LENGTH*2];
64
+      char lfilename[FILENAME_LENGTH];
65 65
       createFilename(lfilename,p);
66 66
       
67 67
       path[0]=0;
@@ -241,7 +241,7 @@ void CardReader::getAbsFilename(char *t)
241 241
     while(*t!=0 && cnt< MAXPATHNAMELENGTH) 
242 242
     {t++;cnt++;}  //crawl counter forward.
243 243
   }
244
-  if(cnt<MAXPATHNAMELENGTH-13)
244
+  if(cnt<MAXPATHNAMELENGTH-FILENAME_LENGTH)
245 245
     file.getFilename(t);
246 246
   else
247 247
     t[0]=0;
@@ -311,7 +311,7 @@ void CardReader::openFile(char* name,bool read, bool replace_current/*=true*/)
311 311
       //SERIAL_ECHO("end  :");SERIAL_ECHOLN((int)(dirname_end-name));
312 312
       if(dirname_end>0 && dirname_end>dirname_start)
313 313
       {
314
-        char subdirname[13];
314
+        char subdirname[FILENAME_LENGTH];
315 315
         strncpy(subdirname, dirname_start, dirname_end-dirname_start);
316 316
         subdirname[dirname_end-dirname_start]=0;
317 317
         SERIAL_ECHOLN(subdirname);
@@ -408,7 +408,7 @@ void CardReader::removeFile(char* name)
408 408
       //SERIAL_ECHO("end  :");SERIAL_ECHOLN((int)(dirname_end-name));
409 409
       if(dirname_end>0 && dirname_end>dirname_start)
410 410
       {
411
-        char subdirname[13];
411
+        char subdirname[FILENAME_LENGTH];
412 412
         strncpy(subdirname, dirname_start, dirname_end-dirname_start);
413 413
         subdirname[dirname_end-dirname_start]=0;
414 414
         SERIAL_ECHOLN(subdirname);
@@ -510,7 +510,7 @@ void CardReader::checkautostart(bool force)
510 510
   }
511 511
   
512 512
   char autoname[30];
513
-  sprintf_P(autoname, PSTR("auto%i.g"), lastnr);
513
+  sprintf_P(autoname, PSTR("auto%i.g"), autostart_index);
514 514
   for(int8_t i=0;i<(int8_t)strlen(autoname);i++)
515 515
     autoname[i]=tolower(autoname[i]);
516 516
   dir_t p;
@@ -537,9 +537,9 @@ void CardReader::checkautostart(bool force)
537 537
     }
538 538
   }
539 539
   if(!found)
540
-    lastnr=-1;
540
+    autostart_index=-1;
541 541
   else
542
-    lastnr++;
542
+    autostart_index++;
543 543
 }
544 544
 
545 545
 void CardReader::closefile(bool store_location)

+ 5
- 5
Marlin/cardreader.h View File

@@ -50,12 +50,12 @@ public:
50 50
 public:
51 51
   bool saving;
52 52
   bool logging;
53
-  bool sdprinting ;  
54
-  bool cardOK ;
55
-  char filename[13];
53
+  bool sdprinting;  
54
+  bool cardOK;
55
+  char filename[FILENAME_LENGTH];
56 56
   char longFilename[LONG_FILENAME_LENGTH];
57 57
   bool filenameIsDir;
58
-  int lastnr; //last number of the autostart;
58
+  int autostart_index;
59 59
 private:
60 60
   SdFile root,*curDir,workDir,workDirParents[MAX_DIR_DEPTH];
61 61
   uint16_t workDirDepth;
@@ -63,7 +63,7 @@ private:
63 63
   SdVolume volume;
64 64
   SdFile file;
65 65
   #define SD_PROCEDURE_DEPTH 1
66
-  #define MAXPATHNAMELENGTH (13*MAX_DIR_DEPTH+MAX_DIR_DEPTH+1)
66
+  #define MAXPATHNAMELENGTH (FILENAME_LENGTH*MAX_DIR_DEPTH+MAX_DIR_DEPTH+1)
67 67
   uint8_t file_subcall_ctr;
68 68
   uint32_t filespos[SD_PROCEDURE_DEPTH];
69 69
   char filenames[SD_PROCEDURE_DEPTH][MAXPATHNAMELENGTH];

+ 81
- 70
Marlin/dogm_lcd_implementation.h View File

@@ -51,11 +51,24 @@
51 51
 #endif
52 52
 */
53 53
 
54
+#define USE_BIG_EDIT_FONT                // save 3120 bytes of PROGMEM by commenting out this line
55
+#define FONT_STATUSMENU u8g_font_6x9
56
+#define FONT_MENU u8g_font_6x10_marlin
57
+
54 58
 // DOGM parameters (size in pixels)
55 59
 #define DOG_CHAR_WIDTH         6
56 60
 #define DOG_CHAR_HEIGHT        12
57
-#define DOG_CHAR_WIDTH_LARGE   9
58
-#define DOG_CHAR_HEIGHT_LARGE  18
61
+#ifdef USE_BIG_EDIT_FONT
62
+  #define FONT_MENU_EDIT u8g_font_9x18
63
+  #define DOG_CHAR_WIDTH_EDIT  9
64
+  #define DOG_CHAR_HEIGHT_EDIT 18
65
+  #define LCD_WIDTH_EDIT       14
66
+#else
67
+  #define FONT_MENU_EDIT u8g_font_6x10_marlin
68
+  #define DOG_CHAR_WIDTH_EDIT  6
69
+  #define DOG_CHAR_HEIGHT_EDIT 12
70
+  #define LCD_WIDTH_EDIT       22
71
+#endif
59 72
 
60 73
 #define START_ROW              0
61 74
 
@@ -70,8 +83,6 @@
70 83
 #define LCD_STR_BEDTEMP     "\xFE"
71 84
 #define LCD_STR_THERMOMETER "\xFF"
72 85
 
73
-#define FONT_STATUSMENU u8g_font_6x9
74
-
75 86
 int lcd_contrast;
76 87
 
77 88
 // LCD selection
@@ -107,31 +118,27 @@ static void lcd_implementation_init()
107 118
 	u8g.setRot270();	// Rotate screen by 270°
108 119
 #endif
109 120
 	
110
-  // FIXME: whats the purpose of the box? Maybe clear screen?
111
-	u8g.firstPage();
112
-  do {
113
-		u8g.setFont(u8g_font_6x10_marlin);
114
-		u8g.setColorIndex(1);
115
-		u8g.drawBox (0, 0, u8g.getWidth(), u8g.getHeight());
116
-		u8g.setColorIndex(1);
117
-	} while(u8g.nextPage());
118
-
119 121
   // Show splashscreen
120
-  int off = (u8g.getWidth() - START_BMPWIDTH) / 2;
121
-  int txtX = (u8g.getWidth() - sizeof(STRING_SPLASH) - 1) / 2;
122
-  int txtY = u8g.getHeight() - 10;
122
+  int offx = (u8g.getWidth() - START_BMPWIDTH) / 2;
123
+  #ifdef START_BMPHIGH
124
+    int offy = 0;
125
+  #else
126
+    int offy = DOG_CHAR_HEIGHT;
127
+  #endif
128
+
129
+  int txt1X = (u8g.getWidth() - (sizeof(STRING_SPLASH_LINE1) - 1)*DOG_CHAR_WIDTH) / 2;
130
+
123 131
 	u8g.firstPage();
124 132
 	do {
125
-    #ifdef START_BMPHIGH
126
-		  u8g.drawBitmapP(off, off, START_BMPBYTEWIDTH, START_BMPHEIGHT, start_bmp);
133
+    u8g.drawBitmapP(offx, offy, START_BMPBYTEWIDTH, START_BMPHEIGHT, start_bmp);
134
+    u8g.setFont(FONT_MENU);
135
+    #ifndef STRING_SPLASH_LINE2
136
+      u8g.drawStr(txt1X, u8g.getHeight() - DOG_CHAR_HEIGHT, STRING_SPLASH_LINE1);
127 137
     #else
128
-      u8g.setScale2x2();
129
-		  u8g.drawBitmapP(off, off, START_BMPBYTEWIDTH, START_BMPHEIGHT, start_bmp);
130
-      u8g.undoScale();
138
+      int txt2X = (u8g.getWidth() - (sizeof(STRING_SPLASH_LINE2) - 1)*DOG_CHAR_WIDTH) / 2;
139
+      u8g.drawStr(txt1X, u8g.getHeight() - DOG_CHAR_HEIGHT*3/2, STRING_SPLASH_LINE1);
140
+      u8g.drawStr(txt2X, u8g.getHeight() - DOG_CHAR_HEIGHT*1/2, STRING_SPLASH_LINE2);
131 141
     #endif
132
-			
133
-    u8g.setFont(u8g_font_5x8);
134
-		u8g.drawStr(txtX, txtY, STRING_SPLASH);
135 142
 	} while(u8g.nextPage());
136 143
 }
137 144
 
@@ -192,7 +199,7 @@ static void lcd_implementation_status_screen() {
192 199
 
193 200
     u8g.setPrintPos(80,47);
194 201
     if (starttime != 0) {
195
-      uint16_t time = millis()/60000 - starttime/60000;
202
+      uint16_t time = (millis() - starttime) / 60000;
196 203
       u8g.print(itostr2(time/60));
197 204
       u8g.print(':');
198 205
       u8g.print(itostr2(time%60));
@@ -203,26 +210,25 @@ static void lcd_implementation_status_screen() {
203 210
   #endif
204 211
  
205 212
   // Extruders
206
-  _draw_heater_status(6, 0);
207
-  #if EXTRUDERS > 1
208
-    _draw_heater_status(31, 1);
209
-    #if EXTRUDERS > 2
210
-      _draw_heater_status(55, 2);
211
-    #endif
212
-  #endif
213
+  for (int i=0; i<EXTRUDERS; i++) _draw_heater_status(6 + i * 25, i);
213 214
 
214 215
   // Heatbed
215
-  _draw_heater_status(81, -1);
216
+  if (EXTRUDERS < 4) _draw_heater_status(81, -1);
216 217
  
217 218
   // Fan
218 219
   u8g.setFont(FONT_STATUSMENU);
219 220
   u8g.setPrintPos(104,27);
220 221
   #if defined(FAN_PIN) && FAN_PIN > -1
221
-    u8g.print(itostr3(int((fanSpeed*100)/256 + 1)));
222
-    u8g.print("%");
223
-  #else
224
-    u8g.print("---");
222
+    int per = ((fanSpeed + 1) * 100) / 256;
223
+    if (per) {
224
+      u8g.print(itostr3(per));
225
+      u8g.print("%");
226
+    }
227
+    else
225 228
   #endif
229
+    {
230
+      u8g.print("---");
231
+    }
226 232
 
227 233
   // X, Y, Z-Coordinates
228 234
   u8g.setFont(FONT_STATUSMENU);
@@ -249,7 +255,7 @@ static void lcd_implementation_status_screen() {
249 255
   u8g.setColorIndex(1); // black on white
250 256
  
251 257
   // Feedrate
252
-  u8g.setFont(u8g_font_6x10_marlin);
258
+  u8g.setFont(FONT_MENU);
253 259
   u8g.setPrintPos(3,49);
254 260
   u8g.print(LCD_STR_FEEDRATE[0]);
255 261
   u8g.setFont(FONT_STATUSMENU);
@@ -276,12 +282,8 @@ static void lcd_implementation_status_screen() {
276 282
   #endif
277 283
 }
278 284
 
279
-static void lcd_implementation_drawmenu_generic(uint8_t row, const char* pstr, char pre_char, char post_char) {
280
-  char c;
281
-  
282
-  uint8_t n = LCD_WIDTH - 1 - 2;
283
-  
284
-  if ((pre_char == '>') || (pre_char == LCD_STR_UPLEVEL[0] )) {
285
+static void lcd_implementation_mark_as_selected(uint8_t row, char pr_char) {
286
+  if ((pr_char == '>') || (pr_char == LCD_STR_UPLEVEL[0] )) {
285 287
     u8g.setColorIndex(1);  // black on white
286 288
     u8g.drawBox (0, row*DOG_CHAR_HEIGHT + 3, 128, DOG_CHAR_HEIGHT);
287 289
     u8g.setColorIndex(0);  // following text must be white on black
@@ -289,9 +291,14 @@ static void lcd_implementation_drawmenu_generic(uint8_t row, const char* pstr, c
289 291
   else {
290 292
     u8g.setColorIndex(1); // unmarked text is black on white
291 293
   }
292
-  
293
-  u8g.setPrintPos(0 * DOG_CHAR_WIDTH, (row + 1) * DOG_CHAR_HEIGHT);
294
-  u8g.print(pre_char == '>' ? ' ' : pre_char);  // Row selector is obsolete
294
+  u8g.setPrintPos(START_ROW * DOG_CHAR_WIDTH, (row + 1) * DOG_CHAR_HEIGHT);
295
+}
296
+
297
+static void lcd_implementation_drawmenu_generic(uint8_t row, const char* pstr, char pre_char, char post_char) {
298
+  char c;
299
+  uint8_t n = LCD_WIDTH - 2;
300
+
301
+  lcd_implementation_mark_as_selected(row, pre_char);
295 302
 
296 303
   while((c = pgm_read_byte(pstr))) {
297 304
     u8g.print(c);
@@ -299,29 +306,23 @@ static void lcd_implementation_drawmenu_generic(uint8_t row, const char* pstr, c
299 306
     n--;
300 307
   }
301 308
   while(n--) u8g.print(' ');
302
-  
303 309
   u8g.print(post_char);
304 310
   u8g.print(' ');
305
-  u8g.setColorIndex(1);  // restore settings to black on white
306 311
 }
307 312
 
308 313
 static void _drawmenu_setting_edit_generic(uint8_t row, const char* pstr, char pre_char, const char* data, bool pgm) {
309 314
   char c;
310
-  uint8_t n = LCD_WIDTH - 1 - 2 - (pgm ? strlen_P(data) : strlen(data));
315
+  uint8_t n = LCD_WIDTH - 2 - (pgm ? strlen_P(data) : (strlen(data)));
311 316
 
312
-  u8g.setPrintPos(0 * DOG_CHAR_WIDTH, (row + 1) * DOG_CHAR_HEIGHT);
313
-  u8g.print(pre_char);
317
+  lcd_implementation_mark_as_selected(row, pre_char);
314 318
 
315
-  while( (c = pgm_read_byte(pstr)) != '\0' ) {
319
+  while( (c = pgm_read_byte(pstr))) {
316 320
     u8g.print(c);
317 321
     pstr++;
318 322
     n--;
319 323
   }
320
-
321 324
   u8g.print(':');
322
-
323 325
   while(n--) u8g.print(' ');
324
-
325 326
   if (pgm) { lcd_printPGM(data); } else { u8g.print(data); }
326 327
 }
327 328
 
@@ -368,11 +369,31 @@ static void _drawmenu_setting_edit_generic(uint8_t row, const char* pstr, char p
368 369
 #define lcd_implementation_drawmenu_setting_edit_callback_bool(row, pstr, pstr2, data, callback) lcd_implementation_drawmenu_setting_edit_generic_P(row, pstr, ' ', (*(data))?PSTR(MSG_ON):PSTR(MSG_OFF))
369 370
 
370 371
 void lcd_implementation_drawedit(const char* pstr, char* value) {
371
-  u8g.setPrintPos(0 * DOG_CHAR_WIDTH_LARGE, (u8g.getHeight() - 1 - DOG_CHAR_HEIGHT_LARGE) - (1 * DOG_CHAR_HEIGHT_LARGE) - START_ROW );
372
-  u8g.setFont(u8g_font_9x18);
372
+  uint8_t rows = 1;
373
+  uint8_t lcd_width = LCD_WIDTH;
374
+  uint8_t char_width = DOG_CHAR_WIDTH;
375
+
376
+  #ifdef USE_BIG_EDIT_FONT
377
+    if (strlen_P(pstr) <= LCD_WIDTH_EDIT - 1) {
378
+      u8g.setFont(FONT_MENU_EDIT);
379
+      lcd_width = LCD_WIDTH_EDIT + 1;
380
+      char_width = DOG_CHAR_WIDTH_EDIT;
381
+      if (strlen_P(pstr) >= LCD_WIDTH_EDIT - strlen(value)) rows = 2;
382
+    }
383
+    else {
384
+      u8g.setFont(FONT_MENU);
385
+    }
386
+  #endif
387
+
388
+  if (strlen_P(pstr) > LCD_WIDTH - 2 - strlen(value)) rows = 2;
389
+
390
+  const float kHalfChar = DOG_CHAR_HEIGHT_EDIT / 2;
391
+  float rowHeight = u8g.getHeight() / (rows + 1); // 1/(rows+1) = 1/2 or 1/3
392
+
393
+  u8g.setPrintPos(0, rowHeight + kHalfChar);
373 394
   lcd_printPGM(pstr);
374 395
   u8g.print(':');
375
-  u8g.setPrintPos((14 - strlen(value)) * DOG_CHAR_WIDTH_LARGE, (u8g.getHeight() - 1 - DOG_CHAR_HEIGHT_LARGE) - (1 * DOG_CHAR_HEIGHT_LARGE) - START_ROW );
396
+  u8g.setPrintPos((lcd_width-1-strlen(value)) * char_width, rows * rowHeight + kHalfChar);
376 397
   u8g.print(value);
377 398
 }
378 399
 
@@ -385,25 +406,15 @@ static void _drawmenu_sd(uint8_t row, const char* pstr, const char* filename, ch
385 406
     longFilename[n] = '\0';
386 407
   }
387 408
 
388
-  if (isSelected) {
389
-    u8g.setColorIndex(1); // black on white
390
-    u8g.drawBox (0, row*DOG_CHAR_HEIGHT + 3, 128, DOG_CHAR_HEIGHT);
391
-    u8g.setColorIndex(0); // following text must be white on black
392
-  }
393
-
394
-  u8g.setPrintPos(0 * DOG_CHAR_WIDTH, (row + 1) * DOG_CHAR_HEIGHT);
395
-  u8g.print(' '); // Indent by 1 char
409
+  lcd_implementation_mark_as_selected(row, ((isSelected) ? '>' : ' '));
396 410
 
397 411
   if (isDir) u8g.print(LCD_STR_FOLDER[0]);
398
-
399 412
   while((c = *filename) != '\0') {
400 413
     u8g.print(c);
401 414
     filename++;
402 415
     n--;
403 416
   }
404 417
   while(n--) u8g.print(' ');
405
-
406
-  if (isSelected) u8g.setColorIndex(1); // black on white
407 418
 }
408 419
 
409 420
 #define lcd_implementation_drawmenu_sdfile_selected(row, pstr, filename, longFilename) _drawmenu_sd(row, pstr, filename, longFilename, false, true)

+ 834
- 0
Marlin/example_configurations/Hephestos/Configuration.h View File

@@ -0,0 +1,834 @@
1
+#ifndef CONFIGURATION_H
2
+#define CONFIGURATION_H
3
+
4
+#include "boards.h"
5
+
6
+//===========================================================================
7
+//============================= Getting Started =============================
8
+//===========================================================================
9
+/*
10
+Here are some standard links for getting your machine calibrated:
11
+ * http://reprap.org/wiki/Calibration
12
+ * http://youtu.be/wAL9d7FgInk
13
+ * http://calculator.josefprusa.cz
14
+ * http://reprap.org/wiki/Triffid_Hunter%27s_Calibration_Guide
15
+ * http://www.thingiverse.com/thing:5573
16
+ * https://sites.google.com/site/repraplogphase/calibration-of-your-reprap
17
+ * http://www.thingiverse.com/thing:298812
18
+*/
19
+
20
+// This configuration file contains the basic settings.
21
+// Advanced settings can be found in Configuration_adv.h
22
+// BASIC SETTINGS: select your board type, temperature sensor type, axis scaling, and endstop configuration
23
+
24
+//===========================================================================
25
+//============================= DELTA Printer ===============================
26
+//===========================================================================
27
+// For a Delta printer replace the configuration files with the files in the
28
+// example_configurations/delta directory.
29
+//
30
+
31
+//===========================================================================
32
+//============================= SCARA Printer ===============================
33
+//===========================================================================
34
+// For a Delta printer replace the configuration files with the files in the
35
+// example_configurations/SCARA directory.
36
+//
37
+
38
+// User-specified version info of this build to display in [Pronterface, etc] terminal window during
39
+// startup. Implementation of an idea by Prof Braino to inform user that any changes made to this
40
+// build by the user have been successfully uploaded into firmware.
41
+#define STRING_VERSION "1.0.2"
42
+#define STRING_URL "reprap.org"
43
+#define STRING_VERSION_CONFIG_H __DATE__ " " __TIME__ // build date and time
44
+#define STRING_CONFIG_H_AUTHOR "(bq Hephestos)" // Who made the changes.
45
+#define STRING_SPLASH_LINE1 "v" STRING_VERSION // will be shown during bootup in line 1
46
+//#define STRING_SPLASH_LINE2 STRING_VERSION_CONFIG_H // will be shown during bootup in line2
47
+
48
+// SERIAL_PORT selects which serial port should be used for communication with the host.
49
+// This allows the connection of wireless adapters (for instance) to non-default port pins.
50
+// Serial port 0 is still used by the Arduino bootloader regardless of this setting.
51
+#define SERIAL_PORT 0
52
+
53
+// This determines the communication speed of the printer
54
+#define BAUDRATE 115200
55
+
56
+// This enables the serial port associated to the Bluetooth interface
57
+//#define BTENABLED              // Enable BT interface on AT90USB devices
58
+
59
+// The following define selects which electronics board you have.
60
+// Please choose the name from boards.h that matches your setup
61
+#ifndef MOTHERBOARD
62
+  #define MOTHERBOARD BOARD_HEPHESTOS
63
+#endif
64
+
65
+// Define this to set a custom name for your generic Mendel,
66
+// #define CUSTOM_MENDEL_NAME "This Mendel"
67
+
68
+// Define this to set a unique identifier for this printer, (Used by some programs to differentiate between machines)
69
+// You can use an online service to generate a random UUID. (eg http://www.uuidgenerator.net/version4)
70
+// #define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
71
+
72
+// This defines the number of extruders
73
+#define EXTRUDERS 1
74
+
75
+//// The following define selects which power supply you have. Please choose the one that matches your setup
76
+// 1 = ATX
77
+// 2 = X-Box 360 203Watts (the blue wire connected to PS_ON and the red wire to VCC)
78
+
79
+#define POWER_SUPPLY 1
80
+
81
+// Define this to have the electronics keep the power supply off on startup. If you don't know what this is leave it.
82
+// #define PS_DEFAULT_OFF
83
+
84
+//===========================================================================
85
+//============================= Thermal Settings  ============================
86
+//===========================================================================
87
+//
88
+//--NORMAL IS 4.7kohm PULLUP!-- 1kohm pullup can be used on hotend sensor, using correct resistor and table
89
+//
90
+//// Temperature sensor settings:
91
+// -2 is thermocouple with MAX6675 (only for sensor 0)
92
+// -1 is thermocouple with AD595
93
+// 0 is not used
94
+// 1 is 100k thermistor - best choice for EPCOS 100k (4.7k pullup)
95
+// 2 is 200k thermistor - ATC Semitec 204GT-2 (4.7k pullup)
96
+// 3 is Mendel-parts thermistor (4.7k pullup)
97
+// 4 is 10k thermistor !! do not use it for a hotend. It gives bad resolution at high temp. !!
98
+// 5 is 100K thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (4.7k pullup)
99
+// 6 is 100k EPCOS - Not as accurate as table 1 (created using a fluke thermocouple) (4.7k pullup)
100
+// 7 is 100k Honeywell thermistor 135-104LAG-J01 (4.7k pullup)
101
+// 71 is 100k Honeywell thermistor 135-104LAF-J01 (4.7k pullup)
102
+// 8 is 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup)
103
+// 9 is 100k GE Sensing AL03006-58.2K-97-G1 (4.7k pullup)
104
+// 10 is 100k RS thermistor 198-961 (4.7k pullup)
105
+// 11 is 100k beta 3950 1% thermistor (4.7k pullup)
106
+// 12 is 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup) (calibrated for Makibox hot bed)
107
+// 13 is 100k Hisens 3950  1% up to 300°C for hotend "Simple ONE " & "Hotend "All In ONE" 
108
+// 20 is the PT100 circuit found in the Ultimainboard V2.x
109
+// 60 is 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
110
+//
111
+//    1k ohm pullup tables - This is not normal, you would have to have changed out your 4.7k for 1k
112
+//                          (but gives greater accuracy and more stable PID)
113
+// 51 is 100k thermistor - EPCOS (1k pullup)
114
+// 52 is 200k thermistor - ATC Semitec 204GT-2 (1k pullup)
115
+// 55 is 100k thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (1k pullup)
116
+//
117
+// 1047 is Pt1000 with 4k7 pullup
118
+// 1010 is Pt1000 with 1k pullup (non standard)
119
+// 147 is Pt100 with 4k7 pullup
120
+// 110 is Pt100 with 1k pullup (non standard)
121
+
122
+#define TEMP_SENSOR_0 1
123
+#define TEMP_SENSOR_1 0
124
+#define TEMP_SENSOR_2 0
125
+#define TEMP_SENSOR_BED 0
126
+
127
+// This makes temp sensor 1 a redundant sensor for sensor 0. If the temperatures difference between these sensors is to high the print will be aborted.
128
+//#define TEMP_SENSOR_1_AS_REDUNDANT
129
+#define MAX_REDUNDANT_TEMP_SENSOR_DIFF 10
130
+
131
+// Actual temperature must be close to target for this long before M109 returns success
132
+#define TEMP_RESIDENCY_TIME 10  // (seconds)
133
+#define TEMP_HYSTERESIS 3       // (degC) range of +/- temperatures considered "close" to the target one
134
+#define TEMP_WINDOW     1       // (degC) Window around target to start the residency timer x degC early.
135
+
136
+// The minimal temperature defines the temperature below which the heater will not be enabled It is used
137
+// to check that the wiring to the thermistor is not broken.
138
+// Otherwise this would lead to the heater being powered on all the time.
139
+#define HEATER_0_MINTEMP 5
140
+#define HEATER_1_MINTEMP 5
141
+#define HEATER_2_MINTEMP 5
142
+#define BED_MINTEMP 5
143
+
144
+// When temperature exceeds max temp, your heater will be switched off.
145
+// This feature exists to protect your hotend from overheating accidentally, but *NOT* from thermistor short/failure!
146
+// You should use MINTEMP for thermistor short/failure protection.
147
+#define HEATER_0_MAXTEMP 260
148
+#define HEATER_1_MAXTEMP 260
149
+#define HEATER_2_MAXTEMP 260
150
+#define BED_MAXTEMP 150
151
+
152
+// If your bed has low resistance e.g. .6 ohm and throws the fuse you can duty cycle it to reduce the
153
+// average current. The value should be an integer and the heat bed will be turned on for 1 interval of
154
+// HEATER_BED_DUTY_CYCLE_DIVIDER intervals.
155
+//#define HEATER_BED_DUTY_CYCLE_DIVIDER 4
156
+
157
+// If you want the M105 heater power reported in watts, define the BED_WATTS, and (shared for all extruders) EXTRUDER_WATTS
158
+//#define EXTRUDER_WATTS (12.0*12.0/6.7) //  P=I^2/R
159
+//#define BED_WATTS (12.0*12.0/1.1)      // P=I^2/R
160
+
161
+//===========================================================================
162
+//============================= PID Settings ================================
163
+//===========================================================================
164
+// PID Tuning Guide here: http://reprap.org/wiki/PID_Tuning
165
+
166
+// Comment the following line to disable PID and enable bang-bang.
167
+#define PIDTEMP
168
+#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
169
+#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
170
+#ifdef PIDTEMP
171
+  //#define PID_DEBUG // Sends debug data to the serial port.
172
+  //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
173
+  //#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
174
+  //#define PID_PARAMS_PER_EXTRUDER // Uses separate PID parameters for each extruder (useful for mismatched extruders)
175
+                                    // Set/get with gcode: M301 E[extruder number, 0-2]
176
+  #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
177
+                                  // is more then PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
178
+  #define PID_INTEGRAL_DRIVE_MAX PID_MAX  //limit for the integral term
179
+  #define K1 0.95 //smoothing factor within the PID
180
+  #define PID_dT ((OVERSAMPLENR * 10.0)/(F_CPU / 64.0 / 256.0)) //sampling period of the temperature routine
181
+
182
+// If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it
183
+// Ultimaker
184
+//  #define  DEFAULT_Kp 22.2
185
+//  #define  DEFAULT_Ki 1.08
186
+//  #define  DEFAULT_Kd 114
187
+
188
+// MakerGear
189
+//    #define  DEFAULT_Kp 7.0
190
+//    #define  DEFAULT_Ki 0.1
191
+//    #define  DEFAULT_Kd 12
192
+
193
+// Mendel Parts V9 on 12V
194
+//    #define  DEFAULT_Kp 63.0
195
+//    #define  DEFAULT_Ki 2.25
196
+//    #define  DEFAULT_Kd 440
197
+
198
+// Hephestos (i3)
199
+    #define  DEFAULT_Kp 23.05
200
+    #define  DEFAULT_Ki 2.00
201
+    #define  DEFAULT_Kd 66.47
202
+
203
+#endif // PIDTEMP
204
+
205
+//===========================================================================
206
+//============================= PID > Bed Temperature Control ===============
207
+//===========================================================================
208
+// Select PID or bang-bang with PIDTEMPBED. If bang-bang, BED_LIMIT_SWITCHING will enable hysteresis
209
+//
210
+// Uncomment this to enable PID on the bed. It uses the same frequency PWM as the extruder.
211
+// If your PID_dT above is the default, and correct for your hardware/configuration, that means 7.689Hz,
212
+// which is fine for driving a square wave into a resistive load and does not significantly impact you FET heating.
213
+// This also works fine on a Fotek SSR-10DA Solid State Relay into a 250W heater.
214
+// If your configuration is significantly different than this and you don't understand the issues involved, you probably
215
+// shouldn't use bed PID until someone else verifies your hardware works.
216
+// If this is enabled, find your own PID constants below.
217
+//#define PIDTEMPBED
218
+//
219
+//#define BED_LIMIT_SWITCHING
220
+
221
+// This sets the max power delivered to the bed, and replaces the HEATER_BED_DUTY_CYCLE_DIVIDER option.
222
+// all forms of bed control obey this (PID, bang-bang, bang-bang with hysteresis)
223
+// setting this to anything other than 255 enables a form of PWM to the bed just like HEATER_BED_DUTY_CYCLE_DIVIDER did,
224
+// so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
225
+#define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
226
+
227
+#ifdef PIDTEMPBED
228
+//120v 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
229
+//from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, aggressive factor of .15 (vs .1, 1, 10)
230
+    #define  DEFAULT_bedKp 10.00
231
+    #define  DEFAULT_bedKi .023
232
+    #define  DEFAULT_bedKd 305.4
233
+
234
+//120v 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
235
+//from pidautotune
236
+//    #define  DEFAULT_bedKp 97.1
237
+//    #define  DEFAULT_bedKi 1.41
238
+//    #define  DEFAULT_bedKd 1675.16
239
+
240
+// FIND YOUR OWN: "M303 E-1 C8 S90" to run autotune on the bed at 90 degreesC for 8 cycles.
241
+#endif // PIDTEMPBED
242
+
243
+
244
+//this prevents dangerous Extruder moves, i.e. if the temperature is under the limit
245
+//can be software-disabled for whatever purposes by
246
+#define PREVENT_DANGEROUS_EXTRUDE
247
+//if PREVENT_DANGEROUS_EXTRUDE is on, you can still disable (uncomment) very long bits of extrusion separately.
248
+#define PREVENT_LENGTHY_EXTRUDE
249
+
250
+#define EXTRUDE_MINTEMP 170
251
+#define EXTRUDE_MAXLENGTH (X_MAX_LENGTH+Y_MAX_LENGTH) //prevent extrusion of very large distances.
252
+
253
+//===========================================================================
254
+//============================= Thermal Runaway Protection ==================
255
+//===========================================================================
256
+/*
257
+This is a feature to protect your printer from burn up in flames if it has
258
+a thermistor coming off place (this happened to a friend of mine recently and
259
+motivated me writing this feature).
260
+
261
+The issue: If a thermistor come off, it will read a lower temperature than actual.
262
+The system will turn the heater on forever, burning up the filament and anything
263
+else around.
264
+
265
+After the temperature reaches the target for the first time, this feature will 
266
+start measuring for how long the current temperature stays below the target 
267
+minus _HYSTERESIS (set_temperature - THERMAL_RUNAWAY_PROTECTION_HYSTERESIS).
268
+
269
+If it stays longer than _PERIOD, it means the thermistor temperature
270
+cannot catch up with the target, so something *may be* wrong. Then, to be on the
271
+safe side, the system will he halt.
272
+
273
+Bear in mind the count down will just start AFTER the first time the 
274
+thermistor temperature is over the target, so you will have no problem if
275
+your extruder heater takes 2 minutes to hit the target on heating.
276
+
277
+*/
278
+// If you want to enable this feature for all your extruder heaters,
279
+// uncomment the 2 defines below:
280
+
281
+// Parameters for all extruder heaters
282
+//#define THERMAL_RUNAWAY_PROTECTION_PERIOD 40 //in seconds
283
+//#define THERMAL_RUNAWAY_PROTECTION_HYSTERESIS 4 // in degree Celsius
284
+
285
+// If you want to enable this feature for your bed heater,
286
+// uncomment the 2 defines below:
287
+
288
+// Parameters for the bed heater
289
+//#define THERMAL_RUNAWAY_PROTECTION_BED_PERIOD 20 //in seconds
290
+//#define THERMAL_RUNAWAY_PROTECTION_BED_HYSTERESIS 2 // in degree Celsius
291
+
292
+
293
+//===========================================================================
294
+//============================= Mechanical Settings =========================
295
+//===========================================================================
296
+
297
+// Uncomment the following line to enable CoreXY kinematics
298
+// #define COREXY
299
+
300
+// coarse Endstop Settings
301
+#define ENDSTOPPULLUPS // Comment this out (using // at the start of the line) to disable the endstop pullup resistors
302
+
303
+#ifndef ENDSTOPPULLUPS
304
+  // fine endstop settings: Individual pullups. will be ignored if ENDSTOPPULLUPS is defined
305
+  // #define ENDSTOPPULLUP_XMAX
306
+  // #define ENDSTOPPULLUP_YMAX
307
+  // #define ENDSTOPPULLUP_ZMAX
308
+  // #define ENDSTOPPULLUP_XMIN
309
+  // #define ENDSTOPPULLUP_YMIN
310
+  // #define ENDSTOPPULLUP_ZMIN
311
+#endif
312
+
313
+#ifdef ENDSTOPPULLUPS
314
+  #define ENDSTOPPULLUP_XMAX
315
+  #define ENDSTOPPULLUP_YMAX
316
+  #define ENDSTOPPULLUP_ZMAX
317
+  #define ENDSTOPPULLUP_XMIN
318
+  #define ENDSTOPPULLUP_YMIN
319
+  #define ENDSTOPPULLUP_ZMIN
320
+#endif
321
+
322
+// The pullups are needed if you directly connect a mechanical endswitch between the signal and ground pins.
323
+const bool X_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
324
+const bool Y_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
325
+const bool Z_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
326
+const bool X_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
327
+const bool Y_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
328
+const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
329
+//#define DISABLE_MAX_ENDSTOPS
330
+//#define DISABLE_MIN_ENDSTOPS
331
+
332
+// Disable max endstops for compatibility with endstop checking routine
333
+#if defined(COREXY) && !defined(DISABLE_MAX_ENDSTOPS)
334
+  #define DISABLE_MAX_ENDSTOPS
335
+#endif
336
+
337
+// For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
338
+#define X_ENABLE_ON 0
339
+#define Y_ENABLE_ON 0
340
+#define Z_ENABLE_ON 0
341
+#define E_ENABLE_ON 0 // For all extruders
342
+
343
+// Disables axis when it's not being used.
344
+#define DISABLE_X false
345
+#define DISABLE_Y false
346
+#define DISABLE_Z false
347
+#define DISABLE_E false // For all extruders
348
+#define DISABLE_INACTIVE_EXTRUDER true //disable only inactive extruders and keep active extruder enabled
349
+
350
+#define INVERT_X_DIR true    // for Mendel set to false, for Orca set to true
351
+#define INVERT_Y_DIR false    // for Mendel set to true, for Orca set to false
352
+#define INVERT_Z_DIR true     // for Mendel set to false, for Orca set to true
353
+#define INVERT_E0_DIR false   // for direct drive extruder v9 set to true, for geared extruder set to false
354
+#define INVERT_E1_DIR false    // for direct drive extruder v9 set to true, for geared extruder set to false
355
+#define INVERT_E2_DIR false   // for direct drive extruder v9 set to true, for geared extruder set to false
356
+
357
+// ENDSTOP SETTINGS:
358
+// Sets direction of endstops when homing; 1=MAX, -1=MIN
359
+#define X_HOME_DIR -1
360
+#define Y_HOME_DIR -1
361
+#define Z_HOME_DIR -1
362
+
363
+#define min_software_endstops true // If true, axis won't move to coordinates less than HOME_POS.
364
+#define max_software_endstops true  // If true, axis won't move to coordinates greater than the defined lengths below.
365
+
366
+// Travel limits after homing (units in mm)
367
+#define X_MAX_POS 215
368
+#define X_MIN_POS 0
369
+#define Y_MAX_POS 210
370
+#define Y_MIN_POS 0
371
+#define Z_MAX_POS 180
372
+#define Z_MIN_POS 0
373
+
374
+#define X_MAX_LENGTH (X_MAX_POS - X_MIN_POS)
375
+#define Y_MAX_LENGTH (Y_MAX_POS - Y_MIN_POS)
376
+#define Z_MAX_LENGTH (Z_MAX_POS - Z_MIN_POS)
377
+
378
+
379
+//===========================================================================
380
+//============================= Bed Auto Leveling ===========================
381
+//===========================================================================
382
+
383
+//#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
384
+#define Z_PROBE_REPEATABILITY_TEST  // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled.
385
+
386
+#ifdef ENABLE_AUTO_BED_LEVELING
387
+
388
+// There are 2 different ways to pick the X and Y locations to probe:
389
+
390
+//  - "grid" mode
391
+//    Probe every point in a rectangular grid
392
+//    You must specify the rectangle, and the density of sample points
393
+//    This mode is preferred because there are more measurements.
394
+//    It used to be called ACCURATE_BED_LEVELING but "grid" is more descriptive
395
+
396
+//  - "3-point" mode
397
+//    Probe 3 arbitrary points on the bed (that aren't colinear)
398
+//    You must specify the X & Y coordinates of all 3 points
399
+
400
+  #define AUTO_BED_LEVELING_GRID
401
+  // with AUTO_BED_LEVELING_GRID, the bed is sampled in a
402
+  // AUTO_BED_LEVELING_GRID_POINTSxAUTO_BED_LEVELING_GRID_POINTS grid
403
+  // and least squares solution is calculated
404
+  // Note: this feature occupies 10'206 byte
405
+  #ifdef AUTO_BED_LEVELING_GRID
406
+
407
+    // set the rectangle in which to probe
408
+    #define LEFT_PROBE_BED_POSITION 15
409
+    #define RIGHT_PROBE_BED_POSITION 170
410
+    #define BACK_PROBE_BED_POSITION 180
411
+    #define FRONT_PROBE_BED_POSITION 20
412
+
413
+     // set the number of grid points per dimension
414
+     // I wouldn't see a reason to go above 3 (=9 probing points on the bed)
415
+    #define AUTO_BED_LEVELING_GRID_POINTS 2
416
+
417
+
418
+  #else  // not AUTO_BED_LEVELING_GRID
419
+    // with no grid, just probe 3 arbitrary points.  A simple cross-product
420
+    // is used to esimate the plane of the print bed
421
+
422
+      #define ABL_PROBE_PT_1_X 15
423
+      #define ABL_PROBE_PT_1_Y 180
424
+      #define ABL_PROBE_PT_2_X 15
425
+      #define ABL_PROBE_PT_2_Y 20
426
+      #define ABL_PROBE_PT_3_X 170
427
+      #define ABL_PROBE_PT_3_Y 20
428
+
429
+  #endif // AUTO_BED_LEVELING_GRID
430
+
431
+
432
+  // these are the offsets to the probe relative to the extruder tip (Hotend - Probe)
433
+  // X and Y offsets must be integers
434
+  #define X_PROBE_OFFSET_FROM_EXTRUDER -25
435
+  #define Y_PROBE_OFFSET_FROM_EXTRUDER -29
436
+  #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35
437
+
438
+  #define Z_RAISE_BEFORE_HOMING 4       // (in mm) Raise Z before homing (G28) for Probe Clearance.
439
+                                        // Be sure you have this distance over your Z_MAX_POS in case
440
+
441
+  #define XY_TRAVEL_SPEED 8000         // X and Y axis travel speed between probes, in mm/min
442
+
443
+  #define Z_RAISE_BEFORE_PROBING 15    //How much the extruder will be raised before traveling to the first probing point.
444
+  #define Z_RAISE_BETWEEN_PROBINGS 5  //How much the extruder will be raised when traveling from between next probing points
445
+
446
+  //#define Z_PROBE_SLED // turn on if you have a z-probe mounted on a sled like those designed by Charles Bell
447
+  //#define SLED_DOCKING_OFFSET 5 // the extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.
448
+
449
+  //If defined, the Probe servo will be turned on only during movement and then turned off to avoid jerk
450
+  //The value is the delay to turn the servo off after powered on - depends on the servo speed; 300ms is good value, but you can try lower it.
451
+  // You MUST HAVE the SERVO_ENDSTOPS defined to use here a value higher than zero otherwise your code will not compile.
452
+
453
+//  #define PROBE_SERVO_DEACTIVATION_DELAY 300
454
+
455
+
456
+//If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
457
+//it is highly recommended you let this Z_SAFE_HOMING enabled!!!
458
+
459
+  #define Z_SAFE_HOMING   // This feature is meant to avoid Z homing with probe outside the bed area.
460
+                          // When defined, it will:
461
+                          // - Allow Z homing only after X and Y homing AND stepper drivers still enabled
462
+                          // - If stepper drivers timeout, it will need X and Y homing again before Z homing
463
+                          // - Position the probe in a defined XY point before Z Homing when homing all axis (G28)
464
+                          // - Block Z homing only when the probe is outside bed area.
465
+
466
+  #ifdef Z_SAFE_HOMING
467
+
468
+    #define Z_SAFE_HOMING_X_POINT (X_MAX_LENGTH/2)    // X point for Z homing when homing all axis (G28)
469
+    #define Z_SAFE_HOMING_Y_POINT (Y_MAX_LENGTH/2)    // Y point for Z homing when homing all axis (G28)
470
+
471
+  #endif
472
+
473
+  #ifdef AUTO_BED_LEVELING_GRID	// Check if Probe_Offset * Grid Points is greater than Probing Range
474
+    #if X_PROBE_OFFSET_FROM_EXTRUDER < 0
475
+      #if (-(X_PROBE_OFFSET_FROM_EXTRUDER * (AUTO_BED_LEVELING_GRID_POINTS-1)) >= (RIGHT_PROBE_BED_POSITION - LEFT_PROBE_BED_POSITION))
476
+	     #error "The X axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS"
477
+	  #endif
478
+	#else
479
+      #if ((X_PROBE_OFFSET_FROM_EXTRUDER * (AUTO_BED_LEVELING_GRID_POINTS-1)) >= (RIGHT_PROBE_BED_POSITION - LEFT_PROBE_BED_POSITION))
480
+	     #error "The X axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS"
481
+	  #endif
482
+	#endif
483
+    #if Y_PROBE_OFFSET_FROM_EXTRUDER < 0
484
+      #if (-(Y_PROBE_OFFSET_FROM_EXTRUDER * (AUTO_BED_LEVELING_GRID_POINTS-1)) >= (BACK_PROBE_BED_POSITION - FRONT_PROBE_BED_POSITION))
485
+	     #error "The Y axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS"
486
+	  #endif
487
+	#else
488
+      #if ((Y_PROBE_OFFSET_FROM_EXTRUDER * (AUTO_BED_LEVELING_GRID_POINTS-1)) >= (BACK_PROBE_BED_POSITION - FRONT_PROBE_BED_POSITION))
489
+	     #error "The Y axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS"
490
+	  #endif
491
+	#endif
492
+
493
+	
494
+  #endif
495
+  
496
+#endif // ENABLE_AUTO_BED_LEVELING
497
+
498
+
499
+// The position of the homing switches
500
+//#define MANUAL_HOME_POSITIONS  // If defined, MANUAL_*_HOME_POS below will be used
501
+//#define BED_CENTER_AT_0_0  // If defined, the center of the bed is at (X=0, Y=0)
502
+
503
+//Manual homing switch locations:
504
+// For deltabots this means top and center of the Cartesian print volume.
505
+#define MANUAL_X_HOME_POS 0
506
+#define MANUAL_Y_HOME_POS 0
507
+#define MANUAL_Z_HOME_POS 0
508
+//#define MANUAL_Z_HOME_POS 402 // For delta: Distance between nozzle and print surface after homing.
509
+
510
+//// MOVEMENT SETTINGS
511
+#define NUM_AXIS 4 // The axis order in all axis related arrays is X, Y, Z, E
512
+#define HOMING_FEEDRATE {2000, 2000, 150, 0}  // set the homing speeds (mm/min)
513
+
514
+// default settings
515
+
516
+#define DEFAULT_AXIS_STEPS_PER_UNIT   {80,80,4000,100.47095761381482}  // default steps per unit for Ultimaker
517
+#define DEFAULT_MAX_FEEDRATE          {250, 250, 3.3, 25}    // (mm/sec)
518
+#define DEFAULT_MAX_ACCELERATION      {3000,3000,100,10000}    // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for Skeinforge 40+, for older versions raise them a lot.
519
+
520
+#define DEFAULT_ACCELERATION          1000    // X, Y, Z and E max acceleration in mm/s^2 for printing moves
521
+#define DEFAULT_RETRACT_ACCELERATION  1000   // X, Y, Z and E max acceleration in mm/s^2 for retracts
522
+
523
+// Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
524
+// The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).
525
+// For the other hotends it is their distance from the extruder 0 hotend.
526
+// #define EXTRUDER_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
527
+// #define EXTRUDER_OFFSET_Y {0.0, 5.00}  // (in mm) for each extruder, offset of the hotend on the Y axis
528
+
529
+// The speed change that does not require acceleration (i.e. the software might assume it can be done instantaneously)
530
+#define DEFAULT_XYJERK                10.0    // (mm/sec)
531
+#define DEFAULT_ZJERK                 0.4     // (mm/sec)
532
+#define DEFAULT_EJERK                 5.0    // (mm/sec)
533
+
534
+
535
+//===========================================================================
536
+//============================= Additional Features =========================
537
+//===========================================================================
538
+
539
+// Custom M code points
540
+#define CUSTOM_M_CODES
541
+#ifdef CUSTOM_M_CODES
542
+  #define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
543
+  #define Z_PROBE_OFFSET_RANGE_MIN -15
544
+  #define Z_PROBE_OFFSET_RANGE_MAX -5
545
+#endif
546
+
547
+
548
+// EEPROM
549
+// The microcontroller can store settings in the EEPROM, e.g. max velocity...
550
+// M500 - stores parameters in EEPROM
551
+// M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).
552
+// M502 - reverts to the default "factory settings".  You still need to store them in EEPROM afterwards if you want to.
553
+//define this to enable EEPROM support
554
+//#define EEPROM_SETTINGS
555
+//to disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
556
+// please keep turned on if you can.
557
+//#define EEPROM_CHITCHAT
558
+
559
+// Preheat Constants
560
+#define PLA_PREHEAT_HOTEND_TEMP 200
561
+#define PLA_PREHEAT_HPB_TEMP 0
562
+#define PLA_PREHEAT_FAN_SPEED 255   // Insert Value between 0 and 255
563
+
564
+#define ABS_PREHEAT_HOTEND_TEMP 220
565
+#define ABS_PREHEAT_HPB_TEMP 100
566
+#define ABS_PREHEAT_FAN_SPEED 255   // Insert Value between 0 and 255
567
+
568
+//LCD and SD support
569
+
570
+// Character based displays can have different extended charsets.
571
+#define DISPLAY_CHARSET_HD44780_JAPAN     // "ääööüüß23°"
572
+//#define DISPLAY_CHARSET_HD44780_WESTERN // "ÄäÖöÜüß²³°" if you see a '~' instead of a 'arrow_right' at the right of submenuitems - this is the right one.
573
+
574
+#define ULTRA_LCD  //general LCD support, also 16x2
575
+//#define DOGLCD  // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family)
576
+#define SDSUPPORT // Enable SD Card Support in Hardware Console
577
+//#define SDSLOW // Use slower SD transfer mode (not normally needed - uncomment if you're getting volume init error)
578
+//#define SD_CHECK_AND_RETRY // Use CRC checks and retries on the SD communication
579
+//#define ENCODER_PULSES_PER_STEP 1 // Increase if you have a high resolution encoder
580
+//#define ENCODER_STEPS_PER_MENU_ITEM 5 // Set according to ENCODER_PULSES_PER_STEP or your liking
581
+//#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store.
582
+#define ULTIPANEL  //the UltiPanel as on Thingiverse
583
+//#define LCD_FEEDBACK_FREQUENCY_HZ 1000	// this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click
584
+//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click
585
+
586
+// The MaKr3d Makr-Panel with graphic controller and SD support
587
+// http://reprap.org/wiki/MaKr3d_MaKrPanel
588
+//#define MAKRPANEL
589
+
590
+// The RepRapDiscount Smart Controller (white PCB)
591
+// http://reprap.org/wiki/RepRapDiscount_Smart_Controller
592
+#define REPRAP_DISCOUNT_SMART_CONTROLLER
593
+
594
+// The GADGETS3D G3D LCD/SD Controller (blue PCB)
595
+// http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel
596
+//#define G3D_PANEL
597
+
598
+// The RepRapDiscount FULL GRAPHIC Smart Controller (quadratic white PCB)
599
+// http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller
600
+//
601
+// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: http://code.google.com/p/u8glib/wiki/u8glib
602
+//#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
603
+
604
+// The RepRapWorld REPRAPWORLD_KEYPAD v1.1
605
+// http://reprapworld.com/?products_details&products_id=202&cPath=1591_1626
606
+//#define REPRAPWORLD_KEYPAD
607
+//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 // how much should be moved when a key is pressed, eg 10.0 means 10mm per click
608
+
609
+// The Elefu RA Board Control Panel
610
+// http://www.elefu.com/index.php?route=product/product&product_id=53
611
+// REMEMBER TO INSTALL LiquidCrystal_I2C.h in your ARDUINO library folder: https://github.com/kiyoshigawa/LiquidCrystal_I2C
612
+//#define RA_CONTROL_PANEL
613
+
614
+//automatic expansion
615
+#if defined (MAKRPANEL)
616
+ #define DOGLCD
617
+ #define SDSUPPORT
618
+ #define ULTIPANEL
619
+ #define NEWPANEL
620
+ #define DEFAULT_LCD_CONTRAST 17
621
+#endif
622
+
623
+#if defined (REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
624
+ #define DOGLCD
625
+ #define U8GLIB_ST7920
626
+ #define REPRAP_DISCOUNT_SMART_CONTROLLER
627
+#endif
628
+
629
+#if defined(ULTIMAKERCONTROLLER) || defined(REPRAP_DISCOUNT_SMART_CONTROLLER) || defined(G3D_PANEL)
630
+ #define ULTIPANEL
631
+ #define NEWPANEL
632
+#endif
633
+
634
+#if defined(REPRAPWORLD_KEYPAD)
635
+  #define NEWPANEL
636
+  #define ULTIPANEL
637
+#endif
638
+#if defined(RA_CONTROL_PANEL)
639
+ #define ULTIPANEL
640
+ #define NEWPANEL
641
+ #define LCD_I2C_TYPE_PCA8574
642
+ #define LCD_I2C_ADDRESS 0x27   // I2C Address of the port expander
643
+#endif
644
+
645
+//I2C PANELS
646
+
647
+//#define LCD_I2C_SAINSMART_YWROBOT
648
+#ifdef LCD_I2C_SAINSMART_YWROBOT
649
+  // This uses the LiquidCrystal_I2C library ( https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home )
650
+  // Make sure it is placed in the Arduino libraries directory.
651
+  #define LCD_I2C_TYPE_PCF8575
652
+  #define LCD_I2C_ADDRESS 0x27   // I2C Address of the port expander
653
+  #define NEWPANEL
654
+  #define ULTIPANEL
655
+#endif
656
+
657
+// PANELOLU2 LCD with status LEDs, separate encoder and click inputs
658
+//#define LCD_I2C_PANELOLU2
659
+#ifdef LCD_I2C_PANELOLU2
660
+  // This uses the LiquidTWI2 library v1.2.3 or later ( https://github.com/lincomatic/LiquidTWI2 )
661
+  // Make sure the LiquidTWI2 directory is placed in the Arduino or Sketchbook libraries subdirectory.
662
+  // (v1.2.3 no longer requires you to define PANELOLU in the LiquidTWI2.h library header file)
663
+  // Note: The PANELOLU2 encoder click input can either be directly connected to a pin
664
+  //       (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1).
665
+  #define LCD_I2C_TYPE_MCP23017
666
+  #define LCD_I2C_ADDRESS 0x20 // I2C Address of the port expander
667
+  #define LCD_USE_I2C_BUZZER //comment out to disable buzzer on LCD
668
+  #define NEWPANEL
669
+  #define ULTIPANEL
670
+
671
+  #ifndef ENCODER_PULSES_PER_STEP
672
+	#define ENCODER_PULSES_PER_STEP 4
673
+  #endif
674
+
675
+  #ifndef ENCODER_STEPS_PER_MENU_ITEM
676
+	#define ENCODER_STEPS_PER_MENU_ITEM 1
677
+  #endif
678
+
679
+
680
+  #ifdef LCD_USE_I2C_BUZZER
681
+	#define LCD_FEEDBACK_FREQUENCY_HZ 1000
682
+	#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100
683
+  #endif
684
+
685
+#endif
686
+
687
+// Panucatt VIKI LCD with status LEDs, integrated click & L/R/U/P buttons, separate encoder inputs
688
+//#define LCD_I2C_VIKI
689
+#ifdef LCD_I2C_VIKI
690
+  // This uses the LiquidTWI2 library v1.2.3 or later ( https://github.com/lincomatic/LiquidTWI2 )
691
+  // Make sure the LiquidTWI2 directory is placed in the Arduino or Sketchbook libraries subdirectory.
692
+  // Note: The pause/stop/resume LCD button pin should be connected to the Arduino
693
+  //       BTN_ENC pin (or set BTN_ENC to -1 if not used)
694
+  #define LCD_I2C_TYPE_MCP23017
695
+  #define LCD_I2C_ADDRESS 0x20 // I2C Address of the port expander
696
+  #define LCD_USE_I2C_BUZZER //comment out to disable buzzer on LCD (requires LiquidTWI2 v1.2.3 or later)
697
+  #define NEWPANEL
698
+  #define ULTIPANEL
699
+#endif
700
+
701
+// Shift register panels
702
+// ---------------------
703
+// 2 wire Non-latching LCD SR from:
704
+// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/schematics#!shiftregister-connection 
705
+
706
+//#define SAV_3DLCD
707
+#ifdef SAV_3DLCD
708
+   #define SR_LCD_2W_NL    // Non latching 2 wire shiftregister
709
+   #define NEWPANEL
710
+   #define ULTIPANEL
711
+#endif
712
+
713
+
714
+#ifdef ULTIPANEL
715
+//  #define NEWPANEL  //enable this if you have a click-encoder panel
716
+  #define SDSUPPORT
717
+  #define ULTRA_LCD
718
+  #ifdef DOGLCD // Change number of lines to match the DOG graphic display
719
+    #define LCD_WIDTH 20
720
+    #define LCD_HEIGHT 5
721
+  #else
722
+    #define LCD_WIDTH 20
723
+    #define LCD_HEIGHT 4
724
+  #endif
725
+#else //no panel but just LCD
726
+  #ifdef ULTRA_LCD
727
+  #ifdef DOGLCD // Change number of lines to match the 128x64 graphics display
728
+    #define LCD_WIDTH 20
729
+    #define LCD_HEIGHT 5
730
+  #else
731
+    #define LCD_WIDTH 16
732
+    #define LCD_HEIGHT 2
733
+  #endif
734
+  #endif
735
+#endif
736
+
737
+// default LCD contrast for dogm-like LCD displays
738
+#ifdef DOGLCD
739
+# ifndef DEFAULT_LCD_CONTRAST
740
+#  define DEFAULT_LCD_CONTRAST 32
741
+# endif
742
+#endif
743
+
744
+// Increase the FAN pwm frequency. Removes the PWM noise but increases heating in the FET/Arduino
745
+//#define FAST_PWM_FAN
746
+
747
+// Temperature status LEDs that display the hotend and bet temperature.
748
+// If all hotends and bed temperature and temperature setpoint are < 54C then the BLUE led is on.
749
+// Otherwise the RED led is on. There is 1C hysteresis.
750
+//#define TEMP_STAT_LEDS
751
+
752
+// Use software PWM to drive the fan, as for the heaters. This uses a very low frequency
753
+// which is not ass annoying as with the hardware PWM. On the other hand, if this frequency
754
+// is too low, you should also increment SOFT_PWM_SCALE.
755
+//#define FAN_SOFT_PWM
756
+
757
+// Incrementing this by 1 will double the software PWM frequency,
758
+// affecting heaters, and the fan if FAN_SOFT_PWM is enabled.
759
+// However, control resolution will be halved for each increment;
760
+// at zero value, there are 128 effective control positions.
761
+#define SOFT_PWM_SCALE 0
762
+
763
+// M240  Triggers a camera by emulating a Canon RC-1 Remote
764
+// Data from: http://www.doc-diy.net/photo/rc-1_hacked/
765
+// #define PHOTOGRAPH_PIN     23
766
+
767
+// SF send wrong arc g-codes when using Arc Point as fillet procedure
768
+//#define SF_ARC_FIX
769
+
770
+// Support for the BariCUDA Paste Extruder.
771
+//#define BARICUDA
772
+
773
+//define BlinkM/CyzRgb Support
774
+//#define BLINKM
775
+
776
+/*********************************************************************\
777
+* R/C SERVO support
778
+* Sponsored by TrinityLabs, Reworked by codexmas
779
+**********************************************************************/
780
+
781
+// Number of servos
782
+//
783
+// If you select a configuration below, this will receive a default value and does not need to be set manually
784
+// set it manually if you have more servos than extruders and wish to manually control some
785
+// leaving it undefined or defining as 0 will disable the servo subsystem
786
+// If unsure, leave commented / disabled
787
+//
788
+//#define NUM_SERVOS 3 // Servo index starts with 0 for M280 command
789
+
790
+// Servo Endstops
791
+//
792
+// This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes.
793
+// Use M206 command to correct for switch height offset to actual nozzle height. Store that setting with M500.
794
+//
795
+//#define SERVO_ENDSTOPS {-1, -1, 0} // Servo index for X, Y, Z. Disable with -1
796
+//#define SERVO_ENDSTOP_ANGLES {0,0, 0,0, 70,0} // X,Y,Z Axis Extend and Retract angles
797
+
798
+/**********************************************************************\
799
+ * Support for a filament diameter sensor
800
+ * Also allows adjustment of diameter at print time (vs  at slicing)
801
+ * Single extruder only at this point (extruder 0)
802
+ * 
803
+ * Motherboards
804
+ * 34 - RAMPS1.4 - uses Analog input 5 on the AUX2 connector 
805
+ * 81 - Printrboard - Uses Analog input 2 on the Exp1 connector (version B,C,D,E)
806
+ * 301 - Rambo  - uses Analog input 3
807
+ * Note may require analog pins to be defined for different motherboards
808
+ **********************************************************************/
809
+// Uncomment below to enable
810
+//#define FILAMENT_SENSOR
811
+
812
+#define FILAMENT_SENSOR_EXTRUDER_NUM	0  //The number of the extruder that has the filament sensor (0,1,2)
813
+#define MEASUREMENT_DELAY_CM			14  //measurement delay in cm.  This is the distance from filament sensor to middle of barrel
814
+
815
+#define DEFAULT_NOMINAL_FILAMENT_DIA  3.0  //Enter the diameter (in mm) of the filament generally used (3.0 mm or 1.75 mm) - this is then used in the slicer software.  Used for sensor reading validation
816
+#define MEASURED_UPPER_LIMIT          3.30  //upper limit factor used for sensor reading validation in mm
817
+#define MEASURED_LOWER_LIMIT          1.90  //lower limit factor for sensor reading validation in mm
818
+#define MAX_MEASUREMENT_DELAY			20  //delay buffer size in bytes (1 byte = 1cm)- limits maximum measurement delay allowable (must be larger than MEASUREMENT_DELAY_CM  and lower number saves RAM)
819
+
820
+//defines used in the code
821
+#define DEFAULT_MEASURED_FILAMENT_DIA  DEFAULT_NOMINAL_FILAMENT_DIA  //set measured to nominal initially 
822
+
823
+//When using an LCD, uncomment the line below to display the Filament sensor data on the last line instead of status.  Status will appear for 5 sec.
824
+//#define FILAMENT_LCD_DISPLAY
825
+
826
+
827
+
828
+
829
+
830
+
831
+#include "Configuration_adv.h"
832
+#include "thermistortables.h"
833
+
834
+#endif //__CONFIGURATION_H

+ 535
- 0
Marlin/example_configurations/Hephestos/Configuration_adv.h View File

@@ -0,0 +1,535 @@
1
+#ifndef CONFIGURATION_ADV_H
2
+#define CONFIGURATION_ADV_H
3
+
4
+//===========================================================================
5
+//=============================Thermal Settings  ============================
6
+//===========================================================================
7
+
8
+#ifdef BED_LIMIT_SWITCHING
9
+  #define BED_HYSTERESIS 2 //only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
10
+#endif
11
+#define BED_CHECK_INTERVAL 5000 //ms between checks in bang-bang control
12
+
13
+//// Heating sanity check:
14
+// This waits for the watch period in milliseconds whenever an M104 or M109 increases the target temperature
15
+// If the temperature has not increased at the end of that period, the target temperature is set to zero.
16
+// It can be reset with another M104/M109. This check is also only triggered if the target temperature and the current temperature
17
+//  differ by at least 2x WATCH_TEMP_INCREASE
18
+//#define WATCH_TEMP_PERIOD 40000 //40 seconds
19
+//#define WATCH_TEMP_INCREASE 10  //Heat up at least 10 degree in 20 seconds
20
+
21
+#ifdef PIDTEMP
22
+  // this adds an experimental additional term to the heating power, proportional to the extrusion speed.
23
+  // if Kc is chosen well, the additional required power due to increased melting should be compensated.
24
+  #define PID_ADD_EXTRUSION_RATE
25
+  #ifdef PID_ADD_EXTRUSION_RATE
26
+    #define  DEFAULT_Kc (1) //heating power=Kc*(e_speed)
27
+  #endif
28
+#endif
29
+
30
+
31
+//automatic temperature: The hot end target temperature is calculated by all the buffered lines of gcode.
32
+//The maximum buffered steps/sec of the extruder motor are called "se".
33
+//You enter the autotemp mode by a M109 S<mintemp> B<maxtemp> F<factor>
34
+// the target temperature is set to mintemp+factor*se[steps/sec] and limited by mintemp and maxtemp
35
+// you exit the value by any M109 without F*
36
+// Also, if the temperature is set to a value <mintemp, it is not changed by autotemp.
37
+// on an Ultimaker, some initial testing worked with M109 S215 B260 F1 in the start.gcode
38
+#define AUTOTEMP
39
+#ifdef AUTOTEMP
40
+  #define AUTOTEMP_OLDWEIGHT 0.98
41
+#endif
42
+
43
+//Show Temperature ADC value
44
+//The M105 command return, besides traditional information, the ADC value read from temperature sensors.
45
+//#define SHOW_TEMP_ADC_VALUES
46
+
47
+//  extruder run-out prevention.
48
+//if the machine is idle, and the temperature over MINTEMP, every couple of SECONDS some filament is extruded
49
+//#define EXTRUDER_RUNOUT_PREVENT
50
+#define EXTRUDER_RUNOUT_MINTEMP 190
51
+#define EXTRUDER_RUNOUT_SECONDS 30.
52
+#define EXTRUDER_RUNOUT_ESTEPS 14. //mm filament
53
+#define EXTRUDER_RUNOUT_SPEED 1500.  //extrusion speed
54
+#define EXTRUDER_RUNOUT_EXTRUDE 100
55
+
56
+//These defines help to calibrate the AD595 sensor in case you get wrong temperature measurements.
57
+//The measured temperature is defined as "actualTemp = (measuredTemp * TEMP_SENSOR_AD595_GAIN) + TEMP_SENSOR_AD595_OFFSET"
58
+#define TEMP_SENSOR_AD595_OFFSET 0.0
59
+#define TEMP_SENSOR_AD595_GAIN   1.0
60
+
61
+//This is for controlling a fan to cool down the stepper drivers
62
+//it will turn on when any driver is enabled
63
+//and turn off after the set amount of seconds from last driver being disabled again
64
+#define CONTROLLERFAN_PIN -1 //Pin used for the fan to cool controller (-1 to disable)
65
+#define CONTROLLERFAN_SECS 60 //How many seconds, after all motors were disabled, the fan should run
66
+#define CONTROLLERFAN_SPEED 255  // == full speed
67
+
68
+// When first starting the main fan, run it at full speed for the
69
+// given number of milliseconds.  This gets the fan spinning reliably
70
+// before setting a PWM value. (Does not work with software PWM for fan on Sanguinololu)
71
+//#define FAN_KICKSTART_TIME 100
72
+
73
+// Extruder cooling fans
74
+// Configure fan pin outputs to automatically turn on/off when the associated
75
+// extruder temperature is above/below EXTRUDER_AUTO_FAN_TEMPERATURE.
76
+// Multiple extruders can be assigned to the same pin in which case
77
+// the fan will turn on when any selected extruder is above the threshold.
78
+#define EXTRUDER_0_AUTO_FAN_PIN -1
79
+#define EXTRUDER_1_AUTO_FAN_PIN -1
80
+#define EXTRUDER_2_AUTO_FAN_PIN -1
81
+#define EXTRUDER_3_AUTO_FAN_PIN -1
82
+#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
83
+#define EXTRUDER_AUTO_FAN_SPEED   255  // == full speed
84
+
85
+
86
+//===========================================================================
87
+//=============================Mechanical Settings===========================
88
+//===========================================================================
89
+
90
+//#define ENDSTOPS_ONLY_FOR_HOMING // If defined the endstops will only be used for homing
91
+
92
+
93
+//// AUTOSET LOCATIONS OF LIMIT SWITCHES
94
+//// Added by ZetaPhoenix 09-15-2012
95
+#ifdef MANUAL_HOME_POSITIONS  // Use manual limit switch locations
96
+  #define X_HOME_POS MANUAL_X_HOME_POS
97
+  #define Y_HOME_POS MANUAL_Y_HOME_POS
98
+  #define Z_HOME_POS MANUAL_Z_HOME_POS
99
+#else //Set min/max homing switch positions based upon homing direction and min/max travel limits
100
+  //X axis
101
+  #if X_HOME_DIR == -1
102
+    #ifdef BED_CENTER_AT_0_0
103
+      #define X_HOME_POS X_MAX_LENGTH * -0.5
104
+    #else
105
+      #define X_HOME_POS X_MIN_POS
106
+    #endif //BED_CENTER_AT_0_0
107
+  #else
108
+    #ifdef BED_CENTER_AT_0_0
109
+      #define X_HOME_POS X_MAX_LENGTH * 0.5
110
+    #else
111
+      #define X_HOME_POS X_MAX_POS
112
+    #endif //BED_CENTER_AT_0_0
113
+  #endif //X_HOME_DIR == -1
114
+
115
+  //Y axis
116
+  #if Y_HOME_DIR == -1
117
+    #ifdef BED_CENTER_AT_0_0
118
+      #define Y_HOME_POS Y_MAX_LENGTH * -0.5
119
+    #else
120
+      #define Y_HOME_POS Y_MIN_POS
121
+    #endif //BED_CENTER_AT_0_0
122
+  #else
123
+    #ifdef BED_CENTER_AT_0_0
124
+      #define Y_HOME_POS Y_MAX_LENGTH * 0.5
125
+    #else
126
+      #define Y_HOME_POS Y_MAX_POS
127
+    #endif //BED_CENTER_AT_0_0
128
+  #endif //Y_HOME_DIR == -1
129
+
130
+  // Z axis
131
+  #if Z_HOME_DIR == -1 //BED_CENTER_AT_0_0 not used
132
+    #define Z_HOME_POS Z_MIN_POS
133
+  #else
134
+    #define Z_HOME_POS Z_MAX_POS
135
+  #endif //Z_HOME_DIR == -1
136
+#endif //End auto min/max positions
137
+//END AUTOSET LOCATIONS OF LIMIT SWITCHES -ZP
138
+
139
+
140
+//#define Z_LATE_ENABLE // Enable Z the last moment. Needed if your Z driver overheats.
141
+
142
+// A single Z stepper driver is usually used to drive 2 stepper motors.
143
+// Uncomment this define to utilize a separate stepper driver for each Z axis motor.
144
+// Only a few motherboards support this, like RAMPS, which have dual extruder support (the 2nd, often unused, extruder driver is used
145
+// to control the 2nd Z axis stepper motor). The pins are currently only defined for a RAMPS motherboards.
146
+// On a RAMPS (or other 5 driver) motherboard, using this feature will limit you to using 1 extruder.
147
+//#define Z_DUAL_STEPPER_DRIVERS
148
+
149
+#ifdef Z_DUAL_STEPPER_DRIVERS
150
+  #undef EXTRUDERS
151
+  #define EXTRUDERS 1
152
+#endif
153
+
154
+// Same again but for Y Axis.
155
+//#define Y_DUAL_STEPPER_DRIVERS
156
+
157
+// Define if the two Y drives need to rotate in opposite directions
158
+#define INVERT_Y2_VS_Y_DIR true
159
+
160
+#ifdef Y_DUAL_STEPPER_DRIVERS
161
+  #undef EXTRUDERS
162
+  #define EXTRUDERS 1
163
+#endif
164
+
165
+#if defined (Z_DUAL_STEPPER_DRIVERS) && defined (Y_DUAL_STEPPER_DRIVERS)
166
+  #error "You cannot have dual drivers for both Y and Z"
167
+#endif
168
+
169
+// Enable this for dual x-carriage printers.
170
+// A dual x-carriage design has the advantage that the inactive extruder can be parked which
171
+// prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage
172
+// allowing faster printing speeds.
173
+//#define DUAL_X_CARRIAGE
174
+#ifdef DUAL_X_CARRIAGE
175
+// Configuration for second X-carriage
176
+// Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
177
+// the second x-carriage always homes to the maximum endstop.
178
+#define X2_MIN_POS 80     // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
179
+#define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
180
+#define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position
181
+#define X2_HOME_POS X2_MAX_POS // default home position is the maximum carriage position
182
+    // However: In this mode the EXTRUDER_OFFSET_X value for the second extruder provides a software
183
+    // override for X2_HOME_POS. This also allow recalibration of the distance between the two endstops
184
+    // without modifying the firmware (through the "M218 T1 X???" command).
185
+    // Remember: you should set the second extruder x-offset to 0 in your slicer.
186
+
187
+// Pins for second x-carriage stepper driver (defined here to avoid further complicating pins.h)
188
+#define X2_ENABLE_PIN 29
189
+#define X2_STEP_PIN 25
190
+#define X2_DIR_PIN 23
191
+
192
+// There are a few selectable movement modes for dual x-carriages using M605 S<mode>
193
+//    Mode 0: Full control. The slicer has full control over both x-carriages and can achieve optimal travel results
194
+//                           as long as it supports dual x-carriages. (M605 S0)
195
+//    Mode 1: Auto-park mode. The firmware will automatically park and unpark the x-carriages on tool changes so
196
+//                           that additional slicer support is not required. (M605 S1)
197
+//    Mode 2: Duplication mode. The firmware will transparently make the second x-carriage and extruder copy all
198
+//                           actions of the first x-carriage. This allows the printer to print 2 arbitrary items at
199
+//                           once. (2nd extruder x offset and temp offset are set using: M605 S2 [Xnnn] [Rmmm])
200
+
201
+// This is the default power-up mode which can be later using M605.
202
+#define DEFAULT_DUAL_X_CARRIAGE_MODE 0
203
+
204
+// Default settings in "Auto-park Mode"
205
+#define TOOLCHANGE_PARK_ZLIFT   0.2      // the distance to raise Z axis when parking an extruder
206
+#define TOOLCHANGE_UNPARK_ZLIFT 1        // the distance to raise Z axis when unparking an extruder
207
+
208
+// Default x offset in duplication mode (typically set to half print bed width)
209
+#define DEFAULT_DUPLICATION_X_OFFSET 100
210
+
211
+#endif //DUAL_X_CARRIAGE
212
+
213
+//homing hits the endstop, then retracts by this distance, before it tries to slowly bump again:
214
+#define X_HOME_RETRACT_MM 5
215
+#define Y_HOME_RETRACT_MM 5
216
+#define Z_HOME_RETRACT_MM 2
217
+//#define QUICK_HOME  //if this is defined, if both x and y are to be homed, a diagonal move will be performed initially.
218
+
219
+#define AXIS_RELATIVE_MODES {false, false, false, false}
220
+#ifdef CONFIG_STEPPERS_TOSHIBA
221
+#define MAX_STEP_FREQUENCY 10000 // Max step frequency for Toshiba Stepper Controllers
222
+#else
223
+#define MAX_STEP_FREQUENCY 40000 // Max step frequency for Ultimaker (5000 pps / half step)
224
+#endif
225
+//By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
226
+#define INVERT_X_STEP_PIN false
227
+#define INVERT_Y_STEP_PIN false
228
+#define INVERT_Z_STEP_PIN false
229
+#define INVERT_E_STEP_PIN false
230
+
231
+//default stepper release if idle. Set to 0 to deactivate.
232
+#define DEFAULT_STEPPER_DEACTIVE_TIME 60
233
+
234
+#define DEFAULT_MINIMUMFEEDRATE       0.0     // minimum feedrate
235
+#define DEFAULT_MINTRAVELFEEDRATE     0.0
236
+
237
+// Feedrates for manual moves along X, Y, Z, E from panel
238
+#ifdef ULTIPANEL
239
+#define MANUAL_FEEDRATE {120*60, 120*60, 18*60, 60}  // set the speeds for manual moves (mm/min)
240
+#endif
241
+
242
+//Comment to disable setting feedrate multiplier via encoder
243
+#ifdef ULTIPANEL
244
+    #define ULTIPANEL_FEEDMULTIPLY
245
+#endif
246
+
247
+// minimum time in microseconds that a movement needs to take if the buffer is emptied.
248
+#define DEFAULT_MINSEGMENTTIME        20000
249
+
250
+// If defined the movements slow down when the look ahead buffer is only half full
251
+#define SLOWDOWN
252
+
253
+// Frequency limit
254
+// See nophead's blog for more info
255
+// Not working O
256
+//#define XY_FREQUENCY_LIMIT  15
257
+
258
+// Minimum planner junction speed. Sets the default minimum speed the planner plans for at the end
259
+// of the buffer and all stops. This should not be much greater than zero and should only be changed
260
+// if unwanted behavior is observed on a user's machine when running at very slow speeds.
261
+#define MINIMUM_PLANNER_SPEED 0.05// (mm/sec)
262
+
263
+// MS1 MS2 Stepper Driver Microstepping mode table
264
+#define MICROSTEP1 LOW,LOW
265
+#define MICROSTEP2 HIGH,LOW
266
+#define MICROSTEP4 LOW,HIGH
267
+#define MICROSTEP8 HIGH,HIGH
268
+#define MICROSTEP16 HIGH,HIGH
269
+
270
+// Microstep setting (Only functional when stepper driver microstep pins are connected to MCU.
271
+#define MICROSTEP_MODES {16,16,16,16,16} // [1,2,4,8,16]
272
+
273
+// Motor Current setting (Only functional when motor driver current ref pins are connected to a digital trimpot on supported boards)
274
+#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
275
+
276
+// uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
277
+//#define DIGIPOT_I2C
278
+// Number of channels available for I2C digipot, For Azteeg X3 Pro we have 8
279
+#define DIGIPOT_I2C_NUM_CHANNELS 8
280
+// actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
281
+#define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}
282
+
283
+//===========================================================================
284
+//=============================Additional Features===========================
285
+//===========================================================================
286
+
287
+//#define CHDK 4        //Pin for triggering CHDK to take a picture see how to use it here http://captain-slow.dk/2014/03/09/3d-printing-timelapses/
288
+#define CHDK_DELAY 50 //How long in ms the pin should stay HIGH before going LOW again
289
+
290
+#define SD_FINISHED_STEPPERRELEASE true  //if sd support and the file is finished: disable steppers?
291
+#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
292
+
293
+#define SDCARD_RATHERRECENTFIRST  //reverse file order of sd card menu display. Its sorted practically after the file system block order.
294
+// if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that.
295
+// using:
296
+#define MENU_ADDAUTOSTART
297
+
298
+// Show a progress bar on HD44780 LCDs for SD printing
299
+//#define LCD_PROGRESS_BAR
300
+
301
+#ifdef LCD_PROGRESS_BAR
302
+  // Amount of time (ms) to show the bar
303
+  #define PROGRESS_BAR_BAR_TIME 2000
304
+  // Amount of time (ms) to show the status message
305
+  #define PROGRESS_BAR_MSG_TIME 3000
306
+  // Amount of time (ms) to retain the status message (0=forever)
307
+  #define PROGRESS_MSG_EXPIRE   0
308
+  // Enable this to show messages for MSG_TIME then hide them
309
+  //#define PROGRESS_MSG_ONCE
310
+  #ifdef DOGLCD
311
+    #warning LCD_PROGRESS_BAR does not apply to graphical displays at this time.
312
+  #endif
313
+  #ifdef FILAMENT_LCD_DISPLAY
314
+    #error LCD_PROGRESS_BAR and FILAMENT_LCD_DISPLAY are not fully compatible. Comment out this line to use both.
315
+  #endif
316
+#endif
317
+
318
+// The hardware watchdog should reset the microcontroller disabling all outputs, in case the firmware gets stuck and doesn't do temperature regulation.
319
+//#define USE_WATCHDOG
320
+
321
+#ifdef USE_WATCHDOG
322
+// If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on.
323
+// The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset.
324
+//  However, THIS FEATURE IS UNSAFE!, as it will only work if interrupts are disabled. And the code could hang in an interrupt routine with interrupts disabled.
325
+//#define WATCHDOG_RESET_MANUAL
326
+#endif
327
+
328
+// Enable the option to stop SD printing when hitting and endstops, needs to be enabled from the LCD menu when this option is enabled.
329
+//#define ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED
330
+
331
+// Babystepping enables the user to control the axis in tiny amounts, independently from the normal printing process
332
+// it can e.g. be used to change z-positions in the print startup phase in real-time
333
+// does not respect endstops!
334
+//#define BABYSTEPPING
335
+#ifdef BABYSTEPPING
336
+  #define BABYSTEP_XY  //not only z, but also XY in the menu. more clutter, more functions
337
+  #define BABYSTEP_INVERT_Z false  //true for inverse movements in Z
338
+  #define BABYSTEP_Z_MULTIPLICATOR 2 //faster z movements
339
+
340
+  #ifdef COREXY
341
+    #error BABYSTEPPING not implemented for COREXY yet.
342
+  #endif
343
+
344
+  #ifdef DELTA
345
+    #ifdef BABYSTEP_XY
346
+      #error BABYSTEPPING only implemented for Z axis on deltabots.
347
+    #endif
348
+  #endif
349
+#endif
350
+
351
+// extruder advance constant (s2/mm3)
352
+//
353
+// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
354
+//
355
+// Hooke's law says:		force = k * distance
356
+// Bernoulli's principle says:	v ^ 2 / 2 + g . h + pressure / density = constant
357
+// so: v ^ 2 is proportional to number of steps we advance the extruder
358
+//#define ADVANCE
359
+
360
+#ifdef ADVANCE
361
+  #define EXTRUDER_ADVANCE_K .0
362
+
363
+  #define D_FILAMENT 1.75
364
+  #define STEPS_MM_E 100.47095761381482
365
+  #define EXTRUSION_AREA (0.25 * D_FILAMENT * D_FILAMENT * 3.14159)
366
+  #define STEPS_PER_CUBIC_MM_E (axis_steps_per_unit[E_AXIS]/ EXTRUSION_AREA)
367
+
368
+#endif // ADVANCE
369
+
370
+// Arc interpretation settings:
371
+#define MM_PER_ARC_SEGMENT 1
372
+#define N_ARC_CORRECTION 25
373
+
374
+const unsigned int dropsegments=5; //everything with less than this number of steps will be ignored as move and joined with the next movement
375
+
376
+// If you are using a RAMPS board or cheap E-bay purchased boards that do not detect when an SD card is inserted
377
+// You can get round this by connecting a push button or single throw switch to the pin defined as SDCARDCARDDETECT
378
+// in the pins.h file.  When using a push button pulling the pin to ground this will need inverted.  This setting should
379
+// be commented out otherwise
380
+#define SDCARDDETECTINVERTED
381
+
382
+#ifdef ULTIPANEL
383
+ #undef SDCARDDETECTINVERTED
384
+#endif
385
+
386
+// Power Signal Control Definitions
387
+// By default use ATX definition
388
+#ifndef POWER_SUPPLY
389
+  #define POWER_SUPPLY 1
390
+#endif
391
+// 1 = ATX
392
+#if (POWER_SUPPLY == 1)
393
+  #define PS_ON_AWAKE  LOW
394
+  #define PS_ON_ASLEEP HIGH
395
+#endif
396
+// 2 = X-Box 360 203W
397
+#if (POWER_SUPPLY == 2)
398
+  #define PS_ON_AWAKE  HIGH
399
+  #define PS_ON_ASLEEP LOW
400
+#endif
401
+
402
+// Control heater 0 and heater 1 in parallel.
403
+//#define HEATERS_PARALLEL
404
+
405
+//===========================================================================
406
+//=============================Buffers           ============================
407
+//===========================================================================
408
+
409
+// The number of linear motions that can be in the plan at any give time.
410
+// THE BLOCK_BUFFER_SIZE NEEDS TO BE A POWER OF 2, i.g. 8,16,32 because shifts and ors are used to do the ring-buffering.
411
+#if defined SDSUPPORT
412
+  #define BLOCK_BUFFER_SIZE 16   // SD,LCD,Buttons take more memory, block buffer needs to be smaller
413
+#else
414
+  #define BLOCK_BUFFER_SIZE 16 // maximize block buffer
415
+#endif
416
+
417
+
418
+//The ASCII buffer for receiving from the serial:
419
+#define MAX_CMD_SIZE 96
420
+#define BUFSIZE 5
421
+
422
+
423
+// Firmware based and LCD controlled retract
424
+// M207 and M208 can be used to define parameters for the retraction.
425
+// The retraction can be called by the slicer using G10 and G11
426
+// until then, intended retractions can be detected by moves that only extrude and the direction.
427
+// the moves are than replaced by the firmware controlled ones.
428
+
429
+// #define FWRETRACT  //ONLY PARTIALLY TESTED
430
+#ifdef FWRETRACT
431
+  #define MIN_RETRACT 0.1                //minimum extruded mm to accept a automatic gcode retraction attempt
432
+  #define RETRACT_LENGTH 3               //default retract length (positive mm)
433
+  #define RETRACT_LENGTH_SWAP 13         //default swap retract length (positive mm), for extruder change
434
+  #define RETRACT_FEEDRATE 80*60            //default feedrate for retracting (mm/s)
435
+  #define RETRACT_ZLIFT 0                //default retract Z-lift
436
+  #define RETRACT_RECOVER_LENGTH 0       //default additional recover length (mm, added to retract length when recovering)
437
+  //#define RETRACT_RECOVER_LENGTH_SWAP 0  //default additional swap recover length (mm, added to retract length when recovering from extruder change)
438
+  #define RETRACT_RECOVER_FEEDRATE 8*60     //default feedrate for recovering from retraction (mm/s)
439
+#endif
440
+
441
+//adds support for experimental filament exchange support M600; requires display
442
+#ifdef ULTIPANEL
443
+  #define FILAMENTCHANGEENABLE
444
+  #ifdef FILAMENTCHANGEENABLE
445
+    #define FILAMENTCHANGE_XPOS 3
446
+    #define FILAMENTCHANGE_YPOS 3
447
+    #define FILAMENTCHANGE_ZADD 10
448
+    #define FILAMENTCHANGE_FIRSTRETRACT -2
449
+    #define FILAMENTCHANGE_FINALRETRACT -100
450
+  #endif
451
+#endif
452
+
453
+#ifdef FILAMENTCHANGEENABLE
454
+  #ifdef EXTRUDER_RUNOUT_PREVENT
455
+    #error EXTRUDER_RUNOUT_PREVENT currently incompatible with FILAMENTCHANGE
456
+  #endif
457
+#endif
458
+
459
+//===========================================================================
460
+//=============================  Define Defines  ============================
461
+//===========================================================================
462
+
463
+#if defined (ENABLE_AUTO_BED_LEVELING) && defined (DELTA)
464
+  #error "Bed Auto Leveling is still not compatible with Delta Kinematics."
465
+#endif
466
+
467
+#if EXTRUDERS > 1 && defined TEMP_SENSOR_1_AS_REDUNDANT
468
+  #error "You cannot use TEMP_SENSOR_1_AS_REDUNDANT if EXTRUDERS > 1"
469
+#endif
470
+
471
+#if EXTRUDERS > 1 && defined HEATERS_PARALLEL
472
+  #error "You cannot use HEATERS_PARALLEL if EXTRUDERS > 1"
473
+#endif
474
+
475
+#if TEMP_SENSOR_0 > 0
476
+  #define THERMISTORHEATER_0 TEMP_SENSOR_0
477
+  #define HEATER_0_USES_THERMISTOR
478
+#endif
479
+#if TEMP_SENSOR_1 > 0
480
+  #define THERMISTORHEATER_1 TEMP_SENSOR_1
481
+  #define HEATER_1_USES_THERMISTOR
482
+#endif
483
+#if TEMP_SENSOR_2 > 0
484
+  #define THERMISTORHEATER_2 TEMP_SENSOR_2
485
+  #define HEATER_2_USES_THERMISTOR
486
+#endif
487
+#if TEMP_SENSOR_3 > 0
488
+  #define THERMISTORHEATER_3 TEMP_SENSOR_3
489
+  #define HEATER_3_USES_THERMISTOR
490
+#endif
491
+#if TEMP_SENSOR_BED > 0
492
+  #define THERMISTORBED TEMP_SENSOR_BED
493
+  #define BED_USES_THERMISTOR
494
+#endif
495
+#if TEMP_SENSOR_0 == -1
496
+  #define HEATER_0_USES_AD595
497
+#endif
498
+#if TEMP_SENSOR_1 == -1
499
+  #define HEATER_1_USES_AD595
500
+#endif
501
+#if TEMP_SENSOR_2 == -1
502
+  #define HEATER_2_USES_AD595
503
+#endif
504
+#if TEMP_SENSOR_3 == -1
505
+  #define HEATER_3_USES_AD595
506
+#endif
507
+#if TEMP_SENSOR_BED == -1
508
+  #define BED_USES_AD595
509
+#endif
510
+#if TEMP_SENSOR_0 == -2
511
+  #define HEATER_0_USES_MAX6675
512
+#endif
513
+#if TEMP_SENSOR_0 == 0
514
+  #undef HEATER_0_MINTEMP
515
+  #undef HEATER_0_MAXTEMP
516
+#endif
517
+#if TEMP_SENSOR_1 == 0
518
+  #undef HEATER_1_MINTEMP
519
+  #undef HEATER_1_MAXTEMP
520
+#endif
521
+#if TEMP_SENSOR_2 == 0
522
+  #undef HEATER_2_MINTEMP
523
+  #undef HEATER_2_MAXTEMP
524
+#endif
525
+#if TEMP_SENSOR_3 == 0
526
+  #undef HEATER_3_MINTEMP
527
+  #undef HEATER_3_MAXTEMP
528
+#endif
529
+#if TEMP_SENSOR_BED == 0
530
+  #undef BED_MINTEMP
531
+  #undef BED_MAXTEMP
532
+#endif
533
+
534
+
535
+#endif //__CONFIGURATION_ADV_H

+ 48
- 13
Marlin/example_configurations/K8200/Configuration.h View File

@@ -3,6 +3,21 @@
3 3
 
4 4
 #include "boards.h"
5 5
 
6
+
7
+//===========================================================================
8
+//============================= Getting Started =============================
9
+//===========================================================================
10
+/*
11
+Here are some standard links for getting your machine calibrated:
12
+ * http://reprap.org/wiki/Calibration 
13
+ * http://youtu.be/wAL9d7FgInk
14
+ * http://calculator.josefprusa.cz
15
+ * http://reprap.org/wiki/Triffid_Hunter%27s_Calibration_Guide
16
+ * http://www.thingiverse.com/thing:5573
17
+ * https://sites.google.com/site/repraplogphase/calibration-of-your-reprap
18
+ * http://www.thingiverse.com/thing:298812
19
+*/
20
+
6 21
 // This configuration file contains the basic settings.
7 22
 // Advanced settings can be found in Configuration_adv.h
8 23
 // BASIC SETTINGS: select your board type, temperature sensor type, axis scaling, and endstop configuration
@@ -28,7 +43,8 @@
28 43
 #define STRING_URL "reprap.org"
29 44
 #define STRING_VERSION_CONFIG_H __DATE__ " " __TIME__ // build date and time
30 45
 #define STRING_CONFIG_H_AUTHOR "(K8200, CONSULitAS)" // Who made the changes.
31
-#define STRING_SPLASH STRING_VERSION " - " STRING_URL // will be shown during bootup
46
+#define STRING_SPLASH_LINE1 "v" STRING_VERSION // will be shown during bootup in line 1
47
+//#define STRING_SPLASH_LINE2 STRING_VERSION_CONFIG_H // will be shown during bootup in line2
32 48
 
33 49
 // SERIAL_PORT selects which serial port should be used for communication with the host.
34 50
 // This allows the connection of wireless adapters (for instance) to non-default port pins.
@@ -66,8 +82,9 @@
66 82
 // Define this to have the electronics keep the power supply off on startup. If you don't know what this is leave it.
67 83
 // #define PS_DEFAULT_OFF
68 84
 
85
+
69 86
 //===========================================================================
70
-//=============================Thermal Settings  ============================
87
+//============================= Thermal Settings ============================
71 88
 //===========================================================================
72 89
 //
73 90
 //--NORMAL IS 4.7kohm PULLUP!-- 1kohm pullup can be used on hotend sensor, using correct resistor and table
@@ -143,7 +160,11 @@
143 160
 //#define EXTRUDER_WATTS (12.0*12.0/6.7) //  P=I^2/R
144 161
 //#define BED_WATTS (12.0*12.0/1.1)      // P=I^2/R
145 162
 
146
-// PID settings:
163
+//===========================================================================
164
+//============================= PID Settings ================================
165
+//===========================================================================
166
+// PID Tuning Guide here: http://reprap.org/wiki/PID_Tuning
167
+
147 168
 // Comment the following line to disable PID and enable bang-bang.
148 169
 #define PIDTEMP
149 170
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
@@ -182,7 +203,9 @@
182 203
    #define  DEFAULT_Kd 93.51
183 204
 #endif // PIDTEMP
184 205
 
185
-// Bed Temperature Control
206
+//===========================================================================
207
+//============================= PID > Bed Temperature Control ===============
208
+//===========================================================================
186 209
 // Select PID or bang-bang with PIDTEMPBED. If bang-bang, BED_LIMIT_SWITCHING will enable hysteresis
187 210
 //
188 211
 // Uncomment this to enable PID on the bed. It uses the same frequency PWM as the extruder.
@@ -225,7 +248,6 @@
225 248
 #endif // PIDTEMPBED
226 249
 
227 250
 
228
-
229 251
 //this prevents dangerous Extruder moves, i.e. if the temperature is under the limit
230 252
 //can be software-disabled for whatever purposes by
231 253
 #define PREVENT_DANGEROUS_EXTRUDE
@@ -235,7 +257,11 @@
235 257
 #define EXTRUDE_MINTEMP 170
236 258
 #define EXTRUDE_MAXLENGTH (X_MAX_LENGTH+Y_MAX_LENGTH) //prevent extrusion of very large distances.
237 259
 
238
-/*================== Thermal Runaway Protection ==============================
260
+
261
+//===========================================================================
262
+//============================= Thermal Runaway Protection ==================
263
+//===========================================================================
264
+/*
239 265
 This is a feature to protect your printer from burn up in flames if it has
240 266
 a thermistor coming off place (this happened to a friend of mine recently and
241 267
 motivated me writing this feature).
@@ -270,11 +296,10 @@ your extruder heater takes 2 minutes to hit the target on heating.
270 296
 // Parameters for the bed heater
271 297
 //#define THERMAL_RUNAWAY_PROTECTION_BED_PERIOD 20 //in seconds
272 298
 //#define THERMAL_RUNAWAY_PROTECTION_BED_HYSTERESIS 2 // in degree Celsius
273
-//===========================================================================
274 299
 
275 300
 
276 301
 //===========================================================================
277
-//=============================Mechanical Settings===========================
302
+//============================= Mechanical Settings =========================
278 303
 //===========================================================================
279 304
 
280 305
 // Uncomment the following line to enable CoreXY kinematics
@@ -346,7 +371,7 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
346 371
 #define min_software_endstops true // If true, axis won't move to coordinates less than HOME_POS.
347 372
 #define max_software_endstops true  // If true, axis won't move to coordinates greater than the defined lengths below.
348 373
 
349
-// Travel limits after homing
374
+// Travel limits after homing (units are in mm)
350 375
 #define X_MAX_POS 200
351 376
 #define X_MIN_POS 0
352 377
 #define Y_MAX_POS 200
@@ -357,7 +382,11 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
357 382
 #define X_MAX_LENGTH (X_MAX_POS - X_MIN_POS)
358 383
 #define Y_MAX_LENGTH (Y_MAX_POS - Y_MIN_POS)
359 384
 #define Z_MAX_LENGTH (Z_MAX_POS - Z_MIN_POS)
385
+
386
+
387
+//===========================================================================
360 388
 //============================= Bed Auto Leveling ===========================
389
+//===========================================================================
361 390
 
362 391
 //#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
363 392
 #define Z_PROBE_REPEATABILITY_TEST  // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled.
@@ -492,7 +521,7 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
492 521
 
493 522
 // default settings
494 523
 
495
-#define DEFAULT_AXIS_STEPS_PER_UNIT   {64.25,64.25,2560,600}  // default steps per unit for Ultimaker
524
+#define DEFAULT_AXIS_STEPS_PER_UNIT   {64.25,64.25,2560,600}  // default steps per unit for K8200
496 525
 #define DEFAULT_MAX_FEEDRATE          {500, 500, 5, 500}    // (mm/sec)
497 526
 #define DEFAULT_MAX_ACCELERATION      {9000,9000,100,10000}    // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for Skeinforge 40+, for older versions raise them a lot.
498 527
 
@@ -510,8 +539,9 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
510 539
 #define DEFAULT_ZJERK                 0.4     // (mm/sec)
511 540
 #define DEFAULT_EJERK                 5.0    // (mm/sec)
512 541
 
542
+
513 543
 //===========================================================================
514
-//=============================Additional Features===========================
544
+//============================= Additional Features =========================
515 545
 //===========================================================================
516 546
 
517 547
 // Custom M code points
@@ -544,6 +574,13 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
544 574
 #define ABS_PREHEAT_FAN_SPEED 0   // Insert Value between 0 and 255
545 575
 
546 576
 //LCD and SD support
577
+
578
+// VM8201 (LCD Option for K8200) uses "DISPLAY_CHARSET_HD44870_JAPAN" and "ULTIMAKERCONTROLLER"
579
+
580
+// Character based displays can have different extended charsets.
581
+#define DISPLAY_CHARSET_HD44780_JAPAN     // "ääööüüß23°"
582
+//#define DISPLAY_CHARSET_HD44780_WESTERN // "ÄäÖöÜüß²³°" if you see a '~' instead of a 'arrow_right' at the right of submenuitems - this is the right one.
583
+
547 584
 //#define ULTRA_LCD  //general LCD support, also 16x2
548 585
 //#define DOGLCD  // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family)
549 586
 //#define SDSUPPORT // Enable SD Card Support in Hardware Console
@@ -551,9 +588,7 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
551 588
 //#define SD_CHECK_AND_RETRY // Use CRC checks and retries on the SD communication
552 589
 //#define ENCODER_PULSES_PER_STEP 1 // Increase if you have a high resolution encoder
553 590
 //#define ENCODER_STEPS_PER_MENU_ITEM 5 // Set according to ENCODER_PULSES_PER_STEP or your liking
554
-
555 591
 #define ULTIMAKERCONTROLLER //as available from the Ultimaker online store.
556
-
557 592
 //#define ULTIPANEL  //the UltiPanel as on Thingiverse
558 593
 //#define LCD_FEEDBACK_FREQUENCY_HZ 1000	// this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click
559 594
 //#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click

+ 16
- 4
Marlin/example_configurations/K8200/Configuration_adv.h View File

@@ -75,9 +75,10 @@
75 75
 // extruder temperature is above/below EXTRUDER_AUTO_FAN_TEMPERATURE.
76 76
 // Multiple extruders can be assigned to the same pin in which case
77 77
 // the fan will turn on when any selected extruder is above the threshold.
78
-#define EXTRUDER_0_AUTO_FAN_PIN   -1
79
-#define EXTRUDER_1_AUTO_FAN_PIN   -1
80
-#define EXTRUDER_2_AUTO_FAN_PIN   -1
78
+#define EXTRUDER_0_AUTO_FAN_PIN -1
79
+#define EXTRUDER_1_AUTO_FAN_PIN -1
80
+#define EXTRUDER_2_AUTO_FAN_PIN -1
81
+#define EXTRUDER_3_AUTO_FAN_PIN -1
81 82
 #define EXTRUDER_AUTO_FAN_TEMPERATURE 50
82 83
 #define EXTRUDER_AUTO_FAN_SPEED   255  // == full speed
83 84
 
@@ -227,7 +228,7 @@
227 228
 #define INVERT_Z_STEP_PIN false
228 229
 #define INVERT_E_STEP_PIN false
229 230
 
230
-//default stepper release if idle
231
+//default stepper release if idle. Set to 0 to deactivate.
231 232
 #define DEFAULT_STEPPER_DEACTIVE_TIME 60
232 233
 
233 234
 #define DEFAULT_MINIMUMFEEDRATE       0.0     // minimum feedrate
@@ -483,6 +484,10 @@ const unsigned int dropsegments=5; //everything with less than this number of st
483 484
   #define THERMISTORHEATER_2 TEMP_SENSOR_2
484 485
   #define HEATER_2_USES_THERMISTOR
485 486
 #endif
487
+#if TEMP_SENSOR_3 > 0
488
+  #define THERMISTORHEATER_3 TEMP_SENSOR_3
489
+  #define HEATER_3_USES_THERMISTOR
490
+#endif
486 491
 #if TEMP_SENSOR_BED > 0
487 492
   #define THERMISTORBED TEMP_SENSOR_BED
488 493
   #define BED_USES_THERMISTOR
@@ -496,6 +501,9 @@ const unsigned int dropsegments=5; //everything with less than this number of st
496 501
 #if TEMP_SENSOR_2 == -1
497 502
   #define HEATER_2_USES_AD595
498 503
 #endif
504
+#if TEMP_SENSOR_3 == -1
505
+  #define HEATER_3_USES_AD595
506
+#endif
499 507
 #if TEMP_SENSOR_BED == -1
500 508
   #define BED_USES_AD595
501 509
 #endif
@@ -514,6 +522,10 @@ const unsigned int dropsegments=5; //everything with less than this number of st
514 522
   #undef HEATER_2_MINTEMP
515 523
   #undef HEATER_2_MAXTEMP
516 524
 #endif
525
+#if TEMP_SENSOR_3 == 0
526
+  #undef HEATER_3_MINTEMP
527
+  #undef HEATER_3_MAXTEMP
528
+#endif
517 529
 #if TEMP_SENSOR_BED == 0
518 530
   #undef BED_MINTEMP
519 531
   #undef BED_MAXTEMP

+ 4
- 1
Marlin/example_configurations/K8200/readme.md View File

@@ -1,9 +1,12 @@
1 1
 # Example Configuration for Vellemann K8200
2
-* Configuration files for **Vellemann K8200** (with VM8201 LCD/SD-Support)
2
+* Configuration files for **Vellemann K8200** (with VM8201 - LCD Option for K8200)
3 3
 * K8200 is a 3Drag clone - configuration should work with 3Drag http://reprap.org/wiki/3drag, too. Please report.
4 4
 
5 5
 * updated manually with parameters form genuine Vellemann Firmware "firmware_k8200_marlinv2" based on the recent development branch
6 6
 
7
+* VM8201 uses "DISPLAY_CHARSET_HD44870_JAPAN" and "ULTIMAKERCONTROLLER"
8
+* german (de) translation with umlaut is supported now - thanks to @AnHardt for the great hardware based umlaut support
9
+
7 10
 I (@CONSULitAS) tested the changes on my K8200 with 20x4-LCD and Arduino 1.0.5 for Windows (SD library added to IDE manually) - everything works well.
8 11
 
9 12
 **Source for genuine Vellemann Firmware V2 (with LCD/SD-Support):**

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

@@ -3,6 +3,22 @@
3 3
 
4 4
 #include "boards.h"
5 5
 
6
+
7
+//===========================================================================
8
+//============================= Getting Started =============================
9
+//===========================================================================
10
+/*
11
+Here are some standard links for getting your machine calibrated:
12
+ * http://reprap.org/wiki/Calibration 
13
+ * http://youtu.be/wAL9d7FgInk
14
+ * http://calculator.josefprusa.cz
15
+ * http://reprap.org/wiki/Triffid_Hunter%27s_Calibration_Guide
16
+ * http://www.thingiverse.com/thing:5573
17
+ * https://sites.google.com/site/repraplogphase/calibration-of-your-reprap
18
+ * http://www.thingiverse.com/thing:298812
19
+*/
20
+
21
+
6 22
 // This configuration file contains the basic settings.
7 23
 // Advanced settings can be found in Configuration_adv.h
8 24
 // BASIC SETTINGS: select your board type, temperature sensor type, axis scaling, and endstop configuration
@@ -42,8 +58,12 @@
42 58
 // User-specified version info of this build to display in [Pronterface, etc] terminal window during
43 59
 // startup. Implementation of an idea by Prof Braino to inform user that any changes made to this
44 60
 // build by the user have been successfully uploaded into firmware.
61
+#define STRING_VERSION "1.0.2"
62
+#define STRING_URL "reprap.org"
45 63
 #define STRING_VERSION_CONFIG_H __DATE__ " " __TIME__ // build date and time
46 64
 #define STRING_CONFIG_H_AUTHOR "(none, default config)" // Who made the changes.
65
+#define STRING_SPLASH_LINE1 "v" STRING_VERSION // will be shown during bootup in line 1
66
+//#define STRING_SPLASH_LINE2 STRING_VERSION_CONFIG_H // will be shown during bootup in line2
47 67
 
48 68
 // SERIAL_PORT selects which serial port should be used for communication with the host.
49 69
 // This allows the connection of wireless adapters (for instance) to non-default port pins.
@@ -83,7 +103,7 @@
83 103
 // #define PS_DEFAULT_OFF
84 104
 
85 105
 //===========================================================================
86
-//=============================Thermal Settings  ============================
106
+//============================= Thermal Settings ============================
87 107
 //===========================================================================
88 108
 //
89 109
 //--NORMAL IS 4.7kohm PULLUP!-- 1kohm pullup can be used on hotend sensor, using correct resistor and table
@@ -158,7 +178,11 @@
158 178
 #define EXTRUDER_WATTS (2*2/5.9) //  P=I^2/R
159 179
 #define BED_WATTS (5.45*5.45/2.2)      // P=I^2/R
160 180
 
161
-// PID settings:
181
+//===========================================================================
182
+//============================= PID Settings ================================
183
+//===========================================================================
184
+// PID Tuning Guide here: http://reprap.org/wiki/PID_Tuning
185
+
162 186
 // Comment the following line to disable PID and enable bang-bang.
163 187
 #define PIDTEMP
164 188
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
@@ -199,7 +223,9 @@
199 223
    // #define  DEFAULT_Kd 440
200 224
 #endif // PIDTEMP
201 225
 
202
-// Bed Temperature Control
226
+//===========================================================================
227
+//============================= PID > Bed Temperature Control ===============
228
+//===========================================================================
203 229
 // Select PID or bang-bang with PIDTEMPBED. If bang-bang, BED_LIMIT_SWITCHING will enable hysteresis
204 230
 //
205 231
 // Uncomment this to enable PID on the bed. It uses the same frequency PWM as the extruder.
@@ -252,7 +278,11 @@
252 278
 #define EXTRUDE_MINTEMP 150
253 279
 #define EXTRUDE_MAXLENGTH (X_MAX_LENGTH+Y_MAX_LENGTH) //prevent extrusion of very large distances.
254 280
 
255
-/*================== Thermal Runaway Protection ==============================
281
+
282
+//===========================================================================
283
+//============================= Thermal Runaway Protection ==================
284
+//===========================================================================
285
+/*
256 286
 This is a feature to protect your printer from burn up in flames if it has
257 287
 a thermistor coming off place (this happened to a friend of mine recently and
258 288
 motivated me writing this feature).
@@ -287,10 +317,10 @@ your extruder heater takes 2 minutes to hit the target on heating.
287 317
 // Parameters for the bed heater
288 318
 //#define THERMAL_RUNAWAY_PROTECTION_BED_PERIOD 20 //in seconds
289 319
 //#define THERMAL_RUNAWAY_PROTECTION_BED_HYSTERESIS 2 // in degree Celsius
290
-//===========================================================================
320
+
291 321
 
292 322
 //===========================================================================
293
-//=============================Mechanical Settings===========================
323
+//============================ Mechanical Settings ==========================
294 324
 //===========================================================================
295 325
 
296 326
 // Uncomment the following line to enable CoreXY kinematics
@@ -362,7 +392,7 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
362 392
 #define min_software_endstops true // If true, axis won't move to coordinates less than HOME_POS.
363 393
 #define max_software_endstops true  // If true, axis won't move to coordinates greater than the defined lengths below.
364 394
 
365
-// Travel limits after homing
395
+// Travel limits after homing (units are in mm)
366 396
 #define X_MAX_POS 200
367 397
 #define X_MIN_POS 0
368 398
 #define Y_MAX_POS 200
@@ -373,7 +403,11 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
373 403
 #define X_MAX_LENGTH (X_MAX_POS - X_MIN_POS)
374 404
 #define Y_MAX_LENGTH (Y_MAX_POS - Y_MIN_POS)
375 405
 #define Z_MAX_LENGTH (Z_MAX_POS - Z_MIN_POS)
406
+
407
+
408
+//===========================================================================
376 409
 //============================= Bed Auto Leveling ===========================
410
+//===========================================================================
377 411
 
378 412
 //#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
379 413
 
@@ -500,8 +534,9 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
500 534
 #define DEFAULT_ZJERK                 0.4    // (mm/sec)
501 535
 #define DEFAULT_EJERK                 3    // (mm/sec)
502 536
 
537
+
503 538
 //===========================================================================
504
-//=============================Additional Features===========================
539
+//============================= Additional Features =========================
505 540
 //===========================================================================
506 541
 
507 542
 // Custom M code points
@@ -534,6 +569,11 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
534 569
 #define ABS_PREHEAT_FAN_SPEED 255   // Insert Value between 0 and 255
535 570
 
536 571
 //LCD and SD support
572
+
573
+// Character based displays can have different extended charsets.
574
+#define DISPLAY_CHARSET_HD44780_JAPAN     // "ääööüüß23°"
575
+//#define DISPLAY_CHARSET_HD44780_WESTERN // "ÄäÖöÜüß²³°" if you see a '~' instead of a 'arrow_right' at the right of submenuitems - this is the right one.
576
+
537 577
 //#define ULTRA_LCD  //general LCD support, also 16x2
538 578
 //#define DOGLCD  // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family)
539 579
 //#define SDSUPPORT // Enable SD Card Support in Hardware Console

+ 1
- 1
Marlin/example_configurations/SCARA/Configuration_adv.h View File

@@ -228,7 +228,7 @@
228 228
 #define INVERT_Z_STEP_PIN false
229 229
 #define INVERT_E_STEP_PIN false
230 230
 
231
-//default stepper release if idle
231
+//default stepper release if idle. Set to 0 to deactivate.
232 232
 #define DEFAULT_STEPPER_DEACTIVE_TIME 240
233 233
 
234 234
 #define DEFAULT_MINIMUMFEEDRATE       0.0     // minimum feedrate

+ 838
- 0
Marlin/example_configurations/WITBOX/Configuration.h View File

@@ -0,0 +1,838 @@
1
+#ifndef CONFIGURATION_H
2
+#define CONFIGURATION_H
3
+
4
+#include "boards.h"
5
+
6
+
7
+//===========================================================================
8
+//============================= Getting Started =============================
9
+//===========================================================================
10
+/*
11
+Here are some standard links for getting your machine calibrated:
12
+ * http://reprap.org/wiki/Calibration 
13
+ * http://youtu.be/wAL9d7FgInk
14
+ * http://calculator.josefprusa.cz
15
+ * http://reprap.org/wiki/Triffid_Hunter%27s_Calibration_Guide
16
+ * http://www.thingiverse.com/thing:5573
17
+ * https://sites.google.com/site/repraplogphase/calibration-of-your-reprap
18
+ * http://www.thingiverse.com/thing:298812
19
+*/
20
+
21
+
22
+// This configuration file contains the basic settings.
23
+// Advanced settings can be found in Configuration_adv.h
24
+// BASIC SETTINGS: select your board type, temperature sensor type, axis scaling, and endstop configuration
25
+
26
+//===========================================================================
27
+//============================= DELTA Printer ===============================
28
+//===========================================================================
29
+// For a Delta printer replace the configuration files with the files in the
30
+// example_configurations/delta directory.
31
+//
32
+
33
+//===========================================================================
34
+//============================= SCARA Printer ===============================
35
+//===========================================================================
36
+// For a Delta printer replace the configuration files with the files in the
37
+// example_configurations/SCARA directory.
38
+//
39
+
40
+// User-specified version info of this build to display in [Pronterface, etc] terminal window during
41
+// startup. Implementation of an idea by Prof Braino to inform user that any changes made to this
42
+// build by the user have been successfully uploaded into firmware.
43
+#define STRING_VERSION "1.0.2"
44
+#define STRING_URL "reprap.org"
45
+#define STRING_VERSION_CONFIG_H __DATE__ " " __TIME__ // build date and time
46
+#define STRING_CONFIG_H_AUTHOR "(bq Witbox)" // Who made the changes.
47
+#define STRING_SPLASH_LINE1 "v" STRING_VERSION // will be shown during bootup in line 1
48
+//#define STRING_SPLASH_LINE2 STRING_VERSION_CONFIG_H // will be shown during bootup in line2
49
+
50
+// SERIAL_PORT selects which serial port should be used for communication with the host.
51
+// This allows the connection of wireless adapters (for instance) to non-default port pins.
52
+// Serial port 0 is still used by the Arduino bootloader regardless of this setting.
53
+#define SERIAL_PORT 0
54
+
55
+// This determines the communication speed of the printer
56
+#define BAUDRATE 115200
57
+
58
+// This enables the serial port associated to the Bluetooth interface
59
+//#define BTENABLED              // Enable BT interface on AT90USB devices
60
+
61
+// The following define selects which electronics board you have.
62
+// Please choose the name from boards.h that matches your setup
63
+#ifndef MOTHERBOARD
64
+  #define MOTHERBOARD BOARD_WITBOX
65
+#endif
66
+
67
+// Define this to set a custom name for your generic Mendel,
68
+// #define CUSTOM_MENDEL_NAME "This Mendel"
69
+
70
+// Define this to set a unique identifier for this printer, (Used by some programs to differentiate between machines)
71
+// You can use an online service to generate a random UUID. (eg http://www.uuidgenerator.net/version4)
72
+// #define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
73
+
74
+// This defines the number of extruders
75
+#define EXTRUDERS 1
76
+
77
+//// The following define selects which power supply you have. Please choose the one that matches your setup
78
+// 1 = ATX
79
+// 2 = X-Box 360 203Watts (the blue wire connected to PS_ON and the red wire to VCC)
80
+
81
+#define POWER_SUPPLY 1
82
+
83
+// Define this to have the electronics keep the power supply off on startup. If you don't know what this is leave it.
84
+// #define PS_DEFAULT_OFF
85
+
86
+
87
+//===========================================================================
88
+//============================= Thermal Settings ============================
89
+//===========================================================================
90
+//
91
+//--NORMAL IS 4.7kohm PULLUP!-- 1kohm pullup can be used on hotend sensor, using correct resistor and table
92
+//
93
+//// Temperature sensor settings:
94
+// -2 is thermocouple with MAX6675 (only for sensor 0)
95
+// -1 is thermocouple with AD595
96
+// 0 is not used
97
+// 1 is 100k thermistor - best choice for EPCOS 100k (4.7k pullup)
98
+// 2 is 200k thermistor - ATC Semitec 204GT-2 (4.7k pullup)
99
+// 3 is Mendel-parts thermistor (4.7k pullup)
100
+// 4 is 10k thermistor !! do not use it for a hotend. It gives bad resolution at high temp. !!
101
+// 5 is 100K thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (4.7k pullup)
102
+// 6 is 100k EPCOS - Not as accurate as table 1 (created using a fluke thermocouple) (4.7k pullup)
103
+// 7 is 100k Honeywell thermistor 135-104LAG-J01 (4.7k pullup)
104
+// 71 is 100k Honeywell thermistor 135-104LAF-J01 (4.7k pullup)
105
+// 8 is 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup)
106
+// 9 is 100k GE Sensing AL03006-58.2K-97-G1 (4.7k pullup)
107
+// 10 is 100k RS thermistor 198-961 (4.7k pullup)
108
+// 11 is 100k beta 3950 1% thermistor (4.7k pullup)
109
+// 12 is 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup) (calibrated for Makibox hot bed)
110
+// 13 is 100k Hisens 3950  1% up to 300°C for hotend "Simple ONE " & "Hotend "All In ONE" 
111
+// 20 is the PT100 circuit found in the Ultimainboard V2.x
112
+// 60 is 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
113
+//
114
+//    1k ohm pullup tables - This is not normal, you would have to have changed out your 4.7k for 1k
115
+//                          (but gives greater accuracy and more stable PID)
116
+// 51 is 100k thermistor - EPCOS (1k pullup)
117
+// 52 is 200k thermistor - ATC Semitec 204GT-2 (1k pullup)
118
+// 55 is 100k thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (1k pullup)
119
+//
120
+// 1047 is Pt1000 with 4k7 pullup
121
+// 1010 is Pt1000 with 1k pullup (non standard)
122
+// 147 is Pt100 with 4k7 pullup
123
+// 110 is Pt100 with 1k pullup (non standard)
124
+
125
+#define TEMP_SENSOR_0 1
126
+#define TEMP_SENSOR_1 0
127
+#define TEMP_SENSOR_2 0
128
+#define TEMP_SENSOR_BED 0
129
+
130
+// This makes temp sensor 1 a redundant sensor for sensor 0. If the temperatures difference between these sensors is to high the print will be aborted.
131
+//#define TEMP_SENSOR_1_AS_REDUNDANT
132
+#define MAX_REDUNDANT_TEMP_SENSOR_DIFF 10
133
+
134
+// Actual temperature must be close to target for this long before M109 returns success
135
+#define TEMP_RESIDENCY_TIME 10  // (seconds)
136
+#define TEMP_HYSTERESIS 3       // (degC) range of +/- temperatures considered "close" to the target one
137
+#define TEMP_WINDOW     1       // (degC) Window around target to start the residency timer x degC early.
138
+
139
+// The minimal temperature defines the temperature below which the heater will not be enabled It is used
140
+// to check that the wiring to the thermistor is not broken.
141
+// Otherwise this would lead to the heater being powered on all the time.
142
+#define HEATER_0_MINTEMP 5
143
+#define HEATER_1_MINTEMP 5
144
+#define HEATER_2_MINTEMP 5
145
+#define BED_MINTEMP 5
146
+
147
+// When temperature exceeds max temp, your heater will be switched off.
148
+// This feature exists to protect your hotend from overheating accidentally, but *NOT* from thermistor short/failure!
149
+// You should use MINTEMP for thermistor short/failure protection.
150
+#define HEATER_0_MAXTEMP 260
151
+#define HEATER_1_MAXTEMP 260
152
+#define HEATER_2_MAXTEMP 260
153
+#define BED_MAXTEMP 150
154
+
155
+// If your bed has low resistance e.g. .6 ohm and throws the fuse you can duty cycle it to reduce the
156
+// average current. The value should be an integer and the heat bed will be turned on for 1 interval of
157
+// HEATER_BED_DUTY_CYCLE_DIVIDER intervals.
158
+//#define HEATER_BED_DUTY_CYCLE_DIVIDER 4
159
+
160
+// If you want the M105 heater power reported in watts, define the BED_WATTS, and (shared for all extruders) EXTRUDER_WATTS
161
+//#define EXTRUDER_WATTS (12.0*12.0/6.7) //  P=I^2/R
162
+//#define BED_WATTS (12.0*12.0/1.1)      // P=I^2/R
163
+
164
+
165
+//===========================================================================
166
+//============================= PID Settings ================================
167
+//===========================================================================
168
+// PID Tuning Guide here: http://reprap.org/wiki/PID_Tuning
169
+
170
+// Comment the following line to disable PID and enable bang-bang.
171
+#define PIDTEMP
172
+#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
173
+#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
174
+#ifdef PIDTEMP
175
+  //#define PID_DEBUG // Sends debug data to the serial port.
176
+  //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
177
+  //#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
178
+  //#define PID_PARAMS_PER_EXTRUDER // Uses separate PID parameters for each extruder (useful for mismatched extruders)
179
+                                    // Set/get with gcode: M301 E[extruder number, 0-2]
180
+  #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
181
+                                  // is more then PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
182
+  #define PID_INTEGRAL_DRIVE_MAX PID_MAX  //limit for the integral term
183
+  #define K1 0.95 //smoothing factor within the PID
184
+  #define PID_dT ((OVERSAMPLENR * 8.0)/(F_CPU / 64.0 / 256.0)) //sampling period of the temperature routine
185
+
186
+// If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it
187
+// Ultimaker
188
+//  #define  DEFAULT_Kp 22.2
189
+//  #define  DEFAULT_Ki 1.08
190
+//  #define  DEFAULT_Kd 114
191
+
192
+// MakerGear
193
+//    #define  DEFAULT_Kp 7.0
194
+//    #define  DEFAULT_Ki 0.1
195
+//    #define  DEFAULT_Kd 12
196
+
197
+// Mendel Parts V9 on 12V
198
+//    #define  DEFAULT_Kp 63.0
199
+//    #define  DEFAULT_Ki 2.25
200
+//    #define  DEFAULT_Kd 440
201
+
202
+// Witbox
203
+      #define  DEFAULT_Kp 22.2
204
+      #define  DEFAULT_Ki 1.08
205
+      #define  DEFAULT_Kd 114
206
+#endif // PIDTEMP
207
+
208
+//===========================================================================
209
+//============================= PID > Bed Temperature Control ===============
210
+//===========================================================================
211
+// Select PID or bang-bang with PIDTEMPBED. If bang-bang, BED_LIMIT_SWITCHING will enable hysteresis
212
+//
213
+// Uncomment this to enable PID on the bed. It uses the same frequency PWM as the extruder.
214
+// If your PID_dT above is the default, and correct for your hardware/configuration, that means 7.689Hz,
215
+// which is fine for driving a square wave into a resistive load and does not significantly impact you FET heating.
216
+// This also works fine on a Fotek SSR-10DA Solid State Relay into a 250W heater.
217
+// If your configuration is significantly different than this and you don't understand the issues involved, you probably
218
+// shouldn't use bed PID until someone else verifies your hardware works.
219
+// If this is enabled, find your own PID constants below.
220
+//#define PIDTEMPBED
221
+//
222
+//#define BED_LIMIT_SWITCHING
223
+
224
+// This sets the max power delivered to the bed, and replaces the HEATER_BED_DUTY_CYCLE_DIVIDER option.
225
+// all forms of bed control obey this (PID, bang-bang, bang-bang with hysteresis)
226
+// setting this to anything other than 255 enables a form of PWM to the bed just like HEATER_BED_DUTY_CYCLE_DIVIDER did,
227
+// so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
228
+#define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
229
+
230
+#ifdef PIDTEMPBED
231
+//120v 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
232
+//from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, aggressive factor of .15 (vs .1, 1, 10)
233
+    #define  DEFAULT_bedKp 10.00
234
+    #define  DEFAULT_bedKi .023
235
+    #define  DEFAULT_bedKd 305.4
236
+
237
+//120v 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
238
+//from pidautotune
239
+//    #define  DEFAULT_bedKp 97.1
240
+//    #define  DEFAULT_bedKi 1.41
241
+//    #define  DEFAULT_bedKd 1675.16
242
+
243
+// FIND YOUR OWN: "M303 E-1 C8 S90" to run autotune on the bed at 90 degreesC for 8 cycles.
244
+#endif // PIDTEMPBED
245
+
246
+
247
+//this prevents dangerous Extruder moves, i.e. if the temperature is under the limit
248
+//can be software-disabled for whatever purposes by
249
+#define PREVENT_DANGEROUS_EXTRUDE
250
+//if PREVENT_DANGEROUS_EXTRUDE is on, you can still disable (uncomment) very long bits of extrusion separately.
251
+#define PREVENT_LENGTHY_EXTRUDE
252
+
253
+#define EXTRUDE_MINTEMP 170
254
+#define EXTRUDE_MAXLENGTH (X_MAX_LENGTH+Y_MAX_LENGTH) //prevent extrusion of very large distances.
255
+
256
+
257
+//===========================================================================
258
+//============================= Thermal Runaway Protection ==================
259
+//===========================================================================
260
+/*
261
+This is a feature to protect your printer from burn up in flames if it has
262
+a thermistor coming off place (this happened to a friend of mine recently and
263
+motivated me writing this feature).
264
+
265
+The issue: If a thermistor come off, it will read a lower temperature than actual.
266
+The system will turn the heater on forever, burning up the filament and anything
267
+else around.
268
+
269
+After the temperature reaches the target for the first time, this feature will 
270
+start measuring for how long the current temperature stays below the target 
271
+minus _HYSTERESIS (set_temperature - THERMAL_RUNAWAY_PROTECTION_HYSTERESIS).
272
+
273
+If it stays longer than _PERIOD, it means the thermistor temperature
274
+cannot catch up with the target, so something *may be* wrong. Then, to be on the
275
+safe side, the system will he halt.
276
+
277
+Bear in mind the count down will just start AFTER the first time the 
278
+thermistor temperature is over the target, so you will have no problem if
279
+your extruder heater takes 2 minutes to hit the target on heating.
280
+
281
+*/
282
+// If you want to enable this feature for all your extruder heaters,
283
+// uncomment the 2 defines below:
284
+
285
+// Parameters for all extruder heaters
286
+//#define THERMAL_RUNAWAY_PROTECTION_PERIOD 40 //in seconds
287
+//#define THERMAL_RUNAWAY_PROTECTION_HYSTERESIS 4 // in degree Celsius
288
+
289
+// If you want to enable this feature for your bed heater,
290
+// uncomment the 2 defines below:
291
+
292
+// Parameters for the bed heater
293
+//#define THERMAL_RUNAWAY_PROTECTION_BED_PERIOD 20 //in seconds
294
+//#define THERMAL_RUNAWAY_PROTECTION_BED_HYSTERESIS 2 // in degree Celsius
295
+
296
+
297
+//===========================================================================
298
+//============================= Mechanical Settings =========================
299
+//===========================================================================
300
+
301
+// Uncomment the following line to enable CoreXY kinematics
302
+// #define COREXY
303
+
304
+// coarse Endstop Settings
305
+#define ENDSTOPPULLUPS // Comment this out (using // at the start of the line) to disable the endstop pullup resistors
306
+
307
+#ifndef ENDSTOPPULLUPS
308
+  // fine endstop settings: Individual pullups. will be ignored if ENDSTOPPULLUPS is defined
309
+  // #define ENDSTOPPULLUP_XMAX
310
+  // #define ENDSTOPPULLUP_YMAX
311
+  // #define ENDSTOPPULLUP_ZMAX
312
+  // #define ENDSTOPPULLUP_XMIN
313
+  // #define ENDSTOPPULLUP_YMIN
314
+  // #define ENDSTOPPULLUP_ZMIN
315
+#endif
316
+
317
+#ifdef ENDSTOPPULLUPS
318
+  #define ENDSTOPPULLUP_XMAX
319
+  #define ENDSTOPPULLUP_YMAX
320
+  #define ENDSTOPPULLUP_ZMAX
321
+  #define ENDSTOPPULLUP_XMIN
322
+  #define ENDSTOPPULLUP_YMIN
323
+  #define ENDSTOPPULLUP_ZMIN
324
+#endif
325
+
326
+// The pullups are needed if you directly connect a mechanical endswitch between the signal and ground pins.
327
+const bool X_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
328
+const bool Y_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
329
+const bool Z_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
330
+const bool X_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
331
+const bool Y_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
332
+const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
333
+//#define DISABLE_MAX_ENDSTOPS
334
+//#define DISABLE_MIN_ENDSTOPS
335
+
336
+// Disable max endstops for compatibility with endstop checking routine
337
+#if defined(COREXY) && !defined(DISABLE_MAX_ENDSTOPS)
338
+  #define DISABLE_MAX_ENDSTOPS
339
+#endif
340
+
341
+// For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
342
+#define X_ENABLE_ON 0
343
+#define Y_ENABLE_ON 0
344
+#define Z_ENABLE_ON 0
345
+#define E_ENABLE_ON 0 // For all extruders
346
+
347
+// Disables axis when it's not being used.
348
+#define DISABLE_X false
349
+#define DISABLE_Y false
350
+#define DISABLE_Z true
351
+#define DISABLE_E false // For all extruders
352
+#define DISABLE_INACTIVE_EXTRUDER true //disable only inactive extruders and keep active extruder enabled
353
+
354
+#define INVERT_X_DIR true    // for Mendel set to false, for Orca set to true
355
+#define INVERT_Y_DIR false    // for Mendel set to true, for Orca set to false
356
+#define INVERT_Z_DIR true     // for Mendel set to false, for Orca set to true
357
+#define INVERT_E0_DIR false   // for direct drive extruder v9 set to true, for geared extruder set to false
358
+#define INVERT_E1_DIR false    // for direct drive extruder v9 set to true, for geared extruder set to false
359
+#define INVERT_E2_DIR false   // for direct drive extruder v9 set to true, for geared extruder set to false
360
+
361
+// ENDSTOP SETTINGS:
362
+// Sets direction of endstops when homing; 1=MAX, -1=MIN
363
+#define X_HOME_DIR 1
364
+#define Y_HOME_DIR 1
365
+#define Z_HOME_DIR -1
366
+
367
+#define min_software_endstops true // If true, axis won't move to coordinates less than HOME_POS.
368
+#define max_software_endstops true  // If true, axis won't move to coordinates greater than the defined lengths below.
369
+
370
+// Travel limits after homing (units are in mm)
371
+#define X_MAX_POS 297
372
+#define X_MIN_POS 0
373
+#define Y_MAX_POS 210
374
+#define Y_MIN_POS 0
375
+#define Z_MAX_POS 200
376
+#define Z_MIN_POS 0
377
+
378
+#define X_MAX_LENGTH (X_MAX_POS - X_MIN_POS)
379
+#define Y_MAX_LENGTH (Y_MAX_POS - Y_MIN_POS)
380
+#define Z_MAX_LENGTH (Z_MAX_POS - Z_MIN_POS)
381
+
382
+
383
+//===========================================================================
384
+//============================= Bed Auto Leveling ===========================
385
+//===========================================================================
386
+
387
+//#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
388
+#define Z_PROBE_REPEATABILITY_TEST  // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled.
389
+
390
+#ifdef ENABLE_AUTO_BED_LEVELING
391
+
392
+// There are 2 different ways to pick the X and Y locations to probe:
393
+
394
+//  - "grid" mode
395
+//    Probe every point in a rectangular grid
396
+//    You must specify the rectangle, and the density of sample points
397
+//    This mode is preferred because there are more measurements.
398
+//    It used to be called ACCURATE_BED_LEVELING but "grid" is more descriptive
399
+
400
+//  - "3-point" mode
401
+//    Probe 3 arbitrary points on the bed (that aren't colinear)
402
+//    You must specify the X & Y coordinates of all 3 points
403
+
404
+  #define AUTO_BED_LEVELING_GRID
405
+  // with AUTO_BED_LEVELING_GRID, the bed is sampled in a
406
+  // AUTO_BED_LEVELING_GRID_POINTSxAUTO_BED_LEVELING_GRID_POINTS grid
407
+  // and least squares solution is calculated
408
+  // Note: this feature occupies 10'206 byte
409
+  #ifdef AUTO_BED_LEVELING_GRID
410
+
411
+    // set the rectangle in which to probe
412
+    #define LEFT_PROBE_BED_POSITION 15
413
+    #define RIGHT_PROBE_BED_POSITION 170
414
+    #define BACK_PROBE_BED_POSITION 180
415
+    #define FRONT_PROBE_BED_POSITION 20
416
+
417
+     // set the number of grid points per dimension
418
+     // I wouldn't see a reason to go above 3 (=9 probing points on the bed)
419
+    #define AUTO_BED_LEVELING_GRID_POINTS 2
420
+
421
+
422
+  #else  // not AUTO_BED_LEVELING_GRID
423
+    // with no grid, just probe 3 arbitrary points.  A simple cross-product
424
+    // is used to esimate the plane of the print bed
425
+
426
+      #define ABL_PROBE_PT_1_X 15
427
+      #define ABL_PROBE_PT_1_Y 180
428
+      #define ABL_PROBE_PT_2_X 15
429
+      #define ABL_PROBE_PT_2_Y 20
430
+      #define ABL_PROBE_PT_3_X 170
431
+      #define ABL_PROBE_PT_3_Y 20
432
+
433
+  #endif // AUTO_BED_LEVELING_GRID
434
+
435
+
436
+  // these are the offsets to the probe relative to the extruder tip (Hotend - Probe)
437
+  // X and Y offsets must be integers
438
+  #define X_PROBE_OFFSET_FROM_EXTRUDER -25
439
+  #define Y_PROBE_OFFSET_FROM_EXTRUDER -29
440
+  #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35
441
+
442
+  #define Z_RAISE_BEFORE_HOMING 4       // (in mm) Raise Z before homing (G28) for Probe Clearance.
443
+                                        // Be sure you have this distance over your Z_MAX_POS in case
444
+
445
+  #define XY_TRAVEL_SPEED 8000         // X and Y axis travel speed between probes, in mm/min
446
+
447
+  #define Z_RAISE_BEFORE_PROBING 15    //How much the extruder will be raised before traveling to the first probing point.
448
+  #define Z_RAISE_BETWEEN_PROBINGS 5  //How much the extruder will be raised when traveling from between next probing points
449
+
450
+  //#define Z_PROBE_SLED // turn on if you have a z-probe mounted on a sled like those designed by Charles Bell
451
+  //#define SLED_DOCKING_OFFSET 5 // the extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.
452
+
453
+  //If defined, the Probe servo will be turned on only during movement and then turned off to avoid jerk
454
+  //The value is the delay to turn the servo off after powered on - depends on the servo speed; 300ms is good value, but you can try lower it.
455
+  // You MUST HAVE the SERVO_ENDSTOPS defined to use here a value higher than zero otherwise your code will not compile.
456
+
457
+//  #define PROBE_SERVO_DEACTIVATION_DELAY 300
458
+
459
+
460
+//If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
461
+//it is highly recommended you let this Z_SAFE_HOMING enabled!!!
462
+
463
+  #define Z_SAFE_HOMING   // This feature is meant to avoid Z homing with probe outside the bed area.
464
+                          // When defined, it will:
465
+                          // - Allow Z homing only after X and Y homing AND stepper drivers still enabled
466
+                          // - If stepper drivers timeout, it will need X and Y homing again before Z homing
467
+                          // - Position the probe in a defined XY point before Z Homing when homing all axis (G28)
468
+                          // - Block Z homing only when the probe is outside bed area.
469
+
470
+  #ifdef Z_SAFE_HOMING
471
+
472
+    #define Z_SAFE_HOMING_X_POINT (X_MAX_LENGTH/2)    // X point for Z homing when homing all axis (G28)
473
+    #define Z_SAFE_HOMING_Y_POINT (Y_MAX_LENGTH/2)    // Y point for Z homing when homing all axis (G28)
474
+
475
+  #endif
476
+
477
+  #ifdef AUTO_BED_LEVELING_GRID	// Check if Probe_Offset * Grid Points is greater than Probing Range
478
+    #if X_PROBE_OFFSET_FROM_EXTRUDER < 0
479
+      #if (-(X_PROBE_OFFSET_FROM_EXTRUDER * (AUTO_BED_LEVELING_GRID_POINTS-1)) >= (RIGHT_PROBE_BED_POSITION - LEFT_PROBE_BED_POSITION))
480
+	     #error "The X axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS"
481
+	  #endif
482
+	#else
483
+      #if ((X_PROBE_OFFSET_FROM_EXTRUDER * (AUTO_BED_LEVELING_GRID_POINTS-1)) >= (RIGHT_PROBE_BED_POSITION - LEFT_PROBE_BED_POSITION))
484
+	     #error "The X axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS"
485
+	  #endif
486
+	#endif
487
+    #if Y_PROBE_OFFSET_FROM_EXTRUDER < 0
488
+      #if (-(Y_PROBE_OFFSET_FROM_EXTRUDER * (AUTO_BED_LEVELING_GRID_POINTS-1)) >= (BACK_PROBE_BED_POSITION - FRONT_PROBE_BED_POSITION))
489
+	     #error "The Y axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS"
490
+	  #endif
491
+	#else
492
+      #if ((Y_PROBE_OFFSET_FROM_EXTRUDER * (AUTO_BED_LEVELING_GRID_POINTS-1)) >= (BACK_PROBE_BED_POSITION - FRONT_PROBE_BED_POSITION))
493
+	     #error "The Y axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS"
494
+	  #endif
495
+	#endif
496
+
497
+	
498
+  #endif
499
+  
500
+#endif // ENABLE_AUTO_BED_LEVELING
501
+
502
+
503
+// The position of the homing switches
504
+//#define MANUAL_HOME_POSITIONS  // If defined, MANUAL_*_HOME_POS below will be used
505
+//#define BED_CENTER_AT_0_0  // If defined, the center of the bed is at (X=0, Y=0)
506
+
507
+//Manual homing switch locations:
508
+// For deltabots this means top and center of the Cartesian print volume.
509
+#define MANUAL_X_HOME_POS 0
510
+#define MANUAL_Y_HOME_POS 0
511
+#define MANUAL_Z_HOME_POS 0
512
+//#define MANUAL_Z_HOME_POS 402 // For delta: Distance between nozzle and print surface after homing.
513
+
514
+//// MOVEMENT SETTINGS
515
+#define NUM_AXIS 4 // The axis order in all axis related arrays is X, Y, Z, E
516
+#define HOMING_FEEDRATE {120*60, 120*60, 7.2*60, 0}  // set the homing speeds (mm/min)
517
+
518
+// default settings
519
+
520
+#define DEFAULT_AXIS_STEPS_PER_UNIT   {80,80,600.0*8/3,102.073}  // default steps per unit for Ultimaker
521
+#define DEFAULT_MAX_FEEDRATE          {350, 350, 7.2, 80}    // (mm/sec)
522
+#define DEFAULT_MAX_ACCELERATION      {1000,1000,10,1000}    // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for Skeinforge 40+, for older versions raise them a lot.
523
+
524
+#define DEFAULT_ACCELERATION          3000    // X, Y, Z and E max acceleration in mm/s^2 for printing moves
525
+#define DEFAULT_RETRACT_ACCELERATION  3000   // X, Y, Z and E max acceleration in mm/s^2 for retracts
526
+
527
+// Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
528
+// The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).
529
+// For the other hotends it is their distance from the extruder 0 hotend.
530
+// #define EXTRUDER_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
531
+// #define EXTRUDER_OFFSET_Y {0.0, 5.00}  // (in mm) for each extruder, offset of the hotend on the Y axis
532
+
533
+// The speed change that does not require acceleration (i.e. the software might assume it can be done instantaneously)
534
+#define DEFAULT_XYJERK                10.0    // (mm/sec)
535
+#define DEFAULT_ZJERK                 0.4     // (mm/sec)
536
+#define DEFAULT_EJERK                 5.0    // (mm/sec)
537
+
538
+
539
+//===========================================================================
540
+//============================ Additional Features ==========================
541
+//===========================================================================
542
+
543
+// Custom M code points
544
+#define CUSTOM_M_CODES
545
+#ifdef CUSTOM_M_CODES
546
+  #define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
547
+  #define Z_PROBE_OFFSET_RANGE_MIN -15
548
+  #define Z_PROBE_OFFSET_RANGE_MAX -5
549
+#endif
550
+
551
+
552
+// EEPROM
553
+// The microcontroller can store settings in the EEPROM, e.g. max velocity...
554
+// M500 - stores parameters in EEPROM
555
+// M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).
556
+// M502 - reverts to the default "factory settings".  You still need to store them in EEPROM afterwards if you want to.
557
+//define this to enable EEPROM support
558
+//#define EEPROM_SETTINGS
559
+//to disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
560
+// please keep turned on if you can.
561
+//#define EEPROM_CHITCHAT
562
+
563
+// Preheat Constants
564
+#define PLA_PREHEAT_HOTEND_TEMP 200
565
+#define PLA_PREHEAT_HPB_TEMP 0
566
+#define PLA_PREHEAT_FAN_SPEED 255   // Insert Value between 0 and 255
567
+
568
+#define ABS_PREHEAT_HOTEND_TEMP 220
569
+#define ABS_PREHEAT_HPB_TEMP 100
570
+#define ABS_PREHEAT_FAN_SPEED 255   // Insert Value between 0 and 255
571
+
572
+//LCD and SD support
573
+
574
+// Character based displays can have different extended charsets.
575
+#define DISPLAY_CHARSET_HD44780_JAPAN     // "ääööüüß23°"
576
+//#define DISPLAY_CHARSET_HD44780_WESTERN // "ÄäÖöÜüß²³°" if you see a '~' instead of a 'arrow_right' at the right of submenuitems - this is the right one.
577
+
578
+#define ULTRA_LCD  //general LCD support, also 16x2
579
+//#define DOGLCD  // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family)
580
+#define SDSUPPORT // Enable SD Card Support in Hardware Console
581
+//#define SDSLOW // Use slower SD transfer mode (not normally needed - uncomment if you're getting volume init error)
582
+//#define SD_CHECK_AND_RETRY // Use CRC checks and retries on the SD communication
583
+//#define ENCODER_PULSES_PER_STEP 1 // Increase if you have a high resolution encoder
584
+//#define ENCODER_STEPS_PER_MENU_ITEM 5 // Set according to ENCODER_PULSES_PER_STEP or your liking
585
+//#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store.
586
+#define ULTIPANEL  //the UltiPanel as on Thingiverse
587
+//#define LCD_FEEDBACK_FREQUENCY_HZ 1000	// this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click
588
+//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click
589
+
590
+// The MaKr3d Makr-Panel with graphic controller and SD support
591
+// http://reprap.org/wiki/MaKr3d_MaKrPanel
592
+//#define MAKRPANEL
593
+
594
+// The RepRapDiscount Smart Controller (white PCB)
595
+// http://reprap.org/wiki/RepRapDiscount_Smart_Controller
596
+#define REPRAP_DISCOUNT_SMART_CONTROLLER
597
+
598
+// The GADGETS3D G3D LCD/SD Controller (blue PCB)
599
+// http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel
600
+//#define G3D_PANEL
601
+
602
+// The RepRapDiscount FULL GRAPHIC Smart Controller (quadratic white PCB)
603
+// http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller
604
+//
605
+// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: http://code.google.com/p/u8glib/wiki/u8glib
606
+//#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
607
+
608
+// The RepRapWorld REPRAPWORLD_KEYPAD v1.1
609
+// http://reprapworld.com/?products_details&products_id=202&cPath=1591_1626
610
+//#define REPRAPWORLD_KEYPAD
611
+//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 // how much should be moved when a key is pressed, eg 10.0 means 10mm per click
612
+
613
+// The Elefu RA Board Control Panel
614
+// http://www.elefu.com/index.php?route=product/product&product_id=53
615
+// REMEMBER TO INSTALL LiquidCrystal_I2C.h in your ARDUINO library folder: https://github.com/kiyoshigawa/LiquidCrystal_I2C
616
+//#define RA_CONTROL_PANEL
617
+
618
+//automatic expansion
619
+#if defined (MAKRPANEL)
620
+ #define DOGLCD
621
+ #define SDSUPPORT
622
+ #define ULTIPANEL
623
+ #define NEWPANEL
624
+ #define DEFAULT_LCD_CONTRAST 17
625
+#endif
626
+
627
+#if defined (REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
628
+ #define DOGLCD
629
+ #define U8GLIB_ST7920
630
+ #define REPRAP_DISCOUNT_SMART_CONTROLLER
631
+#endif
632
+
633
+#if defined(ULTIMAKERCONTROLLER) || defined(REPRAP_DISCOUNT_SMART_CONTROLLER) || defined(G3D_PANEL)
634
+ #define ULTIPANEL
635
+ #define NEWPANEL
636
+#endif
637
+
638
+#if defined(REPRAPWORLD_KEYPAD)
639
+  #define NEWPANEL
640
+  #define ULTIPANEL
641
+#endif
642
+#if defined(RA_CONTROL_PANEL)
643
+ #define ULTIPANEL
644
+ #define NEWPANEL
645
+ #define LCD_I2C_TYPE_PCA8574
646
+ #define LCD_I2C_ADDRESS 0x27   // I2C Address of the port expander
647
+#endif
648
+
649
+//I2C PANELS
650
+
651
+//#define LCD_I2C_SAINSMART_YWROBOT
652
+#ifdef LCD_I2C_SAINSMART_YWROBOT
653
+  // This uses the LiquidCrystal_I2C library ( https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home )
654
+  // Make sure it is placed in the Arduino libraries directory.
655
+  #define LCD_I2C_TYPE_PCF8575
656
+  #define LCD_I2C_ADDRESS 0x27   // I2C Address of the port expander
657
+  #define NEWPANEL
658
+  #define ULTIPANEL
659
+#endif
660
+
661
+// PANELOLU2 LCD with status LEDs, separate encoder and click inputs
662
+//#define LCD_I2C_PANELOLU2
663
+#ifdef LCD_I2C_PANELOLU2
664
+  // This uses the LiquidTWI2 library v1.2.3 or later ( https://github.com/lincomatic/LiquidTWI2 )
665
+  // Make sure the LiquidTWI2 directory is placed in the Arduino or Sketchbook libraries subdirectory.
666
+  // (v1.2.3 no longer requires you to define PANELOLU in the LiquidTWI2.h library header file)
667
+  // Note: The PANELOLU2 encoder click input can either be directly connected to a pin
668
+  //       (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1).
669
+  #define LCD_I2C_TYPE_MCP23017
670
+  #define LCD_I2C_ADDRESS 0x20 // I2C Address of the port expander
671
+  #define LCD_USE_I2C_BUZZER //comment out to disable buzzer on LCD
672
+  #define NEWPANEL
673
+  #define ULTIPANEL
674
+
675
+  #ifndef ENCODER_PULSES_PER_STEP
676
+	#define ENCODER_PULSES_PER_STEP 4
677
+  #endif
678
+
679
+  #ifndef ENCODER_STEPS_PER_MENU_ITEM
680
+	#define ENCODER_STEPS_PER_MENU_ITEM 1
681
+  #endif
682
+
683
+
684
+  #ifdef LCD_USE_I2C_BUZZER
685
+	#define LCD_FEEDBACK_FREQUENCY_HZ 1000
686
+	#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100
687
+  #endif
688
+
689
+#endif
690
+
691
+// Panucatt VIKI LCD with status LEDs, integrated click & L/R/U/P buttons, separate encoder inputs
692
+//#define LCD_I2C_VIKI
693
+#ifdef LCD_I2C_VIKI
694
+  // This uses the LiquidTWI2 library v1.2.3 or later ( https://github.com/lincomatic/LiquidTWI2 )
695
+  // Make sure the LiquidTWI2 directory is placed in the Arduino or Sketchbook libraries subdirectory.
696
+  // Note: The pause/stop/resume LCD button pin should be connected to the Arduino
697
+  //       BTN_ENC pin (or set BTN_ENC to -1 if not used)
698
+  #define LCD_I2C_TYPE_MCP23017
699
+  #define LCD_I2C_ADDRESS 0x20 // I2C Address of the port expander
700
+  #define LCD_USE_I2C_BUZZER //comment out to disable buzzer on LCD (requires LiquidTWI2 v1.2.3 or later)
701
+  #define NEWPANEL
702
+  #define ULTIPANEL
703
+#endif
704
+
705
+// Shift register panels
706
+// ---------------------
707
+// 2 wire Non-latching LCD SR from:
708
+// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/schematics#!shiftregister-connection 
709
+
710
+//#define SAV_3DLCD
711
+#ifdef SAV_3DLCD
712
+   #define SR_LCD_2W_NL    // Non latching 2 wire shiftregister
713
+   #define NEWPANEL
714
+   #define ULTIPANEL
715
+#endif
716
+
717
+
718
+#ifdef ULTIPANEL
719
+//  #define NEWPANEL  //enable this if you have a click-encoder panel
720
+  #define SDSUPPORT
721
+  #define ULTRA_LCD
722
+  #ifdef DOGLCD // Change number of lines to match the DOG graphic display
723
+    #define LCD_WIDTH 20
724
+    #define LCD_HEIGHT 5
725
+  #else
726
+    #define LCD_WIDTH 20
727
+    #define LCD_HEIGHT 4
728
+  #endif
729
+#else //no panel but just LCD
730
+  #ifdef ULTRA_LCD
731
+  #ifdef DOGLCD // Change number of lines to match the 128x64 graphics display
732
+    #define LCD_WIDTH 20
733
+    #define LCD_HEIGHT 5
734
+  #else
735
+    #define LCD_WIDTH 16
736
+    #define LCD_HEIGHT 2
737
+  #endif
738
+  #endif
739
+#endif
740
+
741
+// default LCD contrast for dogm-like LCD displays
742
+#ifdef DOGLCD
743
+# ifndef DEFAULT_LCD_CONTRAST
744
+#  define DEFAULT_LCD_CONTRAST 32
745
+# endif
746
+#endif
747
+
748
+// Increase the FAN pwm frequency. Removes the PWM noise but increases heating in the FET/Arduino
749
+//#define FAST_PWM_FAN
750
+
751
+// Temperature status LEDs that display the hotend and bet temperature.
752
+// If all hotends and bed temperature and temperature setpoint are < 54C then the BLUE led is on.
753
+// Otherwise the RED led is on. There is 1C hysteresis.
754
+//#define TEMP_STAT_LEDS
755
+
756
+// Use software PWM to drive the fan, as for the heaters. This uses a very low frequency
757
+// which is not ass annoying as with the hardware PWM. On the other hand, if this frequency
758
+// is too low, you should also increment SOFT_PWM_SCALE.
759
+//#define FAN_SOFT_PWM
760
+
761
+// Incrementing this by 1 will double the software PWM frequency,
762
+// affecting heaters, and the fan if FAN_SOFT_PWM is enabled.
763
+// However, control resolution will be halved for each increment;
764
+// at zero value, there are 128 effective control positions.
765
+#define SOFT_PWM_SCALE 0
766
+
767
+// M240  Triggers a camera by emulating a Canon RC-1 Remote
768
+// Data from: http://www.doc-diy.net/photo/rc-1_hacked/
769
+// #define PHOTOGRAPH_PIN     23
770
+
771
+// SF send wrong arc g-codes when using Arc Point as fillet procedure
772
+//#define SF_ARC_FIX
773
+
774
+// Support for the BariCUDA Paste Extruder.
775
+//#define BARICUDA
776
+
777
+//define BlinkM/CyzRgb Support
778
+//#define BLINKM
779
+
780
+/*********************************************************************\
781
+* R/C SERVO support
782
+* Sponsored by TrinityLabs, Reworked by codexmas
783
+**********************************************************************/
784
+
785
+// Number of servos
786
+//
787
+// If you select a configuration below, this will receive a default value and does not need to be set manually
788
+// set it manually if you have more servos than extruders and wish to manually control some
789
+// leaving it undefined or defining as 0 will disable the servo subsystem
790
+// If unsure, leave commented / disabled
791
+//
792
+//#define NUM_SERVOS 3 // Servo index starts with 0 for M280 command
793
+
794
+// Servo Endstops
795
+//
796
+// This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes.
797
+// Use M206 command to correct for switch height offset to actual nozzle height. Store that setting with M500.
798
+//
799
+//#define SERVO_ENDSTOPS {-1, -1, 0} // Servo index for X, Y, Z. Disable with -1
800
+//#define SERVO_ENDSTOP_ANGLES {0,0, 0,0, 70,0} // X,Y,Z Axis Extend and Retract angles
801
+
802
+/**********************************************************************\
803
+ * Support for a filament diameter sensor
804
+ * Also allows adjustment of diameter at print time (vs  at slicing)
805
+ * Single extruder only at this point (extruder 0)
806
+ * 
807
+ * Motherboards
808
+ * 34 - RAMPS1.4 - uses Analog input 5 on the AUX2 connector 
809
+ * 81 - Printrboard - Uses Analog input 2 on the Exp1 connector (version B,C,D,E)
810
+ * 301 - Rambo  - uses Analog input 3
811
+ * Note may require analog pins to be defined for different motherboards
812
+ **********************************************************************/
813
+// Uncomment below to enable
814
+//#define FILAMENT_SENSOR
815
+
816
+#define FILAMENT_SENSOR_EXTRUDER_NUM	0  //The number of the extruder that has the filament sensor (0,1,2)
817
+#define MEASUREMENT_DELAY_CM			14  //measurement delay in cm.  This is the distance from filament sensor to middle of barrel
818
+
819
+#define DEFAULT_NOMINAL_FILAMENT_DIA  3.0  //Enter the diameter (in mm) of the filament generally used (3.0 mm or 1.75 mm) - this is then used in the slicer software.  Used for sensor reading validation
820
+#define MEASURED_UPPER_LIMIT          3.30  //upper limit factor used for sensor reading validation in mm
821
+#define MEASURED_LOWER_LIMIT          1.90  //lower limit factor for sensor reading validation in mm
822
+#define MAX_MEASUREMENT_DELAY			20  //delay buffer size in bytes (1 byte = 1cm)- limits maximum measurement delay allowable (must be larger than MEASUREMENT_DELAY_CM  and lower number saves RAM)
823
+
824
+//defines used in the code
825
+#define DEFAULT_MEASURED_FILAMENT_DIA  DEFAULT_NOMINAL_FILAMENT_DIA  //set measured to nominal initially 
826
+
827
+//When using an LCD, uncomment the line below to display the Filament sensor data on the last line instead of status.  Status will appear for 5 sec.
828
+//#define FILAMENT_LCD_DISPLAY
829
+
830
+
831
+
832
+
833
+
834
+
835
+#include "Configuration_adv.h"
836
+#include "thermistortables.h"
837
+
838
+#endif //__CONFIGURATION_H

+ 535
- 0
Marlin/example_configurations/WITBOX/Configuration_adv.h View File

@@ -0,0 +1,535 @@
1
+#ifndef CONFIGURATION_ADV_H
2
+#define CONFIGURATION_ADV_H
3
+
4
+//===========================================================================
5
+//=============================Thermal Settings  ============================
6
+//===========================================================================
7
+
8
+#ifdef BED_LIMIT_SWITCHING
9
+  #define BED_HYSTERESIS 2 //only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
10
+#endif
11
+#define BED_CHECK_INTERVAL 5000 //ms between checks in bang-bang control
12
+
13
+//// Heating sanity check:
14
+// This waits for the watch period in milliseconds whenever an M104 or M109 increases the target temperature
15
+// If the temperature has not increased at the end of that period, the target temperature is set to zero.
16
+// It can be reset with another M104/M109. This check is also only triggered if the target temperature and the current temperature
17
+//  differ by at least 2x WATCH_TEMP_INCREASE
18
+//#define WATCH_TEMP_PERIOD 40000 //40 seconds
19
+//#define WATCH_TEMP_INCREASE 10  //Heat up at least 10 degree in 20 seconds
20
+
21
+#ifdef PIDTEMP
22
+  // this adds an experimental additional term to the heating power, proportional to the extrusion speed.
23
+  // if Kc is chosen well, the additional required power due to increased melting should be compensated.
24
+  #define PID_ADD_EXTRUSION_RATE
25
+  #ifdef PID_ADD_EXTRUSION_RATE
26
+    #define  DEFAULT_Kc (1) //heating power=Kc*(e_speed)
27
+  #endif
28
+#endif
29
+
30
+
31
+//automatic temperature: The hot end target temperature is calculated by all the buffered lines of gcode.
32
+//The maximum buffered steps/sec of the extruder motor are called "se".
33
+//You enter the autotemp mode by a M109 S<mintemp> B<maxtemp> F<factor>
34
+// the target temperature is set to mintemp+factor*se[steps/sec] and limited by mintemp and maxtemp
35
+// you exit the value by any M109 without F*
36
+// Also, if the temperature is set to a value <mintemp, it is not changed by autotemp.
37
+// on an Ultimaker, some initial testing worked with M109 S215 B260 F1 in the start.gcode
38
+#define AUTOTEMP
39
+#ifdef AUTOTEMP
40
+  #define AUTOTEMP_OLDWEIGHT 0.98
41
+#endif
42
+
43
+//Show Temperature ADC value
44
+//The M105 command return, besides traditional information, the ADC value read from temperature sensors.
45
+//#define SHOW_TEMP_ADC_VALUES
46
+
47
+//  extruder run-out prevention.
48
+//if the machine is idle, and the temperature over MINTEMP, every couple of SECONDS some filament is extruded
49
+//#define EXTRUDER_RUNOUT_PREVENT
50
+#define EXTRUDER_RUNOUT_MINTEMP 190
51
+#define EXTRUDER_RUNOUT_SECONDS 30.
52
+#define EXTRUDER_RUNOUT_ESTEPS 14. //mm filament
53
+#define EXTRUDER_RUNOUT_SPEED 1500.  //extrusion speed
54
+#define EXTRUDER_RUNOUT_EXTRUDE 100
55
+
56
+//These defines help to calibrate the AD595 sensor in case you get wrong temperature measurements.
57
+//The measured temperature is defined as "actualTemp = (measuredTemp * TEMP_SENSOR_AD595_GAIN) + TEMP_SENSOR_AD595_OFFSET"
58
+#define TEMP_SENSOR_AD595_OFFSET 0.0
59
+#define TEMP_SENSOR_AD595_GAIN   1.0
60
+
61
+//This is for controlling a fan to cool down the stepper drivers
62
+//it will turn on when any driver is enabled
63
+//and turn off after the set amount of seconds from last driver being disabled again
64
+#define CONTROLLERFAN_PIN -1 //Pin used for the fan to cool controller (-1 to disable)
65
+#define CONTROLLERFAN_SECS 60 //How many seconds, after all motors were disabled, the fan should run
66
+#define CONTROLLERFAN_SPEED 255  // == full speed
67
+
68
+// When first starting the main fan, run it at full speed for the
69
+// given number of milliseconds.  This gets the fan spinning reliably
70
+// before setting a PWM value. (Does not work with software PWM for fan on Sanguinololu)
71
+//#define FAN_KICKSTART_TIME 100
72
+
73
+// Extruder cooling fans
74
+// Configure fan pin outputs to automatically turn on/off when the associated
75
+// extruder temperature is above/below EXTRUDER_AUTO_FAN_TEMPERATURE.
76
+// Multiple extruders can be assigned to the same pin in which case
77
+// the fan will turn on when any selected extruder is above the threshold.
78
+#define EXTRUDER_0_AUTO_FAN_PIN -1
79
+#define EXTRUDER_1_AUTO_FAN_PIN -1
80
+#define EXTRUDER_2_AUTO_FAN_PIN -1
81
+#define EXTRUDER_3_AUTO_FAN_PIN -1
82
+#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
83
+#define EXTRUDER_AUTO_FAN_SPEED   255  // == full speed
84
+
85
+
86
+//===========================================================================
87
+//=============================Mechanical Settings===========================
88
+//===========================================================================
89
+
90
+//#define ENDSTOPS_ONLY_FOR_HOMING // If defined the endstops will only be used for homing
91
+
92
+
93
+//// AUTOSET LOCATIONS OF LIMIT SWITCHES
94
+//// Added by ZetaPhoenix 09-15-2012
95
+#ifdef MANUAL_HOME_POSITIONS  // Use manual limit switch locations
96
+  #define X_HOME_POS MANUAL_X_HOME_POS
97
+  #define Y_HOME_POS MANUAL_Y_HOME_POS
98
+  #define Z_HOME_POS MANUAL_Z_HOME_POS
99
+#else //Set min/max homing switch positions based upon homing direction and min/max travel limits
100
+  //X axis
101
+  #if X_HOME_DIR == -1
102
+    #ifdef BED_CENTER_AT_0_0
103
+      #define X_HOME_POS X_MAX_LENGTH * -0.5
104
+    #else
105
+      #define X_HOME_POS X_MIN_POS
106
+    #endif //BED_CENTER_AT_0_0
107
+  #else
108
+    #ifdef BED_CENTER_AT_0_0
109
+      #define X_HOME_POS X_MAX_LENGTH * 0.5
110
+    #else
111
+      #define X_HOME_POS X_MAX_POS
112
+    #endif //BED_CENTER_AT_0_0
113
+  #endif //X_HOME_DIR == -1
114
+
115
+  //Y axis
116
+  #if Y_HOME_DIR == -1
117
+    #ifdef BED_CENTER_AT_0_0
118
+      #define Y_HOME_POS Y_MAX_LENGTH * -0.5
119
+    #else
120
+      #define Y_HOME_POS Y_MIN_POS
121
+    #endif //BED_CENTER_AT_0_0
122
+  #else
123
+    #ifdef BED_CENTER_AT_0_0
124
+      #define Y_HOME_POS Y_MAX_LENGTH * 0.5
125
+    #else
126
+      #define Y_HOME_POS Y_MAX_POS
127
+    #endif //BED_CENTER_AT_0_0
128
+  #endif //Y_HOME_DIR == -1
129
+
130
+  // Z axis
131
+  #if Z_HOME_DIR == -1 //BED_CENTER_AT_0_0 not used
132
+    #define Z_HOME_POS Z_MIN_POS
133
+  #else
134
+    #define Z_HOME_POS Z_MAX_POS
135
+  #endif //Z_HOME_DIR == -1
136
+#endif //End auto min/max positions
137
+//END AUTOSET LOCATIONS OF LIMIT SWITCHES -ZP
138
+
139
+
140
+//#define Z_LATE_ENABLE // Enable Z the last moment. Needed if your Z driver overheats.
141
+
142
+// A single Z stepper driver is usually used to drive 2 stepper motors.
143
+// Uncomment this define to utilize a separate stepper driver for each Z axis motor.
144
+// Only a few motherboards support this, like RAMPS, which have dual extruder support (the 2nd, often unused, extruder driver is used
145
+// to control the 2nd Z axis stepper motor). The pins are currently only defined for a RAMPS motherboards.
146
+// On a RAMPS (or other 5 driver) motherboard, using this feature will limit you to using 1 extruder.
147
+//#define Z_DUAL_STEPPER_DRIVERS
148
+
149
+#ifdef Z_DUAL_STEPPER_DRIVERS
150
+  #undef EXTRUDERS
151
+  #define EXTRUDERS 1
152
+#endif
153
+
154
+// Same again but for Y Axis.
155
+//#define Y_DUAL_STEPPER_DRIVERS
156
+
157
+// Define if the two Y drives need to rotate in opposite directions
158
+#define INVERT_Y2_VS_Y_DIR true
159
+
160
+#ifdef Y_DUAL_STEPPER_DRIVERS
161
+  #undef EXTRUDERS
162
+  #define EXTRUDERS 1
163
+#endif
164
+
165
+#if defined (Z_DUAL_STEPPER_DRIVERS) && defined (Y_DUAL_STEPPER_DRIVERS)
166
+  #error "You cannot have dual drivers for both Y and Z"
167
+#endif
168
+
169
+// Enable this for dual x-carriage printers.
170
+// A dual x-carriage design has the advantage that the inactive extruder can be parked which
171
+// prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage
172
+// allowing faster printing speeds.
173
+//#define DUAL_X_CARRIAGE
174
+#ifdef DUAL_X_CARRIAGE
175
+// Configuration for second X-carriage
176
+// Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
177
+// the second x-carriage always homes to the maximum endstop.
178
+#define X2_MIN_POS 80     // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
179
+#define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
180
+#define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position
181
+#define X2_HOME_POS X2_MAX_POS // default home position is the maximum carriage position
182
+    // However: In this mode the EXTRUDER_OFFSET_X value for the second extruder provides a software
183
+    // override for X2_HOME_POS. This also allow recalibration of the distance between the two endstops
184
+    // without modifying the firmware (through the "M218 T1 X???" command).
185
+    // Remember: you should set the second extruder x-offset to 0 in your slicer.
186
+
187
+// Pins for second x-carriage stepper driver (defined here to avoid further complicating pins.h)
188
+#define X2_ENABLE_PIN 29
189
+#define X2_STEP_PIN 25
190
+#define X2_DIR_PIN 23
191
+
192
+// There are a few selectable movement modes for dual x-carriages using M605 S<mode>
193
+//    Mode 0: Full control. The slicer has full control over both x-carriages and can achieve optimal travel results
194
+//                           as long as it supports dual x-carriages. (M605 S0)
195
+//    Mode 1: Auto-park mode. The firmware will automatically park and unpark the x-carriages on tool changes so
196
+//                           that additional slicer support is not required. (M605 S1)
197
+//    Mode 2: Duplication mode. The firmware will transparently make the second x-carriage and extruder copy all
198
+//                           actions of the first x-carriage. This allows the printer to print 2 arbitrary items at
199
+//                           once. (2nd extruder x offset and temp offset are set using: M605 S2 [Xnnn] [Rmmm])
200
+
201
+// This is the default power-up mode which can be later using M605.
202
+#define DEFAULT_DUAL_X_CARRIAGE_MODE 0
203
+
204
+// Default settings in "Auto-park Mode"
205
+#define TOOLCHANGE_PARK_ZLIFT   0.2      // the distance to raise Z axis when parking an extruder
206
+#define TOOLCHANGE_UNPARK_ZLIFT 1        // the distance to raise Z axis when unparking an extruder
207
+
208
+// Default x offset in duplication mode (typically set to half print bed width)
209
+#define DEFAULT_DUPLICATION_X_OFFSET 100
210
+
211
+#endif //DUAL_X_CARRIAGE
212
+
213
+//homing hits the endstop, then retracts by this distance, before it tries to slowly bump again:
214
+#define X_HOME_RETRACT_MM 5
215
+#define Y_HOME_RETRACT_MM 5
216
+#define Z_HOME_RETRACT_MM 2
217
+//#define QUICK_HOME  //if this is defined, if both x and y are to be homed, a diagonal move will be performed initially.
218
+
219
+#define AXIS_RELATIVE_MODES {false, false, false, false}
220
+#ifdef CONFIG_STEPPERS_TOSHIBA
221
+#define MAX_STEP_FREQUENCY 10000 // Max step frequency for Toshiba Stepper Controllers
222
+#else
223
+#define MAX_STEP_FREQUENCY 40000 // Max step frequency for Ultimaker (5000 pps / half step)
224
+#endif
225
+//By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
226
+#define INVERT_X_STEP_PIN false
227
+#define INVERT_Y_STEP_PIN false
228
+#define INVERT_Z_STEP_PIN false
229
+#define INVERT_E_STEP_PIN false
230
+
231
+//default stepper release if idle. Set to 0 to deactivate.
232
+#define DEFAULT_STEPPER_DEACTIVE_TIME 60
233
+
234
+#define DEFAULT_MINIMUMFEEDRATE       0.0     // minimum feedrate
235
+#define DEFAULT_MINTRAVELFEEDRATE     0.0
236
+
237
+// Feedrates for manual moves along X, Y, Z, E from panel
238
+#ifdef ULTIPANEL
239
+#define MANUAL_FEEDRATE {120*60, 120*60, 18*60, 60}  // set the speeds for manual moves (mm/min)
240
+#endif
241
+
242
+//Comment to disable setting feedrate multiplier via encoder
243
+#ifdef ULTIPANEL
244
+    #define ULTIPANEL_FEEDMULTIPLY
245
+#endif
246
+
247
+// minimum time in microseconds that a movement needs to take if the buffer is emptied.
248
+#define DEFAULT_MINSEGMENTTIME        20000
249
+
250
+// If defined the movements slow down when the look ahead buffer is only half full
251
+#define SLOWDOWN
252
+
253
+// Frequency limit
254
+// See nophead's blog for more info
255
+// Not working O
256
+//#define XY_FREQUENCY_LIMIT  15
257
+
258
+// Minimum planner junction speed. Sets the default minimum speed the planner plans for at the end
259
+// of the buffer and all stops. This should not be much greater than zero and should only be changed
260
+// if unwanted behavior is observed on a user's machine when running at very slow speeds.
261
+#define MINIMUM_PLANNER_SPEED 0.05// (mm/sec)
262
+
263
+// MS1 MS2 Stepper Driver Microstepping mode table
264
+#define MICROSTEP1 LOW,LOW
265
+#define MICROSTEP2 HIGH,LOW
266
+#define MICROSTEP4 LOW,HIGH
267
+#define MICROSTEP8 HIGH,HIGH
268
+#define MICROSTEP16 HIGH,HIGH
269
+
270
+// Microstep setting (Only functional when stepper driver microstep pins are connected to MCU.
271
+#define MICROSTEP_MODES {16,16,16,16,16} // [1,2,4,8,16]
272
+
273
+// Motor Current setting (Only functional when motor driver current ref pins are connected to a digital trimpot on supported boards)
274
+#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
275
+
276
+// uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
277
+//#define DIGIPOT_I2C
278
+// Number of channels available for I2C digipot, For Azteeg X3 Pro we have 8
279
+#define DIGIPOT_I2C_NUM_CHANNELS 8
280
+// actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
281
+#define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}
282
+
283
+//===========================================================================
284
+//=============================Additional Features===========================
285
+//===========================================================================
286
+
287
+//#define CHDK 4        //Pin for triggering CHDK to take a picture see how to use it here http://captain-slow.dk/2014/03/09/3d-printing-timelapses/
288
+#define CHDK_DELAY 50 //How long in ms the pin should stay HIGH before going LOW again
289
+
290
+#define SD_FINISHED_STEPPERRELEASE true  //if sd support and the file is finished: disable steppers?
291
+#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
292
+
293
+#define SDCARD_RATHERRECENTFIRST  //reverse file order of sd card menu display. Its sorted practically after the file system block order.
294
+// if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that.
295
+// using:
296
+#define MENU_ADDAUTOSTART
297
+
298
+// Show a progress bar on HD44780 LCDs for SD printing
299
+//#define LCD_PROGRESS_BAR
300
+
301
+#ifdef LCD_PROGRESS_BAR
302
+  // Amount of time (ms) to show the bar
303
+  #define PROGRESS_BAR_BAR_TIME 2000
304
+  // Amount of time (ms) to show the status message
305
+  #define PROGRESS_BAR_MSG_TIME 3000
306
+  // Amount of time (ms) to retain the status message (0=forever)
307
+  #define PROGRESS_MSG_EXPIRE   0
308
+  // Enable this to show messages for MSG_TIME then hide them
309
+  //#define PROGRESS_MSG_ONCE
310
+  #ifdef DOGLCD
311
+    #warning LCD_PROGRESS_BAR does not apply to graphical displays at this time.
312
+  #endif
313
+  #ifdef FILAMENT_LCD_DISPLAY
314
+    #error LCD_PROGRESS_BAR and FILAMENT_LCD_DISPLAY are not fully compatible. Comment out this line to use both.
315
+  #endif
316
+#endif
317
+
318
+// The hardware watchdog should reset the microcontroller disabling all outputs, in case the firmware gets stuck and doesn't do temperature regulation.
319
+//#define USE_WATCHDOG
320
+
321
+#ifdef USE_WATCHDOG
322
+// If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on.
323
+// The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset.
324
+//  However, THIS FEATURE IS UNSAFE!, as it will only work if interrupts are disabled. And the code could hang in an interrupt routine with interrupts disabled.
325
+//#define WATCHDOG_RESET_MANUAL
326
+#endif
327
+
328
+// Enable the option to stop SD printing when hitting and endstops, needs to be enabled from the LCD menu when this option is enabled.
329
+//#define ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED
330
+
331
+// Babystepping enables the user to control the axis in tiny amounts, independently from the normal printing process
332
+// it can e.g. be used to change z-positions in the print startup phase in real-time
333
+// does not respect endstops!
334
+//#define BABYSTEPPING
335
+#ifdef BABYSTEPPING
336
+  #define BABYSTEP_XY  //not only z, but also XY in the menu. more clutter, more functions
337
+  #define BABYSTEP_INVERT_Z false  //true for inverse movements in Z
338
+  #define BABYSTEP_Z_MULTIPLICATOR 2 //faster z movements
339
+
340
+  #ifdef COREXY
341
+    #error BABYSTEPPING not implemented for COREXY yet.
342
+  #endif
343
+
344
+  #ifdef DELTA
345
+    #ifdef BABYSTEP_XY
346
+      #error BABYSTEPPING only implemented for Z axis on deltabots.
347
+    #endif
348
+  #endif
349
+#endif
350
+
351
+// extruder advance constant (s2/mm3)
352
+//
353
+// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
354
+//
355
+// Hooke's law says:		force = k * distance
356
+// Bernoulli's principle says:	v ^ 2 / 2 + g . h + pressure / density = constant
357
+// so: v ^ 2 is proportional to number of steps we advance the extruder
358
+//#define ADVANCE
359
+
360
+#ifdef ADVANCE
361
+  #define EXTRUDER_ADVANCE_K .0
362
+
363
+  #define D_FILAMENT 1.75
364
+  #define STEPS_MM_E 100.47095761381482
365
+  #define EXTRUSION_AREA (0.25 * D_FILAMENT * D_FILAMENT * 3.14159)
366
+  #define STEPS_PER_CUBIC_MM_E (axis_steps_per_unit[E_AXIS]/ EXTRUSION_AREA)
367
+
368
+#endif // ADVANCE
369
+
370
+// Arc interpretation settings:
371
+#define MM_PER_ARC_SEGMENT 1
372
+#define N_ARC_CORRECTION 25
373
+
374
+const unsigned int dropsegments=5; //everything with less than this number of steps will be ignored as move and joined with the next movement
375
+
376
+// If you are using a RAMPS board or cheap E-bay purchased boards that do not detect when an SD card is inserted
377
+// You can get round this by connecting a push button or single throw switch to the pin defined as SDCARDCARDDETECT
378
+// in the pins.h file.  When using a push button pulling the pin to ground this will need inverted.  This setting should
379
+// be commented out otherwise
380
+#define SDCARDDETECTINVERTED
381
+
382
+#ifdef ULTIPANEL
383
+ #undef SDCARDDETECTINVERTED
384
+#endif
385
+
386
+// Power Signal Control Definitions
387
+// By default use ATX definition
388
+#ifndef POWER_SUPPLY
389
+  #define POWER_SUPPLY 1
390
+#endif
391
+// 1 = ATX
392
+#if (POWER_SUPPLY == 1)
393
+  #define PS_ON_AWAKE  LOW
394
+  #define PS_ON_ASLEEP HIGH
395
+#endif
396
+// 2 = X-Box 360 203W
397
+#if (POWER_SUPPLY == 2)
398
+  #define PS_ON_AWAKE  HIGH
399
+  #define PS_ON_ASLEEP LOW
400
+#endif
401
+
402
+// Control heater 0 and heater 1 in parallel.
403
+//#define HEATERS_PARALLEL
404
+
405
+//===========================================================================
406
+//=============================Buffers           ============================
407
+//===========================================================================
408
+
409
+// The number of linear motions that can be in the plan at any give time.
410
+// THE BLOCK_BUFFER_SIZE NEEDS TO BE A POWER OF 2, i.g. 8,16,32 because shifts and ors are used to do the ring-buffering.
411
+#if defined SDSUPPORT
412
+  #define BLOCK_BUFFER_SIZE 16   // SD,LCD,Buttons take more memory, block buffer needs to be smaller
413
+#else
414
+  #define BLOCK_BUFFER_SIZE 16 // maximize block buffer
415
+#endif
416
+
417
+
418
+//The ASCII buffer for receiving from the serial:
419
+#define MAX_CMD_SIZE 96
420
+#define BUFSIZE 5
421
+
422
+
423
+// Firmware based and LCD controlled retract
424
+// M207 and M208 can be used to define parameters for the retraction.
425
+// The retraction can be called by the slicer using G10 and G11
426
+// until then, intended retractions can be detected by moves that only extrude and the direction.
427
+// the moves are than replaced by the firmware controlled ones.
428
+
429
+// #define FWRETRACT  //ONLY PARTIALLY TESTED
430
+#ifdef FWRETRACT
431
+  #define MIN_RETRACT 0.1                //minimum extruded mm to accept a automatic gcode retraction attempt
432
+  #define RETRACT_LENGTH 3               //default retract length (positive mm)
433
+  #define RETRACT_LENGTH_SWAP 13         //default swap retract length (positive mm), for extruder change
434
+  #define RETRACT_FEEDRATE 80*60            //default feedrate for retracting (mm/s)
435
+  #define RETRACT_ZLIFT 0                //default retract Z-lift
436
+  #define RETRACT_RECOVER_LENGTH 0       //default additional recover length (mm, added to retract length when recovering)
437
+  //#define RETRACT_RECOVER_LENGTH_SWAP 0  //default additional swap recover length (mm, added to retract length when recovering from extruder change)
438
+  #define RETRACT_RECOVER_FEEDRATE 8*60     //default feedrate for recovering from retraction (mm/s)
439
+#endif
440
+
441
+//adds support for experimental filament exchange support M600; requires display
442
+#ifdef ULTIPANEL
443
+  #define FILAMENTCHANGEENABLE
444
+  #ifdef FILAMENTCHANGEENABLE
445
+    #define FILAMENTCHANGE_XPOS 3
446
+    #define FILAMENTCHANGE_YPOS 3
447
+    #define FILAMENTCHANGE_ZADD 10
448
+    #define FILAMENTCHANGE_FIRSTRETRACT -2
449
+    #define FILAMENTCHANGE_FINALRETRACT -100
450
+  #endif
451
+#endif
452
+
453
+#ifdef FILAMENTCHANGEENABLE
454
+  #ifdef EXTRUDER_RUNOUT_PREVENT
455
+    #error EXTRUDER_RUNOUT_PREVENT currently incompatible with FILAMENTCHANGE
456
+  #endif
457
+#endif
458
+
459
+//===========================================================================
460
+//=============================  Define Defines  ============================
461
+//===========================================================================
462
+
463
+#if defined (ENABLE_AUTO_BED_LEVELING) && defined (DELTA)
464
+  #error "Bed Auto Leveling is still not compatible with Delta Kinematics."
465
+#endif
466
+
467
+#if EXTRUDERS > 1 && defined TEMP_SENSOR_1_AS_REDUNDANT
468
+  #error "You cannot use TEMP_SENSOR_1_AS_REDUNDANT if EXTRUDERS > 1"
469
+#endif
470
+
471
+#if EXTRUDERS > 1 && defined HEATERS_PARALLEL
472
+  #error "You cannot use HEATERS_PARALLEL if EXTRUDERS > 1"
473
+#endif
474
+
475
+#if TEMP_SENSOR_0 > 0
476
+  #define THERMISTORHEATER_0 TEMP_SENSOR_0
477
+  #define HEATER_0_USES_THERMISTOR
478
+#endif
479
+#if TEMP_SENSOR_1 > 0
480
+  #define THERMISTORHEATER_1 TEMP_SENSOR_1
481
+  #define HEATER_1_USES_THERMISTOR
482
+#endif
483
+#if TEMP_SENSOR_2 > 0
484
+  #define THERMISTORHEATER_2 TEMP_SENSOR_2
485
+  #define HEATER_2_USES_THERMISTOR
486
+#endif
487
+#if TEMP_SENSOR_3 > 0
488
+  #define THERMISTORHEATER_3 TEMP_SENSOR_3
489
+  #define HEATER_3_USES_THERMISTOR
490
+#endif
491
+#if TEMP_SENSOR_BED > 0
492
+  #define THERMISTORBED TEMP_SENSOR_BED
493
+  #define BED_USES_THERMISTOR
494
+#endif
495
+#if TEMP_SENSOR_0 == -1
496
+  #define HEATER_0_USES_AD595
497
+#endif
498
+#if TEMP_SENSOR_1 == -1
499
+  #define HEATER_1_USES_AD595
500
+#endif
501
+#if TEMP_SENSOR_2 == -1
502
+  #define HEATER_2_USES_AD595
503
+#endif
504
+#if TEMP_SENSOR_3 == -1
505
+  #define HEATER_3_USES_AD595
506
+#endif
507
+#if TEMP_SENSOR_BED == -1
508
+  #define BED_USES_AD595
509
+#endif
510
+#if TEMP_SENSOR_0 == -2
511
+  #define HEATER_0_USES_MAX6675
512
+#endif
513
+#if TEMP_SENSOR_0 == 0
514
+  #undef HEATER_0_MINTEMP
515
+  #undef HEATER_0_MAXTEMP
516
+#endif
517
+#if TEMP_SENSOR_1 == 0
518
+  #undef HEATER_1_MINTEMP
519
+  #undef HEATER_1_MAXTEMP
520
+#endif
521
+#if TEMP_SENSOR_2 == 0
522
+  #undef HEATER_2_MINTEMP
523
+  #undef HEATER_2_MAXTEMP
524
+#endif
525
+#if TEMP_SENSOR_3 == 0
526
+  #undef HEATER_3_MINTEMP
527
+  #undef HEATER_3_MAXTEMP
528
+#endif
529
+#if TEMP_SENSOR_BED == 0
530
+  #undef BED_MINTEMP
531
+  #undef BED_MAXTEMP
532
+#endif
533
+
534
+
535
+#endif //__CONFIGURATION_ADV_H

+ 50
- 9
Marlin/example_configurations/delta/Configuration.h View File

@@ -3,10 +3,26 @@
3 3
 
4 4
 #include "boards.h"
5 5
 
6
+
7
+//===========================================================================
8
+//============================= Getting Started =============================
9
+//===========================================================================
10
+/*
11
+Here are some standard links for getting your machine calibrated:
12
+ * http://reprap.org/wiki/Calibration 
13
+ * http://youtu.be/wAL9d7FgInk
14
+ * http://calculator.josefprusa.cz
15
+ * http://reprap.org/wiki/Triffid_Hunter%27s_Calibration_Guide
16
+ * http://www.thingiverse.com/thing:5573
17
+ * https://sites.google.com/site/repraplogphase/calibration-of-your-reprap
18
+ * http://www.thingiverse.com/thing:298812
19
+*/
20
+
6 21
 // This configuration file contains the basic settings.
7 22
 // Advanced settings can be found in Configuration_adv.h
8 23
 // BASIC SETTINGS: select your board type, temperature sensor type, axis scaling, and endstop configuration
9 24
 
25
+
10 26
 //===========================================================================
11 27
 //============================= DELTA Printer ===============================
12 28
 //===========================================================================
@@ -17,8 +33,12 @@
17 33
 // User-specified version info of this build to display in [Pronterface, etc] terminal window during
18 34
 // startup. Implementation of an idea by Prof Braino to inform user that any changes made to this
19 35
 // build by the user have been successfully uploaded into firmware.
36
+#define STRING_VERSION "1.0.2"
37
+#define STRING_URL "reprap.org"
20 38
 #define STRING_VERSION_CONFIG_H __DATE__ " " __TIME__ // build date and time
21 39
 #define STRING_CONFIG_H_AUTHOR "(none, default config)" // Who made the changes.
40
+#define STRING_SPLASH_LINE1 "v" STRING_VERSION // will be shown during bootup in line 1
41
+//#define STRING_SPLASH_LINE2 STRING_VERSION_CONFIG_H // will be shown during bootup in line2
22 42
 
23 43
 // SERIAL_PORT selects which serial port should be used for communication with the host.
24 44
 // This allows the connection of wireless adapters (for instance) to non-default port pins.
@@ -56,6 +76,7 @@
56 76
 // Define this to have the electronics keep the power supply off on startup. If you don't know what this is leave it.
57 77
 // #define PS_DEFAULT_OFF
58 78
 
79
+
59 80
 //===========================================================================
60 81
 //============================== Delta Settings =============================
61 82
 //===========================================================================
@@ -82,8 +103,9 @@
82 103
 // Effective horizontal distance bridged by diagonal push rods.
83 104
 #define DELTA_RADIUS (DELTA_SMOOTH_ROD_OFFSET-DELTA_EFFECTOR_OFFSET-DELTA_CARRIAGE_OFFSET)
84 105
 
106
+
85 107
 //===========================================================================
86
-//=============================Thermal Settings  ============================
108
+//============================= Thermal Settings ============================
87 109
 //===========================================================================
88 110
 //
89 111
 //--NORMAL IS 4.7kohm PULLUP!-- 1kohm pullup can be used on hotend sensor, using correct resistor and table
@@ -159,7 +181,12 @@
159 181
 //#define EXTRUDER_WATTS (12.0*12.0/6.7) //  P=I^2/R
160 182
 //#define BED_WATTS (12.0*12.0/1.1)      // P=I^2/R
161 183
 
162
-// PID settings:
184
+
185
+//===========================================================================
186
+//============================= PID Settings ================================
187
+//===========================================================================
188
+// PID Tuning Guide here: http://reprap.org/wiki/PID_Tuning
189
+
163 190
 // Comment the following line to disable PID and enable bang-bang.
164 191
 #define PIDTEMP
165 192
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
@@ -190,7 +217,10 @@
190 217
 //    #define  DEFAULT_Kd 440
191 218
 #endif // PIDTEMP
192 219
 
193
-// Bed Temperature Control
220
+
221
+//===========================================================================
222
+//============================= PID > Bed Temperature Control ===============
223
+//===========================================================================
194 224
 // Select PID or bang-bang with PIDTEMPBED. If bang-bang, BED_LIMIT_SWITCHING will enable hysteresis
195 225
 //
196 226
 // Uncomment this to enable PID on the bed. It uses the same frequency PWM as the extruder.
@@ -227,7 +257,6 @@
227 257
 #endif // PIDTEMPBED
228 258
 
229 259
 
230
-
231 260
 //this prevents dangerous Extruder moves, i.e. if the temperature is under the limit
232 261
 //can be software-disabled for whatever purposes by
233 262
 #define PREVENT_DANGEROUS_EXTRUDE
@@ -237,7 +266,11 @@
237 266
 #define EXTRUDE_MINTEMP 170
238 267
 #define EXTRUDE_MAXLENGTH (X_MAX_LENGTH+Y_MAX_LENGTH) //prevent extrusion of very large distances.
239 268
 
240
-/*================== Thermal Runaway Protection ==============================
269
+
270
+//===========================================================================
271
+//============================= Thermal Runaway Protection ==================
272
+//===========================================================================
273
+/*
241 274
 This is a feature to protect your printer from burn up in flames if it has
242 275
 a thermistor coming off place (this happened to a friend of mine recently and
243 276
 motivated me writing this feature).
@@ -272,11 +305,10 @@ your extruder heater takes 2 minutes to hit the target on heating.
272 305
 // Parameters for the bed heater
273 306
 //#define THERMAL_RUNAWAY_PROTECTION_BED_PERIOD 20 //in seconds
274 307
 //#define THERMAL_RUNAWAY_PROTECTION_BED_HYSTERESIS 2 // in degree Celsius
275
-//===========================================================================
276 308
 
277 309
 
278 310
 //===========================================================================
279
-//=============================Mechanical Settings===========================
311
+//============================= Mechanical Settings =========================
280 312
 //===========================================================================
281 313
 
282 314
 // coarse Endstop Settings
@@ -347,7 +379,7 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
347 379
 #define min_software_endstops true // If true, axis won't move to coordinates less than HOME_POS.
348 380
 #define max_software_endstops true  // If true, axis won't move to coordinates greater than the defined lengths below.
349 381
 
350
-// Travel limits after homing
382
+// Travel limits after homing (units are in mm)
351 383
 #define X_MAX_POS 90
352 384
 #define X_MIN_POS -90
353 385
 #define Y_MAX_POS 90
@@ -358,7 +390,11 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
358 390
 #define X_MAX_LENGTH (X_MAX_POS - X_MIN_POS)
359 391
 #define Y_MAX_LENGTH (Y_MAX_POS - Y_MIN_POS)
360 392
 #define Z_MAX_LENGTH (Z_MAX_POS - Z_MIN_POS)
393
+
394
+//===========================================================================
361 395
 //============================= Bed Auto Leveling ===========================
396
+//===========================================================================
397
+
362 398
 //Bed Auto Leveling is still not compatible with Delta Kinematics
363 399
 
364 400
 
@@ -403,7 +439,7 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
403 439
 #define DEFAULT_EJERK                 5.0    // (mm/sec)
404 440
 
405 441
 //===========================================================================
406
-//=============================Additional Features===========================
442
+//============================= Additional Features =========================
407 443
 //===========================================================================
408 444
 
409 445
 // Custom M code points
@@ -436,6 +472,11 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
436 472
 #define ABS_PREHEAT_FAN_SPEED 255   // Insert Value between 0 and 255
437 473
 
438 474
 //LCD and SD support
475
+
476
+// Character based displays can have different extended charsets.
477
+#define DISPLAY_CHARSET_HD44780_JAPAN     // "ääööüüß23°"
478
+//#define DISPLAY_CHARSET_HD44780_WESTERN // "ÄäÖöÜüß²³°" if you see a '~' instead of a 'arrow_right' at the right of submenuitems - this is the right one.
479
+
439 480
 //#define ULTRA_LCD  //general LCD support, also 16x2
440 481
 //#define DOGLCD  // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family)
441 482
 //#define SDSUPPORT // Enable SD Card Support in Hardware Console

+ 1
- 1
Marlin/example_configurations/delta/Configuration_adv.h View File

@@ -226,7 +226,7 @@
226 226
 #define INVERT_Z_STEP_PIN false
227 227
 #define INVERT_E_STEP_PIN false
228 228
 
229
-//default stepper release if idle
229
+//default stepper release if idle. Set to 0 to deactivate.
230 230
 #define DEFAULT_STEPPER_DEACTIVE_TIME 60
231 231
 
232 232
 #define DEFAULT_MINIMUMFEEDRATE       0.0     // minimum feedrate

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

@@ -3,10 +3,27 @@
3 3
 
4 4
 #include "boards.h"
5 5
 
6
+
7
+//===========================================================================
8
+//============================= Getting Started =============================
9
+//===========================================================================
10
+/*
11
+Here are some standard links for getting your machine calibrated:
12
+ * http://reprap.org/wiki/Calibration 
13
+ * http://youtu.be/wAL9d7FgInk
14
+ * http://calculator.josefprusa.cz
15
+ * http://reprap.org/wiki/Triffid_Hunter%27s_Calibration_Guide
16
+ * http://www.thingiverse.com/thing:5573
17
+ * https://sites.google.com/site/repraplogphase/calibration-of-your-reprap
18
+ * http://www.thingiverse.com/thing:298812
19
+*/
20
+
21
+
6 22
 // This configuration file contains the basic settings.
7 23
 // Advanced settings can be found in Configuration_adv.h
8 24
 // BASIC SETTINGS: select your board type, temperature sensor type, axis scaling, and endstop configuration
9 25
 
26
+
10 27
 //===========================================================================
11 28
 //============================= DELTA Printer ===============================
12 29
 //===========================================================================
@@ -14,6 +31,7 @@
14 31
 // example_configurations/delta directory.
15 32
 //
16 33
 
34
+
17 35
 //===========================================================================
18 36
 //============================= SCARA Printer ===============================
19 37
 //===========================================================================
@@ -24,8 +42,12 @@
24 42
 // User-specified version info of this build to display in [Pronterface, etc] terminal window during
25 43
 // startup. Implementation of an idea by Prof Braino to inform user that any changes made to this
26 44
 // build by the user have been successfully uploaded into firmware.
45
+#define STRING_VERSION "1.0.2"
46
+#define STRING_URL "reprap.org"
27 47
 #define STRING_VERSION_CONFIG_H __DATE__ " " __TIME__ // build date and time
28 48
 #define STRING_CONFIG_H_AUTHOR "(none, default config)" // Who made the changes.
49
+#define STRING_SPLASH_LINE1 "v" STRING_VERSION // will be shown during bootup in line 1
50
+//#define STRING_SPLASH_LINE2 STRING_VERSION_CONFIG_H // will be shown during bootup in line2
29 51
 
30 52
 // SERIAL_PORT selects which serial port should be used for communication with the host.
31 53
 // This allows the connection of wireless adapters (for instance) to non-default port pins.
@@ -63,8 +85,9 @@
63 85
 // Define this to have the electronics keep the power supply off on startup. If you don't know what this is leave it.
64 86
 // #define PS_DEFAULT_OFF
65 87
 
88
+
66 89
 //===========================================================================
67
-//=============================Thermal Settings  ============================
90
+//============================= Thermal Settings ============================
68 91
 //===========================================================================
69 92
 //
70 93
 //--NORMAL IS 4.7kohm PULLUP!-- 1kohm pullup can be used on hotend sensor, using correct resistor and table
@@ -140,7 +163,12 @@
140 163
 //#define EXTRUDER_WATTS (12.0*12.0/6.7) //  P=I^2/R
141 164
 //#define BED_WATTS (12.0*12.0/1.1)      // P=I^2/R
142 165
 
143
-// PID settings:
166
+
167
+//===========================================================================
168
+//============================= PID Settings ================================
169
+//===========================================================================
170
+// PID Tuning Guide here: http://reprap.org/wiki/PID_Tuning
171
+
144 172
 // Comment the following line to disable PID and enable bang-bang.
145 173
 #define PIDTEMP
146 174
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
@@ -171,7 +199,10 @@
171 199
 //    #define  DEFAULT_Kd 440
172 200
 #endif // PIDTEMP
173 201
 
174
-// Bed Temperature Control
202
+
203
+//===========================================================================
204
+//============================= PID > Bed Temperature Control ===============
205
+//===========================================================================
175 206
 // Select PID or bang-bang with PIDTEMPBED. If bang-bang, BED_LIMIT_SWITCHING will enable hysteresis
176 207
 //
177 208
 // Uncomment this to enable PID on the bed. It uses the same frequency PWM as the extruder.
@@ -211,7 +242,6 @@
211 242
 #endif // PIDTEMPBED
212 243
 
213 244
 
214
-
215 245
 //this prevents dangerous Extruder moves, i.e. if the temperature is under the limit
216 246
 //can be software-disabled for whatever purposes by
217 247
 #define PREVENT_DANGEROUS_EXTRUDE
@@ -221,7 +251,11 @@
221 251
 #define EXTRUDE_MINTEMP 170
222 252
 #define EXTRUDE_MAXLENGTH (X_MAX_LENGTH+Y_MAX_LENGTH) //prevent extrusion of very large distances.
223 253
 
224
-/*================== Thermal Runaway Protection ==============================
254
+
255
+//===========================================================================
256
+//============================= Thermal Runaway Protection ==================
257
+//===========================================================================
258
+/*
225 259
 This is a feature to protect your printer from burn up in flames if it has
226 260
 a thermistor coming off place (this happened to a friend of mine recently and
227 261
 motivated me writing this feature).
@@ -256,11 +290,10 @@ your extruder heater takes 2 minutes to hit the target on heating.
256 290
 // Parameters for the bed heater
257 291
 //#define THERMAL_RUNAWAY_PROTECTION_BED_PERIOD 20 //in seconds
258 292
 //#define THERMAL_RUNAWAY_PROTECTION_BED_HYSTERESIS 2 // in degree Celsius
259
-//===========================================================================
260 293
 
261 294
 
262 295
 //===========================================================================
263
-//=============================Mechanical Settings===========================
296
+//============================ Mechanical Settings ==========================
264 297
 //===========================================================================
265 298
 
266 299
 // Uncomment the following line to enable CoreXY kinematics
@@ -332,7 +365,7 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
332 365
 #define min_software_endstops true // If true, axis won't move to coordinates less than HOME_POS.
333 366
 #define max_software_endstops true  // If true, axis won't move to coordinates greater than the defined lengths below.
334 367
 
335
-// Travel limits after homing
368
+// Travel limits after homing (units are in mm)
336 369
 #define X_MAX_POS 110
337 370
 #define X_MIN_POS 0
338 371
 #define Y_MAX_POS 150
@@ -343,7 +376,11 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
343 376
 #define X_MAX_LENGTH (X_MAX_POS - X_MIN_POS)
344 377
 #define Y_MAX_LENGTH (Y_MAX_POS - Y_MIN_POS)
345 378
 #define Z_MAX_LENGTH (Z_MAX_POS - Z_MIN_POS)
379
+
380
+
381
+//===========================================================================
346 382
 //============================= Bed Auto Leveling ===========================
383
+//===========================================================================
347 384
 
348 385
 //#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
349 386
 #define Z_PROBE_REPEATABILITY_TEST  // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled.
@@ -472,8 +509,9 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
472 509
 #define DEFAULT_ZJERK                 0.4     // (mm/sec)
473 510
 #define DEFAULT_EJERK                 5.0    // (mm/sec)
474 511
 
512
+
475 513
 //===========================================================================
476
-//=============================Additional Features===========================
514
+//============================ Additional Features ==========================
477 515
 //===========================================================================
478 516
 
479 517
 // Custom M code points
@@ -506,6 +544,11 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
506 544
 #define ABS_PREHEAT_FAN_SPEED 255   // Insert Value between 0 and 255
507 545
 
508 546
 //LCD and SD support
547
+
548
+// Character based displays can have different extended charsets.
549
+#define DISPLAY_CHARSET_HD44780_JAPAN     // "ääööüüß23°"
550
+//#define DISPLAY_CHARSET_HD44780_WESTERN // "ÄäÖöÜüß²³°" if you see a '~' instead of a 'arrow_right' at the right of submenuitems - this is the right one.
551
+
509 552
 //#define ULTRA_LCD  //general LCD support, also 16x2
510 553
 //#define DOGLCD  // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family)
511 554
 #define SDSUPPORT // Enable SD Card Support in Hardware Console

+ 1
- 1
Marlin/example_configurations/makibox/Configuration_adv.h View File

@@ -225,7 +225,7 @@
225 225
 #define INVERT_Z_STEP_PIN false
226 226
 #define INVERT_E_STEP_PIN false
227 227
 
228
-//default stepper release if idle
228
+//default stepper release if idle. Set to 0 to deactivate.
229 229
 #define DEFAULT_STEPPER_DEACTIVE_TIME 60
230 230
 
231 231
 #define DEFAULT_MINIMUMFEEDRATE       0.0     // minimum feedrate

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

@@ -3,10 +3,26 @@
3 3
 
4 4
 #include "boards.h"
5 5
 
6
+//===========================================================================
7
+//============================= Getting Started =============================
8
+//===========================================================================
9
+/*
10
+Here are some standard links for getting your machine calibrated:
11
+ * http://reprap.org/wiki/Calibration 
12
+ * http://youtu.be/wAL9d7FgInk
13
+ * http://calculator.josefprusa.cz
14
+ * http://reprap.org/wiki/Triffid_Hunter%27s_Calibration_Guide
15
+ * http://www.thingiverse.com/thing:5573
16
+ * https://sites.google.com/site/repraplogphase/calibration-of-your-reprap
17
+ * http://www.thingiverse.com/thing:298812
18
+*/
19
+
20
+
6 21
 // This configuration file contains the basic settings.
7 22
 // Advanced settings can be found in Configuration_adv.h
8 23
 // BASIC SETTINGS: select your board type, temperature sensor type, axis scaling, and endstop configuration
9 24
 
25
+
10 26
 //===========================================================================
11 27
 //============================= DELTA Printer ===============================
12 28
 //===========================================================================
@@ -14,6 +30,7 @@
14 30
 // example_configurations/delta directory.
15 31
 //
16 32
 
33
+
17 34
 //===========================================================================
18 35
 //============================= SCARA Printer ===============================
19 36
 //===========================================================================
@@ -24,8 +41,12 @@
24 41
 // User-specified version info of this build to display in [Pronterface, etc] terminal window during
25 42
 // startup. Implementation of an idea by Prof Braino to inform user that any changes made to this
26 43
 // build by the user have been successfully uploaded into firmware.
44
+#define STRING_VERSION "1.0.2"
45
+#define STRING_URL "reprap.org"
27 46
 #define STRING_VERSION_CONFIG_H __DATE__ " " __TIME__ // build date and time
28 47
 #define STRING_CONFIG_H_AUTHOR "(none, default config)" // Who made the changes.
48
+#define STRING_SPLASH_LINE1 "v" STRING_VERSION // will be shown during bootup in line 1
49
+//#define STRING_SPLASH_LINE2 STRING_VERSION_CONFIG_H // will be shown during bootup in line2
29 50
 
30 51
 // SERIAL_PORT selects which serial port should be used for communication with the host.
31 52
 // This allows the connection of wireless adapters (for instance) to non-default port pins.
@@ -63,8 +84,9 @@
63 84
 // Define this to have the electronics keep the power supply off on startup. If you don't know what this is leave it.
64 85
 // #define PS_DEFAULT_OFF
65 86
 
87
+
66 88
 //===========================================================================
67
-//=============================Thermal Settings  ============================
89
+//============================= Thermal Settings ============================
68 90
 //===========================================================================
69 91
 //
70 92
 //--NORMAL IS 4.7kohm PULLUP!-- 1kohm pullup can be used on hotend sensor, using correct resistor and table
@@ -142,7 +164,12 @@
142 164
 //#define EXTRUDER_WATTS (12.0*12.0/6.7) //  P=I^2/R
143 165
 //#define BED_WATTS (12.0*12.0/1.1)      // P=I^2/R
144 166
 
145
-// PID settings:
167
+
168
+//===========================================================================
169
+//============================= PID Settings ================================
170
+//===========================================================================
171
+// PID Tuning Guide here: http://reprap.org/wiki/PID_Tuning
172
+
146 173
 // Comment the following line to disable PID and enable bang-bang.
147 174
 #define PIDTEMP
148 175
 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
@@ -178,7 +205,10 @@
178 205
 //    #define  DEFAULT_Kd 440
179 206
 #endif // PIDTEMP
180 207
 
181
-// Bed Temperature Control
208
+
209
+//===========================================================================
210
+//============================= PID > Bed Temperature Control ===============
211
+//===========================================================================
182 212
 // Select PID or bang-bang with PIDTEMPBED. If bang-bang, BED_LIMIT_SWITCHING will enable hysteresis
183 213
 //
184 214
 // Uncomment this to enable PID on the bed. It uses the same frequency PWM as the extruder.
@@ -215,7 +245,6 @@
215 245
 #endif // PIDTEMPBED
216 246
 
217 247
 
218
-
219 248
 //this prevents dangerous Extruder moves, i.e. if the temperature is under the limit
220 249
 //can be software-disabled for whatever purposes by
221 250
 #define PREVENT_DANGEROUS_EXTRUDE
@@ -225,7 +254,11 @@
225 254
 #define EXTRUDE_MINTEMP 170
226 255
 #define EXTRUDE_MAXLENGTH (X_MAX_LENGTH+Y_MAX_LENGTH) //prevent extrusion of very large distances.
227 256
 
228
-/*================== Thermal Runaway Protection ==============================
257
+
258
+//===========================================================================
259
+//============================= Thermal Runaway Protection ==================
260
+//===========================================================================
261
+/*
229 262
 This is a feature to protect your printer from burn up in flames if it has
230 263
 a thermistor coming off place (this happened to a friend of mine recently and
231 264
 motivated me writing this feature).
@@ -260,11 +293,10 @@ your extruder heater takes 2 minutes to hit the target on heating.
260 293
 // Parameters for the bed heater
261 294
 //#define THERMAL_RUNAWAY_PROTECTION_BED_PERIOD 20 //in seconds
262 295
 //#define THERMAL_RUNAWAY_PROTECTION_BED_HYSTERESIS 2 // in degree Celsius
263
-//===========================================================================
264 296
 
265 297
 
266 298
 //===========================================================================
267
-//=============================Mechanical Settings===========================
299
+//============================ Mechanical Settings ==========================
268 300
 //===========================================================================
269 301
 
270 302
 // Uncomment the following line to enable CoreXY kinematics
@@ -336,7 +368,7 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
336 368
 #define min_software_endstops true // If true, axis won't move to coordinates less than HOME_POS.
337 369
 #define max_software_endstops true  // If true, axis won't move to coordinates greater than the defined lengths below.
338 370
 
339
-// Travel limits after homing
371
+// Travel limits after homing (units are in mm)
340 372
 #define X_MAX_POS 205
341 373
 #define X_MIN_POS 0
342 374
 #define Y_MAX_POS 205
@@ -347,7 +379,11 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
347 379
 #define X_MAX_LENGTH (X_MAX_POS - X_MIN_POS)
348 380
 #define Y_MAX_LENGTH (Y_MAX_POS - Y_MIN_POS)
349 381
 #define Z_MAX_LENGTH (Z_MAX_POS - Z_MIN_POS)
382
+
383
+
384
+//===========================================================================
350 385
 //============================= Bed Auto Leveling ===========================
386
+//===========================================================================
351 387
 
352 388
 //#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
353 389
 #define Z_PROBE_REPEATABILITY_TEST  // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled.
@@ -486,8 +522,9 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
486 522
 #define DEFAULT_ZJERK                 0.4     // (mm/sec)
487 523
 #define DEFAULT_EJERK                 5.0    // (mm/sec)
488 524
 
525
+
489 526
 //===========================================================================
490
-//=============================Additional Features===========================
527
+//============================ Additional Features ==========================
491 528
 //===========================================================================
492 529
 
493 530
 // Custom M code points
@@ -520,6 +557,11 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
520 557
 #define ABS_PREHEAT_FAN_SPEED 255   // Insert Value between 0 and 255
521 558
 
522 559
 //LCD and SD support
560
+
561
+// Character based displays can have different extended charsets.
562
+#define DISPLAY_CHARSET_HD44780_JAPAN     // "ääööüüß23°"
563
+//#define DISPLAY_CHARSET_HD44780_WESTERN // "ÄäÖöÜüß²³°" if you see a '~' instead of a 'arrow_right' at the right of submenuitems - this is the right one.
564
+
523 565
 //#define ULTRA_LCD  //general LCD support, also 16x2
524 566
 //#define DOGLCD  // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family)
525 567
 //#define SDSUPPORT // Enable SD Card Support in Hardware Console

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

@@ -227,7 +227,7 @@
227 227
 #define INVERT_Z_STEP_PIN false
228 228
 #define INVERT_E_STEP_PIN false
229 229
 
230
-//default stepper release if idle
230
+//default stepper release if idle. Set to 0 to deactivate.
231 231
 #define DEFAULT_STEPPER_DEACTIVE_TIME 60
232 232
 
233 233
 #define DEFAULT_MINIMUMFEEDRATE       0.0     // minimum feedrate

+ 92
- 25
Marlin/language.h View File

@@ -1,6 +1,8 @@
1 1
 #ifndef LANGUAGE_H
2 2
 #define LANGUAGE_H
3 3
 
4
+#include "Configuration.h"
5
+
4 6
 #define LANGUAGE_CONCAT(M)       #M
5 7
 #define GENERATE_LANGUAGE_INCLUDE(M)  LANGUAGE_CONCAT(language_##M.h)
6 8
 
@@ -11,19 +13,20 @@
11 13
 //   ==> ALSO TRY ALL AVAILABLE LANGUAGE OPTIONS
12 14
 
13 15
 // Languages
14
-// en English
15
-// pl Polish
16
-// fr French
17
-// de German
18
-// es Spanish
19
-// ru Russian
20
-// it Italian
21
-// pt Portuguese
22
-// fi Finnish
23
-// an Aragonese
24
-// nl Dutch
25
-// ca Catalan
26
-// eu Basque-Euskera
16
+// en    English
17
+// pl    Polish
18
+// fr    French
19
+// de    German
20
+// es    Spanish
21
+// ru    Russian
22
+// it    Italian
23
+// pt    Portuguese
24
+// pt-br Portuguese (Brazil)
25
+// fi    Finnish
26
+// an    Aragonese
27
+// nl    Dutch
28
+// ca    Catalan
29
+// eu    Basque-Euskera
27 30
 
28 31
 #ifndef LANGUAGE_INCLUDE
29 32
   // pick your language from the list above
@@ -31,36 +34,36 @@
31 34
 #endif
32 35
 
33 36
 #define PROTOCOL_VERSION "1.0"
37
+#define FIRMWARE_URL "https://github.com/MarlinFirmware/Marlin"
34 38
 
35 39
 #if MB(ULTIMAKER)|| MB(ULTIMAKER_OLD)|| MB(ULTIMAIN_2)
36 40
   #define MACHINE_NAME "Ultimaker"
37 41
   #define FIRMWARE_URL "http://firmware.ultimaker.com"
38 42
 #elif MB(RUMBA)
39 43
   #define MACHINE_NAME "Rumba"
40
-  #define FIRMWARE_URL "https://github.com/MarlinFirmware/Marlin"
41 44
 #elif MB(3DRAG)
42 45
   #define MACHINE_NAME "3Drag"
43 46
   #define FIRMWARE_URL "http://3dprint.elettronicain.it/"
44 47
 #elif MB(K8200)
45 48
   #define MACHINE_NAME "K8200"
46
-  #define FIRMWARE_URL "https://github.com/MarlinFirmware/Marlin"
47 49
 #elif MB(5DPRINT)
48 50
   #define MACHINE_NAME "Makibox"
49
-  #define FIRMWARE_URL "https://github.com/MarlinFirmware/Marlin"
50 51
 #elif MB(SAV_MKI)
51 52
   #define MACHINE_NAME "SAV MkI"
52 53
   #define FIRMWARE_URL "https://github.com/fmalpartida/Marlin/tree/SAV-MkI-config"
53
-#else
54
-  #ifdef CUSTOM_MENDEL_NAME
55
-    #define MACHINE_NAME CUSTOM_MENDEL_NAME
56
-  #else
57
-    #define MACHINE_NAME "Mendel"
58
-  #endif
59
-
60
-// Default firmware set to Mendel
61
-  #define FIRMWARE_URL "https://github.com/MarlinFirmware/Marlin"
54
+#elif MB(WITBOX)
55
+  #define MACHINE_NAME "WITBOX"
56
+  #define FIRMWARE_URL "http://www.bq.com/gb/downloads-witbox.html"
57
+#elif MB(HEPHESTOS)
58
+  #define MACHINE_NAME "HEPHESTOS"
59
+  #define FIRMWARE_URL "http://www.bq.com/gb/downloads-prusa-i3-hephestos.html"
60
+#else // Default firmware set to Mendel
61
+  #define MACHINE_NAME "Mendel"
62 62
 #endif
63 63
 
64
+#ifdef CUSTOM_MENDEL_NAME
65
+  #define MACHINE_NAME CUSTOM_MENDEL_NAME
66
+#endif
64 67
 
65 68
 #ifndef MACHINE_UUID
66 69
    #define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
@@ -154,8 +157,72 @@
154 157
 #define MSG_BABYSTEPPING_Z                  "Babystepping Z"
155 158
 #define MSG_SERIAL_ERROR_MENU_STRUCTURE     "Error in menu structure"
156 159
 
160
+#define MSG_ERR_EEPROM_WRITE                "Error writing to EEPROM!"
161
+
157 162
 // LCD Menu Messages
158 163
 
164
+// Add your own character. Reference: https://github.com/MarlinFirmware/Marlin/pull/1434 photos
165
+//                                and https://www.sparkfun.com/datasheets/LCD/HD44780.pdf page 17-18
166
+#ifdef DOGLCD
167
+  #define STR_Ae "\304"               // 'Ä' U8glib
168
+  #define STR_ae "\344"               // 'ä'
169
+  #define STR_Oe "\326"               // 'Ö'
170
+  #define STR_oe STR_Oe               // 'ö'
171
+  #define STR_Ue "\334"               // 'Ü'
172
+  #define STR_ue STR_Ue               // 'ü'
173
+  #define STR_sz "\337"               // 'ß'
174
+  #define STR_h2 "\262"               // '²'
175
+  #define STR_h3 "\263"               // '³'
176
+  #define STR_Deg "\260"              // '°'
177
+  #define STR_THERMOMETER "\377"
178
+#else
179
+  #ifdef DISPLAY_CHARSET_HD44780_JAPAN // HD44780 ROM Code: A00 (Japan)
180
+    #define STR_ae "\xe1"
181
+    #define STR_Ae STR_ae
182
+    #define STR_oe "\357"
183
+    #define STR_Oe STR_oe
184
+    #define STR_ue "\365"
185
+    #define STR_Ue STR_ue
186
+    #define STR_sz "\342"
187
+    #define STR_h2 "2"
188
+    #define STR_h3 "3"
189
+    #define STR_Deg "\271"
190
+    #define STR_THERMOMETER "\002"
191
+  #endif
192
+  #ifdef DISPLAY_CHARSET_HD44780_WESTERN // HD44780 ROM Code: A02 (Western)
193
+    #define STR_Ae "\216"
194
+    #define STR_ae "\204"
195
+    #define STR_Oe "\211"
196
+    #define STR_oe "\204"
197
+    #define STR_Ue "\212"
198
+    #define STR_ue "\201"
199
+    #define STR_sz "\160"
200
+    #define STR_h2 "\262"
201
+    #define STR_h3 "\263"
202
+    #define STR_Deg "\337"
203
+    #define STR_THERMOMETER "\002"
204
+  #endif
205
+#endif
206
+/*
207
+#define TESTSTRING000 "\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017"
208
+#define TESTSTRING020 "\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
209
+#define TESTSTRING040 "\040\041\042\043\044\045\046\047\050\051\052\053\054\055\056\057"
210
+#define TESTSTRING060 "\060\061\062\063\064\065\066\067\070\071\072\073\074\075\076\077"
211
+#define TESTSTRING100 "\100\101\102\103\104\105\106\107\110\111\112\113\114\115\116\117"
212
+#define TESTSTRING120 "\120\121\122\123\124\125\126\127\130\131\132\133\134\135\136\137"
213
+#define TESTSTRING140 "\140\141\142\143\144\145\146\147\150\151\152\153\154\155\156\157"
214
+#define TESTSTRING160 "\160\161\162\163\164\165\166\167\170\171\172\173\174\175\176\177"
215
+#define TESTSTRING200 "\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217"
216
+#define TESTSTRING220 "\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237"
217
+#define TESTSTRING240 "\240\241\242\243\244\245\246\247\250\251\252\253\254\255\256\257"
218
+#define TESTSTRING260 "\260\261\262\263\264\265\266\267\270\271\272\273\274\275\276\277"
219
+#define TESTSTRING300 "\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317"
220
+#define TESTSTRING320 "\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337"
221
+#define TESTSTRING340 "\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357"
222
+#define TESTSTRING360 "\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377"
223
+*/
224
+
159 225
 #include LANGUAGE_INCLUDE
226
+#include "language_en.h"
160 227
 
161 228
 #endif //__LANGUAGE_H

+ 4
- 26
Marlin/language_an.h View File

@@ -18,17 +18,13 @@
18 18
 #define MSG_SET_HOME_OFFSETS                "Set home offsets"
19 19
 #define MSG_SET_ORIGIN                      "Establir zero"
20 20
 #define MSG_PREHEAT_PLA                     "Precalentar PLA"
21
-#define MSG_PREHEAT_PLA0                    "Precalentar PLA0"
22
-#define MSG_PREHEAT_PLA1                    "Precalentar PLA1"
23
-#define MSG_PREHEAT_PLA2                    "Precalentar PLA2"
24
-#define MSG_PREHEAT_PLA012                  "Precalentar PLA a"
21
+#define MSG_PREHEAT_PLA_N                   "Precalentar PLA "
22
+#define MSG_PREHEAT_PLA_ALL                 "Precalentar PLA a"
25 23
 #define MSG_PREHEAT_PLA_BEDONLY             "Prec. PLA Base"
26 24
 #define MSG_PREHEAT_PLA_SETTINGS            "Achustar tem. PLA"
27 25
 #define MSG_PREHEAT_ABS                     "Precalentar ABS"
28
-#define MSG_PREHEAT_ABS0                    "Precalentar ABS0"
29
-#define MSG_PREHEAT_ABS1                    "Precalentar ABS1"
30
-#define MSG_PREHEAT_ABS2                    "Precalentar ABS2"
31
-#define MSG_PREHEAT_ABS012                  "Precalentar ABS a"
26
+#define MSG_PREHEAT_ABS_N                   "Precalentar ABS "
27
+#define MSG_PREHEAT_ABS_ALL                 "Precalentar ABS a"
32 28
 #define MSG_PREHEAT_ABS_BEDONLY             "Prec. ABS Base"
33 29
 #define MSG_PREHEAT_ABS_SETTINGS            "Achustar tem. ABS"
34 30
 #define MSG_COOLDOWN                        "Enfriar"
@@ -41,21 +37,14 @@
41 37
 #define MSG_MOVE_Y                          "Move Y"
42 38
 #define MSG_MOVE_Z                          "Move Z"
43 39
 #define MSG_MOVE_E                          "Extruder"
44
-#define MSG_MOVE_E1                         "Extruder2"
45
-#define MSG_MOVE_E2                         "Extruder3"
46 40
 #define MSG_MOVE_01MM                       "Move 0.1mm"
47 41
 #define MSG_MOVE_1MM                        "Move 1mm"
48 42
 #define MSG_MOVE_10MM                       "Move 10mm"
49 43
 #define MSG_SPEED                           "Velocidat"
50 44
 #define MSG_NOZZLE                          "Nozzle"
51
-#define MSG_NOZZLE1                         "Nozzle2"
52
-#define MSG_NOZZLE2                         "Nozzle3"
53 45
 #define MSG_BED                             "Base"
54 46
 #define MSG_FAN_SPEED                       "Ixoriador"
55 47
 #define MSG_FLOW                            "Fluxo"
56
-#define MSG_FLOW0                           "Fluxo 0"
57
-#define MSG_FLOW1                           "Fluxo 1"
58
-#define MSG_FLOW2                           "Fluxo 2"
59 48
 #define MSG_CONTROL                         "Control"
60 49
 #define MSG_MIN                             "\002 Min"
61 50
 #define MSG_MAX                             "\002 Max"
@@ -130,17 +119,6 @@
130 119
 #define MSG_BABYSTEP_Z                      "Babystep Z"
131 120
 #define MSG_ENDSTOP_ABORT                   "Endstop abort"
132 121
 
133
-#define MSG_RECTRACT                        "Retraer"
134
-#define MSG_RECTRACT_WIDE                   "Retraer"
135
-#define MSG_TEMPERATURE_WIDE                "Temperatura"
136
-#define MSG_TEMPERATURE_RTN                 "Temperatura"
137
-#define MSG_MAIN_WIDE                       "Menu Prencipal"
138
-#define MSG_MOTION_WIDE                     "Movimiento"
139
-#define MSG_PREPARE_ALT                     "Preparar"
140
-#define MSG_CONTROL_ARROW                   "Control \x7E"
141
-#define MSG_RETRACT_ARROW                   "Retraer \x7E"
142
-#define MSG_STEPPER_RELEASED                "Desacoplada."
143
-
144 122
 #ifdef DELTA_CALIBRATION_MENU
145 123
     #define MSG_DELTA_CALIBRATE             "Delta Calibration"
146 124
     #define MSG_DELTA_CALIBRATE_X           "Calibrate X"

+ 4
- 25
Marlin/language_ca.h View File

@@ -18,17 +18,13 @@
18 18
 #define MSG_SET_HOME_OFFSETS                "Set home offsets"
19 19
 #define MSG_SET_ORIGIN                      "Establir origen"
20 20
 #define MSG_PREHEAT_PLA                     "Preescalfar PLA"
21
-#define MSG_PREHEAT_PLA0                    "Preescalfar PLA 1"
22
-#define MSG_PREHEAT_PLA1                    "Preescalfar PLA 2"
23
-#define MSG_PREHEAT_PLA2                    "Preescalfar PLA 3"
24
-#define MSG_PREHEAT_PLA012                  "Preesc. tot PLA"
21
+#define MSG_PREHEAT_PLA_N                   "Preescalfar PLA "
22
+#define MSG_PREHEAT_PLA_ALL                 "Preesc. tot PLA"
25 23
 #define MSG_PREHEAT_PLA_BEDONLY             "Preesc. llit PLA"
26 24
 #define MSG_PREHEAT_PLA_SETTINGS            "Configuració PLA"
27 25
 #define MSG_PREHEAT_ABS                     "Preescalfar ABS"
28
-#define MSG_PREHEAT_ABS0                    "Preescalfar ABS 1"
29
-#define MSG_PREHEAT_ABS1                    "Preescalfar ABS 2"
30
-#define MSG_PREHEAT_ABS2                    "Preescalfar ABS 3"
31
-#define MSG_PREHEAT_ABS012                  "Preesc. tot ABS"
26
+#define MSG_PREHEAT_ABS_N                   "Preescalfar ABS "
27
+#define MSG_PREHEAT_ABS_ALL                 "Preesc. tot ABS"
32 28
 #define MSG_PREHEAT_ABS_BEDONLY             "Preesc. llit ABS"
33 29
 #define MSG_PREHEAT_ABS_SETTINGS            "Configuració ABS"
34 30
 #define MSG_COOLDOWN                        "Refredar"
@@ -41,21 +37,14 @@
41 37
 #define MSG_MOVE_Y                          "Moure Y"
42 38
 #define MSG_MOVE_Z                          "Moure Z"
43 39
 #define MSG_MOVE_E                          "Extrusor"
44
-#define MSG_MOVE_E1                         "Extruder2"
45
-#define MSG_MOVE_E2                         "Extruder3"
46 40
 #define MSG_MOVE_01MM                       "Moure 0.1mm"
47 41
 #define MSG_MOVE_1MM                        "Moure 1mm"
48 42
 #define MSG_MOVE_10MM                       "Moure 10mm"
49 43
 #define MSG_SPEED                           "Velocitat"
50 44
 #define MSG_NOZZLE                          "Nozzle"
51
-#define MSG_NOZZLE1                         "Nozzle2"
52
-#define MSG_NOZZLE2                         "Nozzle3"
53 45
 #define MSG_BED                             "Llit"
54 46
 #define MSG_FAN_SPEED                       "Vel. Ventilador"
55 47
 #define MSG_FLOW                            "Fluxe"
56
-#define MSG_FLOW0                           "Fluxe 0"
57
-#define MSG_FLOW1                           "Fluxe 1"
58
-#define MSG_FLOW2                           "Fluxe 2"
59 48
 #define MSG_CONTROL                         "Control"
60 49
 #define MSG_MIN                             " \002 Min"
61 50
 #define MSG_MAX                             " \002 Max"
@@ -67,14 +56,6 @@
67 56
 #define MSG_PID_I                           "PID-I"
68 57
 #define MSG_PID_D                           "PID-D"
69 58
 #define MSG_PID_C                           "PID-C"
70
-#define MSG_PID_P1                          "PID-P E2"
71
-#define MSG_PID_I1                          "PID-I E2"
72
-#define MSG_PID_D1                          "PID-D E2"
73
-#define MSG_PID_C1                          "PID-C E2"
74
-#define MSG_PID_P2                          "PID-P E3"
75
-#define MSG_PID_I2                          "PID-I E3"
76
-#define MSG_PID_D2                          "PID-D E3"
77
-#define MSG_PID_C2                          "PID-C E3"
78 59
 #define MSG_ACC                             "Accel"
79 60
 #define MSG_VXY_JERK                        "Vxy-jerk"
80 61
 #define MSG_VZ_JERK                         "Vz-jerk"
@@ -138,8 +119,6 @@
138 119
 #define MSG_BABYSTEP_Z                      "Babystep Z"
139 120
 #define MSG_ENDSTOP_ABORT                   "Endstop abort"
140 121
 
141
-#define MSG_RECTRACT                        "Retreure"
142
-
143 122
 #ifdef DELTA_CALIBRATION_MENU
144 123
     #define MSG_DELTA_CALIBRATE             "Delta Calibration"
145 124
     #define MSG_DELTA_CALIBRATE_X           "Calibrate X"

+ 73
- 96
Marlin/language_de.h View File

@@ -9,116 +9,96 @@
9 9
 #define LANGUAGE_DE_H
10 10
 
11 11
 #define WELCOME_MSG                         MACHINE_NAME " Bereit."
12
-#define MSG_SD_INSERTED                     "SDKarte erkannt"
13
-#define MSG_SD_REMOVED                      "SDKarte entfernt"
14
-#define MSG_MAIN                            "Hauptmenü"
12
+#define MSG_SD_INSERTED                     "SDKarte erkannt."
13
+#define MSG_SD_REMOVED                      "SDKarte entfernt."
14
+#define MSG_MAIN                            "Hauptmen" STR_ue
15 15
 #define MSG_AUTOSTART                       "Autostart"
16
-#define MSG_DISABLE_STEPPERS                "Stepper abschalt."
17
-#define MSG_AUTO_HOME                       "Auto Nullpunkt"
18
-#define MSG_SET_HOME_OFFSETS                "Set home offsets"
19
-#define MSG_SET_ORIGIN                      "Setze Nullpunkt"
20
-#define MSG_PREHEAT_PLA                     "Vorwärmen PLA"
21
-#define MSG_PREHEAT_PLA0                    "Vorwärmen PLA 1"
22
-#define MSG_PREHEAT_PLA1                    "Vorwärmen PLA 2"
23
-#define MSG_PREHEAT_PLA2                    "Vorwärmen PLA 3"
24
-#define MSG_PREHEAT_PLA012                  "Vorw. PLA Alle"
16
+#define MSG_DISABLE_STEPPERS                "Motoren Aus" // M84
17
+#define MSG_AUTO_HOME                       "Home" // G28
18
+#define MSG_SET_HOME_OFFSETS                "Setze Home hier"
19
+#define MSG_SET_ORIGIN                      "Setze Null hier" //"G92 X0 Y0 Z0" commented out in ultralcd.cpp
20
+#define MSG_PREHEAT_PLA                     "Vorw" STR_ae "rmen PLA"
21
+#define MSG_PREHEAT_PLA_N                   "Vorw" STR_ae "rmen PLA "
22
+#define MSG_PREHEAT_PLA_ALL                 "Vorw. PLA Alle"
25 23
 #define MSG_PREHEAT_PLA_BEDONLY             "Vorw. PLA Bett"
26
-#define MSG_PREHEAT_PLA_SETTINGS            "Vorwärm. PLA Ein."
27
-#define MSG_PREHEAT_ABS                     "Vorwärmen ABS"
28
-#define MSG_PREHEAT_ABS0                    "Vorwärmen ABS 1"
29
-#define MSG_PREHEAT_ABS1                    "Vorwärmen ABS 2"
30
-#define MSG_PREHEAT_ABS2                    "Vorwärmen ABS 3"
31
-#define MSG_PREHEAT_ABS012                  "Vorw. ABS Alle"
24
+#define MSG_PREHEAT_PLA_SETTINGS            "Vorw" STR_ae "rm. PLA Ein."
25
+#define MSG_PREHEAT_ABS                     "Vorw" STR_ae "rmen ABS"
26
+#define MSG_PREHEAT_ABS_N                   "Vorw" STR_ae "rmen ABS "
27
+#define MSG_PREHEAT_ABS_ALL                 "Vorw. ABS Alle"
32 28
 #define MSG_PREHEAT_ABS_BEDONLY             "Vorw. ABS Bett"
33
-#define MSG_PREHEAT_ABS_SETTINGS            "Vorwärm. ABS Ein."
34
-#define MSG_COOLDOWN                        "Abkühlen"
35
-#define MSG_SWITCH_PS_ON                    "Switch Power On"
36
-#define MSG_SWITCH_PS_OFF                   "Switch Power Off"
37
-#define MSG_EXTRUDE                         "Extrude"
29
+#define MSG_PREHEAT_ABS_SETTINGS            "Vorw" STR_ae "rm. ABS Ein."
30
+#define MSG_COOLDOWN                        "Abk" STR_ue "hlen"
31
+#define MSG_SWITCH_PS_ON                    "Netzteil Ein"
32
+#define MSG_SWITCH_PS_OFF                   "Netzteil Aus"
38 33
 #define MSG_RETRACT                         "Retract"
39
-#define MSG_MOVE_AXIS                       "Achsen bewegen"
40
-#define MSG_MOVE_X                          "X bewegen"
41
-#define MSG_MOVE_Y                          "Y bewegen"
42
-#define MSG_MOVE_Z                          "Z bewegen"
43
-#define MSG_MOVE_E                          "Extruder"
44
-#define MSG_MOVE_E1                         "Extruder2"
45
-#define MSG_MOVE_E2                         "Extruder3"
46
-#define MSG_MOVE_01MM                       "0.1mm bewegen"
47
-#define MSG_MOVE_1MM                        "1mm bewegen"
48
-#define MSG_MOVE_10MM                       "10mm bewegen"
49
-#define MSG_SPEED                           "Geschw"
50
-#define MSG_NOZZLE                          "Düse"
51
-#define MSG_NOZZLE1                         "Düse2"
52
-#define MSG_NOZZLE2                         "Düse3"
34
+#define MSG_MOVE_AXIS                       "Bewegen"
35
+#define MSG_MOVE_X                          "X"
36
+#define MSG_MOVE_Y                          "Y"
37
+#define MSG_MOVE_Z                          "Z"
38
+#define MSG_MOVE_E                          "E"
39
+#define MSG_MOVE_01MM                       " 0.1 mm"
40
+#define MSG_MOVE_1MM                        " 1.0 mm"
41
+#define MSG_MOVE_10MM                       "10.0 mm"
42
+#define MSG_SPEED                           "Geschw."
43
+#define MSG_NOZZLE                          "D" STR_ue "se"
53 44
 #define MSG_BED                             "Bett"
54
-#define MSG_FAN_SPEED                       "Lüftergeschw."
45
+#define MSG_FAN_SPEED                       "L" STR_ue "ftergeschw."
55 46
 #define MSG_FLOW                            "Fluss"
56
-#define MSG_FLOW0                           "Fluss 0"
57
-#define MSG_FLOW1                           "Fluss 1"
58
-#define MSG_FLOW2                           "Fluss 2"
59 47
 #define MSG_CONTROL                         "Einstellungen"
60
-#define MSG_MIN                             "\002 Min"
61
-#define MSG_MAX                             "\002 Max"
62
-#define MSG_FACTOR                          "\002 Faktor"
48
+#define MSG_MIN                             STR_THERMOMETER " Min"
49
+#define MSG_MAX                             STR_THERMOMETER " Max"
50
+#define MSG_FACTOR                          STR_THERMOMETER " Faktor"
63 51
 #define MSG_AUTOTEMP                        "AutoTemp"
64 52
 #define MSG_ON                              "Ein"
65 53
 #define MSG_OFF                             "Aus"
66
-#define MSG_PID_P                           "PID-P"
67
-#define MSG_PID_I                           "PID-I"
68
-#define MSG_PID_D                           "PID-D"
69
-#define MSG_PID_C                           "PID-C"
70
-#define MSG_PID_P1                          "PID-P E2"
71
-#define MSG_PID_I1                          "PID-I E2"
72
-#define MSG_PID_D1                          "PID-D E2"
73
-#define MSG_PID_C1                          "PID-C E2"
74
-#define MSG_PID_P2                          "PID-P E3"
75
-#define MSG_PID_I2                          "PID-I E3"
76
-#define MSG_PID_D2                          "PID-D E3"
77
-#define MSG_PID_C2                          "PID-C E3"
78
-#define MSG_ACC                             "Acc"
79
-#define MSG_VXY_JERK                        "Vxy-jerk"
80
-#define MSG_VZ_JERK                         "Vz-jerk"
81
-#define MSG_VE_JERK                         "Ve-jerk"
82
-#define MSG_VMAX                            "Vmax "
54
+#define MSG_PID_P                           "PID P"
55
+#define MSG_PID_I                           "PID I"
56
+#define MSG_PID_D                           "PID D"
57
+#define MSG_PID_C                           "PID C"
58
+#define MSG_ACC                             "A"
59
+#define MSG_VXY_JERK                        "V xy jerk"
60
+#define MSG_VZ_JERK                         "V z  jerk"
61
+#define MSG_VE_JERK                         "V e  jerk"
62
+#define MSG_VMAX                            "V max " // space by purpose
83 63
 #define MSG_X                               "x"
84 64
 #define MSG_Y                               "y"
85 65
 #define MSG_Z                               "z"
86 66
 #define MSG_E                               "e"
87
-#define MSG_VMIN                            "Vmin"
67
+#define MSG_VMIN                            "V min"
88 68
 #define MSG_VTRAV_MIN                       "VTrav min"
89
-#define MSG_AMAX                            "Amax "
90
-#define MSG_A_RETRACT                       "A-Retract"
91
-#define MSG_XSTEPS                          "Xsteps/mm"
92
-#define MSG_YSTEPS                          "Ysteps/mm"
93
-#define MSG_ZSTEPS                          "Zsteps/mm"
94
-#define MSG_ESTEPS                          "Esteps/mm"
69
+#define MSG_AMAX                            "A max " // space by purpose
70
+#define MSG_A_RETRACT                       "A Retract"
71
+#define MSG_XSTEPS                          "X steps/mm"
72
+#define MSG_YSTEPS                          "Y steps/mm"
73
+#define MSG_ZSTEPS                          "Z steps/mm"
74
+#define MSG_ESTEPS                          "E steps/mm"
95 75
 #define MSG_TEMPERATURE                     "Temperatur"
96 76
 #define MSG_MOTION                          "Bewegung"
97 77
 #define MSG_VOLUMETRIC                      "Filament"
98
-#define MSG_VOLUMETRIC_ENABLED		        "E in mm3"
99
-#define MSG_FILAMENT_SIZE_EXTRUDER_0        "Fil. Dia. 1"
100
-#define MSG_FILAMENT_SIZE_EXTRUDER_1        "Fil. Dia. 2"
101
-#define MSG_FILAMENT_SIZE_EXTRUDER_2        "Fil. Dia. 3"
78
+#define MSG_VOLUMETRIC_ENABLED		          "E in mm" STR_h3
79
+#define MSG_FILAMENT_SIZE_EXTRUDER_0        "Filament D 1"
80
+#define MSG_FILAMENT_SIZE_EXTRUDER_1        "Filament D 2"
81
+#define MSG_FILAMENT_SIZE_EXTRUDER_2        "Filament D 3"
102 82
 #define MSG_CONTRAST                        "LCD contrast"
103 83
 #define MSG_STORE_EPROM                     "EPROM speichern"
104 84
 #define MSG_LOAD_EPROM                      "EPROM laden"
105 85
 #define MSG_RESTORE_FAILSAFE                "Standardkonfig."
106 86
 #define MSG_REFRESH                         "Aktualisieren"
107
-#define MSG_WATCH                           "Beobachten"
87
+#define MSG_WATCH                           "Info"
108 88
 #define MSG_PREPARE                         "Vorbereitung"
109 89
 #define MSG_TUNE                            "Justierung"
110
-#define MSG_PAUSE_PRINT                     "Druck anhalten"
111
-#define MSG_RESUME_PRINT                    "Druck fortsetz"
112
-#define MSG_STOP_PRINT                      "Druck stoppen"
113
-#define MSG_CARD_MENU                       "SDKarten Menü"
90
+#define MSG_PAUSE_PRINT                     "SD-Druck Pause"
91
+#define MSG_RESUME_PRINT                    "SD-Druck Weiter"
92
+#define MSG_STOP_PRINT                      "SD-Druck Abbruch"
93
+#define MSG_CARD_MENU                       "SDKarte"
114 94
 #define MSG_NO_CARD                         "Keine SDKarte"
115 95
 #define MSG_DWELL                           "Warten..."
116
-#define MSG_USERWAIT                        "Warte auf Nutzer"
117
-#define MSG_RESUMING                        "Druck fortsetzung"
118
-#define MSG_PRINT_ABORTED                   "Print aborted"
119
-#define MSG_NO_MOVE                         "Kein Zug."
120
-#define MSG_KILLED                          "KILLED"
121
-#define MSG_STOPPED                         "GESTOPPT"
96
+#define MSG_USERWAIT                        "Warte auf Nutzer."
97
+#define MSG_RESUMING                        "Druck geht weiter"
98
+#define MSG_PRINT_ABORTED                   "Druck abgebrochen"
99
+#define MSG_NO_MOVE                         "Motoren Eingesch."
100
+#define MSG_KILLED                          "KILLED."
101
+#define MSG_STOPPED                         "ANGEHALTEN."
122 102
 #define MSG_CONTROL_RETRACT                 "Retract mm"
123 103
 #define MSG_CONTROL_RETRACT_SWAP            "Wechs. Retract mm"
124 104
 #define MSG_CONTROL_RETRACTF                "Retract  V"
@@ -128,25 +108,22 @@
128 108
 #define MSG_CONTROL_RETRACT_RECOVERF        "UnRet  V"
129 109
 #define MSG_AUTORETRACT                     "AutoRetr."
130 110
 #define MSG_FILAMENTCHANGE                  "Filament wechseln"
131
-#define MSG_INIT_SDCARD                     "Init. SD-Card"
132
-#define MSG_CNG_SDCARD                      "Change SD-Card"
133
-#define MSG_ZPROBE_OUT                      "Z probe out. bed"
134
-#define MSG_POSITION_UNKNOWN                "Home X/Y before Z"
111
+#define MSG_INIT_SDCARD                     "SDKarte erkennen"// Manually initialize the SD-card via user interface
112
+#define MSG_CNG_SDCARD                      "SDKarte erkennen"// SD-card changed by user. For machines with no autocarddetect. Both send "M21"
113
+#define MSG_ZPROBE_OUT                      "Sensor ausserhalb"
114
+#define MSG_POSITION_UNKNOWN                "X/Y vor Z Homen."
135 115
 #define MSG_ZPROBE_ZOFFSET                  "Z Offset"
136 116
 #define MSG_BABYSTEP_X                      "Babystep X"
137 117
 #define MSG_BABYSTEP_Y                      "Babystep Y"
138 118
 #define MSG_BABYSTEP_Z                      "Babystep Z"
139
-#define MSG_ENDSTOP_ABORT                   "Endstop abort"
140
-
141
-#define MSG_STEPPER_RELEASED                "Stepper frei"
142
-#define MSG_RECTRACT_WIDE                   "Rectract"
119
+#define MSG_ENDSTOP_ABORT                   "Endstop Abbr. Ein"
143 120
 
144 121
 #ifdef DELTA_CALIBRATION_MENU
145
-    #define MSG_DELTA_CALIBRATE             "Delta Calibration"
146
-    #define MSG_DELTA_CALIBRATE_X           "Calibrate X"
147
-    #define MSG_DELTA_CALIBRATE_Y           "Calibrate Y"
148
-    #define MSG_DELTA_CALIBRATE_Z           "Calibrate Z"
149
-    #define MSG_DELTA_CALIBRATE_CENTER      "Calibrate Center"
122
+    #define MSG_DELTA_CALIBRATE             "Delta Kalibrieren"
123
+    #define MSG_DELTA_CALIBRATE_X           "Kalibriere X"
124
+    #define MSG_DELTA_CALIBRATE_Y           "Kalibriere Y"
125
+    #define MSG_DELTA_CALIBRATE_Z           "Kalibriere Z"
126
+    #define MSG_DELTA_CALIBRATE_CENTER      "Kalibriere Mitte"
150 127
 #endif // DELTA_CALIBRATION_MENU
151 128
 
152 129
 #endif // LANGUAGE_DE_H

+ 244
- 42
Marlin/language_en.h View File

@@ -8,154 +8,356 @@
8 8
 #ifndef LANGUAGE_EN_H
9 9
 #define LANGUAGE_EN_H
10 10
 
11
+#ifndef WELCOME_MSG
11 12
 #define WELCOME_MSG                         MACHINE_NAME " ready."
13
+#endif
14
+#ifndef MSG_SD_INSERTED
12 15
 #define MSG_SD_INSERTED                     "Card inserted"
16
+#endif
17
+#ifndef MSG_SD_REMOVED
13 18
 #define MSG_SD_REMOVED                      "Card removed"
19
+#endif
20
+#ifndef MSG_MAIN
14 21
 #define MSG_MAIN                            "Main"
22
+#endif
23
+#ifndef MSG_AUTOSTART
15 24
 #define MSG_AUTOSTART                       "Autostart"
25
+#endif
26
+#ifndef MSG_DISABLE_STEPPERS
16 27
 #define MSG_DISABLE_STEPPERS                "Disable steppers"
28
+#endif
29
+#ifndef MSG_AUTO_HOME
17 30
 #define MSG_AUTO_HOME                       "Auto home"
31
+#endif
32
+#ifndef MSG_SET_HOME_OFFSETS
18 33
 #define MSG_SET_HOME_OFFSETS                "Set home offsets"
34
+#endif
35
+#ifndef MSG_SET_ORIGIN
19 36
 #define MSG_SET_ORIGIN                      "Set origin"
37
+#endif
38
+#ifndef MSG_PREHEAT_PLA
20 39
 #define MSG_PREHEAT_PLA                     "Preheat PLA"
21
-#define MSG_PREHEAT_PLA0                    "Preheat PLA 1"
22
-#define MSG_PREHEAT_PLA1                    "Preheat PLA 2"
23
-#define MSG_PREHEAT_PLA2                    "Preheat PLA 3"
24
-#define MSG_PREHEAT_PLA3                    "Preheat PLA 4"
25
-#define MSG_PREHEAT_PLA0123                 "Preheat PLA All"
26
-#define MSG_PREHEAT_PLA_BEDONLY             "Preheat PLA Bed"
27
-#define MSG_PREHEAT_PLA_SETTINGS            "Preheat PLA conf"
40
+#endif
41
+#ifndef MSG_PREHEAT_PLA_N
42
+#define MSG_PREHEAT_PLA_N                   MSG_PREHEAT_PLA " "
43
+#endif
44
+#ifndef MSG_PREHEAT_PLA_ALL
45
+#define MSG_PREHEAT_PLA_ALL                 MSG_PREHEAT_PLA " All"
46
+#endif
47
+#ifndef MSG_PREHEAT_PLA_BEDONLY
48
+#define MSG_PREHEAT_PLA_BEDONLY             MSG_PREHEAT_PLA " Bed"
49
+#endif
50
+#ifndef MSG_PREHEAT_PLA_SETTINGS
51
+#define MSG_PREHEAT_PLA_SETTINGS            MSG_PREHEAT_PLA " conf"
52
+#endif
53
+#ifndef MSG_PREHEAT_ABS
28 54
 #define MSG_PREHEAT_ABS                     "Preheat ABS"
29
-#define MSG_PREHEAT_ABS0                    "Preheat ABS 1"
30
-#define MSG_PREHEAT_ABS1                    "Preheat ABS 2"
31
-#define MSG_PREHEAT_ABS2                    "Preheat ABS 3"
32
-#define MSG_PREHEAT_ABS3                    "Preheat ABS 4"
33
-#define MSG_PREHEAT_ABS0123                 "Preheat ABS All"
34
-#define MSG_PREHEAT_ABS_BEDONLY             "Preheat ABS Bed"
35
-#define MSG_PREHEAT_ABS_SETTINGS            "Preheat ABS conf"
55
+#endif
56
+#ifndef MSG_PREHEAT_ABS_N
57
+#define MSG_PREHEAT_ABS_N                   MSG_PREHEAT_ABS " "
58
+#endif
59
+#ifndef MSG_PREHEAT_ABS_ALL
60
+#define MSG_PREHEAT_ABS_ALL                 MSG_PREHEAT_ABS " All"
61
+#endif
62
+#ifndef MSG_PREHEAT_ABS_BEDONLY
63
+#define MSG_PREHEAT_ABS_BEDONLY             MSG_PREHEAT_ABS " Bed"
64
+#endif
65
+#ifndef MSG_PREHEAT_ABS_SETTINGS
66
+#define MSG_PREHEAT_ABS_SETTINGS            MSG_PREHEAT_ABS " conf"
67
+#endif
68
+#ifndef MSG_COOLDOWN
36 69
 #define MSG_COOLDOWN                        "Cooldown"
70
+#endif
71
+#ifndef MSG_SWITCH_PS_ON
37 72
 #define MSG_SWITCH_PS_ON                    "Switch power on"
73
+#endif
74
+#ifndef MSG_SWITCH_PS_OFF
38 75
 #define MSG_SWITCH_PS_OFF                   "Switch power off"
76
+#endif
77
+#ifndef MSG_EXTRUDE
39 78
 #define MSG_EXTRUDE                         "Extrude"
79
+#endif
80
+#ifndef MSG_RETRACT
40 81
 #define MSG_RETRACT                         "Retract"
82
+#endif
83
+#ifndef MSG_MOVE_AXIS
41 84
 #define MSG_MOVE_AXIS                       "Move axis"
85
+#endif
86
+#ifndef MSG_MOVE_X
42 87
 #define MSG_MOVE_X                          "Move X"
88
+#endif
89
+#ifndef MSG_MOVE_Y
43 90
 #define MSG_MOVE_Y                          "Move Y"
91
+#endif
92
+#ifndef MSG_MOVE_Z
44 93
 #define MSG_MOVE_Z                          "Move Z"
94
+#endif
95
+#ifndef MSG_MOVE_E
45 96
 #define MSG_MOVE_E                          "Extruder"
46
-#define MSG_MOVE_E1                         "Extruder2"
47
-#define MSG_MOVE_E2                         "Extruder3"
48
-#define MSG_MOVE_E3                         "Extruder4"
97
+#endif
98
+#ifndef MSG_MOVE_01MM
49 99
 #define MSG_MOVE_01MM                       "Move 0.1mm"
100
+#endif
101
+#ifndef MSG_MOVE_1MM
50 102
 #define MSG_MOVE_1MM                        "Move 1mm"
103
+#endif
104
+#ifndef MSG_MOVE_10MM
51 105
 #define MSG_MOVE_10MM                       "Move 10mm"
106
+#endif
107
+#ifndef MSG_SPEED
52 108
 #define MSG_SPEED                           "Speed"
109
+#endif
110
+#ifndef MSG_NOZZLE
53 111
 #define MSG_NOZZLE                          "Nozzle"
54
-#define MSG_NOZZLE1                         "Nozzle2"
55
-#define MSG_NOZZLE2                         "Nozzle3"
56
-#define MSG_NOZZLE3                         "Nozzle4"
112
+#endif
113
+#ifndef MSG_BED
57 114
 #define MSG_BED                             "Bed"
115
+#endif
116
+#ifndef MSG_FAN_SPEED
58 117
 #define MSG_FAN_SPEED                       "Fan speed"
118
+#endif
119
+#ifndef MSG_FLOW
59 120
 #define MSG_FLOW                            "Flow"
60
-#define MSG_FLOW0                           "Flow 0"
61
-#define MSG_FLOW1                           "Flow 1"
62
-#define MSG_FLOW2                           "Flow 2"
63
-#define MSG_FLOW3                           "Flow 3"
121
+#endif
122
+#ifndef MSG_CONTROL
64 123
 #define MSG_CONTROL                         "Control"
65
-#define MSG_MIN                             " \002 Min"
66
-#define MSG_MAX                             " \002 Max"
67
-#define MSG_FACTOR                          " \002 Fact"
124
+#endif
125
+#ifndef MSG_MIN
126
+#define MSG_MIN                             " " STR_THERMOMETER " Min"
127
+#endif
128
+#ifndef MSG_MAX
129
+#define MSG_MAX                             " " STR_THERMOMETER " Max"
130
+#endif
131
+#ifndef MSG_FACTOR
132
+#define MSG_FACTOR                          " " STR_THERMOMETER " Fact"
133
+#endif
134
+#ifndef MSG_AUTOTEMP
68 135
 #define MSG_AUTOTEMP                        "Autotemp"
136
+#endif
137
+#ifndef MSG_ON
69 138
 #define MSG_ON                              "On "
139
+#endif
140
+#ifndef MSG_OFF
70 141
 #define MSG_OFF                             "Off"
142
+#endif
143
+#ifndef MSG_PID_P
71 144
 #define MSG_PID_P                           "PID-P"
145
+#endif
146
+#ifndef MSG_PID_I
72 147
 #define MSG_PID_I                           "PID-I"
148
+#endif
149
+#ifndef MSG_PID_D
73 150
 #define MSG_PID_D                           "PID-D"
151
+#endif
152
+#ifndef MSG_PID_C
74 153
 #define MSG_PID_C                           "PID-C"
75
-#define MSG_PID_P1                          "PID-P E2"
76
-#define MSG_PID_I1                          "PID-I E2"
77
-#define MSG_PID_D1                          "PID-D E2"
78
-#define MSG_PID_C1                          "PID-C E2"
79
-#define MSG_PID_P2                          "PID-P E3"
80
-#define MSG_PID_I2                          "PID-I E3"
81
-#define MSG_PID_D2                          "PID-D E3"
82
-#define MSG_PID_C2                          "PID-C E3"
83
-#define MSG_PID_P3                          "PID-P E4"
84
-#define MSG_PID_I3                          "PID-I E4"
85
-#define MSG_PID_D3                          "PID-D E4"
86
-#define MSG_PID_C3                          "PID-C E4"
154
+#endif
155
+#ifndef MSG_ACC
87 156
 #define MSG_ACC                             "Accel"
157
+#endif
158
+#ifndef MSG_VXY_JERK
88 159
 #define MSG_VXY_JERK                        "Vxy-jerk"
160
+#endif
161
+#ifndef MSG_VZ_JERK
89 162
 #define MSG_VZ_JERK                         "Vz-jerk"
163
+#endif
164
+#ifndef MSG_VE_JERK
90 165
 #define MSG_VE_JERK                         "Ve-jerk"
166
+#endif
167
+#ifndef MSG_VMAX
91 168
 #define MSG_VMAX                            "Vmax "
169
+#endif
170
+#ifndef MSG_X
92 171
 #define MSG_X                               "x"
172
+#endif
173
+#ifndef MSG_Y
93 174
 #define MSG_Y                               "y"
175
+#endif
176
+#ifndef MSG_Z
94 177
 #define MSG_Z                               "z"
178
+#endif
179
+#ifndef MSG_E
95 180
 #define MSG_E                               "e"
181
+#endif
182
+#ifndef MSG_VMIN
96 183
 #define MSG_VMIN                            "Vmin"
184
+#endif
185
+#ifndef MSG_VTRAV_MIN
97 186
 #define MSG_VTRAV_MIN                       "VTrav min"
187
+#endif
188
+#ifndef MSG_AMAX
98 189
 #define MSG_AMAX                            "Amax "
190
+#endif
191
+#ifndef MSG_A_RETRACT
99 192
 #define MSG_A_RETRACT                       "A-retract"
193
+#endif
194
+#ifndef MSG_XSTEPS
100 195
 #define MSG_XSTEPS                          "Xsteps/mm"
196
+#endif
197
+#ifndef MSG_YSTEPS
101 198
 #define MSG_YSTEPS                          "Ysteps/mm"
199
+#endif
200
+#ifndef MSG_ZSTEPS
102 201
 #define MSG_ZSTEPS                          "Zsteps/mm"
202
+#endif
203
+#ifndef MSG_ESTEPS
103 204
 #define MSG_ESTEPS                          "Esteps/mm"
205
+#endif
206
+#ifndef MSG_TEMPERATURE
104 207
 #define MSG_TEMPERATURE                     "Temperature"
208
+#endif
209
+#ifndef MSG_MOTION
105 210
 #define MSG_MOTION                          "Motion"
211
+#endif
212
+#ifndef MSG_VOLUMETRIC
106 213
 #define MSG_VOLUMETRIC                      "Filament"
107
-#define MSG_VOLUMETRIC_ENABLED		        "E in mm3"
214
+#endif
215
+#ifndef MSG_VOLUMETRIC_ENABLED
216
+#define MSG_VOLUMETRIC_ENABLED		          "E in mm" STR_h3
217
+#endif
218
+#ifndef MSG_FILAMENT_SIZE_EXTRUDER_0
108 219
 #define MSG_FILAMENT_SIZE_EXTRUDER_0        "Fil. Dia. 1"
220
+#endif
221
+#ifndef MSG_FILAMENT_SIZE_EXTRUDER_1
109 222
 #define MSG_FILAMENT_SIZE_EXTRUDER_1        "Fil. Dia. 2"
223
+#endif
224
+#ifndef MSG_FILAMENT_SIZE_EXTRUDER_2
110 225
 #define MSG_FILAMENT_SIZE_EXTRUDER_2        "Fil. Dia. 3"
226
+#endif
227
+#ifndef MSG_FILAMENT_SIZE_EXTRUDER_3
111 228
 #define MSG_FILAMENT_SIZE_EXTRUDER_3        "Fil. Dia. 4"
229
+#endif
230
+#ifndef MSG_CONTRAST
112 231
 #define MSG_CONTRAST                        "LCD contrast"
232
+#endif
233
+#ifndef MSG_STORE_EPROM
113 234
 #define MSG_STORE_EPROM                     "Store memory"
235
+#endif
236
+#ifndef MSG_LOAD_EPROM
114 237
 #define MSG_LOAD_EPROM                      "Load memory"
238
+#endif
239
+#ifndef MSG_RESTORE_FAILSAFE
115 240
 #define MSG_RESTORE_FAILSAFE                "Restore failsafe"
241
+#endif
242
+#ifndef MSG_REFRESH
116 243
 #define MSG_REFRESH                         "Refresh"
244
+#endif
245
+#ifndef MSG_WATCH
117 246
 #define MSG_WATCH                           "Info screen"
247
+#endif
248
+#ifndef MSG_PREPARE
118 249
 #define MSG_PREPARE                         "Prepare"
250
+#endif
251
+#ifndef MSG_TUNE
119 252
 #define MSG_TUNE                            "Tune"
253
+#endif
254
+#ifndef MSG_PAUSE_PRINT
120 255
 #define MSG_PAUSE_PRINT                     "Pause print"
256
+#endif
257
+#ifndef MSG_RESUME_PRINT
121 258
 #define MSG_RESUME_PRINT                    "Resume print"
259
+#endif
260
+#ifndef MSG_STOP_PRINT
122 261
 #define MSG_STOP_PRINT                      "Stop print"
262
+#endif
263
+#ifndef MSG_CARD_MENU
123 264
 #define MSG_CARD_MENU                       "Print from SD"
265
+#endif
266
+#ifndef MSG_NO_CARD
124 267
 #define MSG_NO_CARD                         "No SD card"
268
+#endif
269
+#ifndef MSG_DWELL
125 270
 #define MSG_DWELL                           "Sleep..."
271
+#endif
272
+#ifndef MSG_USERWAIT
126 273
 #define MSG_USERWAIT                        "Wait for user..."
274
+#endif
275
+#ifndef MSG_RESUMING
127 276
 #define MSG_RESUMING                        "Resuming print"
277
+#endif
278
+#ifndef MSG_PRINT_ABORTED
128 279
 #define MSG_PRINT_ABORTED                   "Print aborted"
280
+#endif
281
+#ifndef MSG_NO_MOVE
129 282
 #define MSG_NO_MOVE                         "No move."
283
+#endif
284
+#ifndef MSG_KILLED
130 285
 #define MSG_KILLED                          "KILLED. "
286
+#endif
287
+#ifndef MSG_STOPPED
131 288
 #define MSG_STOPPED                         "STOPPED. "
289
+#endif
290
+#ifndef MSG_CONTROL_RETRACT
132 291
 #define MSG_CONTROL_RETRACT                 "Retract mm"
292
+#endif
293
+#ifndef MSG_CONTROL_RETRACT_SWAP
133 294
 #define MSG_CONTROL_RETRACT_SWAP            "Swap Re.mm"
295
+#endif
296
+#ifndef MSG_CONTROL_RETRACTF
134 297
 #define MSG_CONTROL_RETRACTF                "Retract  V"
298
+#endif
299
+#ifndef MSG_CONTROL_RETRACT_ZLIFT
135 300
 #define MSG_CONTROL_RETRACT_ZLIFT           "Hop mm"
301
+#endif
302
+#ifndef MSG_CONTROL_RETRACT_RECOVER
136 303
 #define MSG_CONTROL_RETRACT_RECOVER         "UnRet +mm"
304
+#endif
305
+#ifndef MSG_CONTROL_RETRACT_RECOVER_SWAP
137 306
 #define MSG_CONTROL_RETRACT_RECOVER_SWAP    "S UnRet+mm"
307
+#endif
308
+#ifndef MSG_CONTROL_RETRACT_RECOVERF
138 309
 #define MSG_CONTROL_RETRACT_RECOVERF        "UnRet  V"
310
+#endif
311
+#ifndef MSG_AUTORETRACT
139 312
 #define MSG_AUTORETRACT                     "AutoRetr."
313
+#endif
314
+#ifndef MSG_FILAMENTCHANGE
140 315
 #define MSG_FILAMENTCHANGE                  "Change filament"
316
+#endif
317
+#ifndef MSG_INIT_SDCARD
141 318
 #define MSG_INIT_SDCARD                     "Init. SD card"
319
+#endif
320
+#ifndef MSG_CNG_SDCARD
142 321
 #define MSG_CNG_SDCARD                      "Change SD card"
322
+#endif
323
+#ifndef MSG_ZPROBE_OUT
143 324
 #define MSG_ZPROBE_OUT                      "Z probe out. bed"
325
+#endif
326
+#ifndef MSG_POSITION_UNKNOWN
144 327
 #define MSG_POSITION_UNKNOWN                "Home X/Y before Z"
328
+#endif
329
+#ifndef MSG_ZPROBE_ZOFFSET
145 330
 #define MSG_ZPROBE_ZOFFSET                  "Z Offset"
331
+#endif
332
+#ifndef MSG_BABYSTEP_X
146 333
 #define MSG_BABYSTEP_X                      "Babystep X"
334
+#endif
335
+#ifndef MSG_BABYSTEP_Y
147 336
 #define MSG_BABYSTEP_Y                      "Babystep Y"
337
+#endif
338
+#ifndef MSG_BABYSTEP_Z
148 339
 #define MSG_BABYSTEP_Z                      "Babystep Z"
340
+#endif
341
+#ifndef MSG_ENDSTOP_ABORT
149 342
 #define MSG_ENDSTOP_ABORT                   "Endstop abort"
150
-
151
-#define MSG_RECTRACT                        "Rectract"
343
+#endif
152 344
 
153 345
 #ifdef DELTA_CALIBRATION_MENU
346
+    #ifndef MSG_DELTA_CALIBRATE
154 347
     #define MSG_DELTA_CALIBRATE             "Delta Calibration"
348
+    #endif
349
+    #ifndef MSG_DELTA_CALIBRATE_X
155 350
     #define MSG_DELTA_CALIBRATE_X           "Calibrate X"
351
+    #endif
352
+    #ifndef MSG_DELTA_CALIBRATE_Y
156 353
     #define MSG_DELTA_CALIBRATE_Y           "Calibrate Y"
354
+    #endif
355
+    #ifndef MSG_DELTA_CALIBRATE_Z
157 356
     #define MSG_DELTA_CALIBRATE_Z           "Calibrate Z"
357
+    #endif
358
+    #ifndef MSG_DELTA_CALIBRATE_CENTER
158 359
     #define MSG_DELTA_CALIBRATE_CENTER      "Calibrate Center"
360
+    #endif
159 361
 #endif // DELTA_CALIBRATION_MENU
160 362
 
161 363
 #endif // LANGUAGE_EN_H

+ 4
- 34
Marlin/language_es.h View File

@@ -18,17 +18,13 @@
18 18
 #define MSG_SET_HOME_OFFSETS                "Ajustar offsets"
19 19
 #define MSG_SET_ORIGIN                      "Establecer cero"
20 20
 #define MSG_PREHEAT_PLA                     "Precalentar PLA"
21
-#define MSG_PREHEAT_PLA0                    "Precalentar PLA 1"
22
-#define MSG_PREHEAT_PLA1                    "Precalentar PLA 2"
23
-#define MSG_PREHEAT_PLA2                    "Precalentar PLA 3"
24
-#define MSG_PREHEAT_PLA012                  "Precal. PLA Todo"
21
+#define MSG_PREHEAT_PLA_N                   "Precalentar PLA "
22
+#define MSG_PREHEAT_PLA_ALL                 "Precal. PLA Todo"
25 23
 #define MSG_PREHEAT_PLA_BEDONLY             "Precal. PLA Base"
26 24
 #define MSG_PREHEAT_PLA_SETTINGS            "Ajustar temp. PLA"
27 25
 #define MSG_PREHEAT_ABS                     "Precalentar ABS"
28
-#define MSG_PREHEAT_ABS0                    "Precalentar ABS 1"
29
-#define MSG_PREHEAT_ABS1                    "Precalentar ABS 2"
30
-#define MSG_PREHEAT_ABS2                    "Precalentar ABS 3"
31
-#define MSG_PREHEAT_ABS012                  "Precal. ABS Todo"
26
+#define MSG_PREHEAT_ABS_N                   "Precalentar ABS "
27
+#define MSG_PREHEAT_ABS_ALL                 "Precal. ABS Todo"
32 28
 #define MSG_PREHEAT_ABS_BEDONLY             "Precal. ABS Base"
33 29
 #define MSG_PREHEAT_ABS_SETTINGS            "Ajustar temp. ABS"
34 30
 #define MSG_COOLDOWN                        "Enfriar"
@@ -41,21 +37,14 @@
41 37
 #define MSG_MOVE_Y                          "Mover Y"
42 38
 #define MSG_MOVE_Z                          "Mover Z"
43 39
 #define MSG_MOVE_E                          "Extrusor"
44
-#define MSG_MOVE_E1                         "Extrusor2"
45
-#define MSG_MOVE_E2                         "Extrusor3"
46 40
 #define MSG_MOVE_01MM                       "Mover 0.1mm"
47 41
 #define MSG_MOVE_1MM                        "Mover 1mm"
48 42
 #define MSG_MOVE_10MM                       "Mover 10mm"
49 43
 #define MSG_SPEED                           "Velocidad"
50 44
 #define MSG_NOZZLE                          "Nozzle"
51
-#define MSG_NOZZLE1                         "Nozzle2"
52
-#define MSG_NOZZLE2                         "Nozzle3"
53 45
 #define MSG_BED                             "Base"
54 46
 #define MSG_FAN_SPEED                       "Ventilador"
55 47
 #define MSG_FLOW                            "Flujo"
56
-#define MSG_FLOW0                           "Flujo 0"
57
-#define MSG_FLOW1                           "Flujo 1"
58
-#define MSG_FLOW2                           "Flujo 2"
59 48
 #define MSG_CONTROL                         "Control"
60 49
 #define MSG_MIN                             "\002 Min"
61 50
 #define MSG_MAX                             "\002 Max"
@@ -67,14 +56,6 @@
67 56
 #define MSG_PID_I                           "PID-I"
68 57
 #define MSG_PID_D                           "PID-D"
69 58
 #define MSG_PID_C                           "PID-C"
70
-#define MSG_PID_P1                          "PID-P E2"
71
-#define MSG_PID_I1                          "PID-I E2"
72
-#define MSG_PID_D1                          "PID-D E2"
73
-#define MSG_PID_C1                          "PID-C E2"
74
-#define MSG_PID_P2                          "PID-P E3"
75
-#define MSG_PID_I2                          "PID-I E3"
76
-#define MSG_PID_D2                          "PID-D E3"
77
-#define MSG_PID_C2                          "PID-C E3"
78 59
 #define MSG_ACC                             "Acel"
79 60
 #define MSG_VXY_JERK                        "Vxy-jerk"
80 61
 #define MSG_VZ_JERK                         "Vz-jerk"
@@ -138,17 +119,6 @@
138 119
 #define MSG_BABYSTEP_Z                      "Babystep Z"
139 120
 #define MSG_ENDSTOP_ABORT                   "Endstop abort"
140 121
 
141
-#define MSG_RECTRACT                        "Retraer"
142
-#define MSG_RECTRACT_WIDE                   "Retraer"
143
-#define MSG_TEMPERATURE_WIDE                "Temperatura"
144
-#define MSG_TEMPERATURE_RTN                 "Temperatura"
145
-#define MSG_MAIN_WIDE                       "Menu principal"
146
-#define MSG_MOTION_WIDE                     "Movimiento"
147
-#define MSG_PREPARE_ALT                     "Preparar"
148
-#define MSG_CONTROL_ARROW                   "Control \x7E"
149
-#define MSG_RETRACT_ARROW                   "Retraer \x7E"
150
-#define MSG_STEPPER_RELEASED                "Desacoplada."
151
-
152 122
 #ifdef DELTA_CALIBRATION_MENU
153 123
     #define MSG_DELTA_CALIBRATE             "Delta Calibration"
154 124
     #define MSG_DELTA_CALIBRATE_X           "Calibrate X"

+ 4
- 25
Marlin/language_eu.h View File

@@ -18,17 +18,13 @@
18 18
 #define MSG_SET_HOME_OFFSETS                "Set home offsets"
19 19
 #define MSG_SET_ORIGIN                      "Hasiera ipini"
20 20
 #define MSG_PREHEAT_PLA                     "Aurreberotu PLA"
21
-#define MSG_PREHEAT_PLA0                    "Aurreberotu PLA1"
22
-#define MSG_PREHEAT_PLA1                    "Aurreberotu PLA2"
23
-#define MSG_PREHEAT_PLA2                    "Aurreberotu PLA3"
24
-#define MSG_PREHEAT_PLA012                  "Berotu PLA Guztia"
21
+#define MSG_PREHEAT_PLA_N                   "Aurreberotu PLA "
22
+#define MSG_PREHEAT_PLA_ALL                 "Berotu PLA Guztia"
25 23
 #define MSG_PREHEAT_PLA_BEDONLY             "Berotu PLA Ohea"
26 24
 #define MSG_PREHEAT_PLA_SETTINGS            "Berotu PLA Konfig"
27 25
 #define MSG_PREHEAT_ABS                     "Aurreberotu ABS"
28
-#define MSG_PREHEAT_ABS0                    "Aurreberotu ABS 1"
29
-#define MSG_PREHEAT_ABS1                    "Aurreberotu ABS 2"
30
-#define MSG_PREHEAT_ABS2                    "Aurreberotu ABS 3"
31
-#define MSG_PREHEAT_ABS012                  "Berotu ABS Guztia"
26
+#define MSG_PREHEAT_ABS_N                   "Aurreberotu ABS "
27
+#define MSG_PREHEAT_ABS_ALL                 "Berotu ABS Guztia"
32 28
 #define MSG_PREHEAT_ABS_BEDONLY             "Berotu ABS Ohea"
33 29
 #define MSG_PREHEAT_ABS_SETTINGS            "Berotu ABS Konfig"
34 30
 #define MSG_COOLDOWN                        "Hoztu"
@@ -41,21 +37,14 @@
41 37
 #define MSG_MOVE_Y                          "Mugitu Y"
42 38
 #define MSG_MOVE_Z                          "Mugitu Z"
43 39
 #define MSG_MOVE_E                          "Estrusorea"
44
-#define MSG_MOVE_E1                         "Estrusorea2"
45
-#define MSG_MOVE_E2                         "Estrusorea3"
46 40
 #define MSG_MOVE_01MM                       "Mugitu 0.1mm"
47 41
 #define MSG_MOVE_1MM                        "Mugitu 1mm"
48 42
 #define MSG_MOVE_10MM                       "Mugitu 10mm"
49 43
 #define MSG_SPEED                           "Abiadura"
50 44
 #define MSG_NOZZLE                          "Pita"
51
-#define MSG_NOZZLE1                         "Pita2"
52
-#define MSG_NOZZLE2                         "Pita3"
53 45
 #define MSG_BED                             "Ohea"
54 46
 #define MSG_FAN_SPEED                       "Haizagailua"
55 47
 #define MSG_FLOW                            "Fluxua"
56
-#define MSG_FLOW0                           "Fluxua 0"
57
-#define MSG_FLOW1                           "Fluxua 1"
58
-#define MSG_FLOW2                           "Fluxua 2"
59 48
 #define MSG_CONTROL                         "Kontrola"
60 49
 #define MSG_MIN                             " \002 Min"
61 50
 #define MSG_MAX                             " \002 Max"
@@ -67,14 +56,6 @@
67 56
 #define MSG_PID_I                           "PID-I"
68 57
 #define MSG_PID_D                           "PID-D"
69 58
 #define MSG_PID_C                           "PID-C"
70
-#define MSG_PID_P1                          "PID-P E2"
71
-#define MSG_PID_I1                          "PID-I E2"
72
-#define MSG_PID_D1                          "PID-D E2"
73
-#define MSG_PID_C1                          "PID-C E2"
74
-#define MSG_PID_P2                          "PID-P E3"
75
-#define MSG_PID_I2                          "PID-I E3"
76
-#define MSG_PID_D2                          "PID-D E3"
77
-#define MSG_PID_C2                          "PID-C E3"
78 59
 #define MSG_ACC                             "Azelerazioa"
79 60
 #define MSG_VXY_JERK                        "Vxy-astindua"
80 61
 #define MSG_VZ_JERK                         "Vz-astindua"
@@ -138,8 +119,6 @@
138 119
 #define MSG_BABYSTEP_Z                      "Babystep Z"
139 120
 #define MSG_ENDSTOP_ABORT                   "Endstop deuseztat"
140 121
 
141
-#define MSG_RECTRACT                        "Atzera eragin"
142
-
143 122
 #ifdef DELTA_CALIBRATION_MENU
144 123
     #define MSG_DELTA_CALIBRATE             "Delta Calibration"
145 124
     #define MSG_DELTA_CALIBRATE_X           "Calibrate X"

+ 4
- 25
Marlin/language_fi.h View File

@@ -18,17 +18,13 @@
18 18
 #define MSG_SET_HOME_OFFSETS                "Set home offsets"
19 19
 #define MSG_SET_ORIGIN                      "Aseta origo"
20 20
 #define MSG_PREHEAT_PLA                     "Esilammita PLA"
21
-#define MSG_PREHEAT_PLA0                    "Esilammita PLA 1"
22
-#define MSG_PREHEAT_PLA1                    "Esilammita PLA 2"
23
-#define MSG_PREHEAT_PLA2                    "Esilammita PLA 3"
24
-#define MSG_PREHEAT_PLA012                  "Esila. PLA Kaikki"
21
+#define MSG_PREHEAT_PLA_N                   "Esilammita PLA "
22
+#define MSG_PREHEAT_PLA_ALL                 "Esila. PLA Kaikki"
25 23
 #define MSG_PREHEAT_PLA_BEDONLY             "Esila. PLA Alusta"
26 24
 #define MSG_PREHEAT_PLA_SETTINGS            "Esilamm. PLA konf"
27 25
 #define MSG_PREHEAT_ABS                     "Esilammita ABS"
28
-#define MSG_PREHEAT_ABS0                    "Esilammita ABS 1"
29
-#define MSG_PREHEAT_ABS1                    "Esilammita ABS 2"
30
-#define MSG_PREHEAT_ABS2                    "Esilammita ABS 3"
31
-#define MSG_PREHEAT_ABS012                  "Esila. ABS Kaikki"
26
+#define MSG_PREHEAT_ABS_N                   "Esilammita ABS "
27
+#define MSG_PREHEAT_ABS_ALL                 "Esila. ABS Kaikki"
32 28
 #define MSG_PREHEAT_ABS_BEDONLY             "Esila. ABS Alusta"
33 29
 #define MSG_PREHEAT_ABS_SETTINGS            "Esilamm. ABS konf"
34 30
 #define MSG_COOLDOWN                        "Jaahdyta"
@@ -41,21 +37,14 @@
41 37
 #define MSG_MOVE_Y                          "Move Y"
42 38
 #define MSG_MOVE_Z                          "Move Z"
43 39
 #define MSG_MOVE_E                          "Extruder"
44
-#define MSG_MOVE_E1                         "Extruder2"
45
-#define MSG_MOVE_E2                         "Extruder3"
46 40
 #define MSG_MOVE_01MM                       "Move 0.1mm"
47 41
 #define MSG_MOVE_1MM                        "Move 1mm"
48 42
 #define MSG_MOVE_10MM                       "Move 10mm"
49 43
 #define MSG_SPEED                           "Nopeus"
50 44
 #define MSG_NOZZLE                          "Suutin"
51
-#define MSG_NOZZLE1                         "Suutin2"
52
-#define MSG_NOZZLE2                         "Suutin3"
53 45
 #define MSG_BED                             "Alusta"
54 46
 #define MSG_FAN_SPEED                       "Tuul. nopeus"
55 47
 #define MSG_FLOW                            "Virtaus"
56
-#define MSG_FLOW0                           "Virtaus 0"
57
-#define MSG_FLOW1                           "Virtaus 1"
58
-#define MSG_FLOW2                           "Virtaus 2"
59 48
 #define MSG_CONTROL                         "Kontrolli"
60 49
 #define MSG_MIN                             " \002 Min"
61 50
 #define MSG_MAX                             " \002 Max"
@@ -67,14 +56,6 @@
67 56
 #define MSG_PID_I                           "PID-I"
68 57
 #define MSG_PID_D                           "PID-D"
69 58
 #define MSG_PID_C                           "PID-C"
70
-#define MSG_PID_P1                          "PID-P E2"
71
-#define MSG_PID_I1                          "PID-I E2"
72
-#define MSG_PID_D1                          "PID-D E2"
73
-#define MSG_PID_C1                          "PID-C E2"
74
-#define MSG_PID_P2                          "PID-P E3"
75
-#define MSG_PID_I2                          "PID-I E3"
76
-#define MSG_PID_D2                          "PID-D E3"
77
-#define MSG_PID_C2                          "PID-C E3"
78 59
 #define MSG_ACC                             "Kiihtyv"
79 60
 #define MSG_VXY_JERK                        "Vxy-jerk"
80 61
 #define MSG_VZ_JERK                         "Vz-jerk"
@@ -138,8 +119,6 @@
138 119
 #define MSG_BABYSTEP_Z                      "Babystep Z"
139 120
 #define MSG_ENDSTOP_ABORT                   "Endstop abort"
140 121
 
141
-#define MSG_RECTRACT                        "Veda takaisin"
142
-
143 122
 #ifdef DELTA_CALIBRATION_MENU
144 123
     #define MSG_DELTA_CALIBRATE             "Delta Calibration"
145 124
     #define MSG_DELTA_CALIBRATE_X           "Calibrate X"

+ 4
- 26
Marlin/language_fr.h View File

@@ -18,17 +18,13 @@
18 18
 #define MSG_SET_HOME_OFFSETS                "Set home offsets"
19 19
 #define MSG_SET_ORIGIN                      "Regler origine"
20 20
 #define MSG_PREHEAT_PLA                     "Prechauffage PLA"
21
-#define MSG_PREHEAT_PLA0                    "Prechauff. PLA 1"
22
-#define MSG_PREHEAT_PLA1                    "Prechauff. PLA 2"
23
-#define MSG_PREHEAT_PLA2                    "Prechauff. PLA 3"
24
-#define MSG_PREHEAT_PLA012                  "Prech. PLA Tout"
21
+#define MSG_PREHEAT_PLA_N                   "Prechauff. PLA "
22
+#define MSG_PREHEAT_PLA_ALL                 "Prech. PLA Tout"
25 23
 #define MSG_PREHEAT_PLA_BEDONLY             "Prech. PLA Plateau"
26 24
 #define MSG_PREHEAT_PLA_SETTINGS            "Regl. prech. PLA"
27 25
 #define MSG_PREHEAT_ABS                     "Prechauffage ABS"
28
-#define MSG_PREHEAT_ABS0                    "Prechauff. ABS 1"
29
-#define MSG_PREHEAT_ABS1                    "Prechauff. ABS 2"
30
-#define MSG_PREHEAT_ABS2                    "Prechauff. ABS 3"
31
-#define MSG_PREHEAT_ABS012                  "Prech. ABS Tout"
26
+#define MSG_PREHEAT_ABS_N                   "Prechauff. ABS "
27
+#define MSG_PREHEAT_ABS_ALL                 "Prech. ABS Tout"
32 28
 #define MSG_PREHEAT_ABS_BEDONLY             "Prech. ABS Plateau"
33 29
 #define MSG_PREHEAT_ABS_SETTINGS            "Regl. prech. ABS"
34 30
 #define MSG_COOLDOWN                        "Refroidir"
@@ -41,21 +37,14 @@
41 37
 #define MSG_MOVE_Y                          "Move Y"
42 38
 #define MSG_MOVE_Z                          "Move Z"
43 39
 #define MSG_MOVE_E                          "Extruder"
44
-#define MSG_MOVE_E1                         "Extruder2"
45
-#define MSG_MOVE_E2                         "Extruder3"
46 40
 #define MSG_MOVE_01MM                       "Move 0.1mm"
47 41
 #define MSG_MOVE_1MM                        "Move 1mm"
48 42
 #define MSG_MOVE_10MM                       "Move 10mm"
49 43
 #define MSG_SPEED                           " Vitesse"
50 44
 #define MSG_NOZZLE                          "Buse"
51
-#define MSG_NOZZLE1                         "Buse2"
52
-#define MSG_NOZZLE2                         "Buse3"
53 45
 #define MSG_BED                             "Plateau"
54 46
 #define MSG_FAN_SPEED                       "Vite. ventilateur"
55 47
 #define MSG_FLOW                            "Flux"
56
-#define MSG_FLOW0                           "Flux 0"
57
-#define MSG_FLOW1                           "Flux 1"
58
-#define MSG_FLOW2                           "Flux 2"
59 48
 #define MSG_CONTROL                         "Controler"
60 49
 #define MSG_MIN                             " \002 Min"
61 50
 #define MSG_MAX                             " \002 Max"
@@ -67,14 +56,6 @@
67 56
 #define MSG_PID_I                           "PID-I"
68 57
 #define MSG_PID_D                           "PID-D"
69 58
 #define MSG_PID_C                           "PID-C"
70
-#define MSG_PID_P1                          "PID-P E2"
71
-#define MSG_PID_I1                          "PID-I E2"
72
-#define MSG_PID_D1                          "PID-D E2"
73
-#define MSG_PID_C1                          "PID-C E2"
74
-#define MSG_PID_P2                          "PID-P E3"
75
-#define MSG_PID_I2                          "PID-I E3"
76
-#define MSG_PID_D2                          "PID-D E3"
77
-#define MSG_PID_C2                          "PID-C E3"
78 59
 #define MSG_ACC                             "Accel"
79 60
 #define MSG_VXY_JERK                        "Vxy-jerk"
80 61
 #define MSG_VZ_JERK                         "Vz-jerk"
@@ -138,9 +119,6 @@
138 119
 #define MSG_BABYSTEP_Z                      "Babystep Z"
139 120
 #define MSG_ENDSTOP_ABORT                   "Butee abandon"
140 121
 
141
-#define MSG_RECTRACT                        "Rectract"
142
-#define MSG_STEPPER_RELEASED                "RELACHE."
143
-
144 122
 #ifdef DELTA_CALIBRATION_MENU
145 123
     #define MSG_DELTA_CALIBRATE             "Delta Calibration"
146 124
     #define MSG_DELTA_CALIBRATE_X           "Calibrate X"

+ 7
- 37
Marlin/language_it.h View File

@@ -18,19 +18,13 @@
18 18
 #define MSG_SET_HOME_OFFSETS                "Setta offset home"
19 19
 #define MSG_SET_ORIGIN                      "Imposta Origine"
20 20
 #define MSG_PREHEAT_PLA                     "Preriscalda PLA"
21
-#define MSG_PREHEAT_PLA0                    "Preriscalda PLA 1"
22
-#define MSG_PREHEAT_PLA1                    "Preriscalda PLA 2"
23
-#define MSG_PREHEAT_PLA2                    "Preriscalda PLA 3"
24
-#define MSG_PREHEAT_PLA3                    "Preriscalda PLA 4"
25
-#define MSG_PREHEAT_PLA0123                 "Prer. PLA Tutto"
21
+#define MSG_PREHEAT_PLA_N                   "Preriscalda PLA "
22
+#define MSG_PREHEAT_PLA_ALL                 "Prer. PLA Tutto"
26 23
 #define MSG_PREHEAT_PLA_BEDONLY             "Prer. PLA Piatto"
27 24
 #define MSG_PREHEAT_PLA_SETTINGS            "Config. prer. PLA"
28 25
 #define MSG_PREHEAT_ABS                     "Preriscalda ABS"
29
-#define MSG_PREHEAT_ABS0                    "Preriscalda ABS 1"
30
-#define MSG_PREHEAT_ABS1                    "Preriscalda ABS 2"
31
-#define MSG_PREHEAT_ABS2                    "Preriscalda ABS 3"
32
-#define MSG_PREHEAT_ABS3                    "Preriscalda ABS 4"
33
-#define MSG_PREHEAT_ABS0123                 "Prer. ABS Tutto"
26
+#define MSG_PREHEAT_ABS_N                   "Preriscalda ABS "
27
+#define MSG_PREHEAT_ABS_ALL                 "Prer. ABS Tutto"
34 28
 #define MSG_PREHEAT_ABS_BEDONLY             "Prer. ABS Piatto"
35 29
 #define MSG_PREHEAT_ABS_SETTINGS            "Config. prer. ABS"
36 30
 #define MSG_COOLDOWN                        "Raffredda"
@@ -43,28 +37,18 @@
43 37
 #define MSG_MOVE_Y                          "Muovi Y"
44 38
 #define MSG_MOVE_Z                          "Muovi Z"
45 39
 #define MSG_MOVE_E                          "Estrusore"
46
-#define MSG_MOVE_E1                         "Estrusore 2"
47
-#define MSG_MOVE_E2                         "Estrusore 3"
48
-#define MSG_MOVE_E3                         "Estrusore 4"
49 40
 #define MSG_MOVE_01MM                       "Muovi di 0.1mm"
50 41
 #define MSG_MOVE_1MM                        "Muovi di   1mm"
51 42
 #define MSG_MOVE_10MM                       "Muovi di  10mm"
52 43
 #define MSG_SPEED                           "Velcità"
53 44
 #define MSG_NOZZLE                          "Ugello"
54
-#define MSG_NOZZLE1                         "Ugello2"
55
-#define MSG_NOZZLE2                         "Ugello3"
56
-#define MSG_NOZZLE3                         "Ugello4"
57 45
 #define MSG_BED                             "Piatto"
58 46
 #define MSG_FAN_SPEED                       "Ventola"
59 47
 #define MSG_FLOW                            "Flusso"
60
-#define MSG_FLOW0                           "Flusso 0"
61
-#define MSG_FLOW1                           "Flusso 1"
62
-#define MSG_FLOW2                           "Flusso 2"
63
-#define MSG_FLOW3                           "Flusso 3"
64 48
 #define MSG_CONTROL                         "Controllo"
65
-#define MSG_MIN                             " \002 Min:"
66
-#define MSG_MAX                             " \002 Max:"
67
-#define MSG_FACTOR                          " \002 Fact:"
49
+#define MSG_MIN                             " \002 Min"
50
+#define MSG_MAX                             " \002 Max"
51
+#define MSG_FACTOR                          " \002 Fact"
68 52
 #define MSG_AUTOTEMP                        "Autotemp"
69 53
 #define MSG_ON                              "ON "
70 54
 #define MSG_OFF                             "OFF"
@@ -72,18 +56,6 @@
72 56
 #define MSG_PID_I                           "PID-I"
73 57
 #define MSG_PID_D                           "PID-D"
74 58
 #define MSG_PID_C                           "PID-C"
75
-#define MSG_PID_P1                          "PID-P E2"
76
-#define MSG_PID_I1                          "PID-I E2"
77
-#define MSG_PID_D1                          "PID-D E2"
78
-#define MSG_PID_C1                          "PID-C E2"
79
-#define MSG_PID_P2                          "PID-P E3"
80
-#define MSG_PID_I2                          "PID-I E3"
81
-#define MSG_PID_D2                          "PID-D E3"
82
-#define MSG_PID_C2                          "PID-C E3"
83
-#define MSG_PID_P3                          "PID-P E4"
84
-#define MSG_PID_I3                          "PID-I E4"
85
-#define MSG_PID_D3                          "PID-D E4"
86
-#define MSG_PID_C3                          "PID-C E4"
87 59
 #define MSG_ACC                             "Accel."
88 60
 #define MSG_VXY_JERK                        "Vxy-jerk"
89 61
 #define MSG_VZ_JERK                         "Vz-jerk"
@@ -148,8 +120,6 @@
148 120
 #define MSG_BABYSTEP_Z                      "Babystep Z"
149 121
 #define MSG_ENDSTOP_ABORT                   "Finecorsa abort"
150 122
 
151
-#define MSG_RECTRACT                        "Ritrai"
152
-
153 123
 #ifdef DELTA_CALIBRATION_MENU
154 124
     #define MSG_DELTA_CALIBRATE             "Calibraz. Delta"
155 125
     #define MSG_DELTA_CALIBRATE_X           "Calibra X"

+ 4
- 25
Marlin/language_nl.h View File

@@ -18,17 +18,13 @@
18 18
 #define MSG_SET_HOME_OFFSETS                "Set home offsets"
19 19
 #define MSG_SET_ORIGIN                      "Nulpunt instellen"
20 20
 #define MSG_PREHEAT_PLA                     "PLA voorverwarmen"
21
-#define MSG_PREHEAT_PLA0                    "PLA voorverw. 0"
22
-#define MSG_PREHEAT_PLA1                    "PLA voorverw. 1"
23
-#define MSG_PREHEAT_PLA2                    "PLA voorverw. 2"
24
-#define MSG_PREHEAT_PLA012                  "PLA voorverw. aan"
21
+#define MSG_PREHEAT_PLA_N                   "PLA voorverw. "
22
+#define MSG_PREHEAT_PLA_ALL                 "PLA voorverw. aan"
25 23
 #define MSG_PREHEAT_PLA_BEDONLY             "PLA voorverw. Bed"
26 24
 #define MSG_PREHEAT_PLA_SETTINGS            "PLA verw. conf"
27 25
 #define MSG_PREHEAT_ABS                     "ABS voorverwarmen"
28
-#define MSG_PREHEAT_ABS0                    "ABS voorverw. 0"
29
-#define MSG_PREHEAT_ABS1                    "ABS voorverw. 1"
30
-#define MSG_PREHEAT_ABS2                    "ABS voorverw. 2"
31
-#define MSG_PREHEAT_ABS012                  "ABS voorverw. aan"
26
+#define MSG_PREHEAT_ABS_N                   "ABS voorverw. "
27
+#define MSG_PREHEAT_ABS_ALL                 "ABS voorverw. aan"
32 28
 #define MSG_PREHEAT_ABS_BEDONLY             "ABS voorverw. Bed"
33 29
 #define MSG_PREHEAT_ABS_SETTINGS            "ABS verw. conf"
34 30
 #define MSG_COOLDOWN                        "Afkoelen"
@@ -41,21 +37,14 @@
41 37
 #define MSG_MOVE_Y                          "Verplaats Y"
42 38
 #define MSG_MOVE_Z                          "Verplaats Z"
43 39
 #define MSG_MOVE_E                          "Extruder"
44
-#define MSG_MOVE_E1                         "Extruder2"
45
-#define MSG_MOVE_E2                         "Extruder3"
46 40
 #define MSG_MOVE_01MM                       "Verplaats 0.1mm"
47 41
 #define MSG_MOVE_1MM                        "Verplaats 1mm"
48 42
 #define MSG_MOVE_10MM                       "Verplaats 10mm"
49 43
 #define MSG_SPEED                           "Snelheid"
50 44
 #define MSG_NOZZLE                          "Nozzle"
51
-#define MSG_NOZZLE1                         "Nozzle2"
52
-#define MSG_NOZZLE2                         "Nozzle3"
53 45
 #define MSG_BED                             "Bed"
54 46
 #define MSG_FAN_SPEED                       "Fan snelheid"
55 47
 #define MSG_FLOW                            "Flow"
56
-#define MSG_FLOW0                           "Flow 0"
57
-#define MSG_FLOW1                           "Flow 1"
58
-#define MSG_FLOW2                           "Flow 2"
59 48
 #define MSG_CONTROL                         "Control"
60 49
 #define MSG_MIN                             " \002 Min"
61 50
 #define MSG_MAX                             " \002 Max"
@@ -67,14 +56,6 @@
67 56
 #define MSG_PID_I                           "PID-I"
68 57
 #define MSG_PID_D                           "PID-D"
69 58
 #define MSG_PID_C                           "PID-C"
70
-#define MSG_PID_P1                          "PID-P E2"
71
-#define MSG_PID_I1                          "PID-I E2"
72
-#define MSG_PID_D1                          "PID-D E2"
73
-#define MSG_PID_C1                          "PID-C E2"
74
-#define MSG_PID_P2                          "PID-P E3"
75
-#define MSG_PID_I2                          "PID-I E3"
76
-#define MSG_PID_D2                          "PID-D E3"
77
-#define MSG_PID_C2                          "PID-C E3"
78 59
 #define MSG_ACC                             "Versn"
79 60
 #define MSG_VXY_JERK                        "Vxy-jerk"
80 61
 #define MSG_VZ_JERK                         "Vz-jerk"
@@ -138,8 +119,6 @@
138 119
 #define MSG_BABYSTEP_Z                      "Babystap Z"
139 120
 #define MSG_ENDSTOP_ABORT                   "Endstop afbr."
140 121
 
141
-#define MSG_RECTRACT                        "Terugtrekken"
142
-
143 122
 #ifdef DELTA_CALIBRATION_MENU
144 123
     #define MSG_DELTA_CALIBRATE             "Delta Calibration"
145 124
     #define MSG_DELTA_CALIBRATE_X           "Calibrate X"

+ 5
- 27
Marlin/language_pl.h View File

@@ -18,17 +18,13 @@
18 18
 #define MSG_SET_HOME_OFFSETS                "Set home offsets"
19 19
 #define MSG_SET_ORIGIN                      "Ustaw punkt zero"
20 20
 #define MSG_PREHEAT_PLA                     "Rozgrzej PLA"
21
-#define MSG_PREHEAT_PLA0                    "Rozgrzej PLA 1"
22
-#define MSG_PREHEAT_PLA1                    "Rozgrzej PLA 2"
23
-#define MSG_PREHEAT_PLA2                    "Rozgrzej PLA 3"
24
-#define MSG_PREHEAT_PLA012                  "Roz. PLA Wszystko"
21
+#define MSG_PREHEAT_PLA_N                   "Rozgrzej PLA "
22
+#define MSG_PREHEAT_PLA_ALL                 "Roz. PLA Wszystko"
25 23
 #define MSG_PREHEAT_PLA_BEDONLY             "Rozgrzej PLA Loze"
26 24
 #define MSG_PREHEAT_PLA_SETTINGS            "Ustaw. rozg. PLA"
27 25
 #define MSG_PREHEAT_ABS                     "Rozgrzej ABS"
28
-#define MSG_PREHEAT_ABS0                    "Rozgrzej ABS 1"
29
-#define MSG_PREHEAT_ABS1                    "Rozgrzej ABS 2"
30
-#define MSG_PREHEAT_ABS2                    "Rozgrzej ABS 3"
31
-#define MSG_PREHEAT_ABS012                  "Roz. ABS Wszystko"
26
+#define MSG_PREHEAT_ABS_N                   "Rozgrzej ABS "
27
+#define MSG_PREHEAT_ABS_ALL                 "Roz. ABS Wszystko"
32 28
 #define MSG_PREHEAT_ABS_BEDONLY             "Rozgrzej ABS Loze"
33 29
 #define MSG_PREHEAT_ABS_SETTINGS            "Ustaw. rozg. ABS"
34 30
 #define MSG_COOLDOWN                        "Chlodzenie"
@@ -41,21 +37,14 @@
41 37
 #define MSG_MOVE_Y                          "Przesun w Y"
42 38
 #define MSG_MOVE_Z                          "Przesun w Z"
43 39
 #define MSG_MOVE_E                          "Ekstruzja (os E)"
44
-#define MSG_MOVE_E1                         "Extruder2"
45
-#define MSG_MOVE_E2                         "Extruder3"
46 40
 #define MSG_MOVE_01MM                       "Przesuwaj co .1mm"
47 41
 #define MSG_MOVE_1MM                        "Przesuwaj co 1mm"
48 42
 #define MSG_MOVE_10MM                       "Przesuwaj co 10mm"
49 43
 #define MSG_SPEED                           "Predkosc"
50 44
 #define MSG_NOZZLE                          "Dysza"
51
-#define MSG_NOZZLE1                         "Dysza 2"
52
-#define MSG_NOZZLE2                         "Dysza 3"
53 45
 #define MSG_BED                             "Loze"
54 46
 #define MSG_FAN_SPEED                       "Obroty wiatraka"
55 47
 #define MSG_FLOW                            "Przeplyw"
56
-#define MSG_FLOW0                           "Przeplyw 0"
57
-#define MSG_FLOW1                           "Przeplyw 1"
58
-#define MSG_FLOW2                           "Przeplyw 2"
59 48
 #define MSG_CONTROL                         "Ustawienia"
60 49
 #define MSG_MIN                             " \002 Min"
61 50
 #define MSG_MAX                             " \002 Max"
@@ -67,14 +56,6 @@
67 56
 #define MSG_PID_I                           "PID-I"
68 57
 #define MSG_PID_D                           "PID-D"
69 58
 #define MSG_PID_C                           "PID-C"
70
-#define MSG_PID_P1                          "PID-P E2"
71
-#define MSG_PID_I1                          "PID-I E2"
72
-#define MSG_PID_D1                          "PID-D E2"
73
-#define MSG_PID_C1                          "PID-C E2"
74
-#define MSG_PID_P2                          "PID-P E3"
75
-#define MSG_PID_I2                          "PID-I E3"
76
-#define MSG_PID_D2                          "PID-D E3"
77
-#define MSG_PID_C2                          "PID-C E3"
78 59
 #define MSG_ACC                             "Przyspieszenie"
79 60
 #define MSG_VXY_JERK                        "Zryw Vxy"
80 61
 #define MSG_VZ_JERK                         "Zryw Vz"
@@ -122,7 +103,7 @@
122 103
 #define MSG_CONTROL_RETRACT                 "Wycofaj mm"
123 104
 #define MSG_CONTROL_RETRACT_SWAP            "Z Wycof. mm"
124 105
 #define MSG_CONTROL_RETRACTF                "Wycofaj  V"
125
-#define MSG_CONTROL_RETRACT_ZLIFT           "Skok Z mm:"
106
+#define MSG_CONTROL_RETRACT_ZLIFT           "Skok Z mm"
126 107
 #define MSG_CONTROL_RETRACT_RECOVER         "Cof. wycof. +mm"
127 108
 #define MSG_CONTROL_RETRACT_RECOVER_SWAP    "Z Cof. wyc. +mm"
128 109
 #define MSG_CONTROL_RETRACT_RECOVERF        "Cof. wycof.  V"
@@ -138,9 +119,6 @@
138 119
 #define MSG_BABYSTEP_Z                      "Babystep Z"
139 120
 #define MSG_ENDSTOP_ABORT                   "Blad wyl. kranc."
140 121
 
141
-#define MSG_RECTRACT                        "Wycofanie"
142
-#define MSG_STEPPER_RELEASED                "Zwolniony."
143
-
144 122
 #ifdef DELTA_CALIBRATION_MENU
145 123
     #define MSG_DELTA_CALIBRATE             "Delta Calibration"
146 124
     #define MSG_DELTA_CALIBRATE_X           "Calibrate X"

+ 130
- 0
Marlin/language_pt-br.h View File

@@ -0,0 +1,130 @@
1
+/**
2
+ * Portuguese (Brazil)
3
+ *
4
+ * LCD Menu Messages
5
+ * Please note these are limited to 17 characters!
6
+ *
7
+ */
8
+#ifndef LANGUAGE_PT_BR_H
9
+#define LANGUAGE_PT_BR_H
10
+
11
+#define WELCOME_MSG							MACHINE_NAME " pronto."
12
+#define MSG_SD_INSERTED                     "Cartao inserido"
13
+#define MSG_SD_REMOVED                      "Cartao removido"
14
+#define MSG_MAIN                            " Menu principal \003"
15
+#define MSG_AUTOSTART                       "Autostart"
16
+#define MSG_DISABLE_STEPPERS                " Apagar motores"
17
+#define MSG_AUTO_HOME                       "Ir para origen"
18
+#define MSG_SET_HOME_OFFSETS                "Set home offsets"
19
+#define MSG_SET_ORIGIN                      "Estabelecer orig."
20
+#define MSG_PREHEAT_PLA                     "Pre-aquecer PLA"
21
+#define MSG_PREHEAT_PLA_N                   "Pre-aquecer PLA "
22
+#define MSG_PREHEAT_PLA_ALL                 "Pre-aq. PLA Tudo"
23
+#define MSG_PREHEAT_PLA_BEDONLY             "Pre-aq. PLA \002Base"
24
+#define MSG_PREHEAT_PLA_SETTINGS            "PLA setting"
25
+#define MSG_PREHEAT_ABS                     "Pre-aquecer ABS"
26
+#define MSG_PREHEAT_ABS_N                   "Pre-aquecer ABS "
27
+#define MSG_PREHEAT_ABS_ALL                 "Pre-aq. ABS Tudo"
28
+#define MSG_PREHEAT_ABS_BEDONLY             "Pre-aq. ABS \002Base"
29
+#define MSG_PREHEAT_ABS_SETTINGS            "ABS setting"
30
+#define MSG_COOLDOWN                        "Esfriar"
31
+#define MSG_SWITCH_PS_ON                    "Switch Power On"
32
+#define MSG_SWITCH_PS_OFF                   "Switch Power Off"
33
+#define MSG_EXTRUDE                         "Extrudar"
34
+#define MSG_RETRACT                         "Retrair"
35
+#define MSG_MOVE_AXIS                       "Mover eixo      \x7E"
36
+#define MSG_MOVE_X                          "Move X"
37
+#define MSG_MOVE_Y                          "Move Y"
38
+#define MSG_MOVE_Z                          "Move Z"
39
+#define MSG_MOVE_E                          "Extruder"
40
+#define MSG_MOVE_01MM                       "Move 0.1mm"
41
+#define MSG_MOVE_1MM                        "Move 1mm"
42
+#define MSG_MOVE_10MM                       "Move 10mm"
43
+#define MSG_SPEED                           "Velocidade"
44
+#define MSG_NOZZLE                          "\002Nozzle"
45
+#define MSG_BED                             "\002Base"
46
+#define MSG_FAN_SPEED                       "Velocidade vento."
47
+#define MSG_FLOW                            "Fluxo"
48
+#define MSG_CONTROL                         "Controle \003"
49
+#define MSG_MIN                             "\002 Min"
50
+#define MSG_MAX                             "\002 Max"
51
+#define MSG_FACTOR                          "\002 Fact"
52
+#define MSG_AUTOTEMP                        "Autotemp"
53
+#define MSG_ON                              "On "
54
+#define MSG_OFF                             "Off"
55
+#define MSG_PID_P                           "PID-P"
56
+#define MSG_PID_I                           "PID-I"
57
+#define MSG_PID_D                           "PID-D"
58
+#define MSG_PID_C                           "PID-C"
59
+#define MSG_ACC                             "Acc"
60
+#define MSG_VXY_JERK                        "Vxy-jerk"
61
+#define MSG_VZ_JERK                         "Vz-jerk"
62
+#define MSG_VE_JERK                         "Ve-jerk"
63
+#define MSG_VMAX                            " Vmax "
64
+#define MSG_X                               "x"
65
+#define MSG_Y                               "y"
66
+#define MSG_Z                               "z"
67
+#define MSG_E                               "e"
68
+#define MSG_VMIN                            "Vmin"
69
+#define MSG_VTRAV_MIN                       "VTrav min"
70
+#define MSG_AMAX                            "Amax "
71
+#define MSG_A_RETRACT                       "A-retract"
72
+#define MSG_XSTEPS                          "Xpasso/mm"
73
+#define MSG_YSTEPS                          "Ypasso/mm"
74
+#define MSG_ZSTEPS                          "Zpasso/mm"
75
+#define MSG_ESTEPS                          "Epasso/mm"
76
+#define MSG_TEMPERATURE                     "Temperatura"
77
+#define MSG_MOTION                          "Movimento"
78
+#define MSG_VOLUMETRIC                      "Filament"
79
+#define MSG_VOLUMETRIC_ENABLED		        "E in mm3"
80
+#define MSG_FILAMENT_SIZE_EXTRUDER_0        "Fil. Dia. 1"
81
+#define MSG_FILAMENT_SIZE_EXTRUDER_1        "Fil. Dia. 2"
82
+#define MSG_FILAMENT_SIZE_EXTRUDER_2        "Fil. Dia. 3"
83
+#define MSG_CONTRAST                        "Contrast"
84
+#define MSG_STORE_EPROM                     "Guardar memoria"
85
+#define MSG_LOAD_EPROM                      "Carregar memoria"
86
+#define MSG_RESTORE_FAILSAFE                "Rest. de emergen."
87
+#define MSG_REFRESH                         "\004Recarregar"
88
+#define MSG_WATCH                           "Monitorar   \003"
89
+#define MSG_PREPARE                         "Preparar \x7E"
90
+#define MSG_TUNE                            "Tune    \x7E"
91
+#define MSG_PAUSE_PRINT                     "Pausar impressao"
92
+#define MSG_RESUME_PRINT                    "Resumir impressao"
93
+#define MSG_STOP_PRINT                      "Parar impressao"
94
+#define MSG_CARD_MENU                       "Menu cartao SD"
95
+#define MSG_NO_CARD                         "Sem cartao SD"
96
+#define MSG_DWELL                           "Repouso..."
97
+#define MSG_USERWAIT                        "Esperando ordem"
98
+#define MSG_RESUMING                        "Resuming print"
99
+#define MSG_PRINT_ABORTED                   "Print aborted"
100
+#define MSG_NO_MOVE                         "Sem movimento"
101
+#define MSG_KILLED                          "PARADA DE EMERG."
102
+#define MSG_STOPPED                         "PARADA. "
103
+#define MSG_CONTROL_RETRACT                 " Retrair mm"
104
+#define MSG_CONTROL_RETRACT_SWAP            "Troca Retrair mm"
105
+#define MSG_CONTROL_RETRACTF                " Retrair  V"
106
+#define MSG_CONTROL_RETRACT_ZLIFT           " Levantar mm"
107
+#define MSG_CONTROL_RETRACT_RECOVER         " DesRet +mm"
108
+#define MSG_CONTROL_RETRACT_RECOVER_SWAP    "Troca DesRet +mm"
109
+#define MSG_CONTROL_RETRACT_RECOVERF        " DesRet  V"
110
+#define MSG_AUTORETRACT                     " AutoRetr."
111
+#define MSG_FILAMENTCHANGE                  "Change filament"
112
+#define MSG_INIT_SDCARD                     "Init. SD-Card"
113
+#define MSG_CNG_SDCARD                      "Change SD-Card"
114
+#define MSG_ZPROBE_OUT                      "Son. fora da mesa"
115
+#define MSG_POSITION_UNKNOWN                "XY antes de Z"
116
+#define MSG_ZPROBE_ZOFFSET                  "Z Offset"
117
+#define MSG_BABYSTEP_X                      "Babystep X"
118
+#define MSG_BABYSTEP_Y                      "Babystep Y"
119
+#define MSG_BABYSTEP_Z                      "Babystep Z"
120
+#define MSG_ENDSTOP_ABORT                   "Endstop abort"
121
+
122
+#ifdef DELTA_CALIBRATION_MENU
123
+    #define MSG_DELTA_CALIBRATE             "Delta Calibration"
124
+    #define MSG_DELTA_CALIBRATE_X           "Calibrate X"
125
+    #define MSG_DELTA_CALIBRATE_Y           "Calibrate Y"
126
+    #define MSG_DELTA_CALIBRATE_Z           "Calibrate Z"
127
+    #define MSG_DELTA_CALIBRATE_CENTER      "Calibrate Center"
128
+#endif // DELTA_CALIBRATION_MENU
129
+
130
+#endif // LANGUAGE_PT_BR_H

+ 81
- 107
Marlin/language_pt.h View File

@@ -8,149 +8,123 @@
8 8
 #ifndef LANGUAGE_PT_H
9 9
 #define LANGUAGE_PT_H
10 10
 
11
-#define WELCOME_MSG							MACHINE_NAME " pronto."
11
+#define WELCOME_MSG                         MACHINE_NAME " pronto."
12 12
 #define MSG_SD_INSERTED                     "Cartao inserido"
13 13
 #define MSG_SD_REMOVED                      "Cartao removido"
14 14
 #define MSG_MAIN                            " Menu principal \003"
15 15
 #define MSG_AUTOSTART                       "Autostart"
16
-#define MSG_DISABLE_STEPPERS                " Apagar motores"
17
-#define MSG_AUTO_HOME                       "Ir para origen"
18
-#define MSG_SET_HOME_OFFSETS                "Set home offsets"
16
+#define MSG_DISABLE_STEPPERS                " Desligar motores"
17
+#define MSG_AUTO_HOME                       "Ir para home"
18
+#define MSG_SET_HOME_OFFSETS                "Def. home offsets"
19 19
 #define MSG_SET_ORIGIN                      "Estabelecer orig."
20 20
 #define MSG_PREHEAT_PLA                     "Pre-aquecer PLA"
21
-#define MSG_PREHEAT_PLA0                    " pre-aquecer PLA 1"
22
-#define MSG_PREHEAT_PLA1                    " pre-aquecer PLA 2"
23
-#define MSG_PREHEAT_PLA2                    " pre-aquecer PLA 3"
24
-#define MSG_PREHEAT_PLA012                  " pre-aq. PLA Tudo"
25
-#define MSG_PREHEAT_PLA_BEDONLY             " pre-aq. PLA \002Base"
26
-#define MSG_PREHEAT_PLA_SETTINGS            "PLA setting"
21
+#define MSG_PREHEAT_PLA_N                   "Pre-aquecer PLA "
22
+#define MSG_PREHEAT_PLA_ALL                 "Pre-aq. PLA Tudo"
23
+#define MSG_PREHEAT_PLA_BEDONLY             "Pre-aq. PLA \002Base"
24
+#define MSG_PREHEAT_PLA_SETTINGS            "PLA definicoes"
27 25
 #define MSG_PREHEAT_ABS                     "Pre-aquecer ABS"
28
-#define MSG_PREHEAT_ABS0                    " pre-aquecer ABS 1"
29
-#define MSG_PREHEAT_ABS1                    " pre-aquecer ABS 2"
30
-#define MSG_PREHEAT_ABS2                    " pre-aquecer ABS 3"
31
-#define MSG_PREHEAT_ABS012                  " pre-aq. ABS Tudo"
32
-#define MSG_PREHEAT_ABS_BEDONLY             " pre-aq. ABS \002Base"
33
-#define MSG_PREHEAT_ABS_SETTINGS            "ABS setting"
34
-#define MSG_COOLDOWN                        "Esfriar"
35
-#define MSG_SWITCH_PS_ON                    "Switch Power On"
36
-#define MSG_SWITCH_PS_OFF                   "Switch Power Off"
37
-#define MSG_EXTRUDE                         "Extrudar"
26
+#define MSG_PREHEAT_ABS_N                   "Pre-aquecer ABS "
27
+#define MSG_PREHEAT_ABS_ALL                 "Pre-aq. ABS Tudo"
28
+#define MSG_PREHEAT_ABS_BEDONLY             "Pre-aq. ABS \002Base"
29
+#define MSG_PREHEAT_ABS_SETTINGS            "ABS definicoes"
30
+#define MSG_COOLDOWN                        "Arrefecer"
31
+#define MSG_SWITCH_PS_ON                    "Ligar"
32
+#define MSG_SWITCH_PS_OFF                   "Desligar"
33
+#define MSG_EXTRUDE                         "Extrudir"
38 34
 #define MSG_RETRACT                         "Retrair"
39 35
 #define MSG_MOVE_AXIS                       "Mover eixo      \x7E"
40
-#define MSG_MOVE_X                          "Move X"
41
-#define MSG_MOVE_Y                          "Move Y"
42
-#define MSG_MOVE_Z                          "Move Z"
43
-#define MSG_MOVE_E                          "Extruder"
44
-#define MSG_MOVE_E1                         "Extruder2"
45
-#define MSG_MOVE_E2                         "Extruder3"
46
-#define MSG_MOVE_01MM                       "Move 0.1mm"
47
-#define MSG_MOVE_1MM                        "Move 1mm"
48
-#define MSG_MOVE_10MM                       "Move 10mm"
49
-#define MSG_SPEED                           "Velocidade:"
50
-#define MSG_NOZZLE                          "\002Nozzle:"
51
-#define MSG_NOZZLE1                         "\002Nozzle2:"
52
-#define MSG_NOZZLE2                         "\002Nozzle3:"
53
-#define MSG_BED                             "\002Base:"
54
-#define MSG_FAN_SPEED                       "Velocidade vento."
55
-#define MSG_FLOW                            "Fluxo:"
56
-#define MSG_FLOW0                           "Fluxo0:"
57
-#define MSG_FLOW1                           "Fluxo1:"
58
-#define MSG_FLOW2                           "Fluxo2:"
59
-#define MSG_CONTROL                         "Controle \003"
60
-#define MSG_MIN                             "\002 Min:"
61
-#define MSG_MAX                             "\002 Max:"
62
-#define MSG_FACTOR                          "\002 Fact:"
63
-#define MSG_AUTOTEMP                        "Autotemp:"
36
+#define MSG_MOVE_X                          "Mover X"
37
+#define MSG_MOVE_Y                          "Mover Y"
38
+#define MSG_MOVE_Z                          "Mover Z"
39
+#define MSG_MOVE_E                          "Extrusor"
40
+#define MSG_MOVE_01MM                       "Mover 0.1mm"
41
+#define MSG_MOVE_1MM                        "Mover 1mm"
42
+#define MSG_MOVE_10MM                       "Mover 10mm"
43
+#define MSG_SPEED                           "Velocidade"
44
+#define MSG_NOZZLE                          "\002Bico"
45
+#define MSG_BED                             "\002Base"
46
+#define MSG_FAN_SPEED                       "Velocidade do ar."
47
+#define MSG_FLOW                            "Fluxo"
48
+#define MSG_CONTROL                         "Controlo \003"
49
+#define MSG_MIN                             "\002 Min"
50
+#define MSG_MAX                             "\002 Max"
51
+#define MSG_FACTOR                          "\002 Fact"
52
+#define MSG_AUTOTEMP                        "Autotemp"
64 53
 #define MSG_ON                              "On "
65 54
 #define MSG_OFF                             "Off"
66
-#define MSG_PID_P                           "PID-P: "
67
-#define MSG_PID_I                           "PID-I: "
68
-#define MSG_PID_D                           "PID-D: "
69
-#define MSG_PID_C                           "PID-C: "
70
-#define MSG_PID_P1                          "PID-P E2: "
71
-#define MSG_PID_I1                          "PID-I E2: "
72
-#define MSG_PID_D1                          "PID-D E2: "
73
-#define MSG_PID_C1                          "PID-C E2: "
74
-#define MSG_PID_P2                          "PID-P E3: "
75
-#define MSG_PID_I2                          "PID-I E3: "
76
-#define MSG_PID_D2                          "PID-D E3: "
77
-#define MSG_PID_C2                          "PID-C E3: "
78
-#define MSG_ACC                             "Acc:"
79
-#define MSG_VXY_JERK                        "Vxy-jerk: "
55
+#define MSG_PID_P                           "PID-P"
56
+#define MSG_PID_I                           "PID-I"
57
+#define MSG_PID_D                           "PID-D"
58
+#define MSG_PID_C                           "PID-C"
59
+#define MSG_ACC                             "Acc"
60
+#define MSG_VXY_JERK                        "Vxy-jerk"
80 61
 #define MSG_VZ_JERK                         "Vz-jerk"
81 62
 #define MSG_VE_JERK                         "Ve-jerk"
82 63
 #define MSG_VMAX                            " Vmax "
83
-#define MSG_X                               "x:"
84
-#define MSG_Y                               "y:"
85
-#define MSG_Z                               "z:"
86
-#define MSG_E                               "e:"
87
-#define MSG_VMIN                            "Vmin:"
88
-#define MSG_VTRAV_MIN                       "VTrav min:"
64
+#define MSG_X                               "x"
65
+#define MSG_Y                               "y"
66
+#define MSG_Z                               "z"
67
+#define MSG_E                               "e"
68
+#define MSG_VMIN                            "Vmin"
69
+#define MSG_VTRAV_MIN                       "VTrav min"
89 70
 #define MSG_AMAX                            "Amax "
90
-#define MSG_A_RETRACT                       "A-retract:"
91
-#define MSG_XSTEPS                          "Xpasso/mm:"
92
-#define MSG_YSTEPS                          "Ypasso/mm:"
93
-#define MSG_ZSTEPS                          "Zpasso/mm:"
94
-#define MSG_ESTEPS                          "Epasso/mm:"
71
+#define MSG_A_RETRACT                       "A-retract"
72
+#define MSG_XSTEPS                          "Xpasso/mm"
73
+#define MSG_YSTEPS                          "Ypasso/mm"
74
+#define MSG_ZSTEPS                          "Zpasso/mm"
75
+#define MSG_ESTEPS                          "Epasso/mm"
95 76
 #define MSG_TEMPERATURE                     "Temperatura"
96 77
 #define MSG_MOTION                          "Movimento"
97
-#define MSG_VOLUMETRIC                      "Filament"
78
+#define MSG_VOLUMETRIC                      "Filamento"
98 79
 #define MSG_VOLUMETRIC_ENABLED		        "E in mm3"
99
-#define MSG_FILAMENT_SIZE_EXTRUDER_0        "Fil. Dia. 1"
100
-#define MSG_FILAMENT_SIZE_EXTRUDER_1        "Fil. Dia. 2"
101
-#define MSG_FILAMENT_SIZE_EXTRUDER_2        "Fil. Dia. 3"
102
-#define MSG_CONTRAST                        "Contrast"
103
-#define MSG_STORE_EPROM                     "Guardar memoria"
104
-#define MSG_LOAD_EPROM                      "Carregar memoria"
80
+#define MSG_FILAMENT_SIZE_EXTRUDER_0        "Fil. Diam. 1"
81
+#define MSG_FILAMENT_SIZE_EXTRUDER_1        "Fil. Diam. 2"
82
+#define MSG_FILAMENT_SIZE_EXTRUDER_2        "Fil. Diam. 3"
83
+#define MSG_CONTRAST                        "Contraste"
84
+#define MSG_STORE_EPROM                     "Guardar na memoria"
85
+#define MSG_LOAD_EPROM                      "Carregar da memoria"
105 86
 #define MSG_RESTORE_FAILSAFE                "Rest. de emergen."
106 87
 #define MSG_REFRESH                         "\004Recarregar"
107 88
 #define MSG_WATCH                           "Monitorar   \003"
108 89
 #define MSG_PREPARE                         "Preparar \x7E"
109
-#define MSG_TUNE                            "Tune    \x7E"
90
+#define MSG_TUNE                            "Afinar    \x7E"
110 91
 #define MSG_PAUSE_PRINT                     "Pausar impressao"
111 92
 #define MSG_RESUME_PRINT                    "Resumir impressao"
112 93
 #define MSG_STOP_PRINT                      "Parar impressao"
113 94
 #define MSG_CARD_MENU                       "Menu cartao SD"
114 95
 #define MSG_NO_CARD                         "Sem cartao SD"
115 96
 #define MSG_DWELL                           "Repouso..."
116
-#define MSG_USERWAIT                        "Esperando ordem"
117
-#define MSG_RESUMING                        "Resuming print"
118
-#define MSG_PRINT_ABORTED                   "Print aborted"
97
+#define MSG_USERWAIT                        "A espera de ordem"
98
+#define MSG_RESUMING                        "Resumir impressao"
99
+#define MSG_PRINT_ABORTED                   "Impr. Cancelada"
119 100
 #define MSG_NO_MOVE                         "Sem movimento"
120
-#define MSG_KILLED                          "PARADA DE EMERG."
121
-#define MSG_STOPPED                         "PARADA. "
122
-#define MSG_CONTROL_RETRACT                 " Retrair mm:"
123
-#define MSG_CONTROL_RETRACT_SWAP            "Troca Retrair mm:"
124
-#define MSG_CONTROL_RETRACTF                " Retrair  V:"
125
-#define MSG_CONTROL_RETRACT_ZLIFT           " Levantar mm:"
126
-#define MSG_CONTROL_RETRACT_RECOVER         " DesRet +mm:"
127
-#define MSG_CONTROL_RETRACT_RECOVER_SWAP    "Troca DesRet +mm:"
128
-#define MSG_CONTROL_RETRACT_RECOVERF        " DesRet  V:"
129
-#define MSG_AUTORETRACT                     " AutoRetr.:"
130
-#define MSG_FILAMENTCHANGE                  "Change filament"
131
-#define MSG_INIT_SDCARD                     "Init. SD-Card"
132
-#define MSG_CNG_SDCARD                      "Change SD-Card"
133
-#define MSG_ZPROBE_OUT                      "Son. fora da mesa"
101
+#define MSG_KILLED                          "INTRRP. DE EMERG."
102
+#define MSG_STOPPED                         "PARADO. "
103
+#define MSG_CONTROL_RETRACT                 " Retrair mm"
104
+#define MSG_CONTROL_RETRACT_SWAP            "Troca Retrair mm"
105
+#define MSG_CONTROL_RETRACTF                " Retrair  V"
106
+#define MSG_CONTROL_RETRACT_ZLIFT           " Levantar mm"
107
+#define MSG_CONTROL_RETRACT_RECOVER         " DesRet +mm"
108
+#define MSG_CONTROL_RETRACT_RECOVER_SWAP    "Troca DesRet +mm"
109
+#define MSG_CONTROL_RETRACT_RECOVERF        " DesRet  V"
110
+#define MSG_AUTORETRACT                     " AutoRetr."
111
+#define MSG_FILAMENTCHANGE                  "Trocar filamento"
112
+#define MSG_INIT_SDCARD                     "Inic. SD-Card"
113
+#define MSG_CNG_SDCARD                      "Trocar SD-Card"
114
+#define MSG_ZPROBE_OUT                      "Sens. fora da Base"
134 115
 #define MSG_POSITION_UNKNOWN                "XY antes de Z"
135 116
 #define MSG_ZPROBE_ZOFFSET                  "Z Offset"
136 117
 #define MSG_BABYSTEP_X                      "Babystep X"
137 118
 #define MSG_BABYSTEP_Y                      "Babystep Y"
138 119
 #define MSG_BABYSTEP_Z                      "Babystep Z"
139
-#define MSG_ENDSTOP_ABORT                   "Endstop abort"
140
-
141
-#define MSG_RECTRACT                        "Retrair"
142
-#define MSG_MAIN_WIDE                       "Menu Principal  \003"
143
-#define MSG_PREPARE_ALT                     "Preparar \003"
144
-#define MSG_CONTROL_ARROW                   "Controle \x7E"
145
-#define MSG_RETRACT_ARROW                   "Retrair \x7E"
146
-#define MSG_STEPPER_RELEASED                "Lancado."
120
+#define MSG_ENDSTOP_ABORT                   "Endstop abort."
147 121
 
148 122
 #ifdef DELTA_CALIBRATION_MENU
149
-    #define MSG_DELTA_CALIBRATE             "Delta Calibration"
150
-    #define MSG_DELTA_CALIBRATE_X           "Calibrate X"
151
-    #define MSG_DELTA_CALIBRATE_Y           "Calibrate Y"
152
-    #define MSG_DELTA_CALIBRATE_Z           "Calibrate Z"
153
-    #define MSG_DELTA_CALIBRATE_CENTER      "Calibrate Center"
123
+    #define MSG_DELTA_CALIBRATE             "Delta Calibracao"
124
+    #define MSG_DELTA_CALIBRATE_X           "Calibrar X"
125
+    #define MSG_DELTA_CALIBRATE_Y           "Calibrar Y"
126
+    #define MSG_DELTA_CALIBRATE_Z           "Calibrar Z"
127
+    #define MSG_DELTA_CALIBRATE_CENTER      "Calibrar Centro"
154 128
 #endif // DELTA_CALIBRATION_MENU
155 129
 
156 130
 #endif // LANGUAGE_PT_H

+ 39
- 60
Marlin/language_ru.h View File

@@ -10,7 +10,7 @@
10 10
 
11 11
 #define LANGUAGE_RU
12 12
 
13
-#define WELCOME_MSG                         MACHINE_NAME "Готов."
13
+#define WELCOME_MSG                         MACHINE_NAME " Готов."
14 14
 #define MSG_SD_INSERTED                     "Карта вставлена"
15 15
 #define MSG_SD_REMOVED                      "Карта извлечена"
16 16
 #define MSG_MAIN                            "Меню \003"
@@ -20,17 +20,13 @@
20 20
 #define MSG_SET_HOME_OFFSETS                "Set home offsets"
21 21
 #define MSG_SET_ORIGIN                      "Запомнить ноль"
22 22
 #define MSG_PREHEAT_PLA                     "Преднагрев PLA"
23
-#define MSG_PREHEAT_PLA0                    "Преднагрев PLA0"
24
-#define MSG_PREHEAT_PLA1                    "Преднагрев PLA1"
25
-#define MSG_PREHEAT_PLA2                    "Преднагрев PLA2"
26
-#define MSG_PREHEAT_PLA012                  "Преднаг. PLA все"
23
+#define MSG_PREHEAT_PLA_N                   "Преднагрев PLA"
24
+#define MSG_PREHEAT_PLA_ALL                 "Преднаг. PLA все"
27 25
 #define MSG_PREHEAT_PLA_BEDONLY             "Пред. PLA Кровать"
28 26
 #define MSG_PREHEAT_PLA_SETTINGS            "Настройки PLA"
29 27
 #define MSG_PREHEAT_ABS                     "Преднагрев ABS"
30
-#define MSG_PREHEAT_ABS0                    "Преднагрев ABS0"
31
-#define MSG_PREHEAT_ABS1                    "Преднагрев ABS1"
32
-#define MSG_PREHEAT_ABS2                    "Преднагрев ABS2"
33
-#define MSG_PREHEAT_ABS012                  "Преднаг. ABS все "
28
+#define MSG_PREHEAT_ABS_N                   "Преднагрев ABS"
29
+#define MSG_PREHEAT_ABS_ALL                 "Преднаг. ABS все "
34 30
 #define MSG_PREHEAT_ABS_BEDONLY             "Пред. ABS Кровать"
35 31
 #define MSG_PREHEAT_ABS_SETTINGS            "Настройки ABS"
36 32
 #define MSG_COOLDOWN                        "Охлаждение"
@@ -43,57 +39,42 @@
43 39
 #define MSG_MOVE_Y                          "Move Y"
44 40
 #define MSG_MOVE_Z                          "Move Z"
45 41
 #define MSG_MOVE_E                          "Extruder"
46
-#define MSG_MOVE_E1                         "Extruder2"
47
-#define MSG_MOVE_E2                         "Extruder3"
48 42
 #define MSG_MOVE_01MM                       "Move 0.1mm"
49 43
 #define MSG_MOVE_1MM                        "Move 1mm"
50 44
 #define MSG_MOVE_10MM                       "Move 10mm"
51
-#define MSG_SPEED                           "Скорость:"
52
-#define MSG_NOZZLE                          "\002 Фильера:"
53
-#define MSG_NOZZLE1                         "\002 Фильера2:"
54
-#define MSG_NOZZLE2                         "\002 Фильера3:"
55
-#define MSG_BED                             "\002 Кровать:"
56
-#define MSG_FAN_SPEED                       "Куллер:"
57
-#define MSG_FLOW                            "Поток:"
58
-#define MSG_FLOW0                           " Поток0:"
59
-#define MSG_FLOW1                           " Поток1:"
60
-#define MSG_FLOW2                           " Поток2:"
45
+#define MSG_SPEED                           "Скорость"
46
+#define MSG_NOZZLE                          "\002 Фильера"
47
+#define MSG_BED                             "\002 Кровать"
48
+#define MSG_FAN_SPEED                       "Куллер"
49
+#define MSG_FLOW                            "Поток"
61 50
 #define MSG_CONTROL                         "Настройки \003"
62
-#define MSG_MIN                             "\002 Минимум:"
63
-#define MSG_MAX                             "\002 Максимум:"
64
-#define MSG_FACTOR                          "\002 Фактор:"
65
-#define MSG_AUTOTEMP                        "Autotemp:"
51
+#define MSG_MIN                             "\002 Минимум"
52
+#define MSG_MAX                             "\002 Максимум"
53
+#define MSG_FACTOR                          "\002 Фактор"
54
+#define MSG_AUTOTEMP                        "Autotemp"
66 55
 #define MSG_ON                              "Вкл. "
67 56
 #define MSG_OFF                             "Выкл. "
68
-#define MSG_PID_P                           "PID-P: "
69
-#define MSG_PID_I                           "PID-I: "
70
-#define MSG_PID_D                           "PID-D: "
71
-#define MSG_PID_C                           "PID-C: "
72
-#define MSG_PID_P1                          "PID-P E2: "
73
-#define MSG_PID_I1                          "PID-I E2: "
74
-#define MSG_PID_D1                          "PID-D E2: "
75
-#define MSG_PID_C1                          "PID-C E2: "
76
-#define MSG_PID_P2                          "PID-P E3: "
77
-#define MSG_PID_I2                          "PID-I E3: "
78
-#define MSG_PID_D2                          "PID-D E3: "
79
-#define MSG_PID_C2                          "PID-C E3: "
80
-#define MSG_ACC                             "Acc:"
81
-#define MSG_VXY_JERK                        "Vxy-jerk: "
57
+#define MSG_PID_P                           "PID-P"
58
+#define MSG_PID_I                           "PID-I"
59
+#define MSG_PID_D                           "PID-D"
60
+#define MSG_PID_C                           "PID-C"
61
+#define MSG_ACC                             "Acc"
62
+#define MSG_VXY_JERK                        "Vxy-jerk"
82 63
 #define MSG_VZ_JERK                         "Vz-jerk"
83 64
 #define MSG_VE_JERK                         "Ve-jerk"
84 65
 #define MSG_VMAX                            "Vmax "
85
-#define MSG_X                               "x:"
86
-#define MSG_Y                               "y:"
87
-#define MSG_Z                               "z:"
88
-#define MSG_E                               "e:"
89
-#define MSG_VMIN                            "Vmin:"
90
-#define MSG_VTRAV_MIN                       "VTrav min:"
66
+#define MSG_X                               "x"
67
+#define MSG_Y                               "y"
68
+#define MSG_Z                               "z"
69
+#define MSG_E                               "e"
70
+#define MSG_VMIN                            "Vmin"
71
+#define MSG_VTRAV_MIN                       "VTrav min"
91 72
 #define MSG_AMAX                            "Amax "
92
-#define MSG_A_RETRACT                       "A-retract:"
93
-#define MSG_XSTEPS                          "X шаг/mm:"
94
-#define MSG_YSTEPS                          "Y шаг/mm:"
95
-#define MSG_ZSTEPS                          "Z шаг/mm:"
96
-#define MSG_ESTEPS                          "E шаг/mm:"
73
+#define MSG_A_RETRACT                       "A-retract"
74
+#define MSG_XSTEPS                          "X шаг/mm"
75
+#define MSG_YSTEPS                          "Y шаг/mm"
76
+#define MSG_ZSTEPS                          "Z шаг/mm"
77
+#define MSG_ESTEPS                          "E шаг/mm"
97 78
 #define MSG_TEMPERATURE                     "Температура     \x7E"
98 79
 #define MSG_MOTION                          "Скорости        \x7E"
99 80
 #define MSG_VOLUMETRIC                      "Filament"
@@ -121,14 +102,14 @@
121 102
 #define MSG_NO_MOVE                         "Нет движения."
122 103
 #define MSG_KILLED                          "УБИТО."
123 104
 #define MSG_STOPPED                         "ОСТАНОВЛЕНО."
124
-#define MSG_CONTROL_RETRACT                 "Откат mm:"
125
-#define MSG_CONTROL_RETRACT_SWAP            "своп Откат mm:"
126
-#define MSG_CONTROL_RETRACTF                "Откат  V:"
127
-#define MSG_CONTROL_RETRACT_ZLIFT           "Прыжок mm:"
128
-#define MSG_CONTROL_RETRACT_RECOVER         "Возврат +mm:"
129
-#define MSG_CONTROL_RETRACT_RECOVER_SWAP    "своп Возврат +mm:"
130
-#define MSG_CONTROL_RETRACT_RECOVERF        "Возврат  V:"
131
-#define MSG_AUTORETRACT                     "АвтоОткат:"
105
+#define MSG_CONTROL_RETRACT                 "Откат mm"
106
+#define MSG_CONTROL_RETRACT_SWAP            "своп Откат mm"
107
+#define MSG_CONTROL_RETRACTF                "Откат  V"
108
+#define MSG_CONTROL_RETRACT_ZLIFT           "Прыжок mm"
109
+#define MSG_CONTROL_RETRACT_RECOVER         "Возврат +mm"
110
+#define MSG_CONTROL_RETRACT_RECOVER_SWAP    "своп Возврат +mm"
111
+#define MSG_CONTROL_RETRACT_RECOVERF        "Возврат  V"
112
+#define MSG_AUTORETRACT                     "АвтоОткат"
132 113
 #define MSG_FILAMENTCHANGE                  "Change filament"
133 114
 #define MSG_INIT_SDCARD                     "Init. SD-Card"
134 115
 #define MSG_CNG_SDCARD                      "Change SD-Card"
@@ -140,8 +121,6 @@
140 121
 #define MSG_BABYSTEP_Z                      "Babystep Z"
141 122
 #define MSG_ENDSTOP_ABORT                   "Endstop abort"
142 123
 
143
-#define MSG_RECTRACT                        "Откат подачи    \x7E"
144
-
145 124
 #ifdef DELTA_CALIBRATION_MENU
146 125
     #define MSG_DELTA_CALIBRATE             "Delta Calibration"
147 126
     #define MSG_DELTA_CALIBRATE_X           "Calibrate X"

+ 135
- 2977
Marlin/pins.h
File diff suppressed because it is too large
View File


+ 37
- 0
Marlin/pins_3DRAG.h View File

@@ -0,0 +1,37 @@
1
+/**
2
+ * 3DRAG (and K8200) Arduino Mega with RAMPS v1.3 pin assignments
3
+ */
4
+
5
+#include "pins_RAMPS_13.h"
6
+
7
+#define X_MAX_PIN          2
8
+#define Y_MAX_PIN          15
9
+#define Z_MAX_PIN          -1
10
+
11
+#define SDSS               25//53
12
+
13
+#define BEEPER             33
14
+
15
+#define FAN_PIN            8
16
+
17
+#define HEATER_0_PIN       10
18
+#define HEATER_1_PIN       12
19
+#define HEATER_2_PIN       6
20
+
21
+#define HEATER_BED_PIN     9    // BED
22
+
23
+#if defined(ULTRA_LCD) && defined(NEWPANEL)
24
+  #define BEEPER -1
25
+
26
+  #define LCD_PINS_RS 27
27
+  #define LCD_PINS_ENABLE 29
28
+  #define LCD_PINS_D4 37
29
+  #define LCD_PINS_D5 35
30
+  #define LCD_PINS_D6 33
31
+  #define LCD_PINS_D7 31
32
+
33
+  // Buttons
34
+  #define BTN_EN1 16
35
+  #define BTN_EN2 17
36
+  #define BTN_ENC 23 //the click
37
+#endif // ULTRA_LCD && NEWPANEL

+ 75
- 0
Marlin/pins_5DPRINT.h View File

@@ -0,0 +1,75 @@
1
+/**
2
+ * 5DPrint D8 Driver board pin assignments
3
+ *
4
+ * https://bitbucket.org/makible/5dprint-d8-controller-board
5
+ */
6
+
7
+#ifndef __AVR_AT90USB1286__
8
+  #error Oops!  Make sure you have 'Teensy++ 2.0' selected from the 'Tools -> Boards' menu.
9
+#endif
10
+
11
+#define AT90USB 1286  // Disable MarlinSerial etc.
12
+
13
+#define LARGE_FLASH        true
14
+
15
+#define X_STEP_PIN          0
16
+#define X_DIR_PIN           1
17
+#define X_ENABLE_PIN       23
18
+#define X_STOP_PIN         37
19
+
20
+#define Y_STEP_PIN          2
21
+#define Y_DIR_PIN           3
22
+#define Y_ENABLE_PIN       19
23
+#define Y_STOP_PIN         36
24
+
25
+#define Z_STEP_PIN          4
26
+#define Z_DIR_PIN           5
27
+#define Z_ENABLE_PIN       18
28
+#define Z_STOP_PIN         39
29
+
30
+#define E0_STEP_PIN         6
31
+#define E0_DIR_PIN          7
32
+#define E0_ENABLE_PIN      17
33
+
34
+#define HEATER_0_PIN       21  // Extruder
35
+#define HEATER_1_PIN       -1
36
+#define HEATER_2_PIN       -1
37
+#define HEATER_BED_PIN     20  // Bed
38
+// You may need to change FAN_PIN to 16 because Marlin isn't using fastio.h
39
+// for the fan and Teensyduino uses a different pin mapping.
40
+#define FAN_PIN            16  // Fan
41
+
42
+#define TEMP_0_PIN          1  // Extruder / Analog pin numbering
43
+#define TEMP_BED_PIN        0  // Bed / Analog pin numbering
44
+
45
+#define TEMP_1_PIN         -1
46
+#define TEMP_2_PIN         -1
47
+
48
+#define SDPOWER            -1
49
+#define LED_PIN            -1
50
+#define PS_ON_PIN          -1
51
+#define KILL_PIN           -1
52
+#define ALARM_PIN          -1
53
+
54
+// The SDSS pin uses a different pin mapping from file Sd2PinMap.h
55
+#define SDSS               20
56
+
57
+#ifndef SDSUPPORT
58
+// these pins are defined in the SD library if building with SD support
59
+  #define SCK_PIN           9
60
+  #define MISO_PIN         11
61
+  #define MOSI_PIN         10
62
+#endif
63
+
64
+// Microstepping pins
65
+// Note that the pin mapping is not from fastio.h
66
+// See Sd2PinMap.h for the pin configurations
67
+#define X_MS1_PIN 25
68
+#define X_MS2_PIN 26
69
+#define Y_MS1_PIN 9
70
+#define Y_MS2_PIN 8
71
+#define Z_MS1_PIN 7
72
+#define Z_MS2_PIN 6
73
+#define E0_MS1_PIN 5
74
+#define E0_MS2_PIN 4
75
+

+ 38
- 0
Marlin/pins_99.h View File

@@ -0,0 +1,38 @@
1
+/**
2
+ * Board 99 pin assignments
3
+ */
4
+
5
+#define X_STEP_PIN          2
6
+#define X_DIR_PIN           3
7
+#define X_ENABLE_PIN        -1
8
+#define X_STOP_PIN          16
9
+
10
+#define Y_STEP_PIN          5
11
+#define Y_DIR_PIN           6
12
+#define Y_ENABLE_PIN       -1
13
+#define Y_STOP_PIN          67
14
+
15
+#define Z_STEP_PIN          62
16
+#define Z_DIR_PIN           63
17
+#define Z_ENABLE_PIN       -1
18
+#define Z_STOP_PIN          59
19
+
20
+#define E0_STEP_PIN         65
21
+#define E0_DIR_PIN          66
22
+#define E0_ENABLE_PIN      -1
23
+
24
+#define SDPOWER            -1
25
+#define SDSS               53
26
+#define LED_PIN            -1
27
+#define FAN_PIN            -1
28
+#define PS_ON_PIN           9
29
+#define KILL_PIN           -1
30
+
31
+#define HEATER_0_PIN        13
32
+#define HEATER_1_PIN       -1
33
+#define HEATER_2_PIN       -1
34
+#define TEMP_0_PIN          6   // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!!
35
+#define TEMP_1_PIN         -1   // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!!
36
+#define TEMP_2_PIN         -1   // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!!
37
+#define HEATER_BED_PIN      4
38
+#define TEMP_BED_PIN       10

+ 7
- 0
Marlin/pins_AZTEEG_X1.h View File

@@ -0,0 +1,7 @@
1
+/**
2
+ * Azteeg X1 pin assignments
3
+ */
4
+
5
+#define SANGUINOLOLU_V_1_2
6
+
7
+#include "pins_SANGUINOLOLU_11.h"

+ 5
- 0
Marlin/pins_AZTEEG_X3.h View File

@@ -0,0 +1,5 @@
1
+/**
2
+ * AZTEEG_X3 Arduino Mega with RAMPS v1.3 pin assignments
3
+ */
4
+
5
+#include "pins_RAMPS_13.h"

+ 30
- 0
Marlin/pins_AZTEEG_X3_PRO.h View File

@@ -0,0 +1,30 @@
1
+/**
2
+ * AZTEEG_X3_PRO (Arduino Mega) pin assignments
3
+ */
4
+
5
+#include "pins_RAMPS_13.h"
6
+
7
+#define E2_STEP_PIN        23
8
+#define E2_DIR_PIN         25
9
+#define E2_ENABLE_PIN      40
10
+
11
+#define E3_STEP_PIN        27
12
+#define E3_DIR_PIN         29
13
+#define E3_ENABLE_PIN      41
14
+
15
+#define E4_STEP_PIN        43
16
+#define E4_DIR_PIN         37
17
+#define E4_ENABLE_PIN      42
18
+
19
+#define HEATER_2_PIN       16
20
+#define HEATER_3_PIN       17
21
+#define HEATER_4_PIN       4
22
+#define HEATER_5_PIN       5
23
+#define HEATER_6_PIN       6
24
+#define HEATER_7_PIN       11
25
+
26
+#define TEMP_2_PIN         12   // ANALOG NUMBERING
27
+#define TEMP_3_PIN         11   // ANALOG NUMBERING
28
+#define TEMP_4_PIN         10   // ANALOG NUMBERING
29
+#define TC1                4    // ANALOG NUMBERING Thermo couple on Azteeg X3Pro
30
+#define TC2                5    // ANALOG NUMBERING Thermo couple on Azteeg X3Pro

+ 61
- 0
Marlin/pins_BRAINWAVE.h View File

@@ -0,0 +1,61 @@
1
+/**
2
+ * Brainwave 1.0 pin assignments (AT90USB646)
3
+ *
4
+ * Requires hardware bundle for Arduino:
5
+ * https://github.com/unrepentantgeek/brainwave-arduino
6
+ */
7
+
8
+#ifndef __AVR_AT90USB646__
9
+  #error Oops!  Make sure you have 'Brainwave' selected from the 'Tools -> Boards' menu.
10
+#endif
11
+
12
+#define AT90USB 646  // Disable MarlinSerial etc.
13
+
14
+#define X_STEP_PIN         27
15
+#define X_DIR_PIN          29
16
+#define X_ENABLE_PIN       28
17
+#define X_STOP_PIN          7
18
+#define X_ATT_PIN          26
19
+
20
+#define Y_STEP_PIN         31
21
+#define Y_DIR_PIN          33
22
+#define Y_ENABLE_PIN       32
23
+#define Y_STOP_PIN          6
24
+#define Y_ATT_PIN          30
25
+
26
+#define Z_STEP_PIN         17
27
+#define Z_DIR_PIN          19
28
+#define Z_ENABLE_PIN       18
29
+#define Z_STOP_PIN          5
30
+#define Z_ATT_PIN          16
31
+
32
+#define E0_STEP_PIN        21
33
+#define E0_DIR_PIN         23
34
+#define E0_ENABLE_PIN      22
35
+#define E0_ATT_PIN         20
36
+
37
+#define HEATER_0_PIN        4  // Extruder
38
+#define HEATER_1_PIN       -1
39
+#define HEATER_2_PIN       -1
40
+#define HEATER_BED_PIN     38  // Bed
41
+#define FAN_PIN             3  // Fan
42
+
43
+#define TEMP_0_PIN          7  // Extruder / Analog pin numbering
44
+#define TEMP_1_PIN         -1
45
+#define TEMP_2_PIN         -1
46
+#define TEMP_BED_PIN        6  // Bed / Analog pin numbering
47
+
48
+#define SDPOWER            -1
49
+#define SDSS               -1
50
+#define LED_PIN            39
51
+#define PS_ON_PIN          -1
52
+#define KILL_PIN           -1
53
+#define ALARM_PIN          -1
54
+
55
+#ifndef SDSUPPORT
56
+  // these pins are defined in the SD library if building with SD support
57
+  #define SCK_PIN           9
58
+  #define MISO_PIN         11
59
+  #define MOSI_PIN         10
60
+#endif
61
+

+ 95
- 0
Marlin/pins_CHEAPTRONIC.h View File

@@ -0,0 +1,95 @@
1
+/**
2
+ * Cheaptronic v1.0 pin assignments
3
+ */
4
+
5
+#ifndef __AVR_ATmega2560__
6
+  #error Oops!  Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu.
7
+#endif
8
+
9
+#define LARGE_FLASH        true
10
+
11
+// X motor stepper
12
+#define X_STEP_PIN 14
13
+#define X_DIR_PIN 15
14
+#define X_ENABLE_PIN 24
15
+
16
+// X endstop
17
+#define X_MIN_PIN 3
18
+#define X_MAX_PIN -1
19
+
20
+// Y motor stepper
21
+#define Y_STEP_PIN 35
22
+#define Y_DIR_PIN 36
23
+#define Y_ENABLE_PIN 31
24
+
25
+// Y endstop
26
+#define Y_MIN_PIN 2
27
+#define Y_MAX_PIN -1
28
+
29
+// Z motor stepper
30
+#define Z_STEP_PIN 40
31
+#define Z_DIR_PIN 41
32
+#define Z_ENABLE_PIN 37
33
+
34
+// Z endstop
35
+#define Z_MIN_PIN 5
36
+#define Z_MAX_PIN -1
37
+
38
+// Extruder 0 stepper
39
+#define E0_STEP_PIN 26
40
+#define E0_DIR_PIN 28
41
+#define E0_ENABLE_PIN 25
42
+
43
+// Extruder 1 stepper
44
+#define E1_STEP_PIN 33
45
+#define E1_DIR_PIN 34
46
+#define E1_ENABLE_PIN 30
47
+
48
+#define SDPOWER -1
49
+#define SDSS -1
50
+#define LED_PIN -1
51
+
52
+// FAN
53
+#define FAN_PIN -1
54
+
55
+#define PS_ON_PIN -1
56
+#define KILL_PIN -1
57
+
58
+#define HEATER_0_PIN 19 // EXTRUDER 1
59
+#define HEATER_1_PIN 23 // EXTRUDER 2
60
+// HeatedBad
61
+#define HEATER_BED_PIN 22
62
+// Cheaptronic v1.0 hasent EXTRUDER 3
63
+#define HEATER_2_PIN -1
64
+
65
+// Temperature sensors
66
+#define TEMP_0_PIN 15
67
+#define TEMP_1_PIN 14
68
+#define TEMP_2_PIN -1
69
+#define TEMP_BED_PIN 13
70
+
71
+// Cheaptronic v1.0 doesn't support LCD
72
+#define LCD_PINS_RS -1
73
+#define LCD_PINS_ENABLE -1
74
+#define LCD_PINS_D4 -1
75
+#define LCD_PINS_D5 -1
76
+#define LCD_PINS_D6 -1
77
+#define LCD_PINS_D7 -1
78
+
79
+// Cheaptronic v1.0 doesn't support keypad
80
+#define BTN_EN1 -1
81
+#define BTN_EN2 -1
82
+#define BTN_ENC -1
83
+
84
+#define BLEN_C 2
85
+#define BLEN_B 1
86
+#define BLEN_A 0
87
+
88
+// Cheaptronic v1.0 does not use this port
89
+#define SDCARDDETECT -1
90
+
91
+// Encoder rotation values
92
+#define encrot0 0
93
+#define encrot1 2
94
+#define encrot2 3
95
+#define encrot3 1

+ 43
- 0
Marlin/pins_DUEMILANOVE_328P.h View File

@@ -0,0 +1,43 @@
1
+/**
2
+ * Duemilanove w/ ATMega328P pin assignments
3
+ */
4
+
5
+#ifndef __AVR_ATmega328P__
6
+  #error Oops!  Make sure you have 'Arduino Duemilanove w/ ATMega328' selected from the 'Tools -> Boards' menu.
7
+#endif
8
+
9
+#define X_STEP_PIN         19
10
+#define X_DIR_PIN          18
11
+#define X_ENABLE_PIN       -1
12
+#define X_STOP_PIN         17
13
+
14
+#define Y_STEP_PIN         10
15
+#define Y_DIR_PIN           7
16
+#define Y_ENABLE_PIN       -1
17
+#define Y_STOP_PIN          8
18
+
19
+#define Z_STEP_PIN         13
20
+#define Z_DIR_PIN           3
21
+#define Z_ENABLE_PIN        2
22
+#define Z_STOP_PIN          4
23
+
24
+#define E0_STEP_PIN         11
25
+#define E0_DIR_PIN          12
26
+#define E0_ENABLE_PIN       -1
27
+
28
+#define SDPOWER          -1
29
+#define SDSS          -1
30
+#define LED_PIN            -1
31
+#define FAN_PIN             5
32
+#define PS_ON_PIN          -1
33
+#define KILL_PIN           -1
34
+
35
+#define HEATER_0_PIN        6
36
+#define HEATER_1_PIN        -1
37
+#define HEATER_2_PIN        -1
38
+#define TEMP_0_PIN          0    // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!!
39
+#define TEMP_1_PIN          -1
40
+#define TEMP_2_PIN          -1
41
+#define HEATER_BED_PIN      -1
42
+#define TEMP_BED_PIN        -1
43
+

+ 116
- 0
Marlin/pins_ELEFU_3.h View File

@@ -0,0 +1,116 @@
1
+/**
2
+ * Elefu RA Board Pin Assignments
3
+ */
4
+
5
+#ifndef __AVR_ATmega2560__
6
+  #error Oops!  Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu.
7
+#endif
8
+
9
+#define X_STEP_PIN         49
10
+#define X_DIR_PIN          13
11
+#define X_ENABLE_PIN       48
12
+#define X_MIN_PIN          35
13
+#define X_MAX_PIN          34
14
+
15
+#define Y_STEP_PIN         11
16
+#define Y_DIR_PIN          9
17
+#define Y_ENABLE_PIN       12
18
+#define Y_MIN_PIN          33
19
+#define Y_MAX_PIN          32
20
+
21
+#define Z_STEP_PIN         7
22
+#define Z_DIR_PIN          6
23
+#define Z_ENABLE_PIN       8
24
+#define Z_MIN_PIN          31
25
+#define Z_MAX_PIN          30
26
+
27
+#define E2_STEP_PIN        43
28
+#define E2_DIR_PIN         47
29
+#define E2_ENABLE_PIN      42
30
+
31
+#define E1_STEP_PIN        18
32
+#define E1_DIR_PIN         19
33
+#define E1_ENABLE_PIN      38
34
+
35
+#define E0_STEP_PIN        40
36
+#define E0_DIR_PIN         41
37
+#define E0_ENABLE_PIN      37
38
+
39
+#define SDPOWER            -1
40
+#define LED_PIN            -1 //Use +12V Aux port for LED Ring
41
+
42
+#define FAN_PIN            16 //5V PWM
43
+
44
+#define PS_ON_PIN          10 //Set to -1 if using a manual switch on the PWRSW Connector
45
+#define SLEEP_WAKE_PIN     26 //This feature still needs work
46
+
47
+#define HEATER_0_PIN       45 //12V PWM1
48
+#define HEATER_1_PIN       46 //12V PWM2
49
+#define HEATER_2_PIN       17 //12V PWM3
50
+#define HEATER_BED_PIN     44 //DOUBLE 12V PWM
51
+#define TEMP_0_PIN         3  //ANALOG NUMBERING
52
+#define TEMP_1_PIN         2  //ANALOG NUMBERING
53
+#define TEMP_2_PIN         1  //ANALOG NUMBERING
54
+#define TEMP_BED_PIN       0  //ANALOG NUMBERING
55
+
56
+#define BEEPER             36
57
+
58
+#define KILL_PIN           -1
59
+
60
+// M240  Triggers a camera by emulating a Canon RC-1 Remote
61
+// Data from: http://www.doc-diy.net/photo/rc-1_hacked/
62
+#define PHOTOGRAPH_PIN     29
63
+
64
+#ifdef RA_CONTROL_PANEL
65
+
66
+  #define SDSS             53
67
+  #define SDCARDDETECT     28
68
+
69
+  #define BTN_EN1          14
70
+  #define BTN_EN2          39
71
+  #define BTN_ENC          15  //the click
72
+
73
+  #define BLEN_C           2
74
+  #define BLEN_B           1
75
+  #define BLEN_A           0
76
+
77
+  //encoder rotation values
78
+  #define encrot0          0
79
+  #define encrot1          2
80
+  #define encrot2          3
81
+  #define encrot3          1
82
+
83
+#endif // RA_CONTROL_PANEL
84
+
85
+#ifdef RA_DISCO
86
+  //variables for which pins the TLC5947 is using
87
+  #define TLC_CLOCK_PIN    25
88
+  #define TLC_BLANK_PIN    23
89
+  #define TLC_XLAT_PIN     22
90
+  #define TLC_DATA_PIN     24
91
+
92
+  //We also need to define pin to port number mapping for the 2560 to match the pins listed above. If you change the TLC pins, update this as well per the 2560 datasheet!
93
+  //This currently only works with the RA Board.
94
+  #define TLC_CLOCK_BIT 3 //bit 3 on port A
95
+  #define TLC_CLOCK_PORT &PORTA //bit 3 on port A
96
+
97
+  #define TLC_BLANK_BIT 1 //bit 1 on port A
98
+  #define TLC_BLANK_PORT &PORTA //bit 1 on port A
99
+
100
+  #define TLC_DATA_BIT 2 //bit 2 on port A
101
+  #define TLC_DATA_PORT &PORTA //bit 2 on port A
102
+
103
+  #define TLC_XLAT_BIT 0 //bit 0 on port A
104
+  #define TLC_XLAT_PORT &PORTA //bit 0 on port A
105
+
106
+  //change this to match your situation. Lots of TLCs takes up the arduino SRAM very quickly, so be careful
107
+  //Leave it at at least 1 if you have enabled RA_LIGHTING
108
+  //The number of TLC5947 boards chained together for use with the animation, additional ones will repeat the animation on them, but are not individually addressable and mimic those before them. You can leave the default at 2 even if you only have 1 TLC5947 module.
109
+  #define NUM_TLCS 2
110
+
111
+  //These TRANS_ARRAY values let you change the order the LEDs on the lighting modules will animate for chase functions.
112
+  //Modify them according to your specific situation.
113
+  //NOTE: the array should be 8 long for every TLC you have. These defaults assume (2) TLCs.
114
+  #define TRANS_ARRAY {0, 1, 2, 3, 4, 5, 6, 7, 15, 14, 13, 12, 11, 10, 9, 8} //forwards
115
+  //#define TRANS_ARRAY {7, 6, 5, 4, 3, 2, 1, 0, 8, 9, 10, 11, 12, 13, 14, 15} //backwards
116
+#endif // RA_DISCO

+ 61
- 0
Marlin/pins_GEN3_MONOLITHIC.h View File

@@ -0,0 +1,61 @@
1
+/**
2
+ * Gen3 Monolithic Electronics pin assignments
3
+ */
4
+
5
+#ifndef __AVR_ATmega644P__
6
+  #error Oops!  Make sure you have 'Sanguino' selected from the 'Tools -> Boards' menu.
7
+#endif
8
+
9
+#define DEBUG_PIN 0
10
+
11
+// x axis
12
+#define X_STEP_PIN 15
13
+#define X_DIR_PIN 18
14
+#define X_MIN_PIN 20
15
+// Alex Checar #define X_STOP_PIN         20
16
+#define X_ENABLE_PIN 24 // actually uses Y_enable_pin
17
+#define X_MAX_PIN -1
18
+
19
+// y axis
20
+#define Y_STEP_PIN 23
21
+#define Y_DIR_PIN 22
22
+#define Y_MIN_PIN 25
23
+// Alex Checar #define Y_STOP_PIN         25
24
+#define Y_ENABLE_PIN 24 // shared with X_enable_pin
25
+#define Y_MAX_PIN -1
26
+
27
+// z axis
28
+#define Z_STEP_PIN 27
29
+#define Z_DIR_PIN 28
30
+#define Z_MIN_PIN 30
31
+// Alex Checar #define Z_STOP_PIN         30
32
+#define Z_ENABLE_PIN 29
33
+#define Z_MAX_PIN -1
34
+
35
+// extruder pins
36
+#define E0_STEP_PIN         12
37
+#define E0_DIR_PIN          17
38
+#define E0_ENABLE_PIN       3
39
+
40
+#define HEATER_0_PIN 16
41
+#define TEMP_0_PIN 0
42
+
43
+#define FAN_PIN -1
44
+
45
+// bed pins
46
+#define HEATER_BED_PIN -1
47
+#define TEMP_BED_PIN -1
48
+
49
+
50
+#define SDSS     -1
51
+#define SDPOWER          -1
52
+#define LED_PIN          -1
53
+
54
+// pin for controlling the PSU.
55
+#define PS_ON_PIN       14  // Alex, Do this work on the card?
56
+
57
+// Alex extras from Gen3+
58
+#define KILL_PIN           -1
59
+#define TEMP_1_PIN         -1
60
+#define TEMP_2_PIN         -1
61
+#define HEATER_2_PIN       -1

+ 45
- 0
Marlin/pins_GEN3_PLUS.h View File

@@ -0,0 +1,45 @@
1
+/**
2
+ * Gen3+ pin assignments
3
+ */
4
+
5
+#if !defined(__AVR_ATmega644P__) && !defined(__AVR_ATmega1284P__)
6
+  #error Oops!  Make sure you have 'Sanguino' selected from the 'Tools -> Boards' menu.
7
+#endif
8
+
9
+#define X_STEP_PIN         15
10
+#define X_DIR_PIN          18
11
+#define X_STOP_PIN         20
12
+
13
+#define Y_STEP_PIN         23
14
+#define Y_DIR_PIN          22
15
+#define Y_STOP_PIN         25
16
+
17
+#define Z_STEP_PIN         27
18
+#define Z_DIR_PIN          28
19
+#define Z_STOP_PIN         30
20
+
21
+#define E0_STEP_PIN        17
22
+#define E0_DIR_PIN         21
23
+
24
+#define LED_PIN            -1
25
+
26
+#define FAN_PIN            -1
27
+
28
+#define PS_ON_PIN         14
29
+#define KILL_PIN           -1
30
+
31
+#define HEATER_0_PIN       12 // (extruder)
32
+
33
+#define HEATER_BED_PIN     16 // (bed)
34
+#define X_ENABLE_PIN       19
35
+#define Y_ENABLE_PIN       24
36
+#define Z_ENABLE_PIN       29
37
+#define E0_ENABLE_PIN      13
38
+
39
+#define TEMP_0_PIN          0   // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! (pin 33 extruder)
40
+#define TEMP_1_PIN         -1   
41
+#define TEMP_2_PIN         -1
42
+#define TEMP_BED_PIN        5   // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! (pin 34 bed)  
43
+#define SDPOWER            -1
44
+#define SDSS               4
45
+#define HEATER_2_PIN       -1

+ 62
- 0
Marlin/pins_GEN6.h View File

@@ -0,0 +1,62 @@
1
+/**
2
+ * Gen6 pin assignments
3
+ */
4
+
5
+#ifndef __AVR_ATmega644P__
6
+  #ifndef __AVR_ATmega1284P__
7
+    #error Oops!  Make sure you have 'Sanguino' selected from the 'Tools -> Boards' menu.
8
+  #endif
9
+#endif
10
+
11
+//x axis pins
12
+#define X_STEP_PIN      15
13
+#define X_DIR_PIN       18
14
+#define X_ENABLE_PIN    19
15
+#define X_STOP_PIN      20
16
+
17
+//y axis pins
18
+#define Y_STEP_PIN      23
19
+#define Y_DIR_PIN       22
20
+#define Y_ENABLE_PIN    24
21
+#define Y_STOP_PIN      25
22
+
23
+//z axis pins
24
+#define Z_STEP_PIN      27
25
+#define Z_DIR_PIN       28
26
+#define Z_ENABLE_PIN    29
27
+#define Z_STOP_PIN      30
28
+
29
+//extruder pins
30
+#define E0_STEP_PIN      4    //Edited @ EJE Electronics 20100715
31
+#define E0_DIR_PIN       2    //Edited @ EJE Electronics 20100715
32
+#define E0_ENABLE_PIN    3    //Added @ EJE Electronics 20100715
33
+#define TEMP_0_PIN      5     //changed @ rkoeppl 20110410
34
+#define TEMP_1_PIN      -1    //changed @ rkoeppl 20110410
35
+
36
+
37
+#define TEMP_2_PIN      -1    //changed @ rkoeppl 20110410
38
+#define HEATER_0_PIN    14    //changed @ rkoeppl 20110410
39
+#define HEATER_1_PIN    -1
40
+#define HEATER_2_PIN    -1
41
+
42
+#if MB(GEN6)
43
+  #define HEATER_BED_PIN  -1    //changed @ rkoeppl 20110410
44
+  #define TEMP_BED_PIN    -1    //changed @ rkoeppl 20110410
45
+#else
46
+  #define HEATER_BED_PIN   1    //changed @ rkoeppl 20110410
47
+  #define TEMP_BED_PIN     0    //changed @ rkoeppl 20110410
48
+#endif
49
+
50
+#define SDPOWER          -1
51
+#define SDSS          17
52
+#define LED_PIN         -1    //changed @ rkoeppl 20110410
53
+#define FAN_PIN         -1    //changed @ rkoeppl 20110410
54
+#define PS_ON_PIN       -1    //changed @ rkoeppl 20110410
55
+#define KILL_PIN        -1    //changed @ drakelive 20120830
56
+//our pin for debugging.
57
+
58
+#define DEBUG_PIN        0
59
+
60
+//our RS485 pins
61
+#define TX_ENABLE_PIN 12
62
+#define RX_ENABLE_PIN 13

+ 5
- 0
Marlin/pins_GEN6_DELUXE.h View File

@@ -0,0 +1,5 @@
1
+/**
2
+ * Gen6 Deluxe pin assignments
3
+ */
4
+
5
+#include "pins_GEN6.h"

+ 72
- 0
Marlin/pins_GEN7_12.h View File

@@ -0,0 +1,72 @@
1
+/**
2
+ * Gen7 v1.1, v1.2, v1.3 pin assignments
3
+ */
4
+
5
+#if !defined(__AVR_ATmega644P__) && !defined(__AVR_ATmega644__) && !defined(__AVR_ATmega1284P__)
6
+  #error Oops!  Make sure you have 'Gen7' selected from the 'Tools -> Boards' menu.
7
+#endif
8
+
9
+#ifndef GEN7_VERSION
10
+  #define GEN7_VERSION 12 // v1.x
11
+#endif
12
+
13
+//x axis pins
14
+#define X_STEP_PIN 19
15
+#define X_DIR_PIN 18
16
+#define X_ENABLE_PIN 24
17
+#define X_STOP_PIN 7
18
+
19
+//y axis pins
20
+#define Y_STEP_PIN 23
21
+#define Y_DIR_PIN 22
22
+#define Y_ENABLE_PIN 24
23
+#define Y_STOP_PIN 5
24
+
25
+//z axis pins
26
+#define Z_STEP_PIN 26
27
+#define Z_DIR_PIN 25
28
+#define Z_ENABLE_PIN 24
29
+#define Z_MIN_PIN 1
30
+#define Z_MAX_PIN 0
31
+
32
+//extruder pins
33
+#define E0_STEP_PIN 28
34
+#define E0_DIR_PIN 27
35
+#define E0_ENABLE_PIN 24
36
+
37
+#define TEMP_0_PIN 1
38
+#define TEMP_1_PIN -1
39
+#define TEMP_2_PIN -1
40
+#define TEMP_BED_PIN 2
41
+
42
+#define HEATER_0_PIN 4
43
+#define HEATER_1_PIN -1
44
+#define HEATER_2_PIN -1
45
+#define HEATER_BED_PIN 3
46
+
47
+#define KILL_PIN -1
48
+
49
+#define SDPOWER -1
50
+#define SDSS -1 // SCL pin of I2C header
51
+#define LED_PIN -1
52
+
53
+#if (GEN7_VERSION >= 13)
54
+  // Gen7 v1.3 removed the fan pin
55
+  #define FAN_PIN -1
56
+#else
57
+  #define FAN_PIN 31
58
+#endif
59
+
60
+#define PS_ON_PIN 15
61
+
62
+//All these generations of Gen7 supply thermistor power
63
+//via PS_ON, so ignore bad thermistor readings
64
+#define BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE
65
+
66
+//our pin for debugging.
67
+#define DEBUG_PIN 0
68
+
69
+//our RS485 pins
70
+#define TX_ENABLE_PIN 12
71
+#define RX_ENABLE_PIN 13
72
+

+ 8
- 0
Marlin/pins_GEN7_13.h View File

@@ -0,0 +1,8 @@
1
+/**
2
+ * Gen7 v1.3 pin assignments
3
+ */
4
+
5
+#define MOTHERBOARD BOARD_GEN7_12
6
+#define GEN7_VERSION 13 // v1.3
7
+
8
+#include "pins_GEN7_12.h"

+ 60
- 0
Marlin/pins_GEN7_14.h View File

@@ -0,0 +1,60 @@
1
+/**
2
+ * Gen7 v1.4 pin assignments
3
+ */
4
+
5
+#define GEN7_VERSION 14 // v1.4
6
+
7
+#if !defined(__AVR_ATmega644P__) && !defined(__AVR_ATmega644__) && !defined(__AVR_ATmega1284P__)
8
+  #error Oops!  Make sure you have 'Gen7' selected from the 'Tools -> Boards' menu.
9
+#endif
10
+
11
+//x axis pins
12
+#define X_STEP_PIN 29
13
+#define X_DIR_PIN 28
14
+#define X_ENABLE_PIN 25
15
+#define X_STOP_PIN 0
16
+
17
+//y axis pins
18
+#define Y_STEP_PIN 27
19
+#define Y_DIR_PIN 26
20
+#define Y_ENABLE_PIN 25
21
+#define Y_STOP_PIN 1
22
+
23
+//z axis pins
24
+#define Z_STEP_PIN 23
25
+#define Z_DIR_PIN 22
26
+#define Z_ENABLE_PIN 25
27
+#define Z_STOP_PIN 2
28
+
29
+//extruder pins
30
+#define E0_STEP_PIN 19
31
+#define E0_DIR_PIN 18
32
+#define E0_ENABLE_PIN 25
33
+
34
+#define TEMP_0_PIN 1
35
+#define TEMP_1_PIN -1
36
+#define TEMP_2_PIN -1
37
+#define TEMP_BED_PIN 0
38
+
39
+#define HEATER_0_PIN 4
40
+#define HEATER_1_PIN -1
41
+#define HEATER_2_PIN -1
42
+#define HEATER_BED_PIN 3
43
+
44
+#define KILL_PIN -1
45
+
46
+#define SDPOWER -1
47
+#define SDSS -1 // SCL pin of I2C header
48
+#define LED_PIN -1
49
+
50
+#define FAN_PIN -1
51
+
52
+#define PS_ON_PIN 15
53
+
54
+//our pin for debugging.
55
+#define DEBUG_PIN 0
56
+
57
+//our RS485 pins
58
+#define TX_ENABLE_PIN 12
59
+#define RX_ENABLE_PIN 13
60
+

+ 76
- 0
Marlin/pins_GEN7_CUSTOM.h View File

@@ -0,0 +1,76 @@
1
+/**
2
+ * Gen7 Alfons3 board pin assignments
3
+ *
4
+ * These Pins are assigned for the modified GEN7 Board from Alfons3.
5
+ * Please review the pins and adjust them for your needs.
6
+ */ 
7
+
8
+#if !defined(__AVR_ATmega644P__) && !defined(__AVR_ATmega644__) && !defined(__AVR_ATmega1284P__)
9
+  #error Oops!  Make sure you have 'Gen7' selected from the 'Tools -> Boards' menu.
10
+#endif
11
+
12
+//x axis pins
13
+#define X_STEP_PIN      21                  // different from standard GEN7
14
+#define X_DIR_PIN       20                  // different from standard GEN7
15
+#define X_ENABLE_PIN    24
16
+#define X_STOP_PIN      0
17
+
18
+//y axis pins
19
+#define Y_STEP_PIN      23
20
+#define Y_DIR_PIN       22
21
+#define Y_ENABLE_PIN    24
22
+#define Y_STOP_PIN      1
23
+
24
+//z axis pins
25
+#define Z_STEP_PIN      26
26
+#define Z_DIR_PIN       25
27
+#define Z_ENABLE_PIN    24
28
+#define Z_STOP_PIN      2
29
+
30
+//extruder pins
31
+#define E0_STEP_PIN     28
32
+#define E0_DIR_PIN      27
33
+#define E0_ENABLE_PIN   24
34
+
35
+#define TEMP_0_PIN      2
36
+#define TEMP_1_PIN      -1
37
+#define TEMP_2_PIN      -1
38
+#define TEMP_BED_PIN    1   // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! (pin 34 bed)
39
+
40
+#define HEATER_0_PIN    4
41
+#define HEATER_1_PIN    -1
42
+#define HEATER_2_PIN    -1
43
+#define HEATER_BED_PIN  3  // (bed)
44
+
45
+#define SDPOWER         -1
46
+#define SDSS            31                  // SCL pin of I2C header || CS Pin for SD Card support
47
+#define LED_PIN         -1
48
+
49
+#define FAN_PIN         -1
50
+#define PS_ON_PIN       19
51
+//our pin for debugging.
52
+
53
+#define DEBUG_PIN       -1
54
+
55
+//our RS485 pins
56
+//#define TX_ENABLE_PIN       12
57
+//#define RX_ENABLE_PIN       13
58
+
59
+#define BEEPER -1
60
+#define SDCARDDETECT -1
61
+#define SUICIDE_PIN -1    //has to be defined; otherwise Power_off doesn't work
62
+
63
+#define KILL_PIN -1
64
+//Pins for 4bit LCD Support
65
+#define LCD_PINS_RS 18
66
+#define LCD_PINS_ENABLE 17
67
+#define LCD_PINS_D4 16
68
+#define LCD_PINS_D5 15
69
+#define LCD_PINS_D6 13
70
+#define LCD_PINS_D7 14
71
+
72
+//buttons are directly attached
73
+#define BTN_EN1 11
74
+#define BTN_EN2 10
75
+#define BTN_ENC 12  //the click
76
+

+ 5
- 0
Marlin/pins_HEPHESTOS.h View File

@@ -0,0 +1,5 @@
1
+/**
2
+ * bq Prusa i3 Hephestos – Arduino Mega with RAMPS v1.3/1.4 pin assignments
3
+ */
4
+
5
+#include "pins_RAMPS_13.h"

+ 6
- 0
Marlin/pins_K8200.h View File

@@ -0,0 +1,6 @@
1
+/**
2
+ * K8200 Arduino Mega with RAMPS v1.3 pin assignments
3
+ * Identical to 3DRAG
4
+ */
5
+
6
+#include "pins_3DRAG.h"

+ 62
- 0
Marlin/pins_LEAPFROG.h View File

@@ -0,0 +1,62 @@
1
+/**
2
+ * Leapfrog Driver board pin assignments
3
+ */
4
+
5
+#if !defined(__AVR_ATmega1280__) && !defined(__AVR_ATmega2560__)
6
+  #error Oops!  Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu.
7
+#endif
8
+
9
+#define X_STEP_PIN         28
10
+#define X_DIR_PIN          63
11
+#define X_ENABLE_PIN       29
12
+#define X_MIN_PIN          47
13
+#define X_MAX_PIN          2 //Max endstops default to disabled "-1", set to commented value to enable.
14
+
15
+#define Y_STEP_PIN         14 // A6
16
+#define Y_DIR_PIN          15 // A0
17
+#define Y_ENABLE_PIN       39
18
+#define Y_MIN_PIN          48
19
+#define Y_MAX_PIN          15
20
+
21
+#define Z_STEP_PIN         31 // A2
22
+#define Z_DIR_PIN          32 // A6
23
+#define Z_ENABLE_PIN       30 // A1
24
+#define Z_MIN_PIN          49
25
+#define Z_MAX_PIN          -1
26
+
27
+#define E0_STEP_PIN         34  //34
28
+#define E0_DIR_PIN          35 //35
29
+#define E0_ENABLE_PIN       33 //33
30
+
31
+#define E1_STEP_PIN         37 //37
32
+#define E1_DIR_PIN          40 //40
33
+#define E1_ENABLE_PIN       36 //36
34
+
35
+#define Y2_STEP_PIN         37
36
+#define Y2_DIR_PIN          40
37
+#define Y2_ENABLE_PIN       36
38
+
39
+#define Z2_STEP_PIN         37
40
+#define Z2_DIR_PIN          40
41
+#define Z2_ENABLE_PIN       36
42
+
43
+#define SDPOWER            -1
44
+#define SDSS               11
45
+#define SDCARDDETECT       -1 // 10 optional also used as mode pin
46
+#define LED_PIN            13
47
+#define FAN_PIN            7
48
+#define PS_ON_PIN          -1
49
+#define KILL_PIN           -1
50
+#define SOL1_PIN   16
51
+#define SOL2_PIN    17
52
+
53
+#define HEATER_0_PIN       9
54
+#define HEATER_1_PIN       8 // 12
55
+#define HEATER_2_PIN       11 //-1 // 13
56
+#define TEMP_0_PIN         13 //D27   // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!!
57
+#define TEMP_1_PIN         15 // 1
58
+#define TEMP_2_PIN         -1 // 2
59
+#define HEATER_BED_PIN     10 // 14/15
60
+#define TEMP_BED_PIN       14 // 1,2 or I2C
61
+/*  Unused (1) (2) (3) 4 5 6 7 8 9 10 11 12 13 (14) (15) (16) 17 (18) (19) (20) (21) (22) (23) 24 (25) (26) (27) 28 (29) (30) (31)  */
62
+

+ 92
- 0
Marlin/pins_MEGATRONICS.h View File

@@ -0,0 +1,92 @@
1
+/**
2
+ * MegaTronics pin assignments
3
+ */
4
+
5
+#ifndef __AVR_ATmega2560__
6
+  #error Oops!  Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu.
7
+#endif
8
+
9
+#define LARGE_FLASH        true
10
+
11
+#define X_STEP_PIN         26
12
+#define X_DIR_PIN          28
13
+#define X_ENABLE_PIN       24
14
+#define X_MIN_PIN          41
15
+#define X_MAX_PIN          37
16
+
17
+#define Y_STEP_PIN         60 // A6
18
+#define Y_DIR_PIN          61 // A7
19
+#define Y_ENABLE_PIN       22
20
+#define Y_MIN_PIN          14
21
+#define Y_MAX_PIN          15
22
+
23
+#define Z_STEP_PIN         54 // A0
24
+#define Z_DIR_PIN          55 // A1
25
+#define Z_ENABLE_PIN       56 // A2
26
+#define Z_MIN_PIN          18
27
+#define Z_MAX_PIN          19
28
+
29
+#define E0_STEP_PIN        31
30
+#define E0_DIR_PIN         32
31
+#define E0_ENABLE_PIN      38
32
+
33
+#define E1_STEP_PIN        34
34
+#define E1_DIR_PIN         36
35
+#define E1_ENABLE_PIN      30
36
+
37
+#define SDPOWER            -1
38
+#define SDSS               53
39
+#define LED_PIN            13
40
+
41
+
42
+#define FAN_PIN            7 // IO pin. Buffer needed
43
+#define PS_ON_PIN          12
44
+#define KILL_PIN           -1
45
+
46
+#define HEATER_0_PIN       9    // EXTRUDER 1
47
+#define HEATER_1_PIN       8    // EXTRUDER 2 (FAN On Sprinter)
48
+#define HEATER_2_PIN       -1
49
+
50
+#if TEMP_SENSOR_0 == -1
51
+#define TEMP_0_PIN         8   // ANALOG NUMBERING
52
+#else
53
+#define TEMP_0_PIN         13   // ANALOG NUMBERING
54
+
55
+#endif
56
+
57
+#define TEMP_1_PIN         15   // ANALOG NUMBERING
58
+#define TEMP_2_PIN         -1   // ANALOG NUMBERING
59
+#define HEATER_BED_PIN     10   // BED
60
+#define TEMP_BED_PIN       14   // ANALOG NUMBERING
61
+
62
+#define BEEPER 33     // Beeper on AUX-4
63
+
64
+
65
+#if defined(ULTRA_LCD) && defined(NEWPANEL)
66
+  //arduino pin which triggers an piezzo beeper
67
+
68
+  #define LCD_PINS_RS 16
69
+  #define LCD_PINS_ENABLE 17
70
+  #define LCD_PINS_D4 23
71
+  #define LCD_PINS_D5 25
72
+  #define LCD_PINS_D6 27
73
+  #define LCD_PINS_D7 29
74
+
75
+  //buttons are directly attached using AUX-2
76
+  #define BTN_EN1 59
77
+  #define BTN_EN2 64
78
+  #define BTN_ENC 43  //the click
79
+
80
+  #define BLEN_C 2
81
+  #define BLEN_B 1
82
+  #define BLEN_A 0
83
+
84
+  #define SDCARDDETECT -1   // Ramps does not use this port
85
+
86
+    //encoder rotation values
87
+  #define encrot0 0
88
+  #define encrot1 2
89
+  #define encrot2 3
90
+  #define encrot3 1
91
+
92
+#endif // ULTRA_LCD && NEWPANEL

+ 88
- 0
Marlin/pins_MEGATRONICS_1.h View File

@@ -0,0 +1,88 @@
1
+/**
2
+ * Minitronics v1.0 pin assignments
3
+ */
4
+
5
+#ifndef __AVR_ATmega1281__
6
+  #error Oops!  Make sure you have 'Minitronics' selected from the 'Tools -> Boards' menu.
7
+#endif
8
+
9
+#define LARGE_FLASH        true
10
+
11
+#define X_STEP_PIN 48
12
+#define X_DIR_PIN 47
13
+#define X_ENABLE_PIN 49
14
+#define X_MIN_PIN 5
15
+#define X_MAX_PIN 2
16
+
17
+#define Y_STEP_PIN 39 // A6
18
+#define Y_DIR_PIN 40 // A0
19
+#define Y_ENABLE_PIN 38
20
+#define Y_MIN_PIN 2
21
+#define Y_MAX_PIN 15
22
+
23
+#define Z_STEP_PIN 42 // A2
24
+#define Z_DIR_PIN 43 // A6
25
+#define Z_ENABLE_PIN 41 // A1
26
+#define Z_MIN_PIN 6
27
+#define Z_MAX_PIN -1
28
+
29
+#define E0_STEP_PIN 45
30
+#define E0_DIR_PIN 44
31
+#define E0_ENABLE_PIN 27
32
+
33
+#define E1_STEP_PIN 36
34
+#define E1_DIR_PIN 35
35
+#define E1_ENABLE_PIN 37
36
+
37
+#define E2_STEP_PIN -1
38
+#define E2_DIR_PIN -1
39
+#define E2_ENABLE_PIN -1
40
+
41
+#define SDPOWER -1
42
+#define SDSS 16
43
+#define LED_PIN 46
44
+
45
+#define FAN_PIN 9
46
+#define FAN2_PIN -1
47
+#define PS_ON_PIN -1
48
+#define KILL_PIN -1
49
+
50
+#define HEATER_0_PIN 7 // EXTRUDER 1
51
+#define HEATER_1_PIN 8 // EXTRUDER 2
52
+#define HEATER_2_PIN -1
53
+
54
+
55
+#define TEMP_0_PIN 7 // ANALOG NUMBERING
56
+#define TEMP_1_PIN 6 // ANALOG NUMBERING
57
+#define TEMP_2_PIN -1 // ANALOG NUMBERING
58
+
59
+#define HEATER_BED_PIN 3 // BED
60
+#define TEMP_BED_PIN 6 // ANALOG NUMBERING
61
+
62
+#define BEEPER -1
63
+
64
+
65
+#define LCD_PINS_RS -1
66
+#define LCD_PINS_ENABLE -1
67
+#define LCD_PINS_D4 -1
68
+#define LCD_PINS_D5 -1
69
+#define LCD_PINS_D6 -1
70
+#define LCD_PINS_D7 -1
71
+
72
+
73
+// Buttons are directly attached using keypad
74
+#define BTN_EN1 -1
75
+#define BTN_EN2 -1
76
+#define BTN_ENC -1 // the click
77
+
78
+#define BLEN_C 2
79
+#define BLEN_B 1
80
+#define BLEN_A 0
81
+
82
+#define SDCARDDETECT -1  // Megatronics does not use this port
83
+
84
+// Encoder rotation values
85
+#define encrot0 0
86
+#define encrot1 2
87
+#define encrot2 3
88
+#define encrot3 1

+ 103
- 0
Marlin/pins_MEGATRONICS_2.h View File

@@ -0,0 +1,103 @@
1
+/**
2
+ * MegaTronics v2.0 pin assignments
3
+ */
4
+
5
+#ifndef __AVR_ATmega2560__
6
+  #error Oops!  Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu.
7
+#endif
8
+
9
+#define LARGE_FLASH        true
10
+
11
+#define X_STEP_PIN 26
12
+#define X_DIR_PIN 27
13
+#define X_ENABLE_PIN 25
14
+#define X_MIN_PIN 37
15
+#define X_MAX_PIN 40
16
+
17
+#define Y_STEP_PIN 4 // A6
18
+#define Y_DIR_PIN 54 // A0
19
+#define Y_ENABLE_PIN 5
20
+#define Y_MIN_PIN 41
21
+#define Y_MAX_PIN 38
22
+
23
+#define Z_STEP_PIN 56 // A2
24
+#define Z_DIR_PIN 60 // A6
25
+#define Z_ENABLE_PIN 55 // A1
26
+#define Z_MIN_PIN 18
27
+#define Z_MAX_PIN 19
28
+
29
+#define E0_STEP_PIN 35
30
+#define E0_DIR_PIN 36
31
+#define E0_ENABLE_PIN 34
32
+
33
+#define E1_STEP_PIN 29
34
+#define E1_DIR_PIN 39
35
+#define E1_ENABLE_PIN 28
36
+
37
+#define E2_STEP_PIN 23
38
+#define E2_DIR_PIN 24
39
+#define E2_ENABLE_PIN 22
40
+
41
+#define SDPOWER -1
42
+#define SDSS 53
43
+#define LED_PIN 13
44
+
45
+#define FAN_PIN 7
46
+#define FAN2_PIN 6
47
+#define PS_ON_PIN 12
48
+#define KILL_PIN -1
49
+
50
+#define HEATER_0_PIN 9 // EXTRUDER 1
51
+#define HEATER_1_PIN 8 // EXTRUDER 2
52
+#define HEATER_2_PIN -1
53
+
54
+#if TEMP_SENSOR_0 == -1
55
+  #define TEMP_0_PIN 4 // ANALOG NUMBERING
56
+#else
57
+  #define TEMP_0_PIN 13 // ANALOG NUMBERING
58
+#endif
59
+
60
+
61
+#if TEMP_SENSOR_1 == -1
62
+  #define TEMP_1_PIN 8 // ANALOG NUMBERING
63
+#else
64
+  #define TEMP_1_PIN 15 // ANALOG NUMBERING
65
+#endif
66
+
67
+#define TEMP_2_PIN -1 // ANALOG NUMBERING
68
+
69
+#define HEATER_BED_PIN 10 // BED
70
+
71
+#if TEMP_SENSOR_BED == -1
72
+  #define TEMP_BED_PIN 8 // ANALOG NUMBERING
73
+#else
74
+  #define TEMP_BED_PIN 14 // ANALOG NUMBERING
75
+#endif
76
+
77
+#define BEEPER 64
78
+
79
+
80
+#define LCD_PINS_RS 14
81
+#define LCD_PINS_ENABLE 15
82
+#define LCD_PINS_D4 30
83
+#define LCD_PINS_D5 31
84
+#define LCD_PINS_D6 32
85
+#define LCD_PINS_D7 33
86
+
87
+
88
+// Buttons are directly attached using keypad
89
+#define BTN_EN1 61
90
+#define BTN_EN2 59
91
+#define BTN_ENC 43 //the click
92
+
93
+#define BLEN_C 2
94
+#define BLEN_B 1
95
+#define BLEN_A 0
96
+
97
+#define SDCARDDETECT -1  // Megatronics does not use this port
98
+
99
+// Encoder rotation values
100
+#define encrot0 0
101
+#define encrot1 2
102
+#define encrot2 3
103
+#define encrot3 1

+ 89
- 0
Marlin/pins_MEGATRONICS_3.h View File

@@ -0,0 +1,89 @@
1
+/**
2
+ * MegaTronics v3.0 pin assignments
3
+ */
4
+
5
+#ifndef __AVR_ATmega2560__
6
+  #error Oops!  Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu.
7
+#endif
8
+
9
+#define LARGE_FLASH        true
10
+
11
+#define X_STEP_PIN         58
12
+#define X_DIR_PIN          57
13
+#define X_ENABLE_PIN       59
14
+#define X_MIN_PIN          37
15
+#define X_MAX_PIN          40   // 2 // Max endstops default to disabled "-1", set to commented value to enable.
16
+
17
+#define Y_STEP_PIN         5 // A6
18
+#define Y_DIR_PIN          17 // A0
19
+#define Y_ENABLE_PIN       4
20
+#define Y_MIN_PIN          41
21
+#define Y_MAX_PIN          38   // 15
22
+
23
+#define Z_STEP_PIN         16 // A2
24
+#define Z_DIR_PIN          11 // A6
25
+#define Z_ENABLE_PIN       3 // A1
26
+#define Z_MIN_PIN          18
27
+#define Z_MAX_PIN          19
28
+
29
+#define E0_STEP_PIN        28
30
+#define E0_DIR_PIN         27
31
+#define E0_ENABLE_PIN      29
32
+
33
+#define E1_STEP_PIN        25
34
+#define E1_DIR_PIN         24
35
+#define E1_ENABLE_PIN      26
36
+
37
+#define E2_STEP_PIN        22
38
+#define E2_DIR_PIN         60
39
+#define E2_ENABLE_PIN      23
40
+
41
+#define SDPOWER -1
42
+#define SDSS 53
43
+#define LED_PIN 13
44
+
45
+#define PS_ON_PIN 12
46
+#define KILL_PIN -1
47
+
48
+#define HEATER_0_PIN 2
49
+#define HEATER_1_PIN 9
50
+#define HEATER_2_PIN 8
51
+#define HEATER_BED_PIN 10
52
+#define FAN_PIN 6
53
+#define FAN2_PIN 7
54
+
55
+#define TEMP_0_PIN   (TEMP_SENSOR_0 == -1 ?  11 : 15) // ANALOG NUMBERING
56
+#define TEMP_1_PIN   (TEMP_SENSOR_1 == -1 ?  10 : 13) // ANALOG NUMBERING
57
+#define TEMP_2_PIN   (TEMP_SENSOR_2 == -1 ?   9 : 12) // ANALOG NUMBERING
58
+#define TEMP_BED_PIN (TEMP_SENSOR_BED == -1 ? 8 : 14) // ANALOG NUMBERING
59
+
60
+#define BEEPER 61
61
+
62
+#define LCD_PINS_RS 32
63
+#define LCD_PINS_ENABLE 31
64
+#define LCD_PINS_D4 14
65
+#define LCD_PINS_D5 30
66
+#define LCD_PINS_D6 39
67
+#define LCD_PINS_D7 15
68
+
69
+#define SHIFT_CLK 43
70
+#define SHIFT_LD 35
71
+#define SHIFT_OUT 34
72
+#define SHIFT_EN 44
73
+
74
+// Buttons are directly attached using keypad
75
+#define BTN_EN1 44
76
+#define BTN_EN2 45
77
+#define BTN_ENC 33 // the click
78
+
79
+#define BLEN_C 2
80
+#define BLEN_B 1
81
+#define BLEN_A 0
82
+
83
+#define SDCARDDETECT -1	// Megatronics does not use this port
84
+
85
+// Encoder rotation values
86
+#define encrot0 0
87
+#define encrot1 2
88
+#define encrot2 3
89
+#define encrot3 1

+ 11
- 0
Marlin/pins_MELZI.h View File

@@ -0,0 +1,11 @@
1
+/**
2
+ * Melzi pin assignments
3
+ */
4
+
5
+#define SANGUINOLOLU_V_1_2
6
+
7
+#if defined(__AVR_ATmega1284P__)
8
+  #define LARGE_FLASH true
9
+#endif
10
+
11
+#include "pins_SANGUINOLOLU_11.h"

+ 15
- 0
Marlin/pins_MELZI_1284.h View File

@@ -0,0 +1,15 @@
1
+/**
2
+ * Melzi with ATmega1284 (MaKr3d version) pin assignments
3
+ */
4
+
5
+#define MELZI
6
+
7
+#undef MOTHERBOARD
8
+#define MOTHERBOARD BOARD_SANGUINOLOLU_11
9
+#define SANGUINOLOLU_V_1_2
10
+
11
+#if defined(__AVR_ATmega1284P__)
12
+  #define LARGE_FLASH true
13
+#endif
14
+
15
+#include "pins_SANGUINOLOLU_11.h"

+ 91
- 0
Marlin/pins_OMCA.h View File

@@ -0,0 +1,91 @@
1
+/**
2
+ * Open Motion controller with enable based extruders (Final!)
3
+ *
4
+ *                        ATMega644
5
+ *
6
+ *                        +---\/---+
7
+ *            (D 0) PB0  1|        |40  PA0 (AI 0 / D31)
8
+ *            (D 1) PB1  2|        |39  PA1 (AI 1 / D30)
9
+ *       INT2 (D 2) PB2  3|        |38  PA2 (AI 2 / D29)
10
+ *        PWM (D 3) PB3  4|        |37  PA3 (AI 3 / D28)
11
+ *        PWM (D 4) PB4  5|        |36  PA4 (AI 4 / D27)
12
+ *       MOSI (D 5) PB5  6|        |35  PA5 (AI 5 / D26)
13
+ *       MISO (D 6) PB6  7|        |34  PA6 (AI 6 / D25)
14
+ *        SCK (D 7) PB7  8|        |33  PA7 (AI 7 / D24)
15
+ *                  RST  9|        |32  AREF
16
+ *                  VCC 10|        |31  GND
17
+ *                  GND 11|        |30  AVCC
18
+ *                XTAL2 12|        |29  PC7 (D 23)
19
+ *                XTAL1 13|        |28  PC6 (D 22)
20
+ *       RX0 (D 8)  PD0 14|        |27  PC5 (D 21) TDI
21
+ *       TX0 (D 9)  PD1 15|        |26  PC4 (D 20) TDO
22
+ *  INT0 RX1 (D 10) PD2 16|        |25  PC3 (D 19) TMS
23
+ *  INT1 TX1 (D 11) PD3 17|        |24  PC2 (D 18) TCK
24
+ *       PWM (D 12) PD4 18|        |23  PC1 (D 17) SDA
25
+ *       PWM (D 13) PD5 19|        |22  PC0 (D 16) SCL
26
+ *       PWM (D 14) PD6 20|        |21  PD7 (D 15) PWM
27
+ *                        +--------+
28
+ *
29
+ * REF http://sanguino.cc/hardware
30
+ */
31
+
32
+#if !defined(__AVR_ATmega644P__) && !defined(__AVR_ATmega644__)
33
+  #error Oops!  Make sure you have 'Sanguino' selected from the 'Tools -> Boards' menu. (Final OMCA board)
34
+#endif
35
+
36
+#define X_STEP_PIN         26
37
+#define X_DIR_PIN          25
38
+#define X_ENABLE_PIN       10
39
+#define X_STOP_PIN         0
40
+
41
+#define Y_STEP_PIN         28
42
+#define Y_DIR_PIN          27
43
+#define Y_ENABLE_PIN       10
44
+#define Y_STOP_PIN         1
45
+
46
+#define Z_STEP_PIN         23
47
+#define Z_DIR_PIN          22
48
+#define Z_ENABLE_PIN       10
49
+#define Z_STOP_PIN         2
50
+
51
+#define E0_STEP_PIN         24
52
+#define E0_DIR_PIN          21
53
+#define E0_ENABLE_PIN       10
54
+
55
+// future proofing
56
+#define __FS  20
57
+#define __FD  19
58
+#define __GS  18
59
+#define __GD  13
60
+
61
+#define UNUSED_PWM           14 // PWM on LEFT connector
62
+
63
+#define E1_STEP_PIN         -1 // 21
64
+#define E1_DIR_PIN          -1 // 20
65
+#define E1_ENABLE_PIN       -1 // 19
66
+
67
+#define E2_STEP_PIN         -1 // 21
68
+#define E2_DIR_PIN          -1 // 20
69
+#define E2_ENABLE_PIN       -1 // 18
70
+
71
+#define SDPOWER            -1
72
+#define SDSS               11
73
+#define SDCARDDETECT       -1 // 10 optional also used as mode pin
74
+#define LED_PIN            -1
75
+#define FAN_PIN            14 // PWM on MIDDLE connector
76
+#define PS_ON_PIN          -1
77
+#define KILL_PIN           -1
78
+
79
+#define HEATER_0_PIN        3 // DONE PWM on RIGHT connector
80
+#define HEATER_1_PIN       -1
81
+#define HEATER_2_PIN       -1
82
+#define HEATER_1_PIN       -1
83
+#define HEATER_2_PIN       -1
84
+#define TEMP_0_PIN          0 // ANALOG INPUT NUMBERING
85
+#define TEMP_1_PIN          1 // ANALOG
86
+#define TEMP_2_PIN         -1 // 2
87
+#define HEATER_BED_PIN      4
88
+#define TEMP_BED_PIN        2 // 1,2 or I2C
89
+
90
+#define I2C_SCL       16
91
+#define I2C_SDA       17

+ 78
- 0
Marlin/pins_OMCA_A.h View File

@@ -0,0 +1,78 @@
1
+/**
2
+ * Open Motion controller with enable based extruders (Alpha!)
3
+ *
4
+ *                        ATMega644
5
+ *
6
+ *                        +---\/---+
7
+ *            (D 0) PB0  1|        |40  PA0 (AI 0 / D31)
8
+ *            (D 1) PB1  2|        |39  PA1 (AI 1 / D30)
9
+ *       INT2 (D 2) PB2  3|        |38  PA2 (AI 2 / D29)
10
+ *        PWM (D 3) PB3  4|        |37  PA3 (AI 3 / D28)
11
+ *        PWM (D 4) PB4  5|        |36  PA4 (AI 4 / D27)
12
+ *       MOSI (D 5) PB5  6|        |35  PA5 (AI 5 / D26)
13
+ *       MISO (D 6) PB6  7|        |34  PA6 (AI 6 / D25)
14
+ *        SCK (D 7) PB7  8|        |33  PA7 (AI 7 / D24)
15
+ *                  RST  9|        |32  AREF
16
+ *                  VCC 10|        |31  GND
17
+ *                  GND 11|        |30  AVCC
18
+ *                XTAL2 12|        |29  PC7 (D 23)
19
+ *                XTAL1 13|        |28  PC6 (D 22)
20
+ *       RX0 (D 8)  PD0 14|        |27  PC5 (D 21) TDI
21
+ *       TX0 (D 9)  PD1 15|        |26  PC4 (D 20) TDO
22
+ *  INT0 RX1 (D 10) PD2 16|        |25  PC3 (D 19) TMS
23
+ *  INT1 TX1 (D 11) PD3 17|        |24  PC2 (D 18) TCK
24
+ *       PWM (D 12) PD4 18|        |23  PC1 (D 17) SDA
25
+ *       PWM (D 13) PD5 19|        |22  PC0 (D 16) SCL
26
+ *       PWM (D 14) PD6 20|        |21  PD7 (D 15) PWM
27
+ *                        +--------+
28
+ *
29
+ */
30
+
31
+#ifndef __AVR_ATmega644__
32
+  #error Oops!  Make sure you have 'SanguinoA' selected from the 'Tools -> Boards' menu.
33
+#endif
34
+
35
+#define X_STEP_PIN         21
36
+#define X_DIR_PIN          20
37
+#define X_ENABLE_PIN       24
38
+#define X_STOP_PIN         0
39
+
40
+#define Y_STEP_PIN         23
41
+#define Y_DIR_PIN          22
42
+#define Y_ENABLE_PIN       24
43
+#define Y_STOP_PIN         1
44
+
45
+#define Z_STEP_PIN         26
46
+#define Z_DIR_PIN          25
47
+#define Z_ENABLE_PIN       24
48
+#define Z_STOP_PIN         2
49
+
50
+#define E0_STEP_PIN         28
51
+#define E0_DIR_PIN          27
52
+#define E0_ENABLE_PIN       24
53
+
54
+#define E1_STEP_PIN         -1 // 19
55
+#define E1_DIR_PIN          -1 // 18
56
+#define E1_ENABLE_PIN       24
57
+
58
+#define E2_STEP_PIN         -1 // 17
59
+#define E2_DIR_PIN          -1 // 16
60
+#define E2_ENABLE_PIN       24
61
+
62
+#define SDPOWER            -1
63
+#define SDSS               11
64
+#define SDCARDDETECT       -1 // 10 optional also used as mode pin
65
+#define LED_PIN            -1
66
+#define FAN_PIN            3
67
+#define PS_ON_PIN          -1
68
+#define KILL_PIN           -1
69
+
70
+#define HEATER_0_PIN       4
71
+#define HEATER_1_PIN       -1 // 12
72
+#define HEATER_2_PIN       -1 // 13
73
+#define TEMP_0_PIN          0 //D27   // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!!
74
+#define TEMP_1_PIN         -1 // 1
75
+#define TEMP_2_PIN         -1 // 2
76
+#define HEATER_BED_PIN     -1 // 14/15
77
+#define TEMP_BED_PIN       -1 // 1,2 or I2C
78
+/*  Unused (1) (2) (3) 4 5 6 7 8 9 10 11 12 13 (14) (15) (16) 17 (18) (19) (20) (21) (22) (23) 24 (25) (26) (27) 28 (29) (30) (31)  */

+ 88
- 0
Marlin/pins_PRINTRBOARD.h View File

@@ -0,0 +1,88 @@
1
+/**
2
+ * Printrboard pin assignments (AT90USB1286)
3
+ * Requires the Teensyduino software with Teensy++ 2.0 selected in Arduino IDE!
4
+ * http://www.pjrc.com/teensy/teensyduino.html
5
+ * See http://reprap.org/wiki/Printrboard for more info
6
+ */
7
+
8
+#ifndef __AVR_AT90USB1286__
9
+  #error Oops!  Make sure you have 'Teensy++ 2.0' selected from the 'Tools -> Boards' menu.
10
+#endif
11
+
12
+#ifdef AT90USBxx_TEENSYPP_ASSIGNMENTS  // use Teensyduino Teensy++2.0 pin assignments instead of Marlin traditional.
13
+  #error These Printrboard assignments depend on traditional Marlin assignments, not AT90USBxx_TEENSYPP_ASSIGNMENTS in fastio.h
14
+#endif
15
+
16
+#define AT90USB 1286  // Disable MarlinSerial etc.
17
+
18
+#define LARGE_FLASH        true
19
+
20
+#define X_STEP_PIN          0
21
+#define X_DIR_PIN           1
22
+#define X_ENABLE_PIN       39
23
+
24
+#define Y_STEP_PIN          2
25
+#define Y_DIR_PIN           3
26
+#define Y_ENABLE_PIN       38
27
+
28
+#define Z_STEP_PIN          4
29
+#define Z_DIR_PIN           5
30
+#define Z_ENABLE_PIN       23
31
+
32
+#define E0_STEP_PIN         6
33
+#define E0_DIR_PIN          7
34
+#define E0_ENABLE_PIN      19
35
+
36
+#define HEATER_0_PIN       21  // Extruder
37
+#define HEATER_1_PIN       46
38
+#define HEATER_2_PIN       47
39
+#define HEATER_BED_PIN     20
40
+
41
+// If soft or fast PWM is off then use Teensyduino pin numbering, Marlin
42
+// fastio pin numbering otherwise
43
+#ifdef FAN_SOFT_PWM || FAST_PWM_FAN
44
+  #define FAN_PIN          22
45
+#else
46
+  #define FAN_PIN          16
47
+#endif
48
+
49
+#define X_STOP_PIN         35
50
+#define Y_STOP_PIN          8
51
+#define Z_STOP_PIN         36
52
+#define TEMP_0_PIN          1  // Extruder / Analog pin numbering
53
+#define TEMP_BED_PIN        0  // Bed / Analog pin numbering
54
+
55
+#ifdef FILAMENT_SENSOR
56
+  #define FILWIDTH_PIN      2
57
+#endif
58
+
59
+#define TEMP_1_PIN         -1
60
+#define TEMP_2_PIN         -1
61
+
62
+#define SDPOWER            -1
63
+#define SDSS                8
64
+#define LED_PIN            -1
65
+#define PS_ON_PIN          -1
66
+#define KILL_PIN           -1
67
+#define ALARM_PIN          -1
68
+
69
+#ifndef SDSUPPORT
70
+// these pins are defined in the SD library if building with SD support
71
+  #define SCK_PIN           9
72
+  #define MISO_PIN         11
73
+  #define MOSI_PIN         10
74
+#endif
75
+
76
+#if defined(ULTRA_LCD) && defined(NEWPANEL)
77
+  //we have no buzzer installed
78
+  #define BEEPER -1
79
+  //LCD Pins
80
+  #ifdef LCD_I2C_PANELOLU2
81
+    #define BTN_EN1 27  //RX1 - fastio.h pin mapping 27
82
+    #define BTN_EN2 26  //TX1 - fastio.h pin mapping 26
83
+    #define BTN_ENC 43 //A3 - fastio.h pin mapping 43
84
+    #define SDSS   40 //use SD card on Panelolu2 (Teensyduino pin mapping)
85
+  #endif // LCD_I2C_PANELOLU2
86
+  //not connected to a pin
87
+  #define SDCARDDETECT -1    
88
+#endif // ULTRA_LCD && NEWPANEL

+ 165
- 0
Marlin/pins_RAMBO.h View File

@@ -0,0 +1,165 @@
1
+/**
2
+ * Rambo pin assignments
3
+ */
4
+
5
+#ifndef __AVR_ATmega2560__
6
+  #error Oops!  Make sure you have 'Arduino Mega 2560' selected from the 'Tools -> Boards' menu.
7
+#endif
8
+
9
+#define LARGE_FLASH true
10
+
11
+// Servo support
12
+#ifdef NUM_SERVOS
13
+  #define SERVO0_PIN       22 //motor header MX1
14
+  #if NUM_SERVOS > 1
15
+    #define SERVO1_PIN     23 //Motor header MX2
16
+    #if NUM_SERVOS > 2
17
+      #define SERVO2_PIN   24 //Motor header MX3
18
+      #if NUM_SERVOS > 3
19
+        #define SERVO2_PIN  5 //pwm header pin 5
20
+      #endif
21
+    #endif
22
+  #endif
23
+#endif
24
+
25
+#define X_STEP_PIN 37
26
+#define X_DIR_PIN 48
27
+#define X_MIN_PIN 12
28
+#define X_MAX_PIN 24
29
+#define X_ENABLE_PIN 29
30
+#define X_MS1_PIN 40
31
+#define X_MS2_PIN 41
32
+
33
+#define Y_STEP_PIN 36
34
+#define Y_DIR_PIN 49
35
+#define Y_MIN_PIN 11
36
+#define Y_MAX_PIN 23
37
+#define Y_ENABLE_PIN 28
38
+#define Y_MS1_PIN 69
39
+#define Y_MS2_PIN 39
40
+
41
+#define Z_STEP_PIN 35
42
+#define Z_DIR_PIN 47
43
+#define Z_MIN_PIN 10
44
+#define Z_MAX_PIN 30
45
+#define Z_ENABLE_PIN 27
46
+#define Z_MS1_PIN 68
47
+#define Z_MS2_PIN 67
48
+
49
+#define HEATER_BED_PIN 3
50
+#define TEMP_BED_PIN 2
51
+
52
+#define HEATER_0_PIN  9
53
+#define TEMP_0_PIN 0
54
+
55
+#define HEATER_1_PIN 7
56
+#define TEMP_1_PIN 1
57
+
58
+#ifdef BARICUDA
59
+  #define HEATER_2_PIN 6
60
+#else
61
+  #define HEATER_2_PIN -1
62
+#endif
63
+
64
+#define TEMP_2_PIN -1
65
+
66
+#define E0_STEP_PIN         34
67
+#define E0_DIR_PIN          43
68
+#define E0_ENABLE_PIN       26
69
+#define E0_MS1_PIN 65
70
+#define E0_MS2_PIN 66
71
+
72
+#define E1_STEP_PIN         33
73
+#define E1_DIR_PIN          42
74
+#define E1_ENABLE_PIN       25
75
+#define E1_MS1_PIN 63
76
+#define E1_MS2_PIN 64
77
+
78
+#define DIGIPOTSS_PIN 38
79
+#define DIGIPOT_CHANNELS {4,5,3,0,1} // X Y Z E0 E1 digipot channels to stepper driver mapping
80
+
81
+#define SDPOWER            -1
82
+#define SDSS               53
83
+#define LED_PIN            13
84
+#define FAN_PIN            8  
85
+
86
+/**********************************************************
87
+  Fan Pins
88
+  Fan_0 8
89
+  Fan_1 6
90
+  Fan_2 2
91
+***********************************************************/
92
+#define PS_ON_PIN          4
93
+#define KILL_PIN           -1 //80 with Smart Controller LCD
94
+#define SUICIDE_PIN        -1  //PIN that has to be turned on right after start, to keep power flowing.
95
+
96
+#ifdef ULTRA_LCD
97
+  #define KILL_PIN 80
98
+  #ifdef NEWPANEL
99
+   //arduino pin which triggers an piezzo beeper
100
+    #define BEEPER 79      // Beeper on AUX-4
101
+    #define LCD_PINS_RS 70
102
+    #define LCD_PINS_ENABLE 71
103
+    #define LCD_PINS_D4 72
104
+    #define LCD_PINS_D5 73
105
+    #define LCD_PINS_D6 74
106
+    #define LCD_PINS_D7 75
107
+
108
+    //buttons are directly attached using AUX-2
109
+    #define BTN_EN1 76
110
+    #define BTN_EN2 77
111
+    #define BTN_ENC 78  //the click
112
+
113
+    #define BLEN_C 2
114
+    #define BLEN_B 1
115
+    #define BLEN_A 0
116
+
117
+    #define SDCARDDETECT 81    // Ramps does not use this port
118
+
119
+    //encoder rotation values
120
+    #define encrot0 0
121
+    #define encrot1 2
122
+    #define encrot2 3
123
+    #define encrot3 1
124
+  #else //!NEWPANEL - old style panel with shift register
125
+    //arduino pin witch triggers an piezzo beeper
126
+    #define BEEPER 33    No Beeper added
127
+    //buttons are attached to a shift register
128
+    // Not wired this yet
129
+    // #define SHIFT_CLK 38
130
+    // #define SHIFT_LD 42
131
+    // #define SHIFT_OUT 40
132
+    // #define SHIFT_EN 17
133
+
134
+    #define LCD_PINS_RS 75
135
+    #define LCD_PINS_ENABLE 17
136
+    #define LCD_PINS_D4 23
137
+    #define LCD_PINS_D5 25
138
+    #define LCD_PINS_D6 27
139
+    #define LCD_PINS_D7 29
140
+
141
+    //encoder rotation values
142
+    #define encrot0 0
143
+    #define encrot1 2
144
+    #define encrot2 3
145
+    #define encrot3 1
146
+
147
+    //bits in the shift register that carry the buttons for:
148
+    // left up center down right red
149
+    #define BL_LE 7
150
+    #define BL_UP 6
151
+    #define BL_MI 5
152
+    #define BL_DW 4
153
+    #define BL_RI 3
154
+    #define BL_ST 2
155
+    #define BLEN_B 1
156
+    #define BLEN_A 0
157
+
158
+  #endif // !NEWPANEL
159
+
160
+#endif // ULTRA_LCD
161
+
162
+#ifdef FILAMENT_SENSOR
163
+  //Filip added pin for Filament sensor analog input 
164
+  #define FILWIDTH_PIN        3
165
+#endif

+ 227
- 0
Marlin/pins_RAMPS_13.h View File

@@ -0,0 +1,227 @@
1
+/**
2
+ * Arduino Mega with RAMPS v1.3 pin assignments
3
+ *
4
+ * Applies to the following boards:
5
+ *
6
+ *  RAMPS_13_EFB (Extruder, Fan, Bed)
7
+ *  RAMPS_13_EEB (Extruder, Extruder, Bed)
8
+ *  RAMPS_13_EFF (Extruder, Fan, Fan)
9
+ *  RAMPS_13_EEF (Extruder, Extruder, Fan)
10
+ *  3DRAG
11
+ *  K8200
12
+ *  AZTEEG_X3
13
+ *  AZTEEG_X3_PRO
14
+ */
15
+
16
+#if !defined(__AVR_ATmega1280__) && !defined(__AVR_ATmega2560__)
17
+  #error Oops!  Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu.
18
+#endif
19
+
20
+#define LARGE_FLASH true
21
+
22
+#define X_STEP_PIN         54
23
+#define X_DIR_PIN          55
24
+#define X_ENABLE_PIN       38
25
+#define X_MIN_PIN           3
26
+#define X_MAX_PIN           2
27
+
28
+#define Y_STEP_PIN         60
29
+#define Y_DIR_PIN          61
30
+#define Y_ENABLE_PIN       56
31
+#define Y_MIN_PIN          14
32
+#define Y_MAX_PIN          15
33
+
34
+#define Z_STEP_PIN         46
35
+#define Z_DIR_PIN          48
36
+#define Z_ENABLE_PIN       62
37
+#define Z_MIN_PIN          18
38
+#define Z_MAX_PIN          19
39
+
40
+#define Y2_STEP_PIN        36
41
+#define Y2_DIR_PIN         34
42
+#define Y2_ENABLE_PIN      30
43
+
44
+#define Z2_STEP_PIN        36
45
+#define Z2_DIR_PIN         34
46
+#define Z2_ENABLE_PIN      30
47
+
48
+#define E0_STEP_PIN        26
49
+#define E0_DIR_PIN         28
50
+#define E0_ENABLE_PIN      24
51
+
52
+#define E1_STEP_PIN        36
53
+#define E1_DIR_PIN         34
54
+#define E1_ENABLE_PIN      30
55
+
56
+#define SDPOWER            -1
57
+#define SDSS               53
58
+#define LED_PIN            13
59
+
60
+#if MB(RAMPS_13_EEB) && defined(FILAMENT_SENSOR)  // FMM added for Filament Extruder
61
+  // define analog pin for the filament width sensor input
62
+  // Use the RAMPS 1.4 Analog input 5 on the AUX2 connector
63
+  #define FILWIDTH_PIN        5
64
+#endif
65
+
66
+#if MB(RAMPS_13_EFB) || MB(RAMPS_13_EFF) || MB(AZTEEG_X3) || MB(AZTEEG_X3_PRO) || MB(WITBOX) || MB(HEPHESTOS)
67
+  #define FAN_PIN            9 // (Sprinter config)
68
+  #if MB(RAMPS_13_EFF)
69
+    #define CONTROLLERFAN_PIN  -1 // Pin used for the fan to cool controller
70
+  #endif
71
+#elif MB(RAMPS_13_EEF)
72
+  #define FAN_PIN            8
73
+#else
74
+  #define FAN_PIN            4 // IO pin. Buffer needed
75
+#endif
76
+
77
+#define PS_ON_PIN          12
78
+
79
+#if defined(REPRAP_DISCOUNT_SMART_CONTROLLER) || defined(G3D_PANEL)
80
+  #define KILL_PIN           41
81
+#else
82
+  #define KILL_PIN           -1
83
+#endif
84
+
85
+#if MB(RAMPS_13_EFF)
86
+  #define HEATER_0_PIN       8
87
+#else
88
+  #define HEATER_0_PIN       10   // EXTRUDER 1
89
+#endif
90
+
91
+#if MB(RAMPS_13_EFB) || MB(AZTEEG_X3) || MB(WITBOX) || MB(HEPHESTOS)
92
+  #define HEATER_1_PIN       -1
93
+#else
94
+  #define HEATER_1_PIN       9    // EXTRUDER 2 (FAN On Sprinter)
95
+#endif
96
+
97
+#define HEATER_2_PIN       -1
98
+
99
+#define TEMP_0_PIN         13   // ANALOG NUMBERING
100
+#define TEMP_1_PIN         15   // ANALOG NUMBERING
101
+#define TEMP_2_PIN         -1   // ANALOG NUMBERING
102
+
103
+#if MB(RAMPS_13_EFF) || MB(RAMPS_13_EEF)
104
+  #define HEATER_BED_PIN     -1    // NO BED
105
+#else
106
+  #define HEATER_BED_PIN     8    // BED
107
+#endif
108
+
109
+#define TEMP_BED_PIN       14   // ANALOG NUMBERING
110
+
111
+#ifdef NUM_SERVOS
112
+  #define SERVO0_PIN         11
113
+
114
+  #if NUM_SERVOS > 1
115
+    #define SERVO1_PIN         6
116
+  #endif
117
+
118
+  #if NUM_SERVOS > 2
119
+    #define SERVO2_PIN         5
120
+  #endif
121
+
122
+  #if NUM_SERVOS > 3
123
+    #define SERVO3_PIN         4
124
+  #endif
125
+#endif
126
+
127
+#if MB(AZTEEG_X3_PRO)
128
+  #define BEEPER 33
129
+#endif
130
+
131
+#ifdef TEMP_STAT_LEDS
132
+  #if MB(AZTEEG_X3)
133
+    #define STAT_LED_RED       6
134
+    #define STAT_LED_BLUE     11
135
+  #endif
136
+#endif
137
+
138
+#ifdef ULTRA_LCD
139
+
140
+  #ifdef NEWPANEL
141
+    #define LCD_PINS_RS 16
142
+    #define LCD_PINS_ENABLE 17
143
+    #define LCD_PINS_D4 23
144
+    #define LCD_PINS_D5 25
145
+    #define LCD_PINS_D6 27
146
+    #define LCD_PINS_D7 29
147
+
148
+    #ifdef REPRAP_DISCOUNT_SMART_CONTROLLER
149
+      #define BEEPER 37
150
+
151
+      #define BTN_EN1 31
152
+      #define BTN_EN2 33
153
+      #define BTN_ENC 35
154
+
155
+      #define SDCARDDETECT 49
156
+    #elif defined(LCD_I2C_PANELOLU2)
157
+      #define BTN_EN1 47  // reverse if the encoder turns the wrong way.
158
+      #define BTN_EN2 43
159
+      #define BTN_ENC 32
160
+      #define LCD_SDSS 53
161
+      #define SDCARDDETECT -1
162
+      #define KILL_PIN 41
163
+    #elif defined(LCD_I2C_VIKI)
164
+      #define BTN_EN1 22  // reverse if the encoder turns the wrong way.
165
+      #define BTN_EN2 7
166
+      #define BTN_ENC -1
167
+      #define LCD_SDSS 53
168
+      #define SDCARDDETECT 49
169
+    #else
170
+      // arduino pin which triggers an piezzo beeper
171
+      #define BEEPER 33  // Beeper on AUX-4
172
+
173
+      // buttons are directly attached using AUX-2
174
+      #ifdef REPRAPWORLD_KEYPAD
175
+        #define BTN_EN1 64 // encoder
176
+        #define BTN_EN2 59 // encoder
177
+        #define BTN_ENC 63 // enter button
178
+        #define SHIFT_OUT 40 // shift register
179
+        #define SHIFT_CLK 44 // shift register
180
+        #define SHIFT_LD 42 // shift register
181
+      #else
182
+        #define BTN_EN1 37
183
+        #define BTN_EN2 35
184
+        #define BTN_ENC 31  // the click
185
+      #endif
186
+
187
+      #ifdef G3D_PANEL
188
+        #define SDCARDDETECT 49
189
+      #else
190
+        #define SDCARDDETECT -1  // Ramps does not use this port
191
+      #endif
192
+
193
+    #endif
194
+
195
+  #else // Old-style panel with shift register
196
+    // Arduino pin witch triggers an piezzo beeper
197
+    #define BEEPER 33   // No Beeper added
198
+
199
+    // Buttons are attached to a shift register
200
+    // Not wired yet
201
+    // #define SHIFT_CLK 38
202
+    // #define SHIFT_LD 42
203
+    // #define SHIFT_OUT 40
204
+    // #define SHIFT_EN 17
205
+
206
+    #define LCD_PINS_RS 16
207
+    #define LCD_PINS_ENABLE 17
208
+    #define LCD_PINS_D4 23
209
+    #define LCD_PINS_D5 25
210
+    #define LCD_PINS_D6 27
211
+    #define LCD_PINS_D7 29
212
+  #endif
213
+#endif // ULTRA_LCD
214
+
215
+// SPI for Max6675 Thermocouple
216
+#ifndef SDSUPPORT
217
+  #define MAX6675_SS       66 // Do not use pin 53 if there is even the remote possibility of using Display/SD card
218
+#else
219
+  #define MAX6675_SS       66 // Do not use pin 49 as this is tied to the switch inside the SD card socket to detect if there is an SD card present
220
+#endif
221
+
222
+#ifndef SDSUPPORT
223
+  // these pins are defined in the SD library if building with SD support
224
+  #define SCK_PIN          52
225
+  #define MISO_PIN         50
226
+  #define MOSI_PIN         51
227
+#endif

+ 69
- 0
Marlin/pins_RAMPS_OLD.h View File

@@ -0,0 +1,69 @@
1
+/**
2
+ * Arduino Mega with RAMPS v1.0, v1.1, v1.2 pin assignments
3
+ */
4
+
5
+#if !defined(__AVR_ATmega1280__) && !defined(__AVR_ATmega2560__)
6
+  #error Oops!  Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu.
7
+#endif
8
+
9
+// Uncomment the following line for RAMPS v1.0
10
+//#define RAMPS_V_1_0
11
+
12
+#define X_STEP_PIN         26
13
+#define X_DIR_PIN          28
14
+#define X_ENABLE_PIN       24
15
+#define X_MIN_PIN           3
16
+#define X_MAX_PIN           2
17
+
18
+#define Y_STEP_PIN         38
19
+#define Y_DIR_PIN          40
20
+#define Y_ENABLE_PIN       36
21
+#define Y_MIN_PIN          16
22
+#define Y_MAX_PIN          17
23
+
24
+#define Z_STEP_PIN         44
25
+#define Z_DIR_PIN          46
26
+#define Z_ENABLE_PIN       42
27
+#define Z_MIN_PIN          18
28
+#define Z_MAX_PIN          19
29
+
30
+#define E0_STEP_PIN        32
31
+#define E0_DIR_PIN         34
32
+#define E0_ENABLE_PIN      30
33
+
34
+#define SDPOWER            48
35
+#define SDSS               53
36
+#define LED_PIN            13
37
+#define PS_ON_PIN          -1
38
+#define KILL_PIN           -1
39
+
40
+#ifdef RAMPS_V_1_0 // RAMPS_V_1_0
41
+  #define HEATER_0_PIN     12    // RAMPS 1.0
42
+  #define HEATER_BED_PIN   -1    // RAMPS 1.0
43
+  #define FAN_PIN          11    // RAMPS 1.0
44
+#else // RAMPS_V_1_1 or RAMPS_V_1_2
45
+  #define HEATER_0_PIN     10    // RAMPS 1.1
46
+  #define HEATER_BED_PIN    8    // RAMPS 1.1
47
+  #define FAN_PIN           9    // RAMPS 1.1
48
+#endif
49
+
50
+#define HEATER_1_PIN        -1
51
+#define HEATER_2_PIN        -1
52
+#define TEMP_0_PIN          2    // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!!
53
+#define TEMP_1_PIN          -1
54
+#define TEMP_2_PIN          -1
55
+#define TEMP_BED_PIN        1    // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!!
56
+
57
+// SPI for Max6675 Thermocouple
58
+#ifndef SDSUPPORT
59
+  #define MAX6675_SS       66// Do not use pin 53 if there is even the remote possibility of using Display/SD card
60
+#else
61
+  #define MAX6675_SS       66// Do not use pin 49 as this is tied to the switch inside the SD card socket to detect if there is an SD card present
62
+#endif
63
+
64
+#ifndef SDSUPPORT
65
+  // these pins are defined in the SD library if building with SD support
66
+  #define SCK_PIN          52
67
+  #define MISO_PIN         50
68
+  #define MOSI_PIN         51
69
+#endif

+ 113
- 0
Marlin/pins_RUMBA.h View File

@@ -0,0 +1,113 @@
1
+/**
2
+ * RUMBA pin assignments
3
+ */
4
+
5
+#ifndef __AVR_ATmega2560__
6
+  #error Oops!  Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu.
7
+#endif
8
+
9
+#define X_STEP_PIN         17
10
+#define X_DIR_PIN          16
11
+#define X_ENABLE_PIN       48
12
+#define X_MIN_PIN          37
13
+#define X_MAX_PIN          36
14
+
15
+#define Y_STEP_PIN         54
16
+#define Y_DIR_PIN          47
17
+#define Y_ENABLE_PIN       55
18
+#define Y_MIN_PIN          35
19
+#define Y_MAX_PIN          34
20
+
21
+#define Z_STEP_PIN         57
22
+#define Z_DIR_PIN          56
23
+#define Z_ENABLE_PIN       62
24
+#define Z_MIN_PIN          33
25
+#define Z_MAX_PIN          32
26
+
27
+#define E0_STEP_PIN        23
28
+#define E0_DIR_PIN         22
29
+#define E0_ENABLE_PIN      24
30
+
31
+#define E1_STEP_PIN        26
32
+#define E1_DIR_PIN         25
33
+#define E1_ENABLE_PIN      27
34
+
35
+#define E2_STEP_PIN        29
36
+#define E2_DIR_PIN         28
37
+#define E2_ENABLE_PIN      39
38
+
39
+#define LED_PIN            13
40
+
41
+#define FAN_PIN            7
42
+#define FAN1_PIN           8
43
+
44
+#define PS_ON_PIN          45
45
+#define KILL_PIN           46
46
+
47
+#if (TEMP_SENSOR_0==0)
48
+  #define TEMP_0_PIN         -1
49
+  #define HEATER_0_PIN       -1
50
+#else
51
+  #define HEATER_0_PIN        2    // EXTRUDER 1
52
+  #if (TEMP_SENSOR_0==-1)
53
+    #define TEMP_0_PIN         6    // ANALOG NUMBERING - connector *K1* on RUMBA thermocouple ADD ON is used
54
+  #else
55
+    #define TEMP_0_PIN         15   // ANALOG NUMBERING - default connector for thermistor *T0* on rumba board is used
56
+  #endif
57
+#endif
58
+
59
+#if (TEMP_SENSOR_1==0)
60
+  #define TEMP_1_PIN         -1
61
+  #define HEATER_1_PIN       -1
62
+#else
63
+  #define HEATER_1_PIN        3    // EXTRUDER 2
64
+  #if (TEMP_SENSOR_1==-1)
65
+    #define TEMP_1_PIN         5    // ANALOG NUMBERING - connector *K2* on RUMBA thermocouple ADD ON is used
66
+  #else
67
+    #define TEMP_1_PIN         14   // ANALOG NUMBERING - default connector for thermistor *T1* on rumba board is used
68
+  #endif
69
+#endif
70
+
71
+#if (TEMP_SENSOR_2==0)
72
+  #define TEMP_2_PIN         -1
73
+  #define HEATER_2_PIN       -1
74
+#else
75
+  #define HEATER_2_PIN        6    // EXTRUDER 3
76
+  #if (TEMP_SENSOR_2==-1)
77
+    #define TEMP_2_PIN         7    // ANALOG NUMBERING - connector *K3* on RUMBA thermocouple ADD ON is used <-- this can not be used when TEMP_SENSOR_BED is defined as thermocouple
78
+  #else
79
+    #define TEMP_2_PIN         13   // ANALOG NUMBERING - default connector for thermistor *T2* on rumba board is used
80
+  #endif
81
+#endif
82
+
83
+//optional for extruder 4 or chamber: #define TEMP_X_PIN         12   // ANALOG NUMBERING - default connector for thermistor *T3* on rumba board is used
84
+//optional FAN1 can be used as 4th heater output: #define HEATER_3_PIN       8    // EXTRUDER 4
85
+
86
+#if (TEMP_SENSOR_BED==0)
87
+  #define TEMP_BED_PIN       -1
88
+  #define HEATER_BED_PIN     -1
89
+#else
90
+  #define HEATER_BED_PIN      9    // BED
91
+  #if (TEMP_SENSOR_BED==-1)
92
+    #define TEMP_BED_PIN       7    // ANALOG NUMBERING - connector *K3* on RUMBA thermocouple ADD ON is used <-- this can not be used when TEMP_SENSOR_2 is defined as thermocouple
93
+  #else
94
+    #define TEMP_BED_PIN       11   // ANALOG NUMBERING - default connector for thermistor *THB* on rumba board is used
95
+  #endif
96
+#endif
97
+
98
+#define SDPOWER            -1
99
+#define SDSS               53
100
+#define SDCARDDETECT       49
101
+#define BEEPER             44
102
+#define LCD_PINS_RS        19
103
+#define LCD_PINS_ENABLE    42
104
+#define LCD_PINS_D4        18
105
+#define LCD_PINS_D5        38
106
+#define LCD_PINS_D6        41
107
+#define LCD_PINS_D7        40
108
+#define BTN_EN1            11
109
+#define BTN_EN2            12
110
+#define BTN_ENC            43
111
+
112
+#define SERVO0_PIN         5
113
+

+ 172
- 0
Marlin/pins_SANGUINOLOLU_11.h View File

@@ -0,0 +1,172 @@
1
+/**
2
+ * Sanguinololu board pin assignments
3
+ */
4
+
5
+#if !defined(__AVR_ATmega644P__) && !defined(__AVR_ATmega1284P__)
6
+  #error Oops!  Make sure you have 'Sanguino' selected from the 'Tools -> Boards' menu.
7
+#endif
8
+
9
+#define X_STEP_PIN         15
10
+#define X_DIR_PIN          21
11
+#define X_STOP_PIN         18
12
+
13
+#define Y_STEP_PIN         22
14
+#define Y_DIR_PIN          23
15
+#define Y_STOP_PIN         19
16
+
17
+#define Z_STEP_PIN         3
18
+#define Z_DIR_PIN          2
19
+#define Z_STOP_PIN         20
20
+
21
+#define E0_STEP_PIN         1
22
+#define E0_DIR_PIN          0
23
+
24
+#define LED_PIN            -1
25
+
26
+#define FAN_PIN            -1
27
+
28
+// #if FAN_PIN == 12 || FAN_PIN ==13
29
+//   #define FAN_SOFT_PWM
30
+// #endif
31
+
32
+#if MB(MELZI)
33
+  #define LED_PIN            27 /* On some broken versions of the Sanguino libraries the pin definitions are wrong, which then needs LED_PIN as pin 28. But you better upgrade your Sanguino libraries! See #368. */
34
+  #define FAN_PIN            4 // Works for Panelolu2 too
35
+#endif
36
+
37
+#if MB(STB_11)
38
+  #define FAN_PIN            4
39
+  //  Uncomment this if you have the first generation (V1.10) of STBs board
40
+  #define LCD_PIN_BL         17 // LCD backlight LED
41
+#endif
42
+
43
+#if MB(AZTEEG_X1)
44
+  #define FAN_PIN            4
45
+#endif
46
+
47
+#ifdef NUM_SERVOS
48
+  #define SERVO0_PIN          -1
49
+
50
+  #if NUM_SERVOS > 1
51
+    #define SERVO1_PIN        -1
52
+  #endif
53
+
54
+  #if NUM_SERVOS > 2
55
+    #define SERVO2_PIN        -1
56
+  #endif
57
+
58
+  #if NUM_SERVOS > 3
59
+    #define SERVO3_PIN        -1
60
+  #endif
61
+#endif
62
+
63
+#define PS_ON_PIN          -1
64
+#define KILL_PIN           -1
65
+
66
+#define HEATER_0_PIN       13 // (extruder)
67
+#define HEATER_1_PIN       -1
68
+#define HEATER_2_PIN       -1
69
+
70
+#ifdef SANGUINOLOLU_V_1_2
71
+
72
+  #define HEATER_BED_PIN     12 // (bed)
73
+  #define X_ENABLE_PIN       14
74
+  #define Y_ENABLE_PIN       14
75
+  #define Z_ENABLE_PIN       26
76
+  #define E0_ENABLE_PIN      14
77
+
78
+  #ifdef LCD_I2C_PANELOLU2
79
+    #define FAN_PIN          4 // Uses Transistor1 (PWM) on Panelolu2's Sanguino Adapter Board to drive the fan
80
+  #endif
81
+
82
+#else
83
+
84
+  #define HEATER_BED_PIN      14  // (bed)
85
+  #define X_ENABLE_PIN       -1
86
+  #define Y_ENABLE_PIN       -1
87
+  #define Z_ENABLE_PIN       -1
88
+  #define E0_ENABLE_PIN      -1
89
+
90
+#endif
91
+
92
+#define TEMP_0_PIN          7   // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! (pin 33 extruder)
93
+#define TEMP_1_PIN         -1
94
+#define TEMP_2_PIN         -1
95
+#define TEMP_BED_PIN        6   // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! (pin 34 bed)
96
+#define SDPOWER            -1
97
+#define SDSS               31
98
+
99
+/* On some broken versions of the Sanguino libraries the pin definitions are wrong, which then needs SDSS as pin 24. But you better upgrade your Sanguino libraries! See #368. */
100
+//#define SDSS               24
101
+
102
+#ifdef ULTRA_LCD
103
+ #ifdef NEWPANEL
104
+   //we have no buzzer installed
105
+   #define BEEPER -1
106
+   //LCD Pins
107
+   #ifdef DOGLCD
108
+   #ifdef U8GLIB_ST7920 //SPI GLCD 12864 ST7920 ( like [www.digole.com] ) For Melzi V2.0
109
+     #define LCD_PINS_RS 30 //CS chip select /SS chip slave select
110
+     #define LCD_PINS_ENABLE 29 //SID (MOSI)
111
+     #define LCD_PINS_D4 17 //SCK (CLK) clock
112
+     #define BEEPER 27 // Pin 27 is take by LED_Pin, but Melzi LED do nothing with Marlin and I take this pin for BEEPER.... See here > [github.com] , If you want use this pin with Gcode M42 instead BEEPER
113
+   #else
114
+     // Pins for DOGM SPI LCD Support
115
+     #define DOGLCD_A0 30
116
+     #define DOGLCD_CS 29
117
+     #define LCD_CONTRAST 1
118
+   #endif
119
+     // Uncomment screen orientation
120
+     #define LCD_SCREEN_ROT_0
121
+       // #define LCD_SCREEN_ROT_90
122
+       // #define LCD_SCREEN_ROT_180
123
+       // #define LCD_SCREEN_ROT_270
124
+     #else // standard Hitachi LCD controller
125
+     #define LCD_PINS_RS        4
126
+     #define LCD_PINS_ENABLE    17
127
+     #define LCD_PINS_D4        30
128
+     #define LCD_PINS_D5        29
129
+     #define LCD_PINS_D6        28
130
+     #define LCD_PINS_D7        27
131
+   #endif
132
+   //The encoder and click button
133
+   #define BTN_EN1 11
134
+   #define BTN_EN2 10
135
+   #ifdef LCD_I2C_PANELOLU2
136
+     #if MB(MELZI)
137
+       #define BTN_ENC 29 //the click switch
138
+       #define LCD_SDSS 30 //to use the SD card reader on the Panelolu2 rather than the melzi board
139
+     #else
140
+       #define BTN_ENC 30 //the click switch
141
+     #endif
142
+   #else
143
+     #define BTN_ENC 16  //the click switch
144
+     #define LCD_SDSS 28 //to use the SD card reader on the smart controller rather than the melzi board
145
+   #endif //Panelolu2
146
+   //not connected to a pin
147
+   #define SDCARDDETECT -1
148
+
149
+ #endif //NEWPANEL
150
+#endif //ULTRA_LCD
151
+
152
+#ifdef MAKRPANEL
153
+  #define BEEPER 29
154
+  // Pins for DOGM SPI LCD Support
155
+  #define DOGLCD_A0  30
156
+  #define DOGLCD_CS  17
157
+  #define LCD_PIN_BL 28  // backlight LED on PA3
158
+  // GLCD features
159
+  #define LCD_CONTRAST 1
160
+  // Uncomment screen orientation
161
+  #define LCD_SCREEN_ROT_0
162
+  // #define LCD_SCREEN_ROT_90
163
+  // #define LCD_SCREEN_ROT_180
164
+  // #define LCD_SCREEN_ROT_270
165
+  //The encoder and click button
166
+  #define BTN_EN1 11
167
+  #define BTN_EN2 10
168
+  #define BTN_ENC 16  //the click switch
169
+  //not connected to a pin
170
+  #define SDCARDDETECT -1
171
+#endif //Makrpanel
172
+

+ 19
- 0
Marlin/pins_SANGUINOLOLU_12.h View File

@@ -0,0 +1,19 @@
1
+/**
2
+ * Sanguinololu V1.2 pin assignments
3
+ *
4
+ * Applies to the following boards:
5
+ *
6
+ *  AZTEEG_X1
7
+ *  MELZI
8
+ *  MELZI_1284
9
+ *  SANGUINOLOLU_12
10
+ *  STB_11
11
+ */
12
+
13
+#define SANGUINOLOLU_V_1_2
14
+
15
+#if defined(__AVR_ATmega1284P__)
16
+  #define LARGE_FLASH true
17
+#endif
18
+
19
+#include "pins_SANGUINOLOLU_11.h"

+ 88
- 0
Marlin/pins_SAV_MKI.h View File

@@ -0,0 +1,88 @@
1
+/**
2
+ * SAV MkI pin assignments (AT90USB1286)
3
+ * Requires the Teensyduino software with Teensy++ 2.0 selected in Arduino IDE!
4
+ * http://www.pjrc.com/teensy/teensyduino.html
5
+ * RepRap Clone Wars project board.
6
+ */
7
+
8
+#ifndef __AVR_AT90USB1286__
9
+  #error Oops!  Make sure you have 'Teensy++ 2.0' selected from the 'Tools -> Boards' menu.
10
+#endif
11
+
12
+#define AT90USB 1286  // Disable MarlinSerial etc.
13
+
14
+#define LARGE_FLASH        true
15
+
16
+#define X_STEP_PIN         0
17
+#define X_DIR_PIN          1
18
+#define X_ENABLE_PIN       39
19
+
20
+#define Y_STEP_PIN         2
21
+#define Y_DIR_PIN          3
22
+#define Y_ENABLE_PIN       38
23
+
24
+#define Z_STEP_PIN         4
25
+#define Z_DIR_PIN          5
26
+#define Z_ENABLE_PIN       23
27
+
28
+#define E0_STEP_PIN         6
29
+#define E0_DIR_PIN          7
30
+#define E0_ENABLE_PIN       19
31
+
32
+#define HEATER_0_PIN       21  // Extruder
33
+#define HEATER_1_PIN       -1
34
+#define HEATER_2_PIN       -1
35
+#define HEATER_BED_PIN     20  // Bed
36
+#define FAN_PIN            16  // Fan   -- from Teensyduino environment.
37
+                               // For the fan and Teensyduino uses a different pin mapping.
38
+
39
+#define X_STOP_PIN         13
40
+#define Y_STOP_PIN         14
41
+#define Z_STOP_PIN         15
42
+//#define Z_STOP_PIN         36  // For inductive sensor.
43
+
44
+#define TEMP_0_PIN          7  // Extruder / Analog pin numbering
45
+#define TEMP_BED_PIN        6  // Bed / Analog pin numbering
46
+
47
+#define TEMP_1_PIN         -1
48
+#define TEMP_2_PIN         -1
49
+
50
+#define SDPOWER            -1
51
+#define SDSS               20  // PB0 - 8 in marlin env.
52
+#define LED_PIN            -1
53
+#define PS_ON_PIN          -1
54
+#define ALARM_PIN          -1
55
+#define SDCARDDETECT       -1
56
+
57
+#ifndef SDSUPPORT
58
+   // these pins are defined in the SD library if building with SD support
59
+  #define SCK_PIN          9
60
+  #define MISO_PIN         11
61
+  #define MOSI_PIN         10
62
+#endif
63
+
64
+#define BEEPER             -1
65
+#define LCD_PINS_RS        -1
66
+#define LCD_PINS_ENABLE    -1
67
+#define LCD_PINS_D4        -1
68
+#define LCD_PINS_D5        -1
69
+#define LCD_PINS_D6        -1
70
+#define LCD_PINS_D7        -1
71
+
72
+#ifdef SAV_3DLCD
73
+  // For LCD SHIFT register LCD
74
+  #define SR_DATA_PIN         1
75
+  #define SR_CLK_PIN          0
76
+
77
+  #define BTN_EN1            41
78
+  #define BTN_EN2            40
79
+  #define BTN_ENC            12
80
+
81
+  #define KILL_PIN           42 // A2 = 42 - teensy = 40
82
+  #define HOME_PIN          -1 // A4 = marlin 44 - teensy = 42
83
+
84
+  #ifdef NUM_SERVOS
85
+    #define SERVO0_PIN       41 // In teensy's pin definition for pinMode (in Servo.cpp)
86
+  #endif
87
+
88
+#endif // SAV_3DLCD

+ 71
- 0
Marlin/pins_SETHI.h View File

@@ -0,0 +1,71 @@
1
+/**
2
+ * Sethi 3D_1 pin assignments - www.sethi3d.com.br
3
+ */
4
+
5
+#if !defined(__AVR_ATmega644P__) && !defined(__AVR_ATmega644__) && !defined(__AVR_ATmega1284P__)
6
+  #error Oops!  Make sure you have 'Sethi 3D' selected from the 'Tools -> Boards' menu.
7
+#endif
8
+
9
+#ifndef GEN7_VERSION
10
+  #define GEN7_VERSION 12 // v1.x
11
+#endif
12
+
13
+//x axis pins
14
+#define X_STEP_PIN 19
15
+#define X_DIR_PIN 18
16
+#define X_ENABLE_PIN 24
17
+#define X_STOP_PIN 2
18
+
19
+//y axis pins
20
+#define Y_STEP_PIN 23
21
+#define Y_DIR_PIN 22
22
+#define Y_ENABLE_PIN 24
23
+#define Y_STOP_PIN 0
24
+
25
+//z axis pins
26
+#define Z_STEP_PIN 26
27
+#define Z_DIR_PIN 25
28
+#define Z_ENABLE_PIN 24
29
+#define Z_MIN_PIN 1
30
+#define Z_MAX_PIN 0
31
+
32
+//extruder pins
33
+#define E0_STEP_PIN 28
34
+#define E0_DIR_PIN 27
35
+#define E0_ENABLE_PIN 24
36
+
37
+#define TEMP_0_PIN 1
38
+#define TEMP_1_PIN -1
39
+#define TEMP_2_PIN -1
40
+#define TEMP_BED_PIN 2
41
+
42
+#define HEATER_0_PIN 4
43
+#define HEATER_1_PIN -1
44
+#define HEATER_2_PIN -1
45
+#define HEATER_BED_PIN 3
46
+
47
+#define KILL_PIN -1
48
+
49
+#define SDPOWER -1
50
+#define SDSS -1 // SCL pin of I2C header
51
+#define LED_PIN -1
52
+
53
+#if (GEN7_VERSION >= 13)
54
+  // Gen7 v1.3 removed the fan pin
55
+  #define FAN_PIN -1
56
+#else
57
+  #define FAN_PIN 31
58
+#endif
59
+
60
+#define PS_ON_PIN 15
61
+
62
+//All these generations of Gen7 supply thermistor power
63
+//via PS_ON, so ignore bad thermistor readings
64
+#define BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE
65
+
66
+//our pin for debugging.
67
+#define DEBUG_PIN 0
68
+
69
+//our RS485 pins
70
+#define TX_ENABLE_PIN 12
71
+#define RX_ENABLE_PIN 13

+ 11
- 0
Marlin/pins_STB_11.h View File

@@ -0,0 +1,11 @@
1
+/**
2
+ * STB V1.1 pin assignments
3
+ */
4
+
5
+#define SANGUINOLOLU_V_1_2
6
+
7
+#if defined(__AVR_ATmega1284P__)
8
+  #define LARGE_FLASH true
9
+#endif
10
+
11
+#include "pins_SANGUINOLOLU_11.h"

+ 115
- 0
Marlin/pins_TEENSY2.h View File

@@ -0,0 +1,115 @@
1
+/**
2
+ * Teensy++ 2.0 Breadboard pin assignments (AT90USB1286)
3
+ * Requires the Teensyduino software with Teensy++ 2.0 selected in Arduino IDE!
4
+ * http://www.pjrc.com/teensy/teensyduino.html
5
+ * See http://reprap.org/wiki/Printrboard for more info
6
+ *
7
+ * CLI build: DEFINES=AT90USBxx_TEENSYPP_ASSIGNMENTS HARDWARE_MOTHERBOARD=84 make
8
+ *
9
+ *  DaveX plan for Teensylu/printrboard-type pinouts for a TeensyBreadboard:
10
+ *  (ref teensylu & sprinter)
11
+ *
12
+ *                               USB
13
+ *           GND       GND |-----#####-----| +5V              ATX +5SB
14
+ *     ATX PS_ON    PWM 27 |b7   #####   b6| 26    PWM*       Stepper Enable 
15
+ *                  PWM  0 |d0           b5| 25    PWM*        
16
+ *                  PWM  1 |d1           b4| 24    PWM        
17
+ *         X_MIN         2 |d2           b3| 23               MISO_PIN
18
+ *         Y_MIN         3 |d3           b2| 22               MOSI_PIN
19
+ *         Z_MIN         4 |d4  * *      b1| 21               SCK_PIN       
20
+ *                       5 |d5  e e      b0| 20               SDSS              
21
+ *                LED    6 |d6  5 4      e7| 19               
22
+ *                       7 |d7           e6| 18               
23
+ *       LCD  RS         8 |e0             | GND              
24
+ *       LCD  EN         9 |e1   a4 a0    R| AREF             
25
+ *       LCD  D4        10 |c0   a5 a1   f0| 38 A0            ENC_1           
26
+ *       LCD  D5        11 |c1   a6 a2   f1| 39 A1            ENC_2
27
+ *       LCD  D6        12 |c2   a7 a3   f2| 40 A2            ENC_CLK
28
+ *       LCD  D6        13 |c3           f3| 41 A3            
29
+ *      Bed Heat    PWM 14 |c4   V G R   f4| 42 A4            
30
+ * Extruder Heat    PWM 15 |c5   c n S   f5| 43 A5            
31
+ *           Fan    PWM 16 |c6   c d T   f6| 44 A6            Bed TC
32
+ *                      17 |c7   * * *   f7| 45 A7            Extruder TC * 4.7k * +5        
33
+ *                         -----------------                  
34
+ *
35
+ *      Interior E4: 36, INT4
36
+ *      Interior E5: 37, INT5
37
+ *      Interior PA0-7: 28-35  -- Printrboard and Teensylu use these pins for step & direction:
38
+ *             T++ PA Signal  Marlin
39
+ *    
40
+ *       Z STEP  32 a4  a0 28 X STEP
41
+ *       Z DIR   33 a5  a1 29 X DIR
42
+ *       E STEP  34 a6  a2 30 Y STEP
43
+ *       E DIR   35 a7  a3 31 Y DIR
44
+ */
45
+
46
+#ifndef __AVR_AT90USB1286__
47
+  #error Oops!  Make sure you have 'Teensy++ 2.0' selected from the 'Tools -> Boards' menu.
48
+#endif
49
+
50
+#ifndef AT90USBxx_TEENSYPP_ASSIGNMENTS  // use Teensyduino Teensy++2.0 pin assignments instead of Marlin alphabetical.
51
+  #error  Uncomment #define AT90USBxx_TEENSYPP_ASSIGNMENTS in fastio.h for this config
52
+  // (or build from command line)
53
+#endif
54
+
55
+#define AT90USB 1286  // Disable MarlinSerial etc.
56
+
57
+#define LARGE_FLASH        true
58
+
59
+#define X_STEP_PIN         28 //  0 Marlin
60
+#define X_DIR_PIN          29 //  1 Marlin
61
+#define X_ENABLE_PIN       26 
62
+
63
+#define Y_STEP_PIN         30 //  2 Marlin
64
+#define Y_DIR_PIN          31 //  3
65
+#define Y_ENABLE_PIN       26     // Shared w/x
66
+
67
+#define Z_STEP_PIN         32 //  4
68
+#define Z_DIR_PIN          33 //  5
69
+#define Z_ENABLE_PIN       26 // Shared w/x
70
+
71
+#define E0_STEP_PIN        34 //  6
72
+#define E0_DIR_PIN         35 //  7
73
+#define E0_ENABLE_PIN      26 // Shared w/x
74
+
75
+#define HEATER_0_PIN       15 //  21  // Extruder
76
+#define HEATER_1_PIN       -1
77
+#define HEATER_2_PIN       -1
78
+#define HEATER_BED_PIN     14 // 20  // Bed
79
+#define FAN_PIN            16 // 22  // Fan
80
+
81
+#define X_STOP_PIN          2
82
+#define Y_STOP_PIN          3
83
+#define Z_STOP_PIN          4
84
+
85
+#define TEMP_0_PIN          7 // Extruder / Analog pin numbering
86
+#define TEMP_BED_PIN        6 // Bed / Analog pin numbering
87
+#define TEMP_1_PIN         -1
88
+#define TEMP_2_PIN         -1
89
+
90
+#define SDPOWER            -1
91
+#define SDCARDDETECT       -1   
92
+#define SDSS               20 // 8
93
+#define LED_PIN             6
94
+#define PS_ON_PIN          27
95
+#define KILL_PIN           -1
96
+#define ALARM_PIN          -1
97
+
98
+#ifndef SDSUPPORT
99
+// these pins are defined in the SD library if building with SD support
100
+  #define SCK_PIN         21 // 9
101
+  #define MISO_PIN        23 // 11
102
+  #define MOSI_PIN        22 // 10
103
+#endif
104
+
105
+#ifdef ULTIPANEL
106
+  #define LCD_PINS_RS         8
107
+  #define LCD_PINS_ENABLE     9
108
+  #define LCD_PINS_D4        10
109
+  #define LCD_PINS_D5        11
110
+  #define LCD_PINS_D6        12
111
+  #define LCD_PINS_D7        13
112
+  #define BTN_EN1            38
113
+  #define BTN_EN2            39
114
+  #define BTN_ENC            40
115
+#endif

+ 85
- 0
Marlin/pins_TEENSYLU.h View File

@@ -0,0 +1,85 @@
1
+/**
2
+ * Teensylu 0.7 pin assignments (AT90USB1286)
3
+ * Requires the Teensyduino software with Teensy++ 2.0 selected in Arduino IDE!
4
+ * http://www.pjrc.com/teensy/teensyduino.html
5
+ * See http://reprap.org/wiki/Printrboard for more info
6
+ */
7
+
8
+#ifndef __AVR_AT90USB1286__
9
+  #error Oops!  Make sure you have 'Teensy++ 2.0' selected from the 'Tools -> Boards' menu.
10
+#endif
11
+
12
+#ifdef AT90USBxx_TEENSYPP_ASSIGNMENTS  // use Teensyduino Teensy++2.0 pin assignments instead of Marlin traditional.
13
+  #error These Teensylu assignments depend on traditional Marlin assignments, not AT90USBxx_TEENSYPP_ASSIGNMENTS in fastio.h
14
+#endif
15
+
16
+#define AT90USB 1286  // Disable MarlinSerial etc.
17
+
18
+#define LARGE_FLASH        true
19
+
20
+#define X_STEP_PIN          0
21
+#define X_DIR_PIN           1
22
+#define X_ENABLE_PIN       39
23
+
24
+#define Y_STEP_PIN          2
25
+#define Y_DIR_PIN           3
26
+#define Y_ENABLE_PIN       38
27
+
28
+#define Z_STEP_PIN          4
29
+#define Z_DIR_PIN           5
30
+#define Z_ENABLE_PIN       23
31
+
32
+#define E0_STEP_PIN         6
33
+#define E0_DIR_PIN          7
34
+#define E0_ENABLE_PIN      19
35
+
36
+#define HEATER_0_PIN       21  // Extruder
37
+#define HEATER_1_PIN       46
38
+#define HEATER_2_PIN       47
39
+#define HEATER_BED_PIN     20
40
+
41
+// If soft or fast PWM is off then use Teensyduino pin numbering, Marlin
42
+// fastio pin numbering otherwise
43
+#ifdef FAN_SOFT_PWM || FAST_PWM_FAN
44
+  #define FAN_PIN          22
45
+#else
46
+  #define FAN_PIN          16
47
+#endif
48
+
49
+#define X_STOP_PIN         13
50
+#define Y_STOP_PIN         14
51
+#define Z_STOP_PIN         15
52
+#define TEMP_0_PIN          7  // Extruder / Analog pin numbering
53
+#define TEMP_BED_PIN        6  // Bed / Analog pin numbering
54
+
55
+#define TEMP_1_PIN         -1
56
+#define TEMP_2_PIN         -1
57
+
58
+#define SDPOWER            -1
59
+#define SDSS                8
60
+#define LED_PIN            -1
61
+#define PS_ON_PIN          -1
62
+#define KILL_PIN           -1
63
+#define ALARM_PIN          -1
64
+
65
+#ifndef SDSUPPORT
66
+// these pins are defined in the SD library if building with SD support
67
+  #define SCK_PIN           9
68
+  #define MISO_PIN         11
69
+  #define MOSI_PIN         10
70
+#endif
71
+
72
+#if defined(ULTRA_LCD) && defined(NEWPANEL)
73
+  //we have no buzzer installed
74
+  #define BEEPER -1
75
+  //LCD Pins
76
+  #ifdef LCD_I2C_PANELOLU2
77
+    #define BTN_EN1 27  //RX1 - fastio.h pin mapping 27
78
+    #define BTN_EN2 26  //TX1 - fastio.h pin mapping 26
79
+    #define BTN_ENC 43 //A3 - fastio.h pin mapping 43
80
+    #define SDSS   40 //use SD card on Panelolu2 (Teensyduino pin mapping)
81
+  #endif // LCD_I2C_PANELOLU2
82
+  //not connected to a pin
83
+  #define SDCARDDETECT -1    
84
+#endif // ULTRA_LCD && NEWPANEL
85
+

+ 80
- 0
Marlin/pins_ULTIMAIN_2.h View File

@@ -0,0 +1,80 @@
1
+/**
2
+ * Ultiboard v2.0 pin assignments
3
+ */
4
+
5
+#ifndef __AVR_ATmega2560__
6
+  #error Oops!  Make sure you have 'Arduino Mega 2560' selected from the 'Tools -> Boards' menu.
7
+#endif
8
+
9
+#define X_STEP_PIN 25
10
+#define X_DIR_PIN 23
11
+#define X_STOP_PIN 22
12
+#define X_ENABLE_PIN 27
13
+
14
+#define Y_STEP_PIN 32
15
+#define Y_DIR_PIN 33
16
+#define Y_STOP_PIN 26
17
+#define Y_ENABLE_PIN 31
18
+
19
+#define Z_STEP_PIN 35
20
+#define Z_DIR_PIN 36
21
+#define Z_STOP_PIN 29
22
+#define Z_ENABLE_PIN 34
23
+
24
+#define HEATER_BED_PIN 4
25
+#define TEMP_BED_PIN 10
26
+
27
+#define HEATER_0_PIN  2
28
+#define TEMP_0_PIN 8
29
+
30
+#define HEATER_1_PIN 3
31
+#define TEMP_1_PIN 9
32
+
33
+#define HEATER_2_PIN -1
34
+#define TEMP_2_PIN -1
35
+
36
+#define E0_STEP_PIN         42
37
+#define E0_DIR_PIN          43
38
+#define E0_ENABLE_PIN       37
39
+
40
+#define E1_STEP_PIN         49
41
+#define E1_DIR_PIN          47
42
+#define E1_ENABLE_PIN       48
43
+
44
+#define SDPOWER            -1
45
+#define SDSS               53
46
+#define LED_PIN            8
47
+#define FAN_PIN            7
48
+#define PS_ON_PIN          -1
49
+#define KILL_PIN           -1
50
+#define SUICIDE_PIN        -1  //PIN that has to be turned on right after start, to keep power flowing.
51
+#define SAFETY_TRIGGERED_PIN     28 //PIN to detect the safety circuit has triggered
52
+#define MAIN_VOLTAGE_MEASURE_PIN 14 //Analogue PIN to measure the main voltage, with a 100k - 4k7 resitor divider.
53
+
54
+#define MOTOR_CURRENT_PWM_XY_PIN 44
55
+#define MOTOR_CURRENT_PWM_Z_PIN 45
56
+#define MOTOR_CURRENT_PWM_E_PIN 46
57
+//Motor current PWM conversion, PWM value = MotorCurrentSetting * 255 / range
58
+#define MOTOR_CURRENT_PWM_RANGE 2000
59
+#define DEFAULT_PWM_MOTOR_CURRENT  {1300, 1300, 1250}
60
+
61
+//arduino pin witch triggers an piezzo beeper
62
+#define BEEPER 18
63
+
64
+#define LCD_PINS_RS 20
65
+#define LCD_PINS_ENABLE 15
66
+#define LCD_PINS_D4 14
67
+#define LCD_PINS_D5 21
68
+#define LCD_PINS_D6 5
69
+#define LCD_PINS_D7 6
70
+
71
+//buttons are directly attached
72
+#define BTN_EN1 40
73
+#define BTN_EN2 41
74
+#define BTN_ENC 19  //the click
75
+
76
+#define BLEN_C 2
77
+#define BLEN_B 1
78
+#define BLEN_A 0
79
+
80
+#define SDCARDDETECT 39

+ 100
- 0
Marlin/pins_ULTIMAKER.h View File

@@ -0,0 +1,100 @@
1
+/**
2
+ * Ultimaker pin assignments
3
+ */
4
+
5
+#if !defined(__AVR_ATmega1280__) && !defined(__AVR_ATmega2560__)
6
+  #error Oops!  Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu.
7
+#endif
8
+
9
+#define LARGE_FLASH true
10
+
11
+#define X_STEP_PIN 25
12
+#define X_DIR_PIN 23
13
+#define X_MIN_PIN 22
14
+#define X_MAX_PIN 24
15
+#define X_ENABLE_PIN 27
16
+
17
+#define Y_STEP_PIN 31
18
+#define Y_DIR_PIN 33
19
+#define Y_MIN_PIN 26
20
+#define Y_MAX_PIN 28
21
+#define Y_ENABLE_PIN 29
22
+
23
+#define Z_STEP_PIN 37
24
+#define Z_DIR_PIN 39
25
+#define Z_MIN_PIN 30
26
+#define Z_MAX_PIN 32
27
+#define Z_ENABLE_PIN 35
28
+
29
+#define HEATER_BED_PIN 4
30
+#define TEMP_BED_PIN 10
31
+
32
+#define HEATER_0_PIN  2
33
+#define TEMP_0_PIN 8
34
+
35
+#define HEATER_1_PIN 3
36
+#define TEMP_1_PIN 9
37
+
38
+#define HEATER_2_PIN -1
39
+#define TEMP_2_PIN -1
40
+
41
+#define E0_STEP_PIN         43
42
+#define E0_DIR_PIN          45
43
+#define E0_ENABLE_PIN       41
44
+
45
+#define E1_STEP_PIN         49
46
+#define E1_DIR_PIN          47
47
+#define E1_ENABLE_PIN       48
48
+
49
+#define SDPOWER            -1
50
+#define SDSS               53
51
+#define LED_PIN            13
52
+#define FAN_PIN            7
53
+#define PS_ON_PIN          12
54
+#define KILL_PIN           -1
55
+#define SUICIDE_PIN        54  //PIN that has to be turned on right after start, to keep power flowing.
56
+#define SERVO0_PIN         13  // untested
57
+
58
+#ifdef ULTRA_LCD
59
+
60
+  #ifdef NEWPANEL
61
+  //arduino pin witch triggers an piezzo beeper
62
+    #define BEEPER 18
63
+
64
+    #define LCD_PINS_RS 20
65
+    #define LCD_PINS_ENABLE 17
66
+    #define LCD_PINS_D4 16
67
+    #define LCD_PINS_D5 21
68
+    #define LCD_PINS_D6 5
69
+    #define LCD_PINS_D7 6
70
+
71
+    //buttons are directly attached
72
+    #define BTN_EN1 40
73
+    #define BTN_EN2 42
74
+    #define BTN_ENC 19  //the click
75
+
76
+    #define SDCARDDETECT 38
77
+
78
+  #else //!NEWPANEL - Old style panel with shift register
79
+
80
+    //arduino pin witch triggers an piezzo beeper
81
+    #define BEEPER 18
82
+
83
+    //buttons are attached to a shift register
84
+    #define SHIFT_CLK 38
85
+    #define SHIFT_LD 42
86
+    #define SHIFT_OUT 40
87
+    #define SHIFT_EN 17
88
+
89
+    #define LCD_PINS_RS 16
90
+    #define LCD_PINS_ENABLE 5
91
+    #define LCD_PINS_D4 6
92
+    #define LCD_PINS_D5 21
93
+    #define LCD_PINS_D6 20
94
+    #define LCD_PINS_D7 19
95
+
96
+    #define SDCARDDETECT -1
97
+
98
+  #endif // !NEWPANEL
99
+
100
+#endif // ULTRA_LCD

+ 62
- 0
Marlin/pins_ULTIMAKER_OLD.h View File

@@ -0,0 +1,62 @@
1
+/**
2
+ * Ultimaker pin assignments (Old electronics)
3
+ */
4
+
5
+#if !defined(__AVR_ATmega1280__) && !defined(__AVR_ATmega2560__)
6
+  #error Oops!  Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu.
7
+#endif
8
+
9
+#define LARGE_FLASH true
10
+
11
+#define X_STEP_PIN 25
12
+#define X_DIR_PIN 23
13
+#define X_MIN_PIN 15
14
+#define X_MAX_PIN 14
15
+#define X_ENABLE_PIN 27
16
+
17
+#define Y_STEP_PIN 31
18
+#define Y_DIR_PIN 33
19
+#define Y_MIN_PIN 17
20
+#define Y_MAX_PIN 16
21
+#define Y_ENABLE_PIN 29
22
+
23
+#define Z_STEP_PIN 37
24
+#define Z_DIR_PIN 39
25
+#define Z_MIN_PIN 19
26
+#define Z_MAX_PIN 18
27
+#define Z_ENABLE_PIN 35
28
+
29
+#define HEATER_BED_PIN -1
30
+#define TEMP_BED_PIN -1
31
+
32
+#define HEATER_0_PIN  2
33
+#define TEMP_0_PIN 8
34
+
35
+#define HEATER_1_PIN 1
36
+#define TEMP_1_PIN 1
37
+
38
+#define HEATER_2_PIN -1
39
+#define TEMP_2_PIN -1
40
+
41
+#define E0_STEP_PIN         43
42
+#define E0_DIR_PIN          45
43
+#define E0_ENABLE_PIN       41
44
+
45
+#define E1_STEP_PIN         -1
46
+#define E1_DIR_PIN          -1
47
+#define E1_ENABLE_PIN       -1
48
+
49
+#define SDPOWER            -1
50
+#define SDSS               -1
51
+#define LED_PIN            -1
52
+#define FAN_PIN            -1
53
+#define PS_ON_PIN          -1
54
+#define KILL_PIN           -1
55
+#define SUICIDE_PIN        -1  //PIN that has to be turned on right after start, to keep power flowing.
56
+
57
+#define LCD_PINS_RS 24
58
+#define LCD_PINS_ENABLE 22
59
+#define LCD_PINS_D4 36
60
+#define LCD_PINS_D5 34
61
+#define LCD_PINS_D6 32
62
+#define LCD_PINS_D7 30

+ 5
- 0
Marlin/pins_WITBOX.h View File

@@ -0,0 +1,5 @@
1
+/**
2
+ * bq WITBOX Arduino Mega with RAMPS v1.3/1.4 pin assignments
3
+ */
4
+
5
+#include "pins_RAMPS_13.h"

+ 33
- 33
Marlin/ultralcd.cpp View File

@@ -378,7 +378,7 @@ static void lcd_main_menu()
378 378
 #ifdef SDSUPPORT
379 379
 static void lcd_autostart_sd()
380 380
 {
381
-    card.lastnr=0;
381
+    card.autostart_index=0;
382 382
     card.setroot();
383 383
     card.checkautostart(true);
384 384
 }
@@ -426,13 +426,13 @@ static void lcd_tune_menu()
426 426
     MENU_ITEM_EDIT(int3, MSG_NOZZLE, &target_temperature[0], 0, HEATER_0_MAXTEMP - 15);
427 427
 #endif
428 428
 #if TEMP_SENSOR_1 != 0
429
-    MENU_ITEM_EDIT(int3, MSG_NOZZLE1, &target_temperature[1], 0, HEATER_1_MAXTEMP - 15);
429
+    MENU_ITEM_EDIT(int3, MSG_NOZZLE " 2", &target_temperature[1], 0, HEATER_1_MAXTEMP - 15);
430 430
 #endif
431 431
 #if TEMP_SENSOR_2 != 0
432
-    MENU_ITEM_EDIT(int3, MSG_NOZZLE2, &target_temperature[2], 0, HEATER_2_MAXTEMP - 15);
432
+    MENU_ITEM_EDIT(int3, MSG_NOZZLE " 3", &target_temperature[2], 0, HEATER_2_MAXTEMP - 15);
433 433
 #endif
434 434
 #if TEMP_SENSOR_3 != 0
435
-    MENU_ITEM_EDIT(int3, MSG_NOZZLE3, &target_temperature[3], 0, HEATER_3_MAXTEMP - 15);
435
+    MENU_ITEM_EDIT(int3, MSG_NOZZLE " 4", &target_temperature[3], 0, HEATER_3_MAXTEMP - 15);
436 436
 #endif
437 437
 
438 438
 
@@ -441,15 +441,15 @@ static void lcd_tune_menu()
441 441
 #endif
442 442
     MENU_ITEM_EDIT(int3, MSG_FAN_SPEED, &fanSpeed, 0, 255);
443 443
     MENU_ITEM_EDIT(int3, MSG_FLOW, &extrudemultiply, 10, 999);
444
-    MENU_ITEM_EDIT(int3, MSG_FLOW0, &extruder_multiply[0], 10, 999);
444
+    MENU_ITEM_EDIT(int3, MSG_FLOW " 0", &extruder_multiply[0], 10, 999);
445 445
 #if TEMP_SENSOR_1 != 0
446
-    MENU_ITEM_EDIT(int3, MSG_FLOW1, &extruder_multiply[1], 10, 999);
446
+    MENU_ITEM_EDIT(int3, MSG_FLOW " 1", &extruder_multiply[1], 10, 999);
447 447
 #endif
448 448
 #if TEMP_SENSOR_2 != 0
449
-    MENU_ITEM_EDIT(int3, MSG_FLOW2, &extruder_multiply[2], 10, 999);
449
+    MENU_ITEM_EDIT(int3, MSG_FLOW " 2", &extruder_multiply[2], 10, 999);
450 450
 #endif
451 451
 #if TEMP_SENSOR_3 != 0
452
-    MENU_ITEM_EDIT(int3, MSG_FLOW3, &extruder_multiply[3], 10, 999);
452
+    MENU_ITEM_EDIT(int3, MSG_FLOW " 3", &extruder_multiply[3], 10, 999);
453 453
 #endif
454 454
 
455 455
 
@@ -591,18 +591,18 @@ static void lcd_preheat_pla_menu()
591 591
 {
592 592
   START_MENU();
593 593
   MENU_ITEM(back, MSG_PREPARE, lcd_prepare_menu);
594
-  MENU_ITEM(function, MSG_PREHEAT_PLA0, lcd_preheat_pla0);
594
+  MENU_ITEM(function, MSG_PREHEAT_PLA_N "1", lcd_preheat_pla0);
595 595
 #if TEMP_SENSOR_1 != 0 //2 extruder preheat
596
-  MENU_ITEM(function, MSG_PREHEAT_PLA1, lcd_preheat_pla1);
596
+  MENU_ITEM(function, MSG_PREHEAT_PLA_N "2", lcd_preheat_pla1);
597 597
 #endif //2 extruder preheat
598 598
 #if TEMP_SENSOR_2 != 0 //3 extruder preheat
599
-  MENU_ITEM(function, MSG_PREHEAT_PLA2, lcd_preheat_pla2);
599
+  MENU_ITEM(function, MSG_PREHEAT_PLA_N "3", lcd_preheat_pla2);
600 600
 #endif //3 extruder preheat
601 601
 #if TEMP_SENSOR_3 != 0 //4 extruder preheat
602
-  MENU_ITEM(function, MSG_PREHEAT_PLA3, lcd_preheat_pla3);
602
+  MENU_ITEM(function, MSG_PREHEAT_PLA_N "4", lcd_preheat_pla3);
603 603
 #endif //4 extruder preheat
604 604
 #if TEMP_SENSOR_1 != 0 || TEMP_SENSOR_2 != 0 || TEMP_SENSOR_3 != 0 //all extruder preheat
605
-  MENU_ITEM(function, MSG_PREHEAT_PLA0123, lcd_preheat_pla0123);
605
+  MENU_ITEM(function, MSG_PREHEAT_PLA_ALL, lcd_preheat_pla0123);
606 606
 #endif //all extruder preheat
607 607
 #if TEMP_SENSOR_BED != 0
608 608
   MENU_ITEM(function, MSG_PREHEAT_PLA_BEDONLY, lcd_preheat_pla_bedonly);
@@ -614,18 +614,18 @@ static void lcd_preheat_abs_menu()
614 614
 {
615 615
   START_MENU();
616 616
   MENU_ITEM(back, MSG_PREPARE, lcd_prepare_menu);
617
-  MENU_ITEM(function, MSG_PREHEAT_ABS0, lcd_preheat_abs0);
617
+  MENU_ITEM(function, MSG_PREHEAT_ABS_N "1", lcd_preheat_abs0);
618 618
 #if TEMP_SENSOR_1 != 0 //2 extruder preheat
619
-	MENU_ITEM(function, MSG_PREHEAT_ABS1, lcd_preheat_abs1);
619
+	MENU_ITEM(function, MSG_PREHEAT_ABS_N "2", lcd_preheat_abs1);
620 620
 #endif //2 extruder preheat
621 621
 #if TEMP_SENSOR_2 != 0 //3 extruder preheat
622
-  MENU_ITEM(function, MSG_PREHEAT_ABS2, lcd_preheat_abs2);
622
+  MENU_ITEM(function, MSG_PREHEAT_ABS_N "3", lcd_preheat_abs2);
623 623
 #endif //3 extruder preheat
624 624
 #if TEMP_SENSOR_3 != 0 //4 extruder preheat
625
-  MENU_ITEM(function, MSG_PREHEAT_ABS3, lcd_preheat_abs3);
625
+  MENU_ITEM(function, MSG_PREHEAT_ABS_N "4", lcd_preheat_abs3);
626 626
 #endif //4 extruder preheat
627 627
 #if TEMP_SENSOR_1 != 0 || TEMP_SENSOR_2 != 0 || TEMP_SENSOR_3 != 0 //all extruder preheat
628
-  MENU_ITEM(function, MSG_PREHEAT_ABS0123, lcd_preheat_abs0123);
628
+  MENU_ITEM(function, MSG_PREHEAT_ABS_ALL, lcd_preheat_abs0123);
629 629
 #endif //all extruder preheat
630 630
 
631 631
 #if TEMP_SENSOR_BED != 0
@@ -818,14 +818,14 @@ static void lcd_control_temperature_menu()
818 818
 #if TEMP_SENSOR_0 != 0
819 819
   MENU_ITEM_EDIT(int3, MSG_NOZZLE, &target_temperature[0], 0, HEATER_0_MAXTEMP - 15);
820 820
 #endif
821
-#if TEMP_SENSOR_1 != 0
822
-  MENU_ITEM_EDIT(int3, MSG_NOZZLE1, &target_temperature[1], 0, HEATER_1_MAXTEMP - 15);
821
+#if TEMP_SENSOR_1 != 0 && EXTRUDERS > 1
822
+  MENU_ITEM_EDIT(int3, MSG_NOZZLE " 2", &target_temperature[1], 0, HEATER_1_MAXTEMP - 15);
823 823
 #endif
824
-#if TEMP_SENSOR_2 != 0
825
-  MENU_ITEM_EDIT(int3, MSG_NOZZLE2, &target_temperature[2], 0, HEATER_2_MAXTEMP - 15);
824
+#if TEMP_SENSOR_2 != 0 && EXTRUDERS > 2
825
+  MENU_ITEM_EDIT(int3, MSG_NOZZLE " 3", &target_temperature[2], 0, HEATER_2_MAXTEMP - 15);
826 826
 #endif
827
-#if TEMP_SENSOR_3 != 0
828
-  MENU_ITEM_EDIT(int3, MSG_NOZZLE3, &target_temperature[3], 0, HEATER_3_MAXTEMP - 15);
827
+#if TEMP_SENSOR_3 != 0 && EXTRUDERS > 3
828
+  MENU_ITEM_EDIT(int3, MSG_NOZZLE " 4", &target_temperature[3], 0, HEATER_3_MAXTEMP - 15);
829 829
 #endif
830 830
 #if TEMP_SENSOR_BED != 0
831 831
   MENU_ITEM_EDIT(int3, MSG_BED, &target_temperature_bed, 0, BED_MAXTEMP - 15);
@@ -855,12 +855,12 @@ static void lcd_control_temperature_menu()
855 855
 	  pid_current_extruder = 0;
856 856
 	  raw_Ki = unscalePID_i(PID_PARAM(Ki,1));
857 857
 	  raw_Kd = unscalePID_d(PID_PARAM(Kd,1));
858
-	  MENU_ITEM_EDIT(float52, MSG_PID_P1, &PID_PARAM(Kp,1), 1, 9990);
858
+	  MENU_ITEM_EDIT(float52, MSG_PID_P " E2", &PID_PARAM(Kp,1), 1, 9990);
859 859
 	  // i is typically a small value so allows values below 1
860
-	  MENU_ITEM_EDIT_CALLBACK(float52, MSG_PID_I1, &raw_Ki, 0.01, 9990, copy_and_scalePID_i);
861
-	  MENU_ITEM_EDIT_CALLBACK(float52, MSG_PID_D1, &raw_Kd, 1, 9990, copy_and_scalePID_d);
860
+	  MENU_ITEM_EDIT_CALLBACK(float52, MSG_PID_I " E2", &raw_Ki, 0.01, 9990, copy_and_scalePID_i);
861
+	  MENU_ITEM_EDIT_CALLBACK(float52, MSG_PID_D " E2", &raw_Kd, 1, 9990, copy_and_scalePID_d);
862 862
       #ifdef PID_ADD_EXTRUSION_RATE
863
-	    MENU_ITEM_EDIT(float3, MSG_PID_C1, &PID_PARAM(Kc,1), 1, 9990);
863
+	    MENU_ITEM_EDIT(float3, MSG_PID_C " E2", &PID_PARAM(Kc,1), 1, 9990);
864 864
       #endif//PID_ADD_EXTRUSION_RATE
865 865
   #endif//EXTRUDERS > 1
866 866
   #if EXTRUDERS > 2
@@ -868,12 +868,12 @@ static void lcd_control_temperature_menu()
868 868
 	    pid_current_extruder = 0;
869 869
 	    raw_Ki = unscalePID_i(PID_PARAM(Ki,2));
870 870
 	    raw_Kd = unscalePID_d(PID_PARAM(Kd,2));
871
-	    MENU_ITEM_EDIT(float52, MSG_PID_P2, &PID_PARAM(Kp,2), 1, 9990);
871
+	    MENU_ITEM_EDIT(float52, MSG_PID_P " E3", &PID_PARAM(Kp,2), 1, 9990);
872 872
 	    // i is typically a small value so allows values below 1
873
-	    MENU_ITEM_EDIT_CALLBACK(float52, MSG_PID_I2, &raw_Ki, 0.01, 9990, copy_and_scalePID_i);
874
-	    MENU_ITEM_EDIT_CALLBACK(float52, MSG_PID_D2, &raw_Kd, 1, 9990, copy_and_scalePID_d);
873
+	    MENU_ITEM_EDIT_CALLBACK(float52, MSG_PID_I " E3", &raw_Ki, 0.01, 9990, copy_and_scalePID_i);
874
+	    MENU_ITEM_EDIT_CALLBACK(float52, MSG_PID_D " E3", &raw_Kd, 1, 9990, copy_and_scalePID_d);
875 875
         #ifdef PID_ADD_EXTRUSION_RATE
876
-	      MENU_ITEM_EDIT(float3, MSG_PID_C2, &PID_PARAM(Kc,2), 1, 9990);
876
+	      MENU_ITEM_EDIT(float3, MSG_PID_C " E3", &PID_PARAM(Kc,2), 1, 9990);
877 877
         #endif//PID_ADD_EXTRUSION_RATE
878 878
   #endif//EXTRUDERS > 2
879 879
 #endif // PID_PARAMS_PER_EXTRUDER
@@ -1336,7 +1336,7 @@ void lcd_update()
1336 1336
         u8g.firstPage();
1337 1337
         do
1338 1338
         {
1339
-            u8g.setFont(u8g_font_6x10_marlin);
1339
+            u8g.setFont(FONT_MENU);
1340 1340
             u8g.setPrintPos(125,0);
1341 1341
             if (blink % 2) u8g.setColorIndex(1); else u8g.setColorIndex(0); // Set color for the alive dot
1342 1342
             u8g.drawPixel(127,63); // draw alive dot

+ 5
- 5
Marlin/ultralcd_implementation_hitachi_HD44780.h View File

@@ -1,5 +1,5 @@
1
-#ifndef ULTRA_LCD_IMPLEMENTATION_HITACHI_HD44780_H
2
-#define ULTRA_LCD_IMPLEMENTATION_HITACHI_HD44780_H
1
+#ifndef ULTRALCD_IMPLEMENTATION_HITACHI_HD44780_H
2
+#define ULTRALCD_IMPLEMENTATION_HITACHI_HD44780_H
3 3
 
4 4
 /**
5 5
 * Implementation of the LCD display routines for a Hitachi HD44780 display. These are common LCD character displays.
@@ -7,9 +7,9 @@
7 7
 **/
8 8
 
9 9
 #ifndef REPRAPWORLD_KEYPAD
10
-extern volatile uint8_t buttons;  //the last checked buttons in a bit array.
10
+  extern volatile uint8_t buttons;  //the last checked buttons in a bit array.
11 11
 #else
12
-extern volatile uint16_t buttons;  //an extended version of the last checked buttons in a bit array.
12
+  extern volatile uint16_t buttons;  //an extended version of the last checked buttons in a bit array.
13 13
 #endif
14 14
 
15 15
 ////////////////////////////////////
@@ -903,4 +903,4 @@ static uint8_t lcd_implementation_read_slow_buttons()
903 903
 }
904 904
 #endif
905 905
 
906
-#endif//ULTRA_LCD_IMPLEMENTATION_HITACHI_HD44780_H
906
+#endif //__ULTRALCD_IMPLEMENTATION_HITACHI_HD44780_H

+ 2
- 2
Marlin/ultralcd_st7920_u8glib_rrd.h View File

@@ -55,11 +55,11 @@ uint8_t u8g_dev_rrd_st7920_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, vo
55 55
         WRITE(ST7920_CLK_PIN,1);
56 56
 
57 57
         ST7920_CS();
58
-        u8g_Delay(90);                 //initial delay for boot up
58
+        u8g_Delay(120);                 //initial delay for boot up
59 59
         ST7920_SET_CMD();
60 60
         ST7920_WRITE_BYTE(0x08);       //display off, cursor+blink off
61 61
         ST7920_WRITE_BYTE(0x01);       //clear CGRAM ram
62
-        u8g_Delay(10);                 //delay for CGRAM clear
62
+        u8g_Delay(15);                 //delay for CGRAM clear
63 63
         ST7920_WRITE_BYTE(0x3E);       //extended mode + GDRAM active
64 64
         for(y=0;y<HEIGHT/2;y++)        //clear GDRAM
65 65
         {

Loading…
Cancel
Save