Prusa3d Marlin fork
Configuration.h
1 #ifndef CONFIGURATION_H
2 #define CONFIGURATION_H
3 
4 #include "boards.h"
5 
6 #define STR_HELPER(x) #x
7 #define STR(x) STR_HELPER(x)
8 #define _CONCAT(x,y) x##y
9 #define CONCAT(x,y) _CONCAT(x,y)
10 
11 #include <avr/pgmspace.h>
12 extern const uint16_t _nPrinterType;
13 extern const char _sPrinterName[] PROGMEM;
14 extern const uint16_t _nPrinterMmuType;
15 extern const char _sPrinterMmuName[] PROGMEM;
16 
17 // Firmware version.
18 // NOTE: These are ONLY used if you are not building via cmake and/or not in a git repository.
19 // Otherwise the repository information takes precedence.
20 #ifndef CMAKE_CONTROL
21 #define FW_MAJOR 3
22 #define FW_MINOR 14
23 #define FW_REVISION 0
24 #define FW_COMMITNR 8066
25 //#define FW_FLAVOR BETA //uncomment if DEV, ALPHA, BETA or RC
26 //#define FW_FLAVERSION 1 //uncomment if FW_FLAVOR is defined and versioning is needed. Limited to max 8.
27 #endif
28 
29 #ifndef FW_FLAVOR
30  #define FW_TWEAK (FIRMWARE_REVISION_RELEASED)
31  #define FW_VERSION STR(FW_MAJOR) "." STR(FW_MINOR) "." STR(FW_REVISION)
32  #define FW_VERSION_FULL STR(FW_MAJOR) "." STR(FW_MINOR) "." STR(FW_REVISION) "-" STR(FW_COMMITNR)
33 #else
34  // Construct the TWEAK value as it is expected from the enum.
35  #define FW_TWEAK (CONCAT(FIRMWARE_REVISION_,FW_FLAVOR) + FW_FLAVERSION)
36  #define FW_VERSION STR(FW_MAJOR) "." STR(FW_MINOR) "." STR(FW_REVISION) "-" STR(FW_FLAVOR) "" STR(FW_FLAVERSION)
37  #define FW_VERSION_FULL STR(FW_MAJOR) "." STR(FW_MINOR) "." STR(FW_REVISION) "-" STR(FW_FLAVOR) "" STR(FW_FLAVERSION) "+" STR(FW_COMMITNR)
38 #endif
39 
40 // The full version string and repository source are set via cmake
41 #ifndef CMAKE_CONTROL
42 #define FW_COMMIT_HASH_LENGTH 1
43 #define FW_COMMIT_HASH "0"
44 #define FW_REPOSITORY "Unknown"
45 #endif
46 
47 // G-code language level
48 #define GCODE_LEVEL 1
49 
50 #ifndef SOURCE_DATE_EPOCH
51 #define SOURCE_DATE_EPOCH __DATE__
52 #endif
53 #ifndef SOURCE_TIME_EPOCH
54 #define SOURCE_TIME_EPOCH __TIME__
55 #endif
56 
57 #include "Configuration_var.h"
58 
59 #define FW_PRUSA3D_MAGIC "PRUSA3DFW"
60 #define FW_PRUSA3D_MAGIC_LEN 10
61 
62 #include "eeprom.h"
63 
64 // This configuration file contains the basic settings.
65 // Advanced settings can be found in Configuration_adv.h
66 // BASIC SETTINGS: select your board type, temperature sensor type, axis scaling, and endstop configuration
67 
68 // User-specified version info of this build to display in [Pronterface, etc] terminal window during
69 // startup. Implementation of an idea by Prof Braino to inform user that any changes made to this
70 // build by the user have been successfully uploaded into firmware.
71 
72 #define STRING_VERSION_CONFIG_H SOURCE_DATE_EPOCH " " SOURCE_TIME_EPOCH // build date and time
73 #define STRING_CONFIG_H_AUTHOR FW_REPOSITORY // Who made the changes.
74 
75 // SERIAL_PORT selects which serial port should be used for communication with the host.
76 // This allows the connection of wireless adapters (for instance) to non-default port pins.
77 // Serial port 0 is still used by the Arduino bootloader regardless of this setting.
78 #define SERIAL_PORT 0
79 
80 // This determines the communication speed of the printer
81 #define BAUDRATE 115200
82 
83 // Enable g-code compression (see https://github.com/scottmudge/OctoPrint-MeatPack)
84 #define ENABLE_MEATPACK
85 
86 // This enables the serial port associated to the Bluetooth interface
87 //#define BTENABLED // Enable BT interface on AT90USB devices
88 
89 // The following define selects which electronics board you have.
90 // Please choose the name from boards.h that matches your setup
91 
92 
93 
94 
95 
96 
97 
98 // Define this to set a unique identifier for this printer, (Used by some programs to differentiate between machines)
99 // You can use an online service to generate a random UUID. (eg http://www.uuidgenerator.net/version4)
100 // #define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
101 
102 // This defines the number of extruders
103 #define EXTRUDERS 1
104 
106 // 1 = ATX
107 // 2 = X-Box 360 203Watts (the blue wire connected to PS_ON and the red wire to VCC)
108 
109 #define POWER_SUPPLY 1
110 
111 
112 
113 
114 
115 // Define this to have the electronics keep the power supply off on startup. If you don't know what this is leave it.
116 // #define PS_DEFAULT_OFF
117 
118 
119 // Actual temperature must be close to target for this long before M109 returns success
120 #define TEMP_RESIDENCY_TIME 3 // (seconds)
121 #define TEMP_HYSTERESIS 5 // (degC) range of +/- temperatures considered "close" to the target one
122 #define TEMP_WINDOW 1 // (degC) Window around target to start the residency timer x degC early.
123 
124 
125 
126 // If your bed has low resistance e.g. .6 ohm and throws the fuse you can duty cycle it to reduce the
127 // average current. The value should be an integer and the heat bed will be turned on for 1 interval of
128 // HEATER_BED_DUTY_CYCLE_DIVIDER intervals.
129 //#define HEATER_BED_DUTY_CYCLE_DIVIDER 4
130 
131 // If you want the M105 heater power reported in watts, define the BED_WATTS, and (shared for all extruders) EXTRUDER_WATTS
132 //#define EXTRUDER_WATTS (12.0*12.0/6.7) // P=I^2/R
133 //#define BED_WATTS (12.0*12.0/1.1) // P=I^2/R
134 
135 // PID settings:
136 // Comment the following line to disable PID and enable bang-bang.
137 #define PIDTEMP
138 #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
139 #define PID_MAX BANG_MAX // limits current to nozzle while PID is active; 255=full current
140 #ifdef PIDTEMP
141  //#define PID_DEBUG // Sends debug data to the serial port.
142  //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
143  //#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
144  #define PID_INTEGRAL_DRIVE_MAX PID_MAX //limit for the integral term
145  #define PID_K1 0.95 //smoothing factor within the PID
146  #define PID_dT ((OVERSAMPLENR * 10.0)/(F_CPU / 64.0 / 256.0)) //sampling period of the temperature routine
147 
148 // If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it
149 // Ultimaker
150 
151 
152 // MakerGear
153 // #define DEFAULT_Kp 7.0
154 // #define DEFAULT_Ki 0.1
155 // #define DEFAULT_Kd 12
156 
157 // Mendel Parts V9 on 12V
158 // #define DEFAULT_Kp 63.0
159 // #define DEFAULT_Ki 2.25
160 // #define DEFAULT_Kd 440
161 #endif // PIDTEMP
162 
163 
164 //this prevents dangerous Extruder moves, i.e. if the temperature is under the limit
165 //can be software-disabled for whatever purposes by
166 #define PREVENT_DANGEROUS_EXTRUDE
167 //if PREVENT_DANGEROUS_EXTRUDE is on, you can still disable (uncomment) very long bits of extrusion separately.
168 #define PREVENT_LENGTHY_EXTRUDE
169 
170 #ifdef DEBUG_DISABLE_PREVENT_EXTRUDER
171 #undef PREVENT_DANGEROUS_EXTRUDE
172 #undef PREVENT_LENGTHY_EXTRUDE
173 #endif //DEBUG_DISABLE_PREVENT_EXTRUDER
174 
175 #define EXTRUDE_MAXLENGTH (X_MAX_LENGTH+Y_MAX_LENGTH) //prevent extrusion of very large distances.
176 
177 /*================== Thermal Runaway Protection ==============================
178 This is a feature to protect your printer from burn up in flames if it has
179 a thermistor coming off place (this happened to a friend of mine recently and
180 motivated me writing this feature).
181 
182 The issue: If a thermistor come off, it will read a lower temperature than actual.
183 The system will turn the heater on forever, burning up the filament and anything
184 else around.
185 
186 After the temperature reaches the target for the first time, this feature will
187 start measuring for how long the current temperature stays below the target
188 minus _HYSTERESIS (set_temperature - THERMAL_RUNAWAY_PROTECTION_HYSTERESIS).
189 
190 If it stays longer than _PERIOD, it means the thermistor temperature
191 cannot catch up with the target, so something *may be* wrong. Then, to be on the
192 safe side, the system will he halt.
193 
194 Bear in mind the count down will just start AFTER the first time the
195 thermistor temperature is over the target, so you will have no problem if
196 your extruder heater takes 2 minutes to hit the target on heating.
197 
198 */
199 // If you want to enable this feature for all your extruder heaters,
200 // uncomment the 2 defines below:
201 
202 // Parameters for all extruder heaters
203 //#define THERMAL_RUNAWAY_PROTECTION_PERIOD 40 //in seconds
204 //#define THERMAL_RUNAWAY_PROTECTION_HYSTERESIS 4 // in degree Celsius
205 
206 // If you want to enable this feature for your bed heater,
207 // uncomment the 2 defines below:
208 
209 // Parameters for the bed heater
210 //#define THERMAL_RUNAWAY_PROTECTION_BED_PERIOD 20 //in seconds
211 //#define THERMAL_RUNAWAY_PROTECTION_BED_HYSTERESIS 2 // in degree Celsius
212 //===========================================================================
213 
214 
215 //===========================================================================
216 //=============================Mechanical Settings===========================
217 //===========================================================================
218 
219 // Uncomment the following line to enable CoreXY kinematics
220 // #define COREXY
221 
222 // coarse Endstop Settings
223 #define ENDSTOPPULLUPS // Comment this out (using // at the start of the line) to disable the endstop pullup resistors
224 
225 #ifndef ENDSTOPPULLUPS
226  // fine endstop settings: Individual pullups. will be ignored if ENDSTOPPULLUPS is defined
227  // #define ENDSTOPPULLUP_XMAX
228  // #define ENDSTOPPULLUP_YMAX
229  // #define ENDSTOPPULLUP_ZMAX
230  // #define ENDSTOPPULLUP_XMIN
231  // #define ENDSTOPPULLUP_YMIN
232  // #define ENDSTOPPULLUP_ZMIN
233 #endif
234 
235 #ifdef ENDSTOPPULLUPS
236  #define ENDSTOPPULLUP_XMAX
237  #define ENDSTOPPULLUP_YMAX
238  #define ENDSTOPPULLUP_ZMAX
239  #define ENDSTOPPULLUP_XMIN
240  #define ENDSTOPPULLUP_YMIN
241  #define ENDSTOPPULLUP_ZMIN
242 #endif
243 
244 // The pullups are needed if you directly connect a mechanical endswitch between the signal and ground pins.
245 
246 #define X_MAX_ENDSTOP_INVERTING 0 // set to 1 to invert the logic of the endstop.
247 #define Y_MAX_ENDSTOP_INVERTING 0 // set to 1 to invert the logic of the endstop.
248 #define Z_MAX_ENDSTOP_INVERTING 1 // set to 1 to invert the logic of the endstop.
249 //#define DISABLE_MAX_ENDSTOPS
250 //#define DISABLE_MIN_ENDSTOPS
251 
252 // Disable max endstops for compatibility with endstop checking routine
253 #if defined(COREXY) && !defined(DISABLE_MAX_ENDSTOPS)
254  #define DISABLE_MAX_ENDSTOPS
255 #endif
256 
257 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
258 #define X_ENABLE_ON 0
259 #define Y_ENABLE_ON 0
260 #define Z_ENABLE_ON 0
261 #define E_ENABLE_ON 0 // For all extruders
262 
263 // Disables axis when it's not being used.
264 #define DISABLE_X 0
265 #define DISABLE_Y 0
266 #define DISABLE_Z 0
267 #define DISABLE_E 0// For all extruders
268 
269 
270 // ENDSTOP SETTINGS:
271 // Sets direction of endstops when homing; 1=MAX, -1=MIN
272 #define X_HOME_DIR -1
273 #define Y_HOME_DIR -1
274 #define Z_HOME_DIR -1
275 
276 #ifdef DEBUG_DISABLE_SWLIMITS
277 #define min_software_endstops 0
278 #define max_software_endstops 0
279 #else
280 #define min_software_endstops 1 // If true, axis won't move to coordinates less than HOME_POS.
281 #define max_software_endstops 1 // If true, axis won't move to coordinates greater than the defined lengths below.
282 #endif //DEBUG_DISABLE_SWLIMITS
283 
284 
285 #define X_MAX_LENGTH (X_MAX_POS - X_MIN_POS)
286 #define Y_MAX_LENGTH (Y_MAX_POS - Y_MIN_POS)
287 #define Z_MAX_LENGTH (Z_MAX_POS - Z_MIN_POS)
288 
289 #define Z_HEIGHT_HIDE_LIVE_ADJUST_MENU 2.0f
290 
291 #define HOME_Z_SEARCH_THRESHOLD 0.15f // Threshold of the Z height in calibration
292 
293 //============================= Bed Auto Leveling ===========================
294 
295 //#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
296 #define Z_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled.
297 
298 #ifdef ENABLE_AUTO_BED_LEVELING
299 
300 // There are 2 different ways to pick the X and Y locations to probe:
301 
302 // - "grid" mode
303 // Probe every point in a rectangular grid
304 // You must specify the rectangle, and the density of sample points
305 // This mode is preferred because there are more measurements.
306 // It used to be called ACCURATE_BED_LEVELING but "grid" is more descriptive
307 
308 // - "3-point" mode
309 // Probe 3 arbitrary points on the bed (that aren't colinear)
310 // You must specify the X & Y coordinates of all 3 points
311 
312  #define AUTO_BED_LEVELING_GRID
313  // with AUTO_BED_LEVELING_GRID, the bed is sampled in a
314  // AUTO_BED_LEVELING_GRID_POINTSxAUTO_BED_LEVELING_GRID_POINTS grid
315  // and least squares solution is calculated
316  // Note: this feature occupies 10'206 byte
317  #ifdef AUTO_BED_LEVELING_GRID
318 
319  // set the rectangle in which to probe
320  #define LEFT_PROBE_BED_POSITION 15
321  #define RIGHT_PROBE_BED_POSITION 170
322  #define BACK_PROBE_BED_POSITION 180
323  #define FRONT_PROBE_BED_POSITION 20
324 
325  // set the number of grid points per dimension
326  // I wouldn't see a reason to go above 3 (=9 probing points on the bed)
327  #define AUTO_BED_LEVELING_GRID_POINTS 2
328 
329 
330  #else // not AUTO_BED_LEVELING_GRID
331  // with no grid, just probe 3 arbitrary points. A simple cross-product
332  // is used to esimate the plane of the print bed
333 
334  #define ABL_PROBE_PT_1_X 15
335  #define ABL_PROBE_PT_1_Y 180
336  #define ABL_PROBE_PT_2_X 15
337  #define ABL_PROBE_PT_2_Y 20
338  #define ABL_PROBE_PT_3_X 170
339  #define ABL_PROBE_PT_3_Y 20
340 
341  #endif // AUTO_BED_LEVELING_GRID
342 
343 
344  // these are the offsets to the probe relative to the extruder tip (Hotend - Probe)
345  // X and Y offsets must be integers
346  #define X_PROBE_OFFSET_FROM_EXTRUDER -25
347  #define Y_PROBE_OFFSET_FROM_EXTRUDER -29
348  #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35
349 
350  #define Z_RAISE_BEFORE_HOMING 5 // (in mm) Raise Z before homing (G28) for Probe Clearance.
351  // Be sure you have this distance over your Z_MAX_POS in case
352 
353  #define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min
354 
355  #define Z_RAISE_BEFORE_PROBING 15 //How much the extruder will be raised before traveling to the first probing point.
356  #define Z_RAISE_BETWEEN_PROBINGS 5 //How much the extruder will be raised when traveling from between next probing points
357 
358  //#define Z_PROBE_SLED // turn on if you have a z-probe mounted on a sled like those designed by Charles Bell
359  //#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.
360 
361  //If defined, the Probe servo will be turned on only during movement and then turned off to avoid jerk
362  //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.
363  // You MUST HAVE the SERVO_ENDSTOPS defined to use here a value higher than zero otherwise your code will not compile.
364 
365 // #define PROBE_SERVO_DEACTIVATION_DELAY 300
366 
367 
368 //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
369 //it is highly recommended you let this Z_SAFE_HOMING enabled!
370 
371  //#define Z_SAFE_HOMING // This feature is meant to avoid Z homing with probe outside the bed area.
372  // When defined, it will:
373  // - Allow Z homing only after X and Y homing AND stepper drivers still enabled
374  // - If stepper drivers timeout, it will need X and Y homing again before Z homing
375  // - Position the probe in a defined XY point before Z Homing when homing all axis (G28)
376  // - Block Z homing only when the probe is outside bed area.
377 
378  #ifdef Z_SAFE_HOMING
379 
380  #define Z_SAFE_HOMING_X_POINT (X_MAX_LENGTH/2) // X point for Z homing when homing all axis (G28)
381  #define Z_SAFE_HOMING_Y_POINT (Y_MAX_LENGTH/2) // Y point for Z homing when homing all axis (G28)
382 
383  #endif
384 
385  #ifdef AUTO_BED_LEVELING_GRID // Check if Probe_Offset * Grid Points is greater than Probing Range
386  #if X_PROBE_OFFSET_FROM_EXTRUDER < 0
387  #if (-(X_PROBE_OFFSET_FROM_EXTRUDER * AUTO_BED_LEVELING_GRID_POINTS) >= (RIGHT_PROBE_BED_POSITION - LEFT_PROBE_BED_POSITION))
388  #error "The X axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS"
389  #endif
390  #else
391  #if ((X_PROBE_OFFSET_FROM_EXTRUDER * AUTO_BED_LEVELING_GRID_POINTS) >= (RIGHT_PROBE_BED_POSITION - LEFT_PROBE_BED_POSITION))
392  #error "The X axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS"
393  #endif
394  #endif
395  #if Y_PROBE_OFFSET_FROM_EXTRUDER < 0
396  #if (-(Y_PROBE_OFFSET_FROM_EXTRUDER * AUTO_BED_LEVELING_GRID_POINTS) >= (BACK_PROBE_BED_POSITION - FRONT_PROBE_BED_POSITION))
397  #error "The Y axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS"
398  #endif
399  #else
400  #if ((Y_PROBE_OFFSET_FROM_EXTRUDER * AUTO_BED_LEVELING_GRID_POINTS) >= (BACK_PROBE_BED_POSITION - FRONT_PROBE_BED_POSITION))
401  #error "The Y axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS"
402  #endif
403  #endif
404 
405 
406  #endif
407 
408 #endif // ENABLE_AUTO_BED_LEVELING
409 
410 
411 // The position of the homing switches
412 //#define MANUAL_HOME_POSITIONS // If defined, MANUAL_*_HOME_POS below will be used
413 //#define BED_CENTER_AT_0_0 // If defined, the center of the bed is at (X=0, Y=0)
414 
415 //Manual homing switch locations:
416 // For deltabots this means top and center of the Cartesian print volume.
417 
418 // The speed change that does not require acceleration (i.e. the software might assume it can be done instantaneously)
419 #define DEFAULT_XJERK 10 // (mm/sec)
420 #define DEFAULT_YJERK 10 // (mm/sec)
421 #define DEFAULT_ZJERK 0.4 // (mm/sec)
422 #define DEFAULT_EJERK 4.5 // (mm/sec)
423 
424 //===========================================================================
425 //=============================Additional Features===========================
426 //===========================================================================
427 
428 // Custom M code points
429 #define CUSTOM_M_CODES
430 #ifdef CUSTOM_M_CODES
431 #ifdef ENABLE_AUTO_BED_LEVELING
432  #define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
433  #define Z_PROBE_OFFSET_RANGE_MIN -15
434  #define Z_PROBE_OFFSET_RANGE_MAX -5
435 #endif // ENABLE_AUTO_BED_LEVELING
436 #endif // CUSTOM_M_CODES
437 
438 
439 // Host Keepalive
440 //
441 // When enabled Marlin will send a busy status message to the host
442 // every couple of seconds when it can't accept commands.
443 //
444 #ifndef HEATBED_ANALYSIS
445 #define HOST_KEEPALIVE_FEATURE // Disable this if your host doesn't like keepalive messages
446 #endif //HEATBED_ANALYSIS
447 #define HOST_KEEPALIVE_INTERVAL 2 // Number of seconds between "busy" messages. Set with M113.
448 
449 //LCD and SD support
450 #define SDSUPPORT // Enable SD Card Support in Hardware Console
451 //#define SDSLOW // Use slower SD transfer mode (not normally needed - uncomment if you're getting volume init error)
452 #define SD_CHECK_AND_RETRY // Use CRC checks and retries on the SD communication
453 #define ENCODER_PULSES_PER_STEP 4 // Increase if you have a high resolution encoder
454 //#define ENCODER_STEPS_PER_MENU_ITEM 1 // Set according to ENCODER_PULSES_PER_STEP or your liking
455 
456 // The RepRapDiscount Smart Controller (white PCB)
457 // http://reprap.org/wiki/RepRapDiscount_Smart_Controller
458 #define REPRAP_DISCOUNT_SMART_CONTROLLER
459 #define SDSUPPORT
460 #define LCD_WIDTH 20
461 #define LCD_HEIGHT 4
462 
463 
464 // Increase the FAN pwm frequency. Removes the PWM noise but increases heating in the FET/Arduino
465 //#define FAST_PWM_FAN
466 
467 // Use software PWM to drive the fan, as for the heaters. This uses a very low frequency
468 // which is not ass annoying as with the hardware PWM. On the other hand, if this frequency
469 // is too low, you should also increment SOFT_PWM_SCALE.
470 #define FAN_SOFT_PWM
471 #define FAN_SOFT_PWM_BITS 4 //PWM bit resolution = 4bits, freq = 62.5Hz
472 
473 // Bed soft pwm
474 #define HEATER_BED_SOFT_PWM_BITS 5 //PWM bit resolution = 5bits, freq = 31.25Hz
475 
476 // Incrementing this by 1 will double the software PWM frequency,
477 // affecting heaters, and the fan if FAN_SOFT_PWM is enabled.
478 // However, control resolution will be halved for each increment;
479 // at zero value, there are 128 effective control positions.
480 #define SOFT_PWM_SCALE 0
481 
482 // M240 Triggers a camera by emulating a Canon RC-1 Remote
483 // Data from: http://www.doc-diy.net/photo/rc-1_hacked/
484 // #define PHOTOGRAPH_PIN 23
485 
486 // SF send wrong arc g-codes when using Arc Point as fillet procedure
487 //#define SF_ARC_FIX
488 
489 //define BlinkM/CyzRgb Support
490 //#define BLINKM
491 
492 /*********************************************************************\
493 * R/C SERVO support
494 * Sponsored by TrinityLabs, Reworked by codexmas
495 **********************************************************************/
496 
497 // Number of servos
498 //
499 // If you select a configuration below, this will receive a default value and does not need to be set manually
500 // set it manually if you have more servos than extruders and wish to manually control some
501 // leaving it undefined or defining as 0 will disable the servo subsystem
502 // If unsure, leave commented / disabled
503 //
504 //#define NUM_SERVOS 3 // Servo index starts with 0 for M280 command
505 
506 #define DEFAULT_NOMINAL_FILAMENT_DIA 1.75 //Enter the diameter (in mm) of the filament generally used (3.0 mm or 1.75 mm). Used by the volumetric extrusion.
507 
508 // Try to maintain a minimum distance from the bed even when Z is
509 // unknown when doing the following operations
510 #define MIN_Z_FOR_LOAD 50 // lcd filament loading or autoload
511 #define MIN_Z_FOR_UNLOAD 50 // lcd filament unloading
512 #define MIN_Z_FOR_SWAP 27 // filament change (including M600)
513 #define MIN_Z_FOR_PREHEAT 10 // lcd preheat
514 
515 #include "Configuration_adv.h"
516 #include "thermistortables.h"
517 
518 #endif //__CONFIGURATION_H