Browse Source

Copy configs into subfolder

Browsers may not want to load files outside the folder, but they may be
okay with these relative references within the folder.
Scott Lahteine 10 years ago
parent
commit
4d341bb758

+ 828
- 0
Marlin/configurator/config/Configuration.h View File

@@ -0,0 +1,828 @@
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 "(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
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 250000
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_ULTIMAKER
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 -1
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 275
148
+#define HEATER_1_MAXTEMP 275
149
+#define HEATER_2_MAXTEMP 275
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
+#endif // PIDTEMP
198
+
199
+//===========================================================================
200
+//============================= PID > Bed Temperature Control ===============
201
+//===========================================================================
202
+// Select PID or bang-bang with PIDTEMPBED. If bang-bang, BED_LIMIT_SWITCHING will enable hysteresis
203
+//
204
+// Uncomment this to enable PID on the bed. It uses the same frequency PWM as the extruder.
205
+// If your PID_dT above is the default, and correct for your hardware/configuration, that means 7.689Hz,
206
+// which is fine for driving a square wave into a resistive load and does not significantly impact you FET heating.
207
+// This also works fine on a Fotek SSR-10DA Solid State Relay into a 250W heater.
208
+// If your configuration is significantly different than this and you don't understand the issues involved, you probably
209
+// shouldn't use bed PID until someone else verifies your hardware works.
210
+// If this is enabled, find your own PID constants below.
211
+//#define PIDTEMPBED
212
+//
213
+//#define BED_LIMIT_SWITCHING
214
+
215
+// This sets the max power delivered to the bed, and replaces the HEATER_BED_DUTY_CYCLE_DIVIDER option.
216
+// all forms of bed control obey this (PID, bang-bang, bang-bang with hysteresis)
217
+// setting this to anything other than 255 enables a form of PWM to the bed just like HEATER_BED_DUTY_CYCLE_DIVIDER did,
218
+// so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED)
219
+#define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
220
+
221
+#ifdef PIDTEMPBED
222
+//120v 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
223
+//from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, aggressive factor of .15 (vs .1, 1, 10)
224
+    #define  DEFAULT_bedKp 10.00
225
+    #define  DEFAULT_bedKi .023
226
+    #define  DEFAULT_bedKd 305.4
227
+
228
+//120v 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
229
+//from pidautotune
230
+//    #define  DEFAULT_bedKp 97.1
231
+//    #define  DEFAULT_bedKi 1.41
232
+//    #define  DEFAULT_bedKd 1675.16
233
+
234
+// FIND YOUR OWN: "M303 E-1 C8 S90" to run autotune on the bed at 90 degreesC for 8 cycles.
235
+#endif // PIDTEMPBED
236
+
237
+
238
+//this prevents dangerous Extruder moves, i.e. if the temperature is under the limit
239
+//can be software-disabled for whatever purposes by
240
+#define PREVENT_DANGEROUS_EXTRUDE
241
+//if PREVENT_DANGEROUS_EXTRUDE is on, you can still disable (uncomment) very long bits of extrusion separately.
242
+#define PREVENT_LENGTHY_EXTRUDE
243
+
244
+#define EXTRUDE_MINTEMP 170
245
+#define EXTRUDE_MAXLENGTH (X_MAX_LENGTH+Y_MAX_LENGTH) //prevent extrusion of very large distances.
246
+
247
+//===========================================================================
248
+//============================= Thermal Runaway Protection ==================
249
+//===========================================================================
250
+/*
251
+This is a feature to protect your printer from burn up in flames if it has
252
+a thermistor coming off place (this happened to a friend of mine recently and
253
+motivated me writing this feature).
254
+
255
+The issue: If a thermistor come off, it will read a lower temperature than actual.
256
+The system will turn the heater on forever, burning up the filament and anything
257
+else around.
258
+
259
+After the temperature reaches the target for the first time, this feature will 
260
+start measuring for how long the current temperature stays below the target 
261
+minus _HYSTERESIS (set_temperature - THERMAL_RUNAWAY_PROTECTION_HYSTERESIS).
262
+
263
+If it stays longer than _PERIOD, it means the thermistor temperature
264
+cannot catch up with the target, so something *may be* wrong. Then, to be on the
265
+safe side, the system will he halt.
266
+
267
+Bear in mind the count down will just start AFTER the first time the 
268
+thermistor temperature is over the target, so you will have no problem if
269
+your extruder heater takes 2 minutes to hit the target on heating.
270
+
271
+*/
272
+// If you want to enable this feature for all your extruder heaters,
273
+// uncomment the 2 defines below:
274
+
275
+// Parameters for all extruder heaters
276
+//#define THERMAL_RUNAWAY_PROTECTION_PERIOD 40 //in seconds
277
+//#define THERMAL_RUNAWAY_PROTECTION_HYSTERESIS 4 // in degree Celsius
278
+
279
+// If you want to enable this feature for your bed heater,
280
+// uncomment the 2 defines below:
281
+
282
+// Parameters for the bed heater
283
+//#define THERMAL_RUNAWAY_PROTECTION_BED_PERIOD 20 //in seconds
284
+//#define THERMAL_RUNAWAY_PROTECTION_BED_HYSTERESIS 2 // in degree Celsius
285
+
286
+
287
+//===========================================================================
288
+//============================= Mechanical Settings =========================
289
+//===========================================================================
290
+
291
+// Uncomment the following line to enable CoreXY kinematics
292
+// #define COREXY
293
+
294
+// coarse Endstop Settings
295
+#define ENDSTOPPULLUPS // Comment this out (using // at the start of the line) to disable the endstop pullup resistors
296
+
297
+#ifndef ENDSTOPPULLUPS
298
+  // fine endstop settings: Individual pullups. will be ignored if ENDSTOPPULLUPS is defined
299
+  // #define ENDSTOPPULLUP_XMAX
300
+  // #define ENDSTOPPULLUP_YMAX
301
+  // #define ENDSTOPPULLUP_ZMAX
302
+  // #define ENDSTOPPULLUP_XMIN
303
+  // #define ENDSTOPPULLUP_YMIN
304
+  // #define ENDSTOPPULLUP_ZMIN
305
+#endif
306
+
307
+#ifdef ENDSTOPPULLUPS
308
+  #define ENDSTOPPULLUP_XMAX
309
+  #define ENDSTOPPULLUP_YMAX
310
+  #define ENDSTOPPULLUP_ZMAX
311
+  #define ENDSTOPPULLUP_XMIN
312
+  #define ENDSTOPPULLUP_YMIN
313
+  #define ENDSTOPPULLUP_ZMIN
314
+#endif
315
+
316
+// The pullups are needed if you directly connect a mechanical endswitch between the signal and ground pins.
317
+const bool X_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
318
+const bool Y_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
319
+const bool Z_MIN_ENDSTOP_INVERTING = 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.
323
+//#define DISABLE_MAX_ENDSTOPS
324
+//#define DISABLE_MIN_ENDSTOPS
325
+
326
+// Disable max endstops for compatibility with endstop checking routine
327
+#if defined(COREXY) && !defined(DISABLE_MAX_ENDSTOPS)
328
+  #define DISABLE_MAX_ENDSTOPS
329
+#endif
330
+
331
+// For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
332
+#define X_ENABLE_ON 0
333
+#define Y_ENABLE_ON 0
334
+#define Z_ENABLE_ON 0
335
+#define E_ENABLE_ON 0 // For all extruders
336
+
337
+// Disables axis when it's not being used.
338
+#define DISABLE_X false
339
+#define DISABLE_Y false
340
+#define DISABLE_Z false
341
+#define DISABLE_E false // For all extruders
342
+#define DISABLE_INACTIVE_EXTRUDER true //disable only inactive extruders and keep active extruder enabled
343
+
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
348
+#define INVERT_E1_DIR false    // for direct drive extruder v9 set to true, for geared extruder set to false
349
+#define INVERT_E2_DIR false   // for direct drive extruder v9 set to true, for geared extruder set to false
350
+
351
+// ENDSTOP SETTINGS:
352
+// Sets direction of endstops when homing; 1=MAX, -1=MIN
353
+#define X_HOME_DIR -1
354
+#define Y_HOME_DIR -1
355
+#define Z_HOME_DIR -1
356
+
357
+#define min_software_endstops true // If true, axis won't move to coordinates less than HOME_POS.
358
+#define max_software_endstops true  // If true, axis won't move to coordinates greater than the defined lengths below.
359
+
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
366
+#define Z_MIN_POS 0
367
+
368
+#define X_MAX_LENGTH (X_MAX_POS - X_MIN_POS)
369
+#define Y_MAX_LENGTH (Y_MAX_POS - Y_MIN_POS)
370
+#define Z_MAX_LENGTH (Z_MAX_POS - Z_MIN_POS)
371
+
372
+
373
+//===========================================================================
374
+//============================= Bed Auto Leveling ===========================
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:
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
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
491
+
492
+
493
+// The position of the homing switches
494
+//#define MANUAL_HOME_POSITIONS  // If defined, MANUAL_*_HOME_POS below will be used
495
+//#define BED_CENTER_AT_0_0  // If defined, the center of the bed is at (X=0, Y=0)
496
+
497
+//Manual homing switch locations:
498
+// For deltabots this means top and center of the Cartesian print volume.
499
+#define MANUAL_X_HOME_POS 0
500
+#define MANUAL_Y_HOME_POS 0
501
+#define MANUAL_Z_HOME_POS 0
502
+//#define MANUAL_Z_HOME_POS 402 // For delta: Distance between nozzle and print surface after homing.
503
+
504
+//// MOVEMENT SETTINGS
505
+#define NUM_AXIS 4 // The axis order in all axis related arrays is X, Y, Z, E
506
+#define HOMING_FEEDRATE {50*60, 50*60, 4*60, 0}  // set the homing speeds (mm/min)
507
+
508
+// default settings
509
+
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.
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
516
+
517
+// Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
518
+// The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).
519
+// For the other hotends it is their distance from the extruder 0 hotend.
520
+// #define EXTRUDER_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
521
+// #define EXTRUDER_OFFSET_Y {0.0, 5.00}  // (in mm) for each extruder, offset of the hotend on the Y axis
522
+
523
+// The speed change that does not require acceleration (i.e. the software might assume it can be done instantaneously)
524
+#define DEFAULT_XYJERK                20.0    // (mm/sec)
525
+#define DEFAULT_ZJERK                 0.4     // (mm/sec)
526
+#define DEFAULT_EJERK                 5.0    // (mm/sec)
527
+
528
+
529
+//=============================================================================
530
+//============================= Additional Features ===========================
531
+//=============================================================================
532
+
533
+// Custom M code points
534
+#define CUSTOM_M_CODES
535
+#ifdef CUSTOM_M_CODES
536
+  #define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
537
+  #define Z_PROBE_OFFSET_RANGE_MIN -15
538
+  #define Z_PROBE_OFFSET_RANGE_MAX -5
539
+#endif
540
+
541
+
542
+// EEPROM
543
+// The microcontroller can store settings in the EEPROM, e.g. max velocity...
544
+// M500 - stores parameters in EEPROM
545
+// M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).
546
+// M502 - reverts to the default "factory settings".  You still need to store them in EEPROM afterwards if you want to.
547
+//define this to enable EEPROM support
548
+//#define EEPROM_SETTINGS
549
+//to disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
550
+// please keep turned on if you can.
551
+//#define EEPROM_CHITCHAT
552
+
553
+// Preheat Constants
554
+#define PLA_PREHEAT_HOTEND_TEMP 180
555
+#define PLA_PREHEAT_HPB_TEMP 70
556
+#define PLA_PREHEAT_FAN_SPEED 255   // Insert Value between 0 and 255
557
+
558
+#define ABS_PREHEAT_HOTEND_TEMP 240
559
+#define ABS_PREHEAT_HPB_TEMP 100
560
+#define ABS_PREHEAT_FAN_SPEED 255   // Insert Value between 0 and 255
561
+
562
+//LCD and SD support
563
+
564
+// Character based displays can have different extended charsets.
565
+#define DISPLAY_CHARSET_HD44780_JAPAN     // "ääööüüß23°"
566
+//#define DISPLAY_CHARSET_HD44780_WESTERN // "ÄäÖöÜüß²³°" if you see a '~' instead of a 'arrow_right' at the right of submenuitems - this is the right one.
567
+
568
+//#define ULTRA_LCD  //general LCD support, also 16x2
569
+//#define DOGLCD  // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family)
570
+//#define SDSUPPORT // Enable SD Card Support in Hardware Console
571
+//#define SDSLOW // Use slower SD transfer mode (not normally needed - uncomment if you're getting volume init error)
572
+//#define SD_CHECK_AND_RETRY // Use CRC checks and retries on the SD communication
573
+//#define ENCODER_PULSES_PER_STEP 1 // Increase if you have a high resolution encoder
574
+//#define ENCODER_STEPS_PER_MENU_ITEM 5 // Set according to ENCODER_PULSES_PER_STEP or your liking
575
+//#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store.
576
+//#define ULTIPANEL  //the UltiPanel as on Thingiverse
577
+//#define LCD_FEEDBACK_FREQUENCY_HZ 1000	// this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click
578
+//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click
579
+
580
+// The MaKr3d Makr-Panel with graphic controller and SD support
581
+// http://reprap.org/wiki/MaKr3d_MaKrPanel
582
+//#define MAKRPANEL
583
+
584
+// The RepRapDiscount Smart Controller (white PCB)
585
+// http://reprap.org/wiki/RepRapDiscount_Smart_Controller
586
+//#define REPRAP_DISCOUNT_SMART_CONTROLLER
587
+
588
+// The GADGETS3D G3D LCD/SD Controller (blue PCB)
589
+// http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel
590
+//#define G3D_PANEL
591
+
592
+// The RepRapDiscount FULL GRAPHIC Smart Controller (quadratic white PCB)
593
+// http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller
594
+//
595
+// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: http://code.google.com/p/u8glib/wiki/u8glib
596
+//#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
597
+
598
+// The RepRapWorld REPRAPWORLD_KEYPAD v1.1
599
+// http://reprapworld.com/?products_details&products_id=202&cPath=1591_1626
600
+//#define REPRAPWORLD_KEYPAD
601
+//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 // how much should be moved when a key is pressed, eg 10.0 means 10mm per click
602
+
603
+// The Elefu RA Board Control Panel
604
+// http://www.elefu.com/index.php?route=product/product&product_id=53
605
+// REMEMBER TO INSTALL LiquidCrystal_I2C.h in your ARDUINO library folder: https://github.com/kiyoshigawa/LiquidCrystal_I2C
606
+//#define RA_CONTROL_PANEL
607
+
608
+//automatic expansion
609
+#if defined (MAKRPANEL)
610
+ #define DOGLCD
611
+ #define SDSUPPORT
612
+ #define ULTIPANEL
613
+ #define NEWPANEL
614
+ #define DEFAULT_LCD_CONTRAST 17
615
+#endif
616
+
617
+#if defined (REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
618
+ #define DOGLCD
619
+ #define U8GLIB_ST7920
620
+ #define REPRAP_DISCOUNT_SMART_CONTROLLER
621
+#endif
622
+
623
+#if defined(ULTIMAKERCONTROLLER) || defined(REPRAP_DISCOUNT_SMART_CONTROLLER) || defined(G3D_PANEL)
624
+ #define ULTIPANEL
625
+ #define NEWPANEL
626
+#endif
627
+
628
+#if defined(REPRAPWORLD_KEYPAD)
629
+  #define NEWPANEL
630
+  #define ULTIPANEL
631
+#endif
632
+#if defined(RA_CONTROL_PANEL)
633
+ #define ULTIPANEL
634
+ #define NEWPANEL
635
+ #define LCD_I2C_TYPE_PCA8574
636
+ #define LCD_I2C_ADDRESS 0x27   // I2C Address of the port expander
637
+#endif
638
+
639
+//I2C PANELS
640
+
641
+//#define LCD_I2C_SAINSMART_YWROBOT
642
+#ifdef LCD_I2C_SAINSMART_YWROBOT
643
+  // This uses the LiquidCrystal_I2C library ( https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home )
644
+  // Make sure it is placed in the Arduino libraries directory.
645
+  #define LCD_I2C_TYPE_PCF8575
646
+  #define LCD_I2C_ADDRESS 0x27   // I2C Address of the port expander
647
+  #define NEWPANEL
648
+  #define ULTIPANEL
649
+#endif
650
+
651
+// PANELOLU2 LCD with status LEDs, separate encoder and click inputs
652
+//#define LCD_I2C_PANELOLU2
653
+#ifdef LCD_I2C_PANELOLU2
654
+  // This uses the LiquidTWI2 library v1.2.3 or later ( https://github.com/lincomatic/LiquidTWI2 )
655
+  // Make sure the LiquidTWI2 directory is placed in the Arduino or Sketchbook libraries subdirectory.
656
+  // (v1.2.3 no longer requires you to define PANELOLU in the LiquidTWI2.h library header file)
657
+  // Note: The PANELOLU2 encoder click input can either be directly connected to a pin
658
+  //       (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1).
659
+  #define LCD_I2C_TYPE_MCP23017
660
+  #define LCD_I2C_ADDRESS 0x20 // I2C Address of the port expander
661
+  #define LCD_USE_I2C_BUZZER //comment out to disable buzzer on LCD
662
+  #define NEWPANEL
663
+  #define ULTIPANEL
664
+
665
+  #ifndef ENCODER_PULSES_PER_STEP
666
+	#define ENCODER_PULSES_PER_STEP 4
667
+  #endif
668
+
669
+  #ifndef ENCODER_STEPS_PER_MENU_ITEM
670
+	#define ENCODER_STEPS_PER_MENU_ITEM 1
671
+  #endif
672
+
673
+
674
+  #ifdef LCD_USE_I2C_BUZZER
675
+	#define LCD_FEEDBACK_FREQUENCY_HZ 1000
676
+	#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100
677
+  #endif
678
+
679
+#endif
680
+
681
+// Panucatt VIKI LCD with status LEDs, integrated click & L/R/U/P buttons, separate encoder inputs
682
+//#define LCD_I2C_VIKI
683
+#ifdef LCD_I2C_VIKI
684
+  // This uses the LiquidTWI2 library v1.2.3 or later ( https://github.com/lincomatic/LiquidTWI2 )
685
+  // Make sure the LiquidTWI2 directory is placed in the Arduino or Sketchbook libraries subdirectory.
686
+  // Note: The pause/stop/resume LCD button pin should be connected to the Arduino
687
+  //       BTN_ENC pin (or set BTN_ENC to -1 if not used)
688
+  #define LCD_I2C_TYPE_MCP23017
689
+  #define LCD_I2C_ADDRESS 0x20 // I2C Address of the port expander
690
+  #define LCD_USE_I2C_BUZZER //comment out to disable buzzer on LCD (requires LiquidTWI2 v1.2.3 or later)
691
+  #define NEWPANEL
692
+  #define ULTIPANEL
693
+#endif
694
+
695
+// Shift register panels
696
+// ---------------------
697
+// 2 wire Non-latching LCD SR from:
698
+// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/schematics#!shiftregister-connection 
699
+
700
+//#define SAV_3DLCD
701
+#ifdef SAV_3DLCD
702
+   #define SR_LCD_2W_NL    // Non latching 2 wire shiftregister
703
+   #define NEWPANEL
704
+   #define ULTIPANEL
705
+#endif
706
+
707
+
708
+#ifdef ULTIPANEL
709
+//  #define NEWPANEL  //enable this if you have a click-encoder panel
710
+  #define SDSUPPORT
711
+  #define ULTRA_LCD
712
+  #ifdef DOGLCD // Change number of lines to match the DOG graphic display
713
+    #define LCD_WIDTH 22
714
+    #define LCD_HEIGHT 5
715
+  #else
716
+    #define LCD_WIDTH 20
717
+    #define LCD_HEIGHT 4
718
+  #endif
719
+#else //no panel but just LCD
720
+  #ifdef ULTRA_LCD
721
+  #ifdef DOGLCD // Change number of lines to match the 128x64 graphics display
722
+    #define LCD_WIDTH 22
723
+    #define LCD_HEIGHT 5
724
+  #else
725
+    #define LCD_WIDTH 16
726
+    #define LCD_HEIGHT 2
727
+  #endif
728
+  #endif
729
+#endif
730
+
731
+// default LCD contrast for dogm-like LCD displays
732
+#ifdef DOGLCD
733
+# ifndef DEFAULT_LCD_CONTRAST
734
+#  define DEFAULT_LCD_CONTRAST 32
735
+# endif
736
+#endif
737
+
738
+// Increase the FAN pwm frequency. Removes the PWM noise but increases heating in the FET/Arduino
739
+//#define FAST_PWM_FAN
740
+
741
+// Temperature status LEDs that display the hotend and bet temperature.
742
+// If all hotends and bed temperature and temperature setpoint are < 54C then the BLUE led is on.
743
+// Otherwise the RED led is on. There is 1C hysteresis.
744
+//#define TEMP_STAT_LEDS
745
+
746
+// Use software PWM to drive the fan, as for the heaters. This uses a very low frequency
747
+// which is not ass annoying as with the hardware PWM. On the other hand, if this frequency
748
+// is too low, you should also increment SOFT_PWM_SCALE.
749
+//#define FAN_SOFT_PWM
750
+
751
+// Incrementing this by 1 will double the software PWM frequency,
752
+// affecting heaters, and the fan if FAN_SOFT_PWM is enabled.
753
+// However, control resolution will be halved for each increment;
754
+// at zero value, there are 128 effective control positions.
755
+#define SOFT_PWM_SCALE 0
756
+
757
+// M240  Triggers a camera by emulating a Canon RC-1 Remote
758
+// Data from: http://www.doc-diy.net/photo/rc-1_hacked/
759
+// #define PHOTOGRAPH_PIN     23
760
+
761
+// SF send wrong arc g-codes when using Arc Point as fillet procedure
762
+//#define SF_ARC_FIX
763
+
764
+// Support for the BariCUDA Paste Extruder.
765
+//#define BARICUDA
766
+
767
+//define BlinkM/CyzRgb Support
768
+//#define BLINKM
769
+
770
+/*********************************************************************\
771
+* R/C SERVO support
772
+* Sponsored by TrinityLabs, Reworked by codexmas
773
+**********************************************************************/
774
+
775
+// Number of servos
776
+//
777
+// If you select a configuration below, this will receive a default value and does not need to be set manually
778
+// set it manually if you have more servos than extruders and wish to manually control some
779
+// leaving it undefined or defining as 0 will disable the servo subsystem
780
+// If unsure, leave commented / disabled
781
+//
782
+//#define NUM_SERVOS 3 // Servo index starts with 0 for M280 command
783
+
784
+// Servo Endstops
785
+//
786
+// This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes.
787
+// Use M206 command to correct for switch height offset to actual nozzle height. Store that setting with M500.
788
+//
789
+//#define SERVO_ENDSTOPS {-1, -1, 0} // Servo index for X, Y, Z. Disable with -1
790
+//#define SERVO_ENDSTOP_ANGLES {0,0, 0,0, 70,0} // X,Y,Z Axis Extend and Retract angles
791
+
792
+/**********************************************************************\
793
+ * Support for a filament diameter sensor
794
+ * Also allows adjustment of diameter at print time (vs  at slicing)
795
+ * Single extruder only at this point (extruder 0)
796
+ * 
797
+ * Motherboards
798
+ * 34 - RAMPS1.4 - uses Analog input 5 on the AUX2 connector 
799
+ * 81 - Printrboard - Uses Analog input 2 on the Exp1 connector (version B,C,D,E)
800
+ * 301 - Rambo  - uses Analog input 3
801
+ * Note may require analog pins to be defined for different motherboards
802
+ **********************************************************************/
803
+// Uncomment below to enable
804
+//#define FILAMENT_SENSOR
805
+
806
+#define FILAMENT_SENSOR_EXTRUDER_NUM	0  //The number of the extruder that has the filament sensor (0,1,2)
807
+#define MEASUREMENT_DELAY_CM			14  //measurement delay in cm.  This is the distance from filament sensor to middle of barrel
808
+
809
+#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
810
+#define MEASURED_UPPER_LIMIT          3.30  //upper limit factor used for sensor reading validation in mm
811
+#define MEASURED_LOWER_LIMIT          1.90  //lower limit factor for sensor reading validation in mm
812
+#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)
813
+
814
+//defines used in the code
815
+#define DEFAULT_MEASURED_FILAMENT_DIA  DEFAULT_NOMINAL_FILAMENT_DIA  //set measured to nominal initially 
816
+
817
+//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.
818
+//#define FILAMENT_LCD_DISPLAY
819
+
820
+
821
+
822
+
823
+
824
+
825
+#include "Configuration_adv.h"
826
+#include "thermistortables.h"
827
+
828
+#endif //__CONFIGURATION_H

+ 535
- 0
Marlin/configurator/config/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
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 {50*60, 50*60, 4*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 2.85
364
+  #define STEPS_MM_E 836
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 4
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 45            //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     //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

+ 59
- 0
Marlin/configurator/config/boards.h View File

@@ -0,0 +1,59 @@
1
+#ifndef BOARDS_H
2
+#define BOARDS_H
3
+
4
+#define BOARD_UNKNOWN -1
5
+
6
+#define BOARD_GEN7_CUSTOM       10   // Gen7 custom (Alfons3 Version) "https://github.com/Alfons3/Generation_7_Electronics"
7
+#define BOARD_GEN7_12           11   // Gen7 v1.1, v1.2
8
+#define BOARD_GEN7_13           12   // Gen7 v1.3
9
+#define BOARD_GEN7_14           13   // Gen7 v1.4
10
+#define BOARD_CHEAPTRONIC       2    // Cheaptronic v1.0
11
+#define BOARD_SETHI             20   // Sethi 3D_1
12
+#define BOARD_RAMPS_OLD         3    // MEGA/RAMPS up to 1.2
13
+#define BOARD_RAMPS_13_EFB      33   // RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Bed)
14
+#define BOARD_RAMPS_13_EEB      34   // RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Bed)
15
+#define BOARD_RAMPS_13_EFF      35   // RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Fan)
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 assignments
18
+#define BOARD_GEN6              5    // Gen6
19
+#define BOARD_GEN6_DELUXE       51   // Gen6 deluxe
20
+#define BOARD_SANGUINOLOLU_11   6    // Sanguinololu < 1.2
21
+#define BOARD_SANGUINOLOLU_12   62   // Sanguinololu 1.2 and above
22
+#define BOARD_MELZI             63   // Melzi
23
+#define BOARD_STB_11            64   // STB V1.1
24
+#define BOARD_AZTEEG_X1         65   // Azteeg X1
25
+#define BOARD_MELZI_1284        66   // Melzi with ATmega1284 (MaKr3d version)
26
+#define BOARD_AZTEEG_X3         67   // Azteeg X3
27
+#define BOARD_AZTEEG_X3_PRO     68   // Azteeg X3 Pro
28
+#define BOARD_ULTIMAKER         7    // Ultimaker
29
+#define BOARD_ULTIMAKER_OLD     71   // Ultimaker (Older electronics. Pre 1.5.4. This is rare)
30
+#define BOARD_ULTIMAIN_2        72   // Ultimainboard 2.x (Uses TEMP_SENSOR 20)
31
+#define BOARD_3DRAG             77   // 3Drag Controller
32
+#define BOARD_K8200             78   // Vellemann K8200 Controller (derived from 3Drag Controller)
33
+#define BOARD_TEENSYLU          8    // Teensylu
34
+#define BOARD_RUMBA             80   // Rumba
35
+#define BOARD_PRINTRBOARD       81   // Printrboard (AT90USB1286)
36
+#define BOARD_BRAINWAVE         82   // Brainwave (AT90USB646)
37
+#define BOARD_SAV_MKI           83   // SAV Mk-I (AT90USB1286)
38
+#define BOARD_TEENSY2           84   // Teensy++2.0 (AT90USB1286) - CLI compile: DEFINES=AT90USBxx_TEENSYPP_ASSIGNMENTS HARDWARE_MOTHERBOARD=84  make
39
+#define BOARD_GEN3_PLUS         9    // Gen3+
40
+#define BOARD_GEN3_MONOLITHIC   22   // Gen3 Monolithic Electronics
41
+#define BOARD_MEGATRONICS       70   // Megatronics
42
+#define BOARD_MEGATRONICS_2     701  // Megatronics v2.0
43
+#define BOARD_MEGATRONICS_1     702  // Minitronics v1.0
44
+#define BOARD_MEGATRONICS_3     703  // Megatronics v3.0
45
+#define BOARD_OMCA_A            90   // Alpha OMCA board
46
+#define BOARD_OMCA              91   // Final OMCA board
47
+#define BOARD_RAMBO             301  // Rambo
48
+#define BOARD_ELEFU_3           21   // Elefu Ra Board (v3)
49
+#define BOARD_5DPRINT           88   // 5DPrint D8 Driver Board
50
+#define BOARD_LEAPFROG          999  // Leapfrog
51
+#define BOARD_WITBOX            41   // bq WITBOX
52
+#define BOARD_HEPHESTOS         42   // bq Prusa i3 Hephestos
53
+
54
+#define BOARD_99                99   // This is in pins.h but...?
55
+
56
+#define MB(board) (MOTHERBOARD==BOARD_##board)
57
+#define IS_RAMPS (MB(RAMPS_OLD) || MB(RAMPS_13_EFB) || MB(RAMPS_13_EEB) || MB(RAMPS_13_EFF) || MB(RAMPS_13_EEF))
58
+
59
+#endif //__BOARDS_H

+ 2
- 2
Marlin/configurator/css/configurator.css View File

@@ -1,8 +1,8 @@
1 1
 /* configurator.css */
2 2
 /* Styles for Marlin Configurator */
3 3
 
4
-body { margin: 0; padding: 0; background: #458; color: #FFC; font-family: sans-serif; }
5
-#main { float: left; width: 100%; margin-right: -100%; }
4
+body { margin: 0; padding: 0; background: #56A; color: #FFC; font-family: sans-serif; }
5
+#main { max-width: 1000px; margin: 0 auto; }
6 6
 #main { padding: 0 4%; width: 92%; }
7 7
 #main { font-family: monospace; }
8 8
 .info { color: #AAF; }

+ 1
- 4
Marlin/configurator/index.html View File

@@ -14,10 +14,7 @@
14 14
   <body>
15 15
     <section id="main">
16 16
       <h1>Marlin Configurator 0.1a</h1>
17
-      <p>Enter values in the form, get a Marlin configuration.<br/>Will include a drop-down of known configurations.</p>
18
-      <ul id="help">
19
-        <li><strong>HELP</strong> - This is the help region</li>
20
-      </ul>
17
+      <p>Enter values in the form, get a Marlin configuration. Will include a drop-down of known configurations.</p>
21 18
 
22 19
       <div id="tabs"></div>
23 20
 

+ 1
- 2
Marlin/configurator/js/configurator.js View File

@@ -16,7 +16,7 @@
16 16
 
17 17
 $(function(){
18 18
 
19
-var marlin_config = '..';
19
+var marlin_config = 'config';
20 20
 
21 21
 // Extend String
22 22
 String.prototype.lpad = function(len, chr) {
@@ -296,7 +296,6 @@ var configuratorApp = (function(){
296 296
         onChange: function(v) { $('#SERIAL_PORT').val(v).trigger('change'); }
297 297
       });
298 298
 
299
-
300 299
       // prettyPrint();
301 300
     },
302 301
 

Loading…
Cancel
Save