@ -38,7 +38,7 @@ Here are some standard links for getting your machine calibrated:
// @section info
// @section info
#ifdef HAS_AUTOMATIC_VERSIONING
#ifENABLED(HAS_AUTOMATIC_VERSIONING)
#include"_Version.h"
#include"_Version.h"
#else
#else
#include"Default_Version.h"
#include"Default_Version.h"
@ -195,7 +195,7 @@ Here are some standard links for getting your machine calibrated:
#define PIDTEMP
#define PIDTEMP
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
#ifdef PIDTEMP
#ifENABLED(PIDTEMP)
//#define PID_DEBUG // Sends debug data to the serial port.
//#define PID_DEBUG // Sends debug data to the serial port.
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
//#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
//#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
@ -248,7 +248,7 @@ Here are some standard links for getting your machine calibrated:
//#define PID_BED_DEBUG // Sends debug data to the serial port.
//#define PID_BED_DEBUG // Sends debug data to the serial port.
#ifdef PIDTEMPBED
#ifENABLED(PIDTEMPBED)
#define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
#define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
@ -318,7 +318,7 @@ Here are some standard links for getting your machine calibrated:
// coarse Endstop Settings
// coarse Endstop Settings
#define ENDSTOPPULLUPS // Comment this out (using // at the start of the line) to disable the endstop pullup resistors
#define ENDSTOPPULLUPS // Comment this out (using // at the start of the line) to disable the endstop pullup resistors
#ifndef ENDSTOPPULLUPS
#ifDISABLED(ENDSTOPPULLUPS)
// fine endstop settings: Individual pullups. will be ignored if ENDSTOPPULLUPS is defined
// fine endstop settings: Individual pullups. will be ignored if ENDSTOPPULLUPS is defined
// #define ENDSTOPPULLUP_XMAX
// #define ENDSTOPPULLUP_XMAX
// #define ENDSTOPPULLUP_YMAX
// #define ENDSTOPPULLUP_YMAX
@ -408,7 +408,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// In RAMPS uses servo pin 2. Can be changed in pins file. For other boards pin definition should be made.
// In RAMPS uses servo pin 2. Can be changed in pins file. For other boards pin definition should be made.
// It is assumed that when logic high = filament available
// It is assumed that when logic high = filament available
// when logic low = filament ran out
// when logic low = filament ran out
#ifdef FILAMENT_RUNOUT_SENSOR
#ifENABLED(FILAMENT_RUNOUT_SENSOR)
constboolFIL_RUNOUT_INVERTING=true;// Should be uncommented and true or false should assigned
constboolFIL_RUNOUT_INVERTING=true;// Should be uncommented and true or false should assigned
#define ENDSTOPPULLUP_FIL_RUNOUT // Uncomment to use internal pullup for filament runout pins if the sensor is defined.
#define ENDSTOPPULLUP_FIL_RUNOUT // Uncomment to use internal pullup for filament runout pins if the sensor is defined.
#define FILAMENT_RUNOUT_SCRIPT "M600"
#define FILAMENT_RUNOUT_SCRIPT "M600"
@ -421,11 +421,11 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// #define MANUAL_BED_LEVELING // Add display menu option for bed leveling
// #define MANUAL_BED_LEVELING // Add display menu option for bed leveling
// #define MESH_BED_LEVELING // Enable mesh bed leveling
// #define MESH_BED_LEVELING // Enable mesh bed leveling
#ifdef MANUAL_BED_LEVELING
#ifENABLED(MANUAL_BED_LEVELING)
#define MBL_Z_STEP 0.025 // Step size while manually probing Z axis
#define MBL_Z_STEP 0.025 // Step size while manually probing Z axis
#endif // MANUAL_BED_LEVELING
#endif // MANUAL_BED_LEVELING
#ifdef MESH_BED_LEVELING
#ifENABLED(MESH_BED_LEVELING)
#define MESH_MIN_X 10
#define MESH_MIN_X 10
#define MESH_MAX_X (X_MAX_POS - MESH_MIN_X)
#define MESH_MAX_X (X_MAX_POS - MESH_MIN_X)
#define MESH_MIN_Y 10
#define MESH_MIN_Y 10
@ -444,7 +444,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
//#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
//#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
#define Z_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled.
#define Z_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled.
#ifdef ENABLE_AUTO_BED_LEVELING
#ifENABLED(ENABLE_AUTO_BED_LEVELING)
// There are 2 different ways to specify probing locations
// There are 2 different ways to specify probing locations
//
//
@ -461,7 +461,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// Note: this feature generates 10KB extra code size
// Note: this feature generates 10KB extra code size
#define AUTO_BED_LEVELING_GRID
#define AUTO_BED_LEVELING_GRID
#ifdef AUTO_BED_LEVELING_GRID
#ifENABLED(AUTO_BED_LEVELING_GRID)
#define LEFT_PROBE_BED_POSITION 15
#define LEFT_PROBE_BED_POSITION 15
#define RIGHT_PROBE_BED_POSITION 170
#define RIGHT_PROBE_BED_POSITION 170
@ -518,7 +518,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// - Position the probe in a defined XY point before Z Homing when homing all axis (G28)
// - Position the probe in a defined XY point before Z Homing when homing all axis (G28)
// - Block Z homing only when the probe is outside bed area.
// - Block Z homing only when the probe is outside bed area.
#ifdef Z_SAFE_HOMING
#ifENABLED(Z_SAFE_HOMING)
#define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28)
#define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28)
#define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28)
#define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28)
@ -550,7 +550,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// Manual homing switch locations:
// Manual homing switch locations:
// For deltabots this means top and center of the Cartesian print volume.
// For deltabots this means top and center of the Cartesian print volume.
#ifdef MANUAL_HOME_POSITIONS
#ifENABLED(MANUAL_HOME_POSITIONS)
#define MANUAL_X_HOME_POS 0
#define MANUAL_X_HOME_POS 0
#define MANUAL_Y_HOME_POS 0
#define MANUAL_Y_HOME_POS 0
#define MANUAL_Z_HOME_POS 0
#define MANUAL_Z_HOME_POS 0
@ -589,8 +589,8 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// Custom M code points
// Custom M code points
#define CUSTOM_M_CODES
#define CUSTOM_M_CODES
#ifdef CUSTOM_M_CODES
#ifENABLED(CUSTOM_M_CODES)
#ifdef ENABLE_AUTO_BED_LEVELING
#ifENABLED(ENABLE_AUTO_BED_LEVELING)
#define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
#define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
#define Z_PROBE_OFFSET_RANGE_MIN -20
#define Z_PROBE_OFFSET_RANGE_MIN -20
#define Z_PROBE_OFFSET_RANGE_MAX 20
#define Z_PROBE_OFFSET_RANGE_MAX 20
@ -607,7 +607,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
//define this to enable EEPROM support
//define this to enable EEPROM support
//#define EEPROM_SETTINGS
//#define EEPROM_SETTINGS
#ifdef EEPROM_SETTINGS
#ifENABLED(EEPROM_SETTINGS)
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
#define EEPROM_CHITCHAT // Please keep turned on if you can.
#define EEPROM_CHITCHAT // Please keep turned on if you can.
#endif
#endif
@ -796,7 +796,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// With this option servos are powered only during movement, then turned off to prevent jitter.
// With this option servos are powered only during movement, then turned off to prevent jitter.
//#define DEACTIVATE_SERVOS_AFTER_MOVE
//#define DEACTIVATE_SERVOS_AFTER_MOVE
#ifdef DEACTIVATE_SERVOS_AFTER_MOVE
#ifENABLED(DEACTIVATE_SERVOS_AFTER_MOVE)
// Delay (in microseconds) before turning the servo off. This depends on the servo speed.
// Delay (in microseconds) before turning the servo off. This depends on the servo speed.
// 300ms is a good value but you can try less delay.
// 300ms is a good value but you can try less delay.
// If the servo can't reach the requested position, increase it.
// If the servo can't reach the requested position, increase it.
// On a RAMPS (or other 5 driver) motherboard, using this feature will limit you to using 1 extruder.
// On a RAMPS (or other 5 driver) motherboard, using this feature will limit you to using 1 extruder.
//#define Z_DUAL_STEPPER_DRIVERS
//#define Z_DUAL_STEPPER_DRIVERS
#ifdef Z_DUAL_STEPPER_DRIVERS
#ifENABLED(Z_DUAL_STEPPER_DRIVERS)
// Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
// Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
// That way the machine is capable to align the bed during home, since both Z steppers are homed.
// That way the machine is capable to align the bed during home, since both Z steppers are homed.
@ -150,7 +150,7 @@
// #define Z_DUAL_ENDSTOPS
// #define Z_DUAL_ENDSTOPS
#ifdef Z_DUAL_ENDSTOPS
#ifENABLED(Z_DUAL_ENDSTOPS)
#define Z2_MAX_PIN 36 //Endstop used for Z2 axis. In this case I'm using XMAX in a Rumba Board (pin 36)
#define Z2_MAX_PIN 36 //Endstop used for Z2 axis. In this case I'm using XMAX in a Rumba Board (pin 36)
constboolZ2_MAX_ENDSTOP_INVERTING=false;
constboolZ2_MAX_ENDSTOP_INVERTING=false;
#define DISABLE_XMAX_ENDSTOP //Better to disable the XMAX to avoid conflict. Just rename "XMAX_ENDSTOP" by the endstop you are using for Z2 axis.
#define DISABLE_XMAX_ENDSTOP //Better to disable the XMAX to avoid conflict. Just rename "XMAX_ENDSTOP" by the endstop you are using for Z2 axis.
@ -169,7 +169,7 @@
// prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage
// prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage
// allowing faster printing speeds.
// allowing faster printing speeds.
//#define DUAL_X_CARRIAGE
//#define DUAL_X_CARRIAGE
#ifdef DUAL_X_CARRIAGE
#ifENABLED(DUAL_X_CARRIAGE)
// Configuration for second X-carriage
// Configuration for second X-carriage
// Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
// Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
// the second x-carriage always homes to the maximum endstop.
// the second x-carriage always homes to the maximum endstop.
@ -240,7 +240,7 @@
// @section lcd
// @section lcd
#ifdef ULTIPANEL
#ifENABLED(ULTIPANEL)
#define MANUAL_FEEDRATE {50*60, 50*60, 4*60, 60} // Feedrates for manual moves along X, Y, Z, E from panel
#define MANUAL_FEEDRATE {50*60, 50*60, 4*60, 60} // Feedrates for manual moves along X, Y, Z, E from panel
#define ULTIPANEL_FEEDMULTIPLY // Comment to disable setting feedrate multiplier via encoder
#define ULTIPANEL_FEEDMULTIPLY // Comment to disable setting feedrate multiplier via encoder
#endif
#endif
@ -289,7 +289,7 @@
// @section lcd
// @section lcd
#ifdef SDSUPPORT
#ifENABLED(SDSUPPORT)
// If you are using a RAMPS board or cheap E-bay purchased boards that do not detect when an SD card is inserted
// If you are using a RAMPS board or cheap E-bay purchased boards that do not detect when an SD card is inserted
// You can get round this by connecting a push button or single throw switch to the pin defined as SDCARDCARDDETECT
// You can get round this by connecting a push button or single throw switch to the pin defined as SDCARDCARDDETECT
@ -310,7 +310,7 @@
// Show a progress bar on HD44780 LCDs for SD printing
// Show a progress bar on HD44780 LCDs for SD printing
//#define LCD_PROGRESS_BAR
//#define LCD_PROGRESS_BAR
#ifdef LCD_PROGRESS_BAR
#ifENABLED(LCD_PROGRESS_BAR)
// Amount of time (ms) to show the bar
// Amount of time (ms) to show the bar
#define PROGRESS_BAR_BAR_TIME 2000
#define PROGRESS_BAR_BAR_TIME 2000
// Amount of time (ms) to show the status message
// Amount of time (ms) to show the status message
@ -333,7 +333,7 @@
#endif // SDSUPPORT
#endif // SDSUPPORT
// for dogm lcd displays you can choose some additional fonts:
// for dogm lcd displays you can choose some additional fonts:
#ifdef DOGLCD
#ifENABLED(DOGLCD)
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT
// we don't have a big font for Cyrillic, Kana
// we don't have a big font for Cyrillic, Kana
//#define USE_BIG_EDIT_FONT
//#define USE_BIG_EDIT_FONT
@ -348,7 +348,7 @@
// The hardware watchdog should reset the microcontroller disabling all outputs, in case the firmware gets stuck and doesn't do temperature regulation.
// The hardware watchdog should reset the microcontroller disabling all outputs, in case the firmware gets stuck and doesn't do temperature regulation.
//#define USE_WATCHDOG
//#define USE_WATCHDOG
#ifdef USE_WATCHDOG
#ifENABLED(USE_WATCHDOG)
// If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on.
// If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on.
// The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset.
// The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset.
// 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.
// 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.
@ -361,7 +361,7 @@
// it can e.g. be used to change z-positions in the print startup phase in real-time
// it can e.g. be used to change z-positions in the print startup phase in real-time
// does not respect endstops!
// does not respect endstops!
//#define BABYSTEPPING
//#define BABYSTEPPING
#ifdef BABYSTEPPING
#ifENABLED(BABYSTEPPING)
#define BABYSTEP_XY //not only z, but also XY in the menu. more clutter, more functions
#define BABYSTEP_XY //not only z, but also XY in the menu. more clutter, more functions
#define BABYSTEP_INVERT_Z false //true for inverse movements in Z
#define BABYSTEP_INVERT_Z false //true for inverse movements in Z
#define BABYSTEP_Z_MULTIPLICATOR 2 //faster z movements
#define BABYSTEP_Z_MULTIPLICATOR 2 //faster z movements
@ -378,7 +378,7 @@
// so: v ^ 2 is proportional to number of steps we advance the extruder
// so: v ^ 2 is proportional to number of steps we advance the extruder
//#define ADVANCE
//#define ADVANCE
#ifdef ADVANCE
#ifENABLED(ADVANCE)
#define EXTRUDER_ADVANCE_K .0
#define EXTRUDER_ADVANCE_K .0
#define D_FILAMENT 2.85
#define D_FILAMENT 2.85
#define STEPS_MM_E 836
#define STEPS_MM_E 836
@ -405,7 +405,7 @@ const unsigned int dropsegments=5; //everything with less than this number of st
// The number of linear motions that can be in the plan at any give time.
// The number of linear motions that can be in the plan at any give time.
// 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.
// 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.
#ifdef SDSUPPORT
#ifENABLED(SDSUPPORT)
#define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
#define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
#error You must enable either DISPLAY_CHARSET_HD44780_JAPAN or DISPLAY_CHARSET_HD44780_WESTERN or DISPLAY_CHARSET_HD44780_CYRILLIC for your LCD controller.
#error You must enable either DISPLAY_CHARSET_HD44780_JAPAN or DISPLAY_CHARSET_HD44780_WESTERN or DISPLAY_CHARSET_HD44780_CYRILLIC for your LCD controller.
#endif
#endif
/**
/**
*MeshBedLeveling
*MeshBedLeveling
*/
*/
#ifdef MESH_BED_LEVELING
#ifENABLED(MESH_BED_LEVELING)
#ifdef DELTA
#ifENABLED(DELTA)
#error MESH_BED_LEVELING does not yet support DELTA printers.
#error MESH_BED_LEVELING does not yet support DELTA printers.
#endif
#endif
#ifdef ENABLE_AUTO_BED_LEVELING
#ifENABLED(ENABLE_AUTO_BED_LEVELING)
#error Select ENABLE_AUTO_BED_LEVELING or MESH_BED_LEVELING, not both.
#error Select ENABLE_AUTO_BED_LEVELING or MESH_BED_LEVELING, not both.
#if Z_PROBE_PIN == -1 || (!defined(Z_PROBE_ENDSTOP) || defined(DISABLE_Z_PROBE_ENDSTOP)) // It's possible for someone to set a pin for the Z Probe, but not enable it.
#if Z_PROBE_PIN == -1 || (DISABLED(Z_PROBE_ENDSTOP) || ENABLED(DISABLE_Z_PROBE_ENDSTOP)) // It's possible for someone to set a pin for the Z Probe, but not enable it.
#ifdef Z_PROBE_REPEATABILITY_TEST
#ifENABLED(Z_PROBE_REPEATABILITY_TEST)
#error You must have a Z_MIN or Z_PROBE endstop to enable Z_PROBE_REPEATABILITY_TEST.
#error You must have a Z_MIN or Z_PROBE endstop to enable Z_PROBE_REPEATABILITY_TEST.
#else
#else
#error ENABLE_AUTO_BED_LEVELING requires a Z_MIN or Z_PROBE endstop. Z_MIN_PIN or Z_PROBE_PIN must point to a valid hardware pin.
#error ENABLE_AUTO_BED_LEVELING requires a Z_MIN or Z_PROBE endstop. Z_MIN_PIN or Z_PROBE_PIN must point to a valid hardware pin.
@ -145,7 +145,7 @@
/**
/**
*RequireaZProbePinifZ_PROBE_ENDSTOPisenabled.
*RequireaZProbePinifZ_PROBE_ENDSTOPisenabled.
*/
*/
#if defined(Z_PROBE_ENDSTOP)
#if ENABLED(Z_PROBE_ENDSTOP)
#ifndef Z_PROBE_PIN
#ifndef Z_PROBE_PIN
#error You must have a Z_PROBE_PIN defined in your pins_XXXX.h file if you enable Z_PROBE_ENDSTOP.
#error You must have a Z_PROBE_PIN defined in your pins_XXXX.h file if you enable Z_PROBE_ENDSTOP.
@ -38,7 +38,7 @@ Here are some standard links for getting your machine calibrated:
// @section info
// @section info
#ifdef HAS_AUTOMATIC_VERSIONING
#ifENABLED(HAS_AUTOMATIC_VERSIONING)
#include"_Version.h"
#include"_Version.h"
#else
#else
#include"Default_Version.h"
#include"Default_Version.h"
@ -195,7 +195,7 @@ Here are some standard links for getting your machine calibrated:
#define PIDTEMP
#define PIDTEMP
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
#ifdef PIDTEMP
#ifENABLED(PIDTEMP)
//#define PID_DEBUG // Sends debug data to the serial port.
//#define PID_DEBUG // Sends debug data to the serial port.
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
//#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
//#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
@ -248,7 +248,7 @@ Here are some standard links for getting your machine calibrated:
//#define PID_BED_DEBUG // Sends debug data to the serial port.
//#define PID_BED_DEBUG // Sends debug data to the serial port.
#ifdef PIDTEMPBED
#ifENABLED(PIDTEMPBED)
#define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
#define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
@ -318,7 +318,7 @@ Here are some standard links for getting your machine calibrated:
// coarse Endstop Settings
// coarse Endstop Settings
#define ENDSTOPPULLUPS // Comment this out (using // at the start of the line) to disable the endstop pullup resistors
#define ENDSTOPPULLUPS // Comment this out (using // at the start of the line) to disable the endstop pullup resistors
#ifndef ENDSTOPPULLUPS
#ifDISABLED(ENDSTOPPULLUPS)
// fine endstop settings: Individual pullups. will be ignored if ENDSTOPPULLUPS is defined
// fine endstop settings: Individual pullups. will be ignored if ENDSTOPPULLUPS is defined
// #define ENDSTOPPULLUP_XMAX
// #define ENDSTOPPULLUP_XMAX
// #define ENDSTOPPULLUP_YMAX
// #define ENDSTOPPULLUP_YMAX
@ -408,7 +408,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// In RAMPS uses servo pin 2. Can be changed in pins file. For other boards pin definition should be made.
// In RAMPS uses servo pin 2. Can be changed in pins file. For other boards pin definition should be made.
// It is assumed that when logic high = filament available
// It is assumed that when logic high = filament available
// when logic low = filament ran out
// when logic low = filament ran out
#ifdef FILAMENT_RUNOUT_SENSOR
#ifENABLED(FILAMENT_RUNOUT_SENSOR)
constboolFIL_RUNOUT_INVERTING=true;// Should be uncommented and true or false should assigned
constboolFIL_RUNOUT_INVERTING=true;// Should be uncommented and true or false should assigned
#define ENDSTOPPULLUP_FIL_RUNOUT // Uncomment to use internal pullup for filament runout pins if the sensor is defined.
#define ENDSTOPPULLUP_FIL_RUNOUT // Uncomment to use internal pullup for filament runout pins if the sensor is defined.
#define FILAMENT_RUNOUT_SCRIPT "M600"
#define FILAMENT_RUNOUT_SCRIPT "M600"
@ -421,11 +421,11 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// #define MANUAL_BED_LEVELING // Add display menu option for bed leveling
// #define MANUAL_BED_LEVELING // Add display menu option for bed leveling
// #define MESH_BED_LEVELING // Enable mesh bed leveling
// #define MESH_BED_LEVELING // Enable mesh bed leveling
#ifdef MANUAL_BED_LEVELING
#ifENABLED(MANUAL_BED_LEVELING)
#define MBL_Z_STEP 0.025 // Step size while manually probing Z axis
#define MBL_Z_STEP 0.025 // Step size while manually probing Z axis
#endif // MANUAL_BED_LEVELING
#endif // MANUAL_BED_LEVELING
#ifdef MESH_BED_LEVELING
#ifENABLED(MESH_BED_LEVELING)
#define MESH_MIN_X 10
#define MESH_MIN_X 10
#define MESH_MAX_X (X_MAX_POS - MESH_MIN_X)
#define MESH_MAX_X (X_MAX_POS - MESH_MIN_X)
#define MESH_MIN_Y 10
#define MESH_MIN_Y 10
@ -444,7 +444,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
//#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
//#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
#define Z_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled.
#define Z_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled.
#ifdef ENABLE_AUTO_BED_LEVELING
#ifENABLED(ENABLE_AUTO_BED_LEVELING)
// There are 2 different ways to specify probing locations
// There are 2 different ways to specify probing locations
//
//
@ -461,7 +461,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// Note: this feature generates 10KB extra code size
// Note: this feature generates 10KB extra code size
#define AUTO_BED_LEVELING_GRID
#define AUTO_BED_LEVELING_GRID
#ifdef AUTO_BED_LEVELING_GRID
#ifENABLED(AUTO_BED_LEVELING_GRID)
#define LEFT_PROBE_BED_POSITION 15
#define LEFT_PROBE_BED_POSITION 15
#define RIGHT_PROBE_BED_POSITION 170
#define RIGHT_PROBE_BED_POSITION 170
@ -518,7 +518,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// - Position the probe in a defined XY point before Z Homing when homing all axis (G28)
// - Position the probe in a defined XY point before Z Homing when homing all axis (G28)
// - Block Z homing only when the probe is outside bed area.
// - Block Z homing only when the probe is outside bed area.
#ifdef Z_SAFE_HOMING
#ifENABLED(Z_SAFE_HOMING)
#define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28)
#define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28)
#define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28)
#define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28)
@ -550,7 +550,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// Manual homing switch locations:
// Manual homing switch locations:
// For deltabots this means top and center of the Cartesian print volume.
// For deltabots this means top and center of the Cartesian print volume.
#ifdef MANUAL_HOME_POSITIONS
#ifENABLED(MANUAL_HOME_POSITIONS)
#define MANUAL_X_HOME_POS 0
#define MANUAL_X_HOME_POS 0
#define MANUAL_Y_HOME_POS 0
#define MANUAL_Y_HOME_POS 0
#define MANUAL_Z_HOME_POS 0
#define MANUAL_Z_HOME_POS 0
@ -589,8 +589,8 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// Custom M code points
// Custom M code points
#define CUSTOM_M_CODES
#define CUSTOM_M_CODES
#ifdef CUSTOM_M_CODES
#ifENABLED(CUSTOM_M_CODES)
#ifdef ENABLE_AUTO_BED_LEVELING
#ifENABLED(ENABLE_AUTO_BED_LEVELING)
#define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
#define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
#define Z_PROBE_OFFSET_RANGE_MIN -20
#define Z_PROBE_OFFSET_RANGE_MIN -20
#define Z_PROBE_OFFSET_RANGE_MAX 20
#define Z_PROBE_OFFSET_RANGE_MAX 20
@ -607,7 +607,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
//define this to enable EEPROM support
//define this to enable EEPROM support
//#define EEPROM_SETTINGS
//#define EEPROM_SETTINGS
#ifdef EEPROM_SETTINGS
#ifENABLED(EEPROM_SETTINGS)
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
#define EEPROM_CHITCHAT // Please keep turned on if you can.
#define EEPROM_CHITCHAT // Please keep turned on if you can.
#endif
#endif
@ -796,7 +796,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// With this option servos are powered only during movement, then turned off to prevent jitter.
// With this option servos are powered only during movement, then turned off to prevent jitter.
//#define DEACTIVATE_SERVOS_AFTER_MOVE
//#define DEACTIVATE_SERVOS_AFTER_MOVE
#ifdef DEACTIVATE_SERVOS_AFTER_MOVE
#ifENABLED(DEACTIVATE_SERVOS_AFTER_MOVE)
// Delay (in microseconds) before turning the servo off. This depends on the servo speed.
// Delay (in microseconds) before turning the servo off. This depends on the servo speed.
// 300ms is a good value but you can try less delay.
// 300ms is a good value but you can try less delay.
// If the servo can't reach the requested position, increase it.
// If the servo can't reach the requested position, increase it.
// On a RAMPS (or other 5 driver) motherboard, using this feature will limit you to using 1 extruder.
// On a RAMPS (or other 5 driver) motherboard, using this feature will limit you to using 1 extruder.
//#define Z_DUAL_STEPPER_DRIVERS
//#define Z_DUAL_STEPPER_DRIVERS
#ifdef Z_DUAL_STEPPER_DRIVERS
#ifENABLED(Z_DUAL_STEPPER_DRIVERS)
// Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
// Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
// That way the machine is capable to align the bed during home, since both Z steppers are homed.
// That way the machine is capable to align the bed during home, since both Z steppers are homed.
@ -150,7 +150,7 @@
// #define Z_DUAL_ENDSTOPS
// #define Z_DUAL_ENDSTOPS
#ifdef Z_DUAL_ENDSTOPS
#ifENABLED(Z_DUAL_ENDSTOPS)
#define Z2_MAX_PIN 36 //Endstop used for Z2 axis. In this case I'm using XMAX in a Rumba Board (pin 36)
#define Z2_MAX_PIN 36 //Endstop used for Z2 axis. In this case I'm using XMAX in a Rumba Board (pin 36)
constboolZ2_MAX_ENDSTOP_INVERTING=false;
constboolZ2_MAX_ENDSTOP_INVERTING=false;
#define DISABLE_XMAX_ENDSTOP //Better to disable the XMAX to avoid conflict. Just rename "XMAX_ENDSTOP" by the endstop you are using for Z2 axis.
#define DISABLE_XMAX_ENDSTOP //Better to disable the XMAX to avoid conflict. Just rename "XMAX_ENDSTOP" by the endstop you are using for Z2 axis.
@ -169,7 +169,7 @@
// prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage
// prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage
// allowing faster printing speeds.
// allowing faster printing speeds.
//#define DUAL_X_CARRIAGE
//#define DUAL_X_CARRIAGE
#ifdef DUAL_X_CARRIAGE
#ifENABLED(DUAL_X_CARRIAGE)
// Configuration for second X-carriage
// Configuration for second X-carriage
// Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
// Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
// the second x-carriage always homes to the maximum endstop.
// the second x-carriage always homes to the maximum endstop.
@ -240,7 +240,7 @@
// @section lcd
// @section lcd
#ifdef ULTIPANEL
#ifENABLED(ULTIPANEL)
#define MANUAL_FEEDRATE {50*60, 50*60, 4*60, 60} // Feedrates for manual moves along X, Y, Z, E from panel
#define MANUAL_FEEDRATE {50*60, 50*60, 4*60, 60} // Feedrates for manual moves along X, Y, Z, E from panel
#define ULTIPANEL_FEEDMULTIPLY // Comment to disable setting feedrate multiplier via encoder
#define ULTIPANEL_FEEDMULTIPLY // Comment to disable setting feedrate multiplier via encoder
#endif
#endif
@ -289,7 +289,7 @@
// @section lcd
// @section lcd
#ifdef SDSUPPORT
#ifENABLED(SDSUPPORT)
// If you are using a RAMPS board or cheap E-bay purchased boards that do not detect when an SD card is inserted
// If you are using a RAMPS board or cheap E-bay purchased boards that do not detect when an SD card is inserted
// You can get round this by connecting a push button or single throw switch to the pin defined as SDCARDCARDDETECT
// You can get round this by connecting a push button or single throw switch to the pin defined as SDCARDCARDDETECT
@ -310,7 +310,7 @@
// Show a progress bar on HD44780 LCDs for SD printing
// Show a progress bar on HD44780 LCDs for SD printing
//#define LCD_PROGRESS_BAR
//#define LCD_PROGRESS_BAR
#ifdef LCD_PROGRESS_BAR
#ifENABLED(LCD_PROGRESS_BAR)
// Amount of time (ms) to show the bar
// Amount of time (ms) to show the bar
#define PROGRESS_BAR_BAR_TIME 2000
#define PROGRESS_BAR_BAR_TIME 2000
// Amount of time (ms) to show the status message
// Amount of time (ms) to show the status message
@ -333,7 +333,7 @@
#endif // SDSUPPORT
#endif // SDSUPPORT
// for dogm lcd displays you can choose some additional fonts:
// for dogm lcd displays you can choose some additional fonts:
#ifdef DOGLCD
#ifENABLED(DOGLCD)
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT
// we don't have a big font for Cyrillic, Kana
// we don't have a big font for Cyrillic, Kana
//#define USE_BIG_EDIT_FONT
//#define USE_BIG_EDIT_FONT
@ -348,7 +348,7 @@
// The hardware watchdog should reset the microcontroller disabling all outputs, in case the firmware gets stuck and doesn't do temperature regulation.
// The hardware watchdog should reset the microcontroller disabling all outputs, in case the firmware gets stuck and doesn't do temperature regulation.
//#define USE_WATCHDOG
//#define USE_WATCHDOG
#ifdef USE_WATCHDOG
#ifENABLED(USE_WATCHDOG)
// If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on.
// If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on.
// The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset.
// The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset.
// 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.
// 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.
@ -361,7 +361,7 @@
// it can e.g. be used to change z-positions in the print startup phase in real-time
// it can e.g. be used to change z-positions in the print startup phase in real-time
// does not respect endstops!
// does not respect endstops!
//#define BABYSTEPPING
//#define BABYSTEPPING
#ifdef BABYSTEPPING
#ifENABLED(BABYSTEPPING)
#define BABYSTEP_XY //not only z, but also XY in the menu. more clutter, more functions
#define BABYSTEP_XY //not only z, but also XY in the menu. more clutter, more functions
#define BABYSTEP_INVERT_Z false //true for inverse movements in Z
#define BABYSTEP_INVERT_Z false //true for inverse movements in Z
#define BABYSTEP_Z_MULTIPLICATOR 2 //faster z movements
#define BABYSTEP_Z_MULTIPLICATOR 2 //faster z movements
@ -378,7 +378,7 @@
// so: v ^ 2 is proportional to number of steps we advance the extruder
// so: v ^ 2 is proportional to number of steps we advance the extruder
//#define ADVANCE
//#define ADVANCE
#ifdef ADVANCE
#ifENABLED(ADVANCE)
#define EXTRUDER_ADVANCE_K .0
#define EXTRUDER_ADVANCE_K .0
#define D_FILAMENT 2.85
#define D_FILAMENT 2.85
#define STEPS_MM_E 836
#define STEPS_MM_E 836
@ -405,7 +405,7 @@ const unsigned int dropsegments=5; //everything with less than this number of st
// The number of linear motions that can be in the plan at any give time.
// The number of linear motions that can be in the plan at any give time.
// 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.
// 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.
#ifdef SDSUPPORT
#ifENABLED(SDSUPPORT)
#define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
#define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
@ -38,7 +38,7 @@ Here are some standard links for getting your machine calibrated:
// @section info
// @section info
#ifdef HAS_AUTOMATIC_VERSIONING
#ifENABLED(HAS_AUTOMATIC_VERSIONING)
#include"_Version.h"
#include"_Version.h"
#else
#else
#include"Default_Version.h"
#include"Default_Version.h"
@ -195,7 +195,7 @@ Here are some standard links for getting your machine calibrated:
#define PIDTEMP
#define PIDTEMP
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
#ifdef PIDTEMP
#ifENABLED(PIDTEMP)
//#define PID_DEBUG // Sends debug data to the serial port.
//#define PID_DEBUG // Sends debug data to the serial port.
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
//#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
//#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
@ -237,7 +237,7 @@ Here are some standard links for getting your machine calibrated:
//#define PID_BED_DEBUG // Sends debug data to the serial port.
//#define PID_BED_DEBUG // Sends debug data to the serial port.
#ifdef PIDTEMPBED
#ifENABLED(PIDTEMPBED)
#define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
#define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
@ -390,7 +390,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// In RAMPS uses servo pin 2. Can be changed in pins file. For other boards pin definition should be made.
// In RAMPS uses servo pin 2. Can be changed in pins file. For other boards pin definition should be made.
// It is assumed that when logic high = filament available
// It is assumed that when logic high = filament available
// when logic low = filament ran out
// when logic low = filament ran out
#ifdef FILAMENT_RUNOUT_SENSOR
#ifENABLED(FILAMENT_RUNOUT_SENSOR)
constboolFIL_RUNOUT_INVERTING=true;// Should be uncommented and true or false should assigned
constboolFIL_RUNOUT_INVERTING=true;// Should be uncommented and true or false should assigned
#define ENDSTOPPULLUP_FIL_RUNOUT // Uncomment to use internal pullup for filament runout pins if the sensor is defined.
#define ENDSTOPPULLUP_FIL_RUNOUT // Uncomment to use internal pullup for filament runout pins if the sensor is defined.
#define FILAMENT_RUNOUT_SCRIPT "M600"
#define FILAMENT_RUNOUT_SCRIPT "M600"
@ -403,11 +403,11 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// #define MANUAL_BED_LEVELING // Add display menu option for bed leveling
// #define MANUAL_BED_LEVELING // Add display menu option for bed leveling
// #define MESH_BED_LEVELING // Enable mesh bed leveling
// #define MESH_BED_LEVELING // Enable mesh bed leveling
#ifdef MANUAL_BED_LEVELING
#ifENABLED(MANUAL_BED_LEVELING)
#define MBL_Z_STEP 0.025 // Step size while manually probing Z axis
#define MBL_Z_STEP 0.025 // Step size while manually probing Z axis
#endif // MANUAL_BED_LEVELING
#endif // MANUAL_BED_LEVELING
#ifdef MESH_BED_LEVELING
#ifENABLED(MESH_BED_LEVELING)
#define MESH_MIN_X 10
#define MESH_MIN_X 10
#define MESH_MAX_X (X_MAX_POS - MESH_MIN_X)
#define MESH_MAX_X (X_MAX_POS - MESH_MIN_X)
#define MESH_MIN_Y 10
#define MESH_MIN_Y 10
@ -426,7 +426,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
//#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
//#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
//#define Z_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled.
//#define Z_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled.
#ifdef ENABLE_AUTO_BED_LEVELING
#ifENABLED(ENABLE_AUTO_BED_LEVELING)
// There are 2 different ways to specify probing locations
// There are 2 different ways to specify probing locations
//
//
@ -443,7 +443,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// Note: this feature generates 10KB extra code size
// Note: this feature generates 10KB extra code size
#define AUTO_BED_LEVELING_GRID
#define AUTO_BED_LEVELING_GRID
#ifdef AUTO_BED_LEVELING_GRID
#ifENABLED(AUTO_BED_LEVELING_GRID)
#define LEFT_PROBE_BED_POSITION 15
#define LEFT_PROBE_BED_POSITION 15
#define RIGHT_PROBE_BED_POSITION 170
#define RIGHT_PROBE_BED_POSITION 170
@ -500,7 +500,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// - Position the probe in a defined XY point before Z Homing when homing all axis (G28)
// - Position the probe in a defined XY point before Z Homing when homing all axis (G28)
// - Block Z homing only when the probe is outside bed area.
// - Block Z homing only when the probe is outside bed area.
#ifdef Z_SAFE_HOMING
#ifENABLED(Z_SAFE_HOMING)
#define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28)
#define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28)
#define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28)
#define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28)
@ -532,7 +532,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// Manual homing switch locations:
// Manual homing switch locations:
// For deltabots this means top and center of the Cartesian print volume.
// For deltabots this means top and center of the Cartesian print volume.
#ifdef MANUAL_HOME_POSITIONS
#ifENABLED(MANUAL_HOME_POSITIONS)
#define MANUAL_X_HOME_POS 0
#define MANUAL_X_HOME_POS 0
#define MANUAL_Y_HOME_POS 0
#define MANUAL_Y_HOME_POS 0
#define MANUAL_Z_HOME_POS 0
#define MANUAL_Z_HOME_POS 0
@ -572,8 +572,8 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// Custom M code points
// Custom M code points
#define CUSTOM_M_CODES
#define CUSTOM_M_CODES
#ifdef CUSTOM_M_CODES
#ifENABLED(CUSTOM_M_CODES)
#ifdef ENABLE_AUTO_BED_LEVELING
#ifENABLED(ENABLE_AUTO_BED_LEVELING)
#define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
#define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
#define Z_PROBE_OFFSET_RANGE_MIN -20
#define Z_PROBE_OFFSET_RANGE_MIN -20
#define Z_PROBE_OFFSET_RANGE_MAX 20
#define Z_PROBE_OFFSET_RANGE_MAX 20
@ -590,7 +590,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
//define this to enable EEPROM support
//define this to enable EEPROM support
//#define EEPROM_SETTINGS
//#define EEPROM_SETTINGS
#ifdef EEPROM_SETTINGS
#ifENABLED(EEPROM_SETTINGS)
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
#define EEPROM_CHITCHAT // Please keep turned on if you can.
#define EEPROM_CHITCHAT // Please keep turned on if you can.
#endif
#endif
@ -774,7 +774,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// With this option servos are powered only during movement, then turned off to prevent jitter.
// With this option servos are powered only during movement, then turned off to prevent jitter.
//#define DEACTIVATE_SERVOS_AFTER_MOVE
//#define DEACTIVATE_SERVOS_AFTER_MOVE
#ifdef DEACTIVATE_SERVOS_AFTER_MOVE
#ifENABLED(DEACTIVATE_SERVOS_AFTER_MOVE)
// Delay (in microseconds) before turning the servo off. This depends on the servo speed.
// Delay (in microseconds) before turning the servo off. This depends on the servo speed.
// 300ms is a good value but you can try less delay.
// 300ms is a good value but you can try less delay.
// If the servo can't reach the requested position, increase it.
// If the servo can't reach the requested position, increase it.
@ -38,7 +38,7 @@ Here are some standard links for getting your machine calibrated:
// @section info
// @section info
#ifdef HAS_AUTOMATIC_VERSIONING
#ifENABLED(HAS_AUTOMATIC_VERSIONING)
#include"_Version.h"
#include"_Version.h"
#else
#else
#include"Default_Version.h"
#include"Default_Version.h"
@ -184,7 +184,7 @@ Here are some standard links for getting your machine calibrated:
#define PIDTEMP
#define PIDTEMP
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
#ifdef PIDTEMP
#ifENABLED(PIDTEMP)
//#define PID_DEBUG // Sends debug data to the serial port.
//#define PID_DEBUG // Sends debug data to the serial port.
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
//#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
//#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
@ -226,7 +226,7 @@ Here are some standard links for getting your machine calibrated:
//#define PID_BED_DEBUG // Sends debug data to the serial port.
//#define PID_BED_DEBUG // Sends debug data to the serial port.
#ifdef PIDTEMPBED
#ifENABLED(PIDTEMPBED)
// Felix Foil Heater
// Felix Foil Heater
#define DEFAULT_bedKp 103.37
#define DEFAULT_bedKp 103.37
#define DEFAULT_bedKi 2.79
#define DEFAULT_bedKi 2.79
@ -353,7 +353,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// In RAMPS uses servo pin 2. Can be changed in pins file. For other boards pin definition should be made.
// In RAMPS uses servo pin 2. Can be changed in pins file. For other boards pin definition should be made.
// It is assumed that when logic high = filament available
// It is assumed that when logic high = filament available
// when logic low = filament ran out
// when logic low = filament ran out
#ifdef FILAMENT_RUNOUT_SENSOR
#ifENABLED(FILAMENT_RUNOUT_SENSOR)
constboolFIL_RUNOUT_INVERTING=true;// Should be uncommented and true or false should assigned
constboolFIL_RUNOUT_INVERTING=true;// Should be uncommented and true or false should assigned
#define ENDSTOPPULLUP_FIL_RUNOUT // Uncomment to use internal pullup for filament runout pins if the sensor is defined.
#define ENDSTOPPULLUP_FIL_RUNOUT // Uncomment to use internal pullup for filament runout pins if the sensor is defined.
#define FILAMENT_RUNOUT_SCRIPT "M600"
#define FILAMENT_RUNOUT_SCRIPT "M600"
@ -366,7 +366,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// #define MANUAL_BED_LEVELING // Add display menu option for bed leveling
// #define MANUAL_BED_LEVELING // Add display menu option for bed leveling
// #define MESH_BED_LEVELING // Enable mesh bed leveling
// #define MESH_BED_LEVELING // Enable mesh bed leveling
#ifdef MESH_BED_LEVELING
#ifENABLED(MESH_BED_LEVELING)
#define MESH_MIN_X 10
#define MESH_MIN_X 10
#define MESH_MAX_X (X_MAX_POS - MESH_MIN_X)
#define MESH_MAX_X (X_MAX_POS - MESH_MIN_X)
#define MESH_MIN_Y 10
#define MESH_MIN_Y 10
@ -383,7 +383,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
//#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
//#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
//#define Z_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled.
//#define Z_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled.
#ifdef ENABLE_AUTO_BED_LEVELING
#ifENABLED(ENABLE_AUTO_BED_LEVELING)
// There are 2 different ways to specify probing locations
// There are 2 different ways to specify probing locations
//
//
@ -400,7 +400,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// Note: this feature generates 10KB extra code size
// Note: this feature generates 10KB extra code size
#define AUTO_BED_LEVELING_GRID
#define AUTO_BED_LEVELING_GRID
#ifdef AUTO_BED_LEVELING_GRID
#ifENABLED(AUTO_BED_LEVELING_GRID)
#define LEFT_PROBE_BED_POSITION 15
#define LEFT_PROBE_BED_POSITION 15
#define RIGHT_PROBE_BED_POSITION 170
#define RIGHT_PROBE_BED_POSITION 170
@ -461,7 +461,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// - Position the probe in a defined XY point before Z Homing when homing all axis (G28)
// - Position the probe in a defined XY point before Z Homing when homing all axis (G28)
// - Block Z homing only when the probe is outside bed area.
// - Block Z homing only when the probe is outside bed area.
#ifdef Z_SAFE_HOMING
#ifENABLED(Z_SAFE_HOMING)
#define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28)
#define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28)
#define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28)
#define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28)
@ -491,7 +491,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// Manual homing switch locations:
// Manual homing switch locations:
// For deltabots this means top and center of the Cartesian print volume.
// For deltabots this means top and center of the Cartesian print volume.
#ifdef MANUAL_HOME_POSITIONS
#ifENABLED(MANUAL_HOME_POSITIONS)
#define MANUAL_X_HOME_POS 0
#define MANUAL_X_HOME_POS 0
#define MANUAL_Y_HOME_POS 0
#define MANUAL_Y_HOME_POS 0
#define MANUAL_Z_HOME_POS 0
#define MANUAL_Z_HOME_POS 0
@ -533,8 +533,8 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// Custom M code points
// Custom M code points
#define CUSTOM_M_CODES
#define CUSTOM_M_CODES
#ifdef CUSTOM_M_CODES
#ifENABLED(CUSTOM_M_CODES)
#ifdef ENABLE_AUTO_BED_LEVELING
#ifENABLED(ENABLE_AUTO_BED_LEVELING)
#define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
#define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
#define Z_PROBE_OFFSET_RANGE_MIN -20
#define Z_PROBE_OFFSET_RANGE_MIN -20
#define Z_PROBE_OFFSET_RANGE_MAX 20
#define Z_PROBE_OFFSET_RANGE_MAX 20
@ -550,7 +550,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
//define this to enable EEPROM support
//define this to enable EEPROM support
//#define EEPROM_SETTINGS
//#define EEPROM_SETTINGS
#ifdef EEPROM_SETTINGS
#ifENABLED(EEPROM_SETTINGS)
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
#define EEPROM_CHITCHAT // please keep turned on if you can.
#define EEPROM_CHITCHAT // please keep turned on if you can.
// Also, if the temperature is set to a value <mintemp, it is not changed by autotemp.
// Also, if the temperature is set to a value <mintemp, it is not changed by autotemp.
// on an Ultimaker, some initial testing worked with M109 S215 B260 F1 in the start.gcode
// on an Ultimaker, some initial testing worked with M109 S215 B260 F1 in the start.gcode
#define AUTOTEMP
#define AUTOTEMP
#ifdef AUTOTEMP
#ifENABLED(AUTOTEMP)
#define AUTOTEMP_OLDWEIGHT 0.98
#define AUTOTEMP_OLDWEIGHT 0.98
#endif
#endif
@ -141,7 +141,7 @@
// On a RAMPS (or other 5 driver) motherboard, using this feature will limit you to using 1 extruder.
// On a RAMPS (or other 5 driver) motherboard, using this feature will limit you to using 1 extruder.
//#define Z_DUAL_STEPPER_DRIVERS
//#define Z_DUAL_STEPPER_DRIVERS
#ifdef Z_DUAL_STEPPER_DRIVERS
#ifENABLED(Z_DUAL_STEPPER_DRIVERS)
// Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
// Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
// That way the machine is capable to align the bed during home, since both Z steppers are homed.
// That way the machine is capable to align the bed during home, since both Z steppers are homed.
@ -158,7 +158,7 @@
// #define Z_DUAL_ENDSTOPS
// #define Z_DUAL_ENDSTOPS
#ifdef Z_DUAL_ENDSTOPS
#ifENABLED(Z_DUAL_ENDSTOPS)
#define Z2_MAX_PIN 36 //Endstop used for Z2 axis. In this case I'm using XMAX in a Rumba Board (pin 36)
#define Z2_MAX_PIN 36 //Endstop used for Z2 axis. In this case I'm using XMAX in a Rumba Board (pin 36)
constboolZ2_MAX_ENDSTOP_INVERTING=false;
constboolZ2_MAX_ENDSTOP_INVERTING=false;
#define DISABLE_XMAX_ENDSTOP //Better to disable the XMAX to avoid conflict. Just rename "XMAX_ENDSTOP" by the endstop you are using for Z2 axis.
#define DISABLE_XMAX_ENDSTOP //Better to disable the XMAX to avoid conflict. Just rename "XMAX_ENDSTOP" by the endstop you are using for Z2 axis.
@ -177,7 +177,7 @@
// prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage
// prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage
// allowing faster printing speeds.
// allowing faster printing speeds.
//#define DUAL_X_CARRIAGE
//#define DUAL_X_CARRIAGE
#ifdef DUAL_X_CARRIAGE
#ifENABLED(DUAL_X_CARRIAGE)
// Configuration for second X-carriage
// Configuration for second X-carriage
// Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
// Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
// the second x-carriage always homes to the maximum endstop.
// the second x-carriage always homes to the maximum endstop.
@ -248,7 +248,7 @@
// @section lcd
// @section lcd
#ifdef ULTIPANEL
#ifENABLED(ULTIPANEL)
#define MANUAL_FEEDRATE {50*60, 50*60, 4*60, 60} // Feedrates for manual moves along X, Y, Z, E from panel
#define MANUAL_FEEDRATE {50*60, 50*60, 4*60, 60} // Feedrates for manual moves along X, Y, Z, E from panel
#define ULTIPANEL_FEEDMULTIPLY // Comment to disable setting feedrate multiplier via encoder
#define ULTIPANEL_FEEDMULTIPLY // Comment to disable setting feedrate multiplier via encoder
#endif
#endif
@ -297,7 +297,7 @@
// @section lcd
// @section lcd
#ifdef SDSUPPORT
#ifENABLED(SDSUPPORT)
// If you are using a RAMPS board or cheap E-bay purchased boards that do not detect when an SD card is inserted
// If you are using a RAMPS board or cheap E-bay purchased boards that do not detect when an SD card is inserted
// You can get round this by connecting a push button or single throw switch to the pin defined as SDCARDCARDDETECT
// You can get round this by connecting a push button or single throw switch to the pin defined as SDCARDCARDDETECT
@ -316,7 +316,7 @@
// Show a progress bar on HD44780 LCDs for SD printing
// Show a progress bar on HD44780 LCDs for SD printing
//#define LCD_PROGRESS_BAR
//#define LCD_PROGRESS_BAR
#ifdef LCD_PROGRESS_BAR
#ifENABLED(LCD_PROGRESS_BAR)
// Amount of time (ms) to show the bar
// Amount of time (ms) to show the bar
#define PROGRESS_BAR_BAR_TIME 2000
#define PROGRESS_BAR_BAR_TIME 2000
// Amount of time (ms) to show the status message
// Amount of time (ms) to show the status message
@ -339,7 +339,7 @@
#endif // SDSUPPORT
#endif // SDSUPPORT
// for dogm lcd displays you can choose some additional fonts:
// for dogm lcd displays you can choose some additional fonts:
#ifdef DOGLCD
#ifENABLED(DOGLCD)
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT
// we don't have a big font for Cyrillic, Kana
// we don't have a big font for Cyrillic, Kana
//#define USE_BIG_EDIT_FONT
//#define USE_BIG_EDIT_FONT
@ -355,7 +355,7 @@
// The hardware watchdog should reset the microcontroller disabling all outputs, in case the firmware gets stuck and doesn't do temperature regulation.
// The hardware watchdog should reset the microcontroller disabling all outputs, in case the firmware gets stuck and doesn't do temperature regulation.
//#define USE_WATCHDOG
//#define USE_WATCHDOG
#ifdef USE_WATCHDOG
#ifENABLED(USE_WATCHDOG)
// If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on.
// If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on.
// The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset.
// The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset.
// 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.
// 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.
@ -368,7 +368,7 @@
// it can e.g. be used to change z-positions in the print startup phase in real-time
// it can e.g. be used to change z-positions in the print startup phase in real-time
// does not respect endstops!
// does not respect endstops!
//#define BABYSTEPPING
//#define BABYSTEPPING
#ifdef BABYSTEPPING
#ifENABLED(BABYSTEPPING)
#define BABYSTEP_XY //not only z, but also XY in the menu. more clutter, more functions
#define BABYSTEP_XY //not only z, but also XY in the menu. more clutter, more functions
#define BABYSTEP_INVERT_Z false //true for inverse movements in Z
#define BABYSTEP_INVERT_Z false //true for inverse movements in Z
#define BABYSTEP_Z_MULTIPLICATOR 2 //faster z movements
#define BABYSTEP_Z_MULTIPLICATOR 2 //faster z movements
@ -385,7 +385,7 @@
// so: v ^ 2 is proportional to number of steps we advance the extruder
// so: v ^ 2 is proportional to number of steps we advance the extruder
//#define ADVANCE
//#define ADVANCE
#ifdef ADVANCE
#ifENABLED(ADVANCE)
#define EXTRUDER_ADVANCE_K .0
#define EXTRUDER_ADVANCE_K .0
#define D_FILAMENT 2.85
#define D_FILAMENT 2.85
#define STEPS_MM_E 836
#define STEPS_MM_E 836
@ -412,7 +412,7 @@ const unsigned int dropsegments=5; //everything with less than this number of st
// The number of linear motions that can be in the plan at any give time.
// The number of linear motions that can be in the plan at any give time.
// 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.
// 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.
#ifdef SDSUPPORT
#ifENABLED(SDSUPPORT)
#define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
#define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
@ -38,7 +38,7 @@ Here are some standard links for getting your machine calibrated:
// @section info
// @section info
#ifdef HAS_AUTOMATIC_VERSIONING
#ifENABLED(HAS_AUTOMATIC_VERSIONING)
#include"_Version.h"
#include"_Version.h"
#else
#else
#include"Default_Version.h"
#include"Default_Version.h"
@ -198,7 +198,7 @@ Here are some standard links for getting your machine calibrated:
#define PIDTEMP
#define PIDTEMP
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
#ifdef PIDTEMP
#ifENABLED(PIDTEMP)
//#define PID_DEBUG // Sends debug data to the serial port.
//#define PID_DEBUG // Sends debug data to the serial port.
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
//#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
//#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
@ -240,7 +240,7 @@ Here are some standard links for getting your machine calibrated:
//#define PID_BED_DEBUG // Sends debug data to the serial port.
//#define PID_BED_DEBUG // Sends debug data to the serial port.
#ifdef PIDTEMPBED
#ifENABLED(PIDTEMPBED)
#define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
#define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
@ -400,7 +400,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic
// In RAMPS uses servo pin 2. Can be changed in pins file. For other boards pin definition should be made.
// In RAMPS uses servo pin 2. Can be changed in pins file. For other boards pin definition should be made.
// It is assumed that when logic high = filament available
// It is assumed that when logic high = filament available
// when logic low = filament ran out
// when logic low = filament ran out
#ifdef FILAMENT_RUNOUT_SENSOR
#ifENABLED(FILAMENT_RUNOUT_SENSOR)
constboolFIL_RUNOUT_INVERTING=true;// Should be uncommented and true or false should assigned
constboolFIL_RUNOUT_INVERTING=true;// Should be uncommented and true or false should assigned
#define ENDSTOPPULLUP_FIL_RUNOUT // Uncomment to use internal pullup for filament runout pins if the sensor is defined.
#define ENDSTOPPULLUP_FIL_RUNOUT // Uncomment to use internal pullup for filament runout pins if the sensor is defined.
#define FILAMENT_RUNOUT_SCRIPT "M600"
#define FILAMENT_RUNOUT_SCRIPT "M600"
@ -413,11 +413,11 @@ const bool Z_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic
// #define MANUAL_BED_LEVELING // Add display menu option for bed leveling
// #define MANUAL_BED_LEVELING // Add display menu option for bed leveling
// #define MESH_BED_LEVELING // Enable mesh bed leveling
// #define MESH_BED_LEVELING // Enable mesh bed leveling
#ifdef MANUAL_BED_LEVELING
#ifENABLED(MANUAL_BED_LEVELING)
#define MBL_Z_STEP 0.025 // Step size while manually probing Z axis
#define MBL_Z_STEP 0.025 // Step size while manually probing Z axis
#endif // MANUAL_BED_LEVELING
#endif // MANUAL_BED_LEVELING
#ifdef MESH_BED_LEVELING
#ifENABLED(MESH_BED_LEVELING)
#define MESH_MIN_X 10
#define MESH_MIN_X 10
#define MESH_MAX_X (X_MAX_POS - MESH_MIN_X)
#define MESH_MAX_X (X_MAX_POS - MESH_MIN_X)
#define MESH_MIN_Y 10
#define MESH_MIN_Y 10
@ -436,7 +436,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic
//#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
//#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
#define Z_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled.
#define Z_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled.
#ifdef ENABLE_AUTO_BED_LEVELING
#ifENABLED(ENABLE_AUTO_BED_LEVELING)
// There are 2 different ways to specify probing locations
// There are 2 different ways to specify probing locations
//
//
@ -453,7 +453,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic
// Note: this feature generates 10KB extra code size
// Note: this feature generates 10KB extra code size
#define AUTO_BED_LEVELING_GRID
#define AUTO_BED_LEVELING_GRID
#ifdef AUTO_BED_LEVELING_GRID
#ifENABLED(AUTO_BED_LEVELING_GRID)
#define LEFT_PROBE_BED_POSITION 15
#define LEFT_PROBE_BED_POSITION 15
#define RIGHT_PROBE_BED_POSITION 170
#define RIGHT_PROBE_BED_POSITION 170
@ -510,7 +510,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic
// - Position the probe in a defined XY point before Z Homing when homing all axis (G28)
// - Position the probe in a defined XY point before Z Homing when homing all axis (G28)
// - Block Z homing only when the probe is outside bed area.
// - Block Z homing only when the probe is outside bed area.
#ifdef Z_SAFE_HOMING
#ifENABLED(Z_SAFE_HOMING)
#define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28)
#define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28)
#define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28)
#define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28)
@ -542,7 +542,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic
// Manual homing switch locations:
// Manual homing switch locations:
// For deltabots this means top and center of the Cartesian print volume.
// For deltabots this means top and center of the Cartesian print volume.
#ifdef MANUAL_HOME_POSITIONS
#ifENABLED(MANUAL_HOME_POSITIONS)
#define MANUAL_X_HOME_POS 0
#define MANUAL_X_HOME_POS 0
#define MANUAL_Y_HOME_POS 0
#define MANUAL_Y_HOME_POS 0
#define MANUAL_Z_HOME_POS 0
#define MANUAL_Z_HOME_POS 0
@ -581,8 +581,8 @@ const bool Z_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic
// Custom M code points
// Custom M code points
#define CUSTOM_M_CODES
#define CUSTOM_M_CODES
#ifdef CUSTOM_M_CODES
#ifENABLED(CUSTOM_M_CODES)
#ifdef ENABLE_AUTO_BED_LEVELING
#ifENABLED(ENABLE_AUTO_BED_LEVELING)
#define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
#define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
#define Z_PROBE_OFFSET_RANGE_MIN -20
#define Z_PROBE_OFFSET_RANGE_MIN -20
#define Z_PROBE_OFFSET_RANGE_MAX 20
#define Z_PROBE_OFFSET_RANGE_MAX 20
@ -599,7 +599,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic
//define this to enable EEPROM support
//define this to enable EEPROM support
//#define EEPROM_SETTINGS
//#define EEPROM_SETTINGS
#ifdef EEPROM_SETTINGS
#ifENABLED(EEPROM_SETTINGS)
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
#define EEPROM_CHITCHAT // Please keep turned on if you can.
#define EEPROM_CHITCHAT // Please keep turned on if you can.
#endif
#endif
@ -783,7 +783,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic
// With this option servos are powered only during movement, then turned off to prevent jitter.
// With this option servos are powered only during movement, then turned off to prevent jitter.
//#define DEACTIVATE_SERVOS_AFTER_MOVE
//#define DEACTIVATE_SERVOS_AFTER_MOVE
#ifdef DEACTIVATE_SERVOS_AFTER_MOVE
#ifENABLED(DEACTIVATE_SERVOS_AFTER_MOVE)
// Delay (in microseconds) before turning the servo off. This depends on the servo speed.
// Delay (in microseconds) before turning the servo off. This depends on the servo speed.
// 300ms is a good value but you can try less delay.
// 300ms is a good value but you can try less delay.
// If the servo can't reach the requested position, increase it.
// If the servo can't reach the requested position, increase it.
// Also, if the temperature is set to a value <mintemp, it is not changed by autotemp.
// Also, if the temperature is set to a value <mintemp, it is not changed by autotemp.
// on an Ultimaker, some initial testing worked with M109 S215 B260 F1 in the start.gcode
// on an Ultimaker, some initial testing worked with M109 S215 B260 F1 in the start.gcode
#define AUTOTEMP
#define AUTOTEMP
#ifdef AUTOTEMP
#ifENABLED(AUTOTEMP)
#define AUTOTEMP_OLDWEIGHT 0.98
#define AUTOTEMP_OLDWEIGHT 0.98
#endif
#endif
@ -141,7 +141,7 @@
// On a RAMPS (or other 5 driver) motherboard, using this feature will limit you to using 1 extruder.
// On a RAMPS (or other 5 driver) motherboard, using this feature will limit you to using 1 extruder.
//#define Z_DUAL_STEPPER_DRIVERS
//#define Z_DUAL_STEPPER_DRIVERS
#ifdef Z_DUAL_STEPPER_DRIVERS
#ifENABLED(Z_DUAL_STEPPER_DRIVERS)
// Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
// Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
// That way the machine is capable to align the bed during home, since both Z steppers are homed.
// That way the machine is capable to align the bed during home, since both Z steppers are homed.
@ -158,7 +158,7 @@
// #define Z_DUAL_ENDSTOPS
// #define Z_DUAL_ENDSTOPS
#ifdef Z_DUAL_ENDSTOPS
#ifENABLED(Z_DUAL_ENDSTOPS)
#define Z2_MAX_PIN 36 //Endstop used for Z2 axis. In this case I'm using XMAX in a Rumba Board (pin 36)
#define Z2_MAX_PIN 36 //Endstop used for Z2 axis. In this case I'm using XMAX in a Rumba Board (pin 36)
constboolZ2_MAX_ENDSTOP_INVERTING=false;
constboolZ2_MAX_ENDSTOP_INVERTING=false;
#define DISABLE_XMAX_ENDSTOP //Better to disable the XMAX to avoid conflict. Just rename "XMAX_ENDSTOP" by the endstop you are using for Z2 axis.
#define DISABLE_XMAX_ENDSTOP //Better to disable the XMAX to avoid conflict. Just rename "XMAX_ENDSTOP" by the endstop you are using for Z2 axis.
@ -177,7 +177,7 @@
// prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage
// prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage
// allowing faster printing speeds.
// allowing faster printing speeds.
//#define DUAL_X_CARRIAGE
//#define DUAL_X_CARRIAGE
#ifdef DUAL_X_CARRIAGE
#ifENABLED(DUAL_X_CARRIAGE)
// Configuration for second X-carriage
// Configuration for second X-carriage
// Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
// Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
// the second x-carriage always homes to the maximum endstop.
// the second x-carriage always homes to the maximum endstop.
@ -248,7 +248,7 @@
// @section lcd
// @section lcd
#ifdef ULTIPANEL
#ifENABLED(ULTIPANEL)
#define MANUAL_FEEDRATE {120*60, 120*60, 18*60, 60} // Feedrates for manual moves along X, Y, Z, E from panel
#define MANUAL_FEEDRATE {120*60, 120*60, 18*60, 60} // Feedrates for manual moves along X, Y, Z, E from panel
#define ULTIPANEL_FEEDMULTIPLY // Comment to disable setting feedrate multiplier via encoder
#define ULTIPANEL_FEEDMULTIPLY // Comment to disable setting feedrate multiplier via encoder
#endif
#endif
@ -297,7 +297,7 @@
// @section lcd
// @section lcd
#ifdef SDSUPPORT
#ifENABLED(SDSUPPORT)
// If you are using a RAMPS board or cheap E-bay purchased boards that do not detect when an SD card is inserted
// If you are using a RAMPS board or cheap E-bay purchased boards that do not detect when an SD card is inserted
// You can get round this by connecting a push button or single throw switch to the pin defined as SDCARDCARDDETECT
// You can get round this by connecting a push button or single throw switch to the pin defined as SDCARDCARDDETECT
@ -316,7 +316,7 @@
// Show a progress bar on HD44780 LCDs for SD printing
// Show a progress bar on HD44780 LCDs for SD printing
//#define LCD_PROGRESS_BAR
//#define LCD_PROGRESS_BAR
#ifdef LCD_PROGRESS_BAR
#ifENABLED(LCD_PROGRESS_BAR)
// Amount of time (ms) to show the bar
// Amount of time (ms) to show the bar
#define PROGRESS_BAR_BAR_TIME 2000
#define PROGRESS_BAR_BAR_TIME 2000
// Amount of time (ms) to show the status message
// Amount of time (ms) to show the status message
@ -339,7 +339,7 @@
#endif // SDSUPPORT
#endif // SDSUPPORT
// for dogm lcd displays you can choose some additional fonts:
// for dogm lcd displays you can choose some additional fonts:
#ifdef DOGLCD
#ifENABLED(DOGLCD)
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT
// we don't have a big font for Cyrillic, Kana
// we don't have a big font for Cyrillic, Kana
//#define USE_BIG_EDIT_FONT
//#define USE_BIG_EDIT_FONT
@ -355,7 +355,7 @@
// The hardware watchdog should reset the microcontroller disabling all outputs, in case the firmware gets stuck and doesn't do temperature regulation.
// The hardware watchdog should reset the microcontroller disabling all outputs, in case the firmware gets stuck and doesn't do temperature regulation.
//#define USE_WATCHDOG
//#define USE_WATCHDOG
#ifdef USE_WATCHDOG
#ifENABLED(USE_WATCHDOG)
// If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on.
// If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on.
// The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset.
// The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset.
// 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.
// 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.
@ -368,7 +368,7 @@
// it can e.g. be used to change z-positions in the print startup phase in real-time
// it can e.g. be used to change z-positions in the print startup phase in real-time
// does not respect endstops!
// does not respect endstops!
//#define BABYSTEPPING
//#define BABYSTEPPING
#ifdef BABYSTEPPING
#ifENABLED(BABYSTEPPING)
#define BABYSTEP_XY //not only z, but also XY in the menu. more clutter, more functions
#define BABYSTEP_XY //not only z, but also XY in the menu. more clutter, more functions
#define BABYSTEP_INVERT_Z false //true for inverse movements in Z
#define BABYSTEP_INVERT_Z false //true for inverse movements in Z
#define BABYSTEP_Z_MULTIPLICATOR 2 //faster z movements
#define BABYSTEP_Z_MULTIPLICATOR 2 //faster z movements
@ -385,7 +385,7 @@
// so: v ^ 2 is proportional to number of steps we advance the extruder
// so: v ^ 2 is proportional to number of steps we advance the extruder
//#define ADVANCE
//#define ADVANCE
#ifdef ADVANCE
#ifENABLED(ADVANCE)
#define EXTRUDER_ADVANCE_K .0
#define EXTRUDER_ADVANCE_K .0
#define D_FILAMENT 1.75
#define D_FILAMENT 1.75
#define STEPS_MM_E 100.47095761381482
#define STEPS_MM_E 100.47095761381482
@ -412,7 +412,7 @@ const unsigned int dropsegments=5; //everything with less than this number of st
// The number of linear motions that can be in the plan at any give time.
// The number of linear motions that can be in the plan at any give time.
// 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.
// 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.
#ifdef SDSUPPORT
#ifENABLED(SDSUPPORT)
#define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
#define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
@ -43,7 +43,7 @@ Here are some standard links for getting your machine calibrated:
// @section info
// @section info
#ifdef HAS_AUTOMATIC_VERSIONING
#ifENABLED(HAS_AUTOMATIC_VERSIONING)
#include"_Version.h"
#include"_Version.h"
#else
#else
#include"Default_Version.h"
#include"Default_Version.h"
@ -200,7 +200,7 @@ Here are some standard links for getting your machine calibrated:
#define PIDTEMP
#define PIDTEMP
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
#ifdef PIDTEMP
#ifENABLED(PIDTEMP)
//#define PID_DEBUG // Sends debug data to the serial port.
//#define PID_DEBUG // Sends debug data to the serial port.
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
//#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
//#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
@ -242,7 +242,7 @@ Here are some standard links for getting your machine calibrated:
//#define PID_BED_DEBUG // Sends debug data to the serial port.
//#define PID_BED_DEBUG // Sends debug data to the serial port.
#ifdef PIDTEMPBED
#ifENABLED(PIDTEMPBED)
#define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
#define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
@ -396,7 +396,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// In RAMPS uses servo pin 2. Can be changed in pins file. For other boards pin definition should be made.
// In RAMPS uses servo pin 2. Can be changed in pins file. For other boards pin definition should be made.
// It is assumed that when logic high = filament available
// It is assumed that when logic high = filament available
// when logic low = filament ran out
// when logic low = filament ran out
#ifdef FILAMENT_RUNOUT_SENSOR
#ifENABLED(FILAMENT_RUNOUT_SENSOR)
constboolFIL_RUNOUT_INVERTING=true;// Should be uncommented and true or false should assigned
constboolFIL_RUNOUT_INVERTING=true;// Should be uncommented and true or false should assigned
#define ENDSTOPPULLUP_FIL_RUNOUT // Uncomment to use internal pullup for filament runout pins if the sensor is defined.
#define ENDSTOPPULLUP_FIL_RUNOUT // Uncomment to use internal pullup for filament runout pins if the sensor is defined.
#define FILAMENT_RUNOUT_SCRIPT "M600"
#define FILAMENT_RUNOUT_SCRIPT "M600"
@ -409,11 +409,11 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// #define MANUAL_BED_LEVELING // Add display menu option for bed leveling
// #define MANUAL_BED_LEVELING // Add display menu option for bed leveling
// #define MESH_BED_LEVELING // Enable mesh bed leveling
// #define MESH_BED_LEVELING // Enable mesh bed leveling
#ifdef MANUAL_BED_LEVELING
#ifENABLED(MANUAL_BED_LEVELING)
#define MBL_Z_STEP 0.025 // Step size while manually probing Z axis
#define MBL_Z_STEP 0.025 // Step size while manually probing Z axis
#endif // MANUAL_BED_LEVELING
#endif // MANUAL_BED_LEVELING
#ifdef MESH_BED_LEVELING
#ifENABLED(MESH_BED_LEVELING)
#define MESH_MIN_X 10
#define MESH_MIN_X 10
#define MESH_MAX_X (X_MAX_POS - MESH_MIN_X)
#define MESH_MAX_X (X_MAX_POS - MESH_MIN_X)
#define MESH_MIN_Y 10
#define MESH_MIN_Y 10
@ -432,7 +432,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
//#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
//#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
#define Z_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled.
#define Z_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled.
#ifdef ENABLE_AUTO_BED_LEVELING
#ifENABLED(ENABLE_AUTO_BED_LEVELING)
// There are 2 different ways to specify probing locations
// There are 2 different ways to specify probing locations
//
//
@ -449,7 +449,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// Note: this feature generates 10KB extra code size
// Note: this feature generates 10KB extra code size
#define AUTO_BED_LEVELING_GRID
#define AUTO_BED_LEVELING_GRID
#ifdef AUTO_BED_LEVELING_GRID
#ifENABLED(AUTO_BED_LEVELING_GRID)
#define LEFT_PROBE_BED_POSITION 15
#define LEFT_PROBE_BED_POSITION 15
#define RIGHT_PROBE_BED_POSITION 170
#define RIGHT_PROBE_BED_POSITION 170
@ -506,7 +506,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// - Position the probe in a defined XY point before Z Homing when homing all axis (G28)
// - Position the probe in a defined XY point before Z Homing when homing all axis (G28)
// - Block Z homing only when the probe is outside bed area.
// - Block Z homing only when the probe is outside bed area.
#ifdef Z_SAFE_HOMING
#ifENABLED(Z_SAFE_HOMING)
#define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28)
#define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28)
#define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28)
#define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28)
@ -538,7 +538,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// Manual homing switch locations:
// Manual homing switch locations:
// For deltabots this means top and center of the Cartesian print volume.
// For deltabots this means top and center of the Cartesian print volume.
#ifdef MANUAL_HOME_POSITIONS
#ifENABLED(MANUAL_HOME_POSITIONS)
#define MANUAL_X_HOME_POS 0
#define MANUAL_X_HOME_POS 0
#define MANUAL_Y_HOME_POS 0
#define MANUAL_Y_HOME_POS 0
#define MANUAL_Z_HOME_POS 0
#define MANUAL_Z_HOME_POS 0
@ -577,8 +577,8 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// Custom M code points
// Custom M code points
#define CUSTOM_M_CODES
#define CUSTOM_M_CODES
#ifdef CUSTOM_M_CODES
#ifENABLED(CUSTOM_M_CODES)
#ifdef ENABLE_AUTO_BED_LEVELING
#ifENABLED(ENABLE_AUTO_BED_LEVELING)
#define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
#define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
#define Z_PROBE_OFFSET_RANGE_MIN -20
#define Z_PROBE_OFFSET_RANGE_MIN -20
#define Z_PROBE_OFFSET_RANGE_MAX 20
#define Z_PROBE_OFFSET_RANGE_MAX 20
@ -595,7 +595,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
//define this to enable EEPROM support
//define this to enable EEPROM support
#define EEPROM_SETTINGS
#define EEPROM_SETTINGS
#ifdef EEPROM_SETTINGS
#ifENABLED(EEPROM_SETTINGS)
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
#define EEPROM_CHITCHAT // Please keep turned on if you can.
#define EEPROM_CHITCHAT // Please keep turned on if you can.
#endif
#endif
@ -779,7 +779,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// With this option servos are powered only during movement, then turned off to prevent jitter.
// With this option servos are powered only during movement, then turned off to prevent jitter.
//#define DEACTIVATE_SERVOS_AFTER_MOVE
//#define DEACTIVATE_SERVOS_AFTER_MOVE
#ifdef DEACTIVATE_SERVOS_AFTER_MOVE
#ifENABLED(DEACTIVATE_SERVOS_AFTER_MOVE)
// Delay (in microseconds) before turning the servo off. This depends on the servo speed.
// Delay (in microseconds) before turning the servo off. This depends on the servo speed.
// 300ms is a good value but you can try less delay.
// 300ms is a good value but you can try less delay.
// If the servo can't reach the requested position, increase it.
// If the servo can't reach the requested position, increase it.
// Also, if the temperature is set to a value <mintemp, it is not changed by autotemp.
// Also, if the temperature is set to a value <mintemp, it is not changed by autotemp.
// on an Ultimaker, some initial testing worked with M109 S215 B260 F1 in the start.gcode
// on an Ultimaker, some initial testing worked with M109 S215 B260 F1 in the start.gcode
#define AUTOTEMP
#define AUTOTEMP
#ifdef AUTOTEMP
#ifENABLED(AUTOTEMP)
#define AUTOTEMP_OLDWEIGHT 0.98
#define AUTOTEMP_OLDWEIGHT 0.98
#endif
#endif
@ -141,7 +141,7 @@
// On a RAMPS (or other 5 driver) motherboard, using this feature will limit you to using 1 extruder.
// On a RAMPS (or other 5 driver) motherboard, using this feature will limit you to using 1 extruder.
//#define Z_DUAL_STEPPER_DRIVERS
//#define Z_DUAL_STEPPER_DRIVERS
#ifdef Z_DUAL_STEPPER_DRIVERS
#ifENABLED(Z_DUAL_STEPPER_DRIVERS)
// Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
// Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
// That way the machine is capable to align the bed during home, since both Z steppers are homed.
// That way the machine is capable to align the bed during home, since both Z steppers are homed.
@ -158,7 +158,7 @@
// #define Z_DUAL_ENDSTOPS
// #define Z_DUAL_ENDSTOPS
#ifdef Z_DUAL_ENDSTOPS
#ifENABLED(Z_DUAL_ENDSTOPS)
#define Z2_MAX_PIN 36 //Endstop used for Z2 axis. In this case I'm using XMAX in a Rumba Board (pin 36)
#define Z2_MAX_PIN 36 //Endstop used for Z2 axis. In this case I'm using XMAX in a Rumba Board (pin 36)
constboolZ2_MAX_ENDSTOP_INVERTING=false;
constboolZ2_MAX_ENDSTOP_INVERTING=false;
#define DISABLE_XMAX_ENDSTOP //Better to disable the XMAX to avoid conflict. Just rename "XMAX_ENDSTOP" by the endstop you are using for Z2 axis.
#define DISABLE_XMAX_ENDSTOP //Better to disable the XMAX to avoid conflict. Just rename "XMAX_ENDSTOP" by the endstop you are using for Z2 axis.
@ -177,7 +177,7 @@
// prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage
// prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage
// allowing faster printing speeds.
// allowing faster printing speeds.
//#define DUAL_X_CARRIAGE
//#define DUAL_X_CARRIAGE
#ifdef DUAL_X_CARRIAGE
#ifENABLED(DUAL_X_CARRIAGE)
// Configuration for second X-carriage
// Configuration for second X-carriage
// Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
// Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
// the second x-carriage always homes to the maximum endstop.
// the second x-carriage always homes to the maximum endstop.
@ -248,7 +248,7 @@
// @section lcd
// @section lcd
#ifdef ULTIPANEL
#ifENABLED(ULTIPANEL)
#define MANUAL_FEEDRATE {50*60, 50*60, 4*60, 60} // Feedrates for manual moves along X, Y, Z, E from panel
#define MANUAL_FEEDRATE {50*60, 50*60, 4*60, 60} // Feedrates for manual moves along X, Y, Z, E from panel
#define ULTIPANEL_FEEDMULTIPLY // Comment to disable setting feedrate multiplier via encoder
#define ULTIPANEL_FEEDMULTIPLY // Comment to disable setting feedrate multiplier via encoder
#endif
#endif
@ -297,7 +297,7 @@
// @section lcd
// @section lcd
#ifdef SDSUPPORT
#ifENABLED(SDSUPPORT)
// If you are using a RAMPS board or cheap E-bay purchased boards that do not detect when an SD card is inserted
// If you are using a RAMPS board or cheap E-bay purchased boards that do not detect when an SD card is inserted
// You can get round this by connecting a push button or single throw switch to the pin defined as SDCARDCARDDETECT
// You can get round this by connecting a push button or single throw switch to the pin defined as SDCARDCARDDETECT
@ -316,7 +316,7 @@
// Show a progress bar on HD44780 LCDs for SD printing
// Show a progress bar on HD44780 LCDs for SD printing
//#define LCD_PROGRESS_BAR
//#define LCD_PROGRESS_BAR
#ifdef LCD_PROGRESS_BAR
#ifENABLED(LCD_PROGRESS_BAR)
// Amount of time (ms) to show the bar
// Amount of time (ms) to show the bar
#define PROGRESS_BAR_BAR_TIME 2000
#define PROGRESS_BAR_BAR_TIME 2000
// Amount of time (ms) to show the status message
// Amount of time (ms) to show the status message
@ -339,7 +339,7 @@
#endif // SDSUPPORT
#endif // SDSUPPORT
// for dogm lcd displays you can choose some additional fonts:
// for dogm lcd displays you can choose some additional fonts:
#ifdef DOGLCD
#ifENABLED(DOGLCD)
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT
// we don't have a big font for Cyrillic, Kana
// we don't have a big font for Cyrillic, Kana
//#define USE_BIG_EDIT_FONT
//#define USE_BIG_EDIT_FONT
@ -355,7 +355,7 @@
// The hardware watchdog should reset the microcontroller disabling all outputs, in case the firmware gets stuck and doesn't do temperature regulation.
// The hardware watchdog should reset the microcontroller disabling all outputs, in case the firmware gets stuck and doesn't do temperature regulation.
//#define USE_WATCHDOG
//#define USE_WATCHDOG
#ifdef USE_WATCHDOG
#ifENABLED(USE_WATCHDOG)
// If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on.
// If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on.
// The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset.
// The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset.
// 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.
// 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.
@ -368,7 +368,7 @@
// it can e.g. be used to change z-positions in the print startup phase in real-time
// it can e.g. be used to change z-positions in the print startup phase in real-time
// does not respect endstops!
// does not respect endstops!
//#define BABYSTEPPING
//#define BABYSTEPPING
#ifdef BABYSTEPPING
#ifENABLED(BABYSTEPPING)
#define BABYSTEP_XY //not only z, but also XY in the menu. more clutter, more functions
#define BABYSTEP_XY //not only z, but also XY in the menu. more clutter, more functions
#define BABYSTEP_INVERT_Z false //true for inverse movements in Z
#define BABYSTEP_INVERT_Z false //true for inverse movements in Z
#define BABYSTEP_Z_MULTIPLICATOR 2 //faster z movements
#define BABYSTEP_Z_MULTIPLICATOR 2 //faster z movements
@ -385,7 +385,7 @@
// so: v ^ 2 is proportional to number of steps we advance the extruder
// so: v ^ 2 is proportional to number of steps we advance the extruder
//#define ADVANCE
//#define ADVANCE
#ifdef ADVANCE
#ifENABLED(ADVANCE)
#define EXTRUDER_ADVANCE_K .0
#define EXTRUDER_ADVANCE_K .0
#define D_FILAMENT 2.85
#define D_FILAMENT 2.85
#define STEPS_MM_E 836
#define STEPS_MM_E 836
@ -412,7 +412,7 @@ const unsigned int dropsegments=5; //everything with less than this number of st
// The number of linear motions that can be in the plan at any give time.
// The number of linear motions that can be in the plan at any give time.
// 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.
// 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.
#ifdef SDSUPPORT
#ifENABLED(SDSUPPORT)
#define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
#define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
@ -38,7 +38,7 @@ Here are some standard links for getting your machine calibrated:
// @section info
// @section info
#ifdef HAS_AUTOMATIC_VERSIONING
#ifENABLED(HAS_AUTOMATIC_VERSIONING)
#include"_Version.h"
#include"_Version.h"
#else
#else
#include"Default_Version.h"
#include"Default_Version.h"
@ -195,7 +195,7 @@ Here are some standard links for getting your machine calibrated:
#define PIDTEMP
#define PIDTEMP
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
#ifdef PIDTEMP
#ifENABLED(PIDTEMP)
//#define PID_DEBUG // Sends debug data to the serial port.
//#define PID_DEBUG // Sends debug data to the serial port.
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
//#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
//#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
@ -248,7 +248,7 @@ Here are some standard links for getting your machine calibrated:
//#define PID_BED_DEBUG // Sends debug data to the serial port.
//#define PID_BED_DEBUG // Sends debug data to the serial port.
#ifdef PIDTEMPBED
#ifENABLED(PIDTEMPBED)
#define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
#define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
@ -408,7 +408,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// In RAMPS uses servo pin 2. Can be changed in pins file. For other boards pin definition should be made.
// In RAMPS uses servo pin 2. Can be changed in pins file. For other boards pin definition should be made.
// It is assumed that when logic high = filament available
// It is assumed that when logic high = filament available
// when logic low = filament ran out
// when logic low = filament ran out
#ifdef FILAMENT_RUNOUT_SENSOR
#ifENABLED(FILAMENT_RUNOUT_SENSOR)
constboolFIL_RUNOUT_INVERTING=true;// Should be uncommented and true or false should assigned
constboolFIL_RUNOUT_INVERTING=true;// Should be uncommented and true or false should assigned
#define ENDSTOPPULLUP_FIL_RUNOUT // Uncomment to use internal pullup for filament runout pins if the sensor is defined.
#define ENDSTOPPULLUP_FIL_RUNOUT // Uncomment to use internal pullup for filament runout pins if the sensor is defined.
#define FILAMENT_RUNOUT_SCRIPT "M600"
#define FILAMENT_RUNOUT_SCRIPT "M600"
@ -421,11 +421,11 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// #define MANUAL_BED_LEVELING // Add display menu option for bed leveling
// #define MANUAL_BED_LEVELING // Add display menu option for bed leveling
// #define MESH_BED_LEVELING // Enable mesh bed leveling
// #define MESH_BED_LEVELING // Enable mesh bed leveling
#ifdef MANUAL_BED_LEVELING
#ifENABLED(MANUAL_BED_LEVELING)
#define MBL_Z_STEP 0.025 // Step size while manually probing Z axis
#define MBL_Z_STEP 0.025 // Step size while manually probing Z axis
#endif // MANUAL_BED_LEVELING
#endif // MANUAL_BED_LEVELING
#ifdef MESH_BED_LEVELING
#ifENABLED(MESH_BED_LEVELING)
#define MESH_MIN_X 10
#define MESH_MIN_X 10
#define MESH_MAX_X (X_MAX_POS - MESH_MIN_X)
#define MESH_MAX_X (X_MAX_POS - MESH_MIN_X)
#define MESH_MIN_Y 10
#define MESH_MIN_Y 10
@ -444,7 +444,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
//#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
//#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
#define Z_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled.
#define Z_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled.
#ifdef ENABLE_AUTO_BED_LEVELING
#ifENABLED(ENABLE_AUTO_BED_LEVELING)
// There are 2 different ways to specify probing locations
// There are 2 different ways to specify probing locations
//
//
@ -461,7 +461,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// Note: this feature generates 10KB extra code size
// Note: this feature generates 10KB extra code size
#define AUTO_BED_LEVELING_GRID
#define AUTO_BED_LEVELING_GRID
#ifdef AUTO_BED_LEVELING_GRID
#ifENABLED(AUTO_BED_LEVELING_GRID)
#define LEFT_PROBE_BED_POSITION 15
#define LEFT_PROBE_BED_POSITION 15
#define RIGHT_PROBE_BED_POSITION 170
#define RIGHT_PROBE_BED_POSITION 170
@ -518,7 +518,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// - Position the probe in a defined XY point before Z Homing when homing all axis (G28)
// - Position the probe in a defined XY point before Z Homing when homing all axis (G28)
// - Block Z homing only when the probe is outside bed area.
// - Block Z homing only when the probe is outside bed area.
#ifdef Z_SAFE_HOMING
#ifENABLED(Z_SAFE_HOMING)
#define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28)
#define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28)
#define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28)
#define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28)
@ -550,7 +550,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// Manual homing switch locations:
// Manual homing switch locations:
// For deltabots this means top and center of the Cartesian print volume.
// For deltabots this means top and center of the Cartesian print volume.
#ifdef MANUAL_HOME_POSITIONS
#ifENABLED(MANUAL_HOME_POSITIONS)
#define MANUAL_X_HOME_POS 0
#define MANUAL_X_HOME_POS 0
#define MANUAL_Y_HOME_POS 0
#define MANUAL_Y_HOME_POS 0
#define MANUAL_Z_HOME_POS 0
#define MANUAL_Z_HOME_POS 0
@ -589,8 +589,8 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// Custom M code points
// Custom M code points
#define CUSTOM_M_CODES
#define CUSTOM_M_CODES
#ifdef CUSTOM_M_CODES
#ifENABLED(CUSTOM_M_CODES)
#ifdef ENABLE_AUTO_BED_LEVELING
#ifENABLED(ENABLE_AUTO_BED_LEVELING)
#define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
#define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
#define Z_PROBE_OFFSET_RANGE_MIN -20
#define Z_PROBE_OFFSET_RANGE_MIN -20
#define Z_PROBE_OFFSET_RANGE_MAX 20
#define Z_PROBE_OFFSET_RANGE_MAX 20
@ -607,7 +607,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
//define this to enable EEPROM support
//define this to enable EEPROM support
//#define EEPROM_SETTINGS
//#define EEPROM_SETTINGS
#ifdef EEPROM_SETTINGS
#ifENABLED(EEPROM_SETTINGS)
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
#define EEPROM_CHITCHAT // Please keep turned on if you can.
#define EEPROM_CHITCHAT // Please keep turned on if you can.
#endif
#endif
@ -791,7 +791,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// With this option servos are powered only during movement, then turned off to prevent jitter.
// With this option servos are powered only during movement, then turned off to prevent jitter.
//#define DEACTIVATE_SERVOS_AFTER_MOVE
//#define DEACTIVATE_SERVOS_AFTER_MOVE
#ifdef DEACTIVATE_SERVOS_AFTER_MOVE
#ifENABLED(DEACTIVATE_SERVOS_AFTER_MOVE)
// Delay (in microseconds) before turning the servo off. This depends on the servo speed.
// Delay (in microseconds) before turning the servo off. This depends on the servo speed.
// 300ms is a good value but you can try less delay.
// 300ms is a good value but you can try less delay.
// If the servo can't reach the requested position, increase it.
// If the servo can't reach the requested position, increase it.
@ -38,7 +38,7 @@ Here are some standard links for getting your machine calibrated:
// @section info
// @section info
#ifdef HAS_AUTOMATIC_VERSIONING
#ifENABLED(HAS_AUTOMATIC_VERSIONING)
#include"_Version.h"
#include"_Version.h"
#else
#else
#include"Default_Version.h"
#include"Default_Version.h"
@ -195,7 +195,7 @@ Here are some standard links for getting your machine calibrated:
#define PIDTEMP
#define PIDTEMP
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
#ifdef PIDTEMP
#ifENABLED(PIDTEMP)
//#define PID_DEBUG // Sends debug data to the serial port.
//#define PID_DEBUG // Sends debug data to the serial port.
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
//#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
//#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
@ -238,7 +238,7 @@ Here are some standard links for getting your machine calibrated:
//#define PID_BED_DEBUG // Sends debug data to the serial port.
//#define PID_BED_DEBUG // Sends debug data to the serial port.
#ifdef PIDTEMPBED
#ifENABLED(PIDTEMPBED)
#define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
#define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
@ -388,7 +388,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// In RAMPS uses servo pin 2. Can be changed in pins file. For other boards pin definition should be made.
// In RAMPS uses servo pin 2. Can be changed in pins file. For other boards pin definition should be made.
// It is assumed that when logic high = filament available
// It is assumed that when logic high = filament available
// when logic low = filament ran out
// when logic low = filament ran out
#ifdef FILAMENT_RUNOUT_SENSOR
#ifENABLED(FILAMENT_RUNOUT_SENSOR)
constboolFIL_RUNOUT_INVERTING=true;// Should be uncommented and true or false should assigned
constboolFIL_RUNOUT_INVERTING=true;// Should be uncommented and true or false should assigned
#define ENDSTOPPULLUP_FIL_RUNOUT // Uncomment to use internal pullup for filament runout pins if the sensor is defined.
#define ENDSTOPPULLUP_FIL_RUNOUT // Uncomment to use internal pullup for filament runout pins if the sensor is defined.
#define FILAMENT_RUNOUT_SCRIPT "M600"
#define FILAMENT_RUNOUT_SCRIPT "M600"
@ -401,11 +401,11 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// #define MANUAL_BED_LEVELING // Add display menu option for bed leveling
// #define MANUAL_BED_LEVELING // Add display menu option for bed leveling
// #define MESH_BED_LEVELING // Enable mesh bed leveling
// #define MESH_BED_LEVELING // Enable mesh bed leveling
#ifdef MANUAL_BED_LEVELING
#ifENABLED(MANUAL_BED_LEVELING)
#define MBL_Z_STEP 0.025 // Step size while manually probing Z axis
#define MBL_Z_STEP 0.025 // Step size while manually probing Z axis
#endif // MANUAL_BED_LEVELING
#endif // MANUAL_BED_LEVELING
#ifdef MESH_BED_LEVELING
#ifENABLED(MESH_BED_LEVELING)
#define MESH_MIN_X 10
#define MESH_MIN_X 10
#define MESH_MAX_X (X_MAX_POS - MESH_MIN_X)
#define MESH_MAX_X (X_MAX_POS - MESH_MIN_X)
#define MESH_MIN_Y 10
#define MESH_MIN_Y 10
@ -424,7 +424,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
//#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
//#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
//#define Z_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled.
//#define Z_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled.
#ifdef ENABLE_AUTO_BED_LEVELING
#ifENABLED(ENABLE_AUTO_BED_LEVELING)
// There are 2 different ways to specify probing locations
// There are 2 different ways to specify probing locations
//
//
@ -441,7 +441,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// Note: this feature generates 10KB extra code size
// Note: this feature generates 10KB extra code size
#define AUTO_BED_LEVELING_GRID
#define AUTO_BED_LEVELING_GRID
#ifdef AUTO_BED_LEVELING_GRID
#ifENABLED(AUTO_BED_LEVELING_GRID)
#define LEFT_PROBE_BED_POSITION 15
#define LEFT_PROBE_BED_POSITION 15
#define RIGHT_PROBE_BED_POSITION 170
#define RIGHT_PROBE_BED_POSITION 170
@ -498,7 +498,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// - Position the probe in a defined XY point before Z Homing when homing all axis (G28)
// - Position the probe in a defined XY point before Z Homing when homing all axis (G28)
// - Block Z homing only when the probe is outside bed area.
// - Block Z homing only when the probe is outside bed area.
#ifdef Z_SAFE_HOMING
#ifENABLED(Z_SAFE_HOMING)
#define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28)
#define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28)
#define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28)
#define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28)
@ -530,7 +530,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// Manual homing switch locations:
// Manual homing switch locations:
// For deltabots this means top and center of the Cartesian print volume.
// For deltabots this means top and center of the Cartesian print volume.
#ifdef MANUAL_HOME_POSITIONS
#ifENABLED(MANUAL_HOME_POSITIONS)
#define MANUAL_X_HOME_POS 0
#define MANUAL_X_HOME_POS 0
#define MANUAL_Y_HOME_POS 0
#define MANUAL_Y_HOME_POS 0
#define MANUAL_Z_HOME_POS 0
#define MANUAL_Z_HOME_POS 0
@ -569,8 +569,8 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// Custom M code points
// Custom M code points
#define CUSTOM_M_CODES
#define CUSTOM_M_CODES
#ifdef CUSTOM_M_CODES
#ifENABLED(CUSTOM_M_CODES)
#ifdef ENABLE_AUTO_BED_LEVELING
#ifENABLED(ENABLE_AUTO_BED_LEVELING)
#define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
#define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
#define Z_PROBE_OFFSET_RANGE_MIN -20
#define Z_PROBE_OFFSET_RANGE_MIN -20
#define Z_PROBE_OFFSET_RANGE_MAX 20
#define Z_PROBE_OFFSET_RANGE_MAX 20
@ -587,7 +587,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
//define this to enable EEPROM support
//define this to enable EEPROM support
//#define EEPROM_SETTINGS
//#define EEPROM_SETTINGS
#ifdef EEPROM_SETTINGS
#ifENABLED(EEPROM_SETTINGS)
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
#define EEPROM_CHITCHAT // Please keep turned on if you can.
#define EEPROM_CHITCHAT // Please keep turned on if you can.
#endif
#endif
@ -774,7 +774,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// With this option servos are powered only during movement, then turned off to prevent jitter.
// With this option servos are powered only during movement, then turned off to prevent jitter.
//#define DEACTIVATE_SERVOS_AFTER_MOVE
//#define DEACTIVATE_SERVOS_AFTER_MOVE
#ifdef DEACTIVATE_SERVOS_AFTER_MOVE
#ifENABLED(DEACTIVATE_SERVOS_AFTER_MOVE)
// Delay (in microseconds) before turning the servo off. This depends on the servo speed.
// Delay (in microseconds) before turning the servo off. This depends on the servo speed.
// 300ms is a good value but you can try less delay.
// 300ms is a good value but you can try less delay.
// If the servo can't reach the requested position, increase it.
// If the servo can't reach the requested position, increase it.
// On a RAMPS (or other 5 driver) motherboard, using this feature will limit you to using 1 extruder.
// On a RAMPS (or other 5 driver) motherboard, using this feature will limit you to using 1 extruder.
//#define Z_DUAL_STEPPER_DRIVERS
//#define Z_DUAL_STEPPER_DRIVERS
#ifdef Z_DUAL_STEPPER_DRIVERS
#ifENABLED(Z_DUAL_STEPPER_DRIVERS)
// Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
// Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
// That way the machine is capable to align the bed during home, since both Z steppers are homed.
// That way the machine is capable to align the bed during home, since both Z steppers are homed.
@ -150,7 +150,7 @@
// #define Z_DUAL_ENDSTOPS
// #define Z_DUAL_ENDSTOPS
#ifdef Z_DUAL_ENDSTOPS
#ifENABLED(Z_DUAL_ENDSTOPS)
#define Z2_MAX_PIN 36 //Endstop used for Z2 axis. In this case I'm using XMAX in a Rumba Board (pin 36)
#define Z2_MAX_PIN 36 //Endstop used for Z2 axis. In this case I'm using XMAX in a Rumba Board (pin 36)
constboolZ2_MAX_ENDSTOP_INVERTING=false;
constboolZ2_MAX_ENDSTOP_INVERTING=false;
#define DISABLE_XMAX_ENDSTOP //Better to disable the XMAX to avoid conflict. Just rename "XMAX_ENDSTOP" by the endstop you are using for Z2 axis.
#define DISABLE_XMAX_ENDSTOP //Better to disable the XMAX to avoid conflict. Just rename "XMAX_ENDSTOP" by the endstop you are using for Z2 axis.
@ -169,7 +169,7 @@
// prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage
// prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage
// allowing faster printing speeds.
// allowing faster printing speeds.
//#define DUAL_X_CARRIAGE
//#define DUAL_X_CARRIAGE
#ifdef DUAL_X_CARRIAGE
#ifENABLED(DUAL_X_CARRIAGE)
// Configuration for second X-carriage
// Configuration for second X-carriage
// Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
// Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
// the second x-carriage always homes to the maximum endstop.
// the second x-carriage always homes to the maximum endstop.
@ -240,7 +240,7 @@
// @section lcd
// @section lcd
#ifdef ULTIPANEL
#ifENABLED(ULTIPANEL)
#define MANUAL_FEEDRATE {50*60, 50*60, 4*60, 60} // Feedrates for manual moves along X, Y, Z, E from panel
#define MANUAL_FEEDRATE {50*60, 50*60, 4*60, 60} // Feedrates for manual moves along X, Y, Z, E from panel
#define ULTIPANEL_FEEDMULTIPLY // Comment to disable setting feedrate multiplier via encoder
#define ULTIPANEL_FEEDMULTIPLY // Comment to disable setting feedrate multiplier via encoder
#endif
#endif
@ -289,7 +289,7 @@
// @section lcd
// @section lcd
#ifdef SDSUPPORT
#ifENABLED(SDSUPPORT)
// If you are using a RAMPS board or cheap E-bay purchased boards that do not detect when an SD card is inserted
// If you are using a RAMPS board or cheap E-bay purchased boards that do not detect when an SD card is inserted
// You can get round this by connecting a push button or single throw switch to the pin defined as SDCARDCARDDETECT
// You can get round this by connecting a push button or single throw switch to the pin defined as SDCARDCARDDETECT
@ -310,7 +310,7 @@
// Show a progress bar on HD44780 LCDs for SD printing
// Show a progress bar on HD44780 LCDs for SD printing
//#define LCD_PROGRESS_BAR
//#define LCD_PROGRESS_BAR
#ifdef LCD_PROGRESS_BAR
#ifENABLED(LCD_PROGRESS_BAR)
// Amount of time (ms) to show the bar
// Amount of time (ms) to show the bar
#define PROGRESS_BAR_BAR_TIME 2000
#define PROGRESS_BAR_BAR_TIME 2000
// Amount of time (ms) to show the status message
// Amount of time (ms) to show the status message
@ -333,7 +333,7 @@
#endif // SDSUPPORT
#endif // SDSUPPORT
// for dogm lcd displays you can choose some additional fonts:
// for dogm lcd displays you can choose some additional fonts:
#ifdef DOGLCD
#ifENABLED(DOGLCD)
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT
// we don't have a big font for Cyrillic, Kana
// we don't have a big font for Cyrillic, Kana
//#define USE_BIG_EDIT_FONT
//#define USE_BIG_EDIT_FONT
@ -348,7 +348,7 @@
// The hardware watchdog should reset the microcontroller disabling all outputs, in case the firmware gets stuck and doesn't do temperature regulation.
// The hardware watchdog should reset the microcontroller disabling all outputs, in case the firmware gets stuck and doesn't do temperature regulation.
//#define USE_WATCHDOG
//#define USE_WATCHDOG
#ifdef USE_WATCHDOG
#ifENABLED(USE_WATCHDOG)
// If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on.
// If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on.
// The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset.
// The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset.
// 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.
// 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.
@ -361,7 +361,7 @@
// it can e.g. be used to change z-positions in the print startup phase in real-time
// it can e.g. be used to change z-positions in the print startup phase in real-time
// does not respect endstops!
// does not respect endstops!
//#define BABYSTEPPING
//#define BABYSTEPPING
#ifdef BABYSTEPPING
#ifENABLED(BABYSTEPPING)
#define BABYSTEP_XY //not only z, but also XY in the menu. more clutter, more functions
#define BABYSTEP_XY //not only z, but also XY in the menu. more clutter, more functions
#define BABYSTEP_INVERT_Z false //true for inverse movements in Z
#define BABYSTEP_INVERT_Z false //true for inverse movements in Z
#define BABYSTEP_Z_MULTIPLICATOR 2 //faster z movements
#define BABYSTEP_Z_MULTIPLICATOR 2 //faster z movements
@ -378,7 +378,7 @@
// so: v ^ 2 is proportional to number of steps we advance the extruder
// so: v ^ 2 is proportional to number of steps we advance the extruder
//#define ADVANCE
//#define ADVANCE
#ifdef ADVANCE
#ifENABLED(ADVANCE)
#define EXTRUDER_ADVANCE_K .0
#define EXTRUDER_ADVANCE_K .0
#define D_FILAMENT 1.75
#define D_FILAMENT 1.75
#define STEPS_MM_E 836
#define STEPS_MM_E 836
@ -405,7 +405,7 @@ const unsigned int dropsegments=5; //everything with less than this number of st
// The number of linear motions that can be in the plan at any give time.
// The number of linear motions that can be in the plan at any give time.
// 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.
// 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.
#ifdef SDSUPPORT
#ifENABLED(SDSUPPORT)
#define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
#define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
@ -63,7 +63,7 @@ Here are some standard links for getting your machine calibrated:
// @section info
// @section info
#ifdef HAS_AUTOMATIC_VERSIONING
#ifENABLED(HAS_AUTOMATIC_VERSIONING)
#include"_Version.h"
#include"_Version.h"
#else
#else
#include"Default_Version.h"
#include"Default_Version.h"
@ -220,7 +220,7 @@ Here are some standard links for getting your machine calibrated:
#define PIDTEMP
#define PIDTEMP
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
#ifdef PIDTEMP
#ifENABLED(PIDTEMP)
//#define PID_DEBUG // Sends debug data to the serial port.
//#define PID_DEBUG // Sends debug data to the serial port.
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
//#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
//#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
@ -262,7 +262,7 @@ Here are some standard links for getting your machine calibrated:
//#define PID_BED_DEBUG // Sends debug data to the serial port.
//#define PID_BED_DEBUG // Sends debug data to the serial port.
#ifdef PIDTEMPBED
#ifENABLED(PIDTEMPBED)
#define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
#define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
@ -416,7 +416,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// In RAMPS uses servo pin 2. Can be changed in pins file. For other boards pin definition should be made.
// In RAMPS uses servo pin 2. Can be changed in pins file. For other boards pin definition should be made.
// It is assumed that when logic high = filament available
// It is assumed that when logic high = filament available
// when logic low = filament ran out
// when logic low = filament ran out
#ifdef FILAMENT_RUNOUT_SENSOR
#ifENABLED(FILAMENT_RUNOUT_SENSOR)
constboolFIL_RUNOUT_INVERTING=true;// Should be uncommented and true or false should assigned
constboolFIL_RUNOUT_INVERTING=true;// Should be uncommented and true or false should assigned
#define ENDSTOPPULLUP_FIL_RUNOUT // Uncomment to use internal pullup for filament runout pins if the sensor is defined.
#define ENDSTOPPULLUP_FIL_RUNOUT // Uncomment to use internal pullup for filament runout pins if the sensor is defined.
#define FILAMENT_RUNOUT_SCRIPT "M600"
#define FILAMENT_RUNOUT_SCRIPT "M600"
@ -429,11 +429,11 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// #define MANUAL_BED_LEVELING // Add display menu option for bed leveling
// #define MANUAL_BED_LEVELING // Add display menu option for bed leveling
// #define MESH_BED_LEVELING // Enable mesh bed leveling
// #define MESH_BED_LEVELING // Enable mesh bed leveling
#ifdef MANUAL_BED_LEVELING
#ifENABLED(MANUAL_BED_LEVELING)
#define MBL_Z_STEP 0.025 // Step size while manually probing Z axis
#define MBL_Z_STEP 0.025 // Step size while manually probing Z axis
#endif // MANUAL_BED_LEVELING
#endif // MANUAL_BED_LEVELING
#ifdef MESH_BED_LEVELING
#ifENABLED(MESH_BED_LEVELING)
#define MESH_MIN_X 10
#define MESH_MIN_X 10
#define MESH_MAX_X (X_MAX_POS - MESH_MIN_X)
#define MESH_MAX_X (X_MAX_POS - MESH_MIN_X)
#define MESH_MIN_Y 10
#define MESH_MIN_Y 10
@ -452,7 +452,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
//#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
//#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
#define Z_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled.
#define Z_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled.
#ifdef ENABLE_AUTO_BED_LEVELING
#ifENABLED(ENABLE_AUTO_BED_LEVELING)
// There are 2 different ways to specify probing locations
// There are 2 different ways to specify probing locations
//
//
@ -469,7 +469,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// Note: this feature generates 10KB extra code size
// Note: this feature generates 10KB extra code size
#define AUTO_BED_LEVELING_GRID
#define AUTO_BED_LEVELING_GRID
#ifdef AUTO_BED_LEVELING_GRID
#ifENABLED(AUTO_BED_LEVELING_GRID)
#define LEFT_PROBE_BED_POSITION 15
#define LEFT_PROBE_BED_POSITION 15
#define RIGHT_PROBE_BED_POSITION 170
#define RIGHT_PROBE_BED_POSITION 170
@ -526,7 +526,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// - Position the probe in a defined XY point before Z Homing when homing all axis (G28)
// - Position the probe in a defined XY point before Z Homing when homing all axis (G28)
// - Block Z homing only when the probe is outside bed area.
// - Block Z homing only when the probe is outside bed area.
#ifdef Z_SAFE_HOMING
#ifENABLED(Z_SAFE_HOMING)
#define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28)
#define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28)
#define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28)
#define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28)
@ -558,7 +558,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// Manual homing switch locations:
// Manual homing switch locations:
// For deltabots this means top and center of the Cartesian print volume.
// For deltabots this means top and center of the Cartesian print volume.
#ifdef MANUAL_HOME_POSITIONS
#ifENABLED(MANUAL_HOME_POSITIONS)
// For SCARA: Offset between HomingPosition and Bed X=0 / Y=0
// For SCARA: Offset between HomingPosition and Bed X=0 / Y=0
#define MANUAL_X_HOME_POS -22.
#define MANUAL_X_HOME_POS -22.
#define MANUAL_Y_HOME_POS -52.
#define MANUAL_Y_HOME_POS -52.
@ -597,8 +597,8 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// Custom M code points
// Custom M code points
//#define CUSTOM_M_CODES
//#define CUSTOM_M_CODES
#ifdef CUSTOM_M_CODES
#ifENABLED(CUSTOM_M_CODES)
#ifdef ENABLE_AUTO_BED_LEVELING
#ifENABLED(ENABLE_AUTO_BED_LEVELING)
#define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
#define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
#define Z_PROBE_OFFSET_RANGE_MIN -20
#define Z_PROBE_OFFSET_RANGE_MIN -20
#define Z_PROBE_OFFSET_RANGE_MAX 20
#define Z_PROBE_OFFSET_RANGE_MAX 20
@ -615,7 +615,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
//define this to enable EEPROM support
//define this to enable EEPROM support
//#define EEPROM_SETTINGS
//#define EEPROM_SETTINGS
#ifdef EEPROM_SETTINGS
#ifENABLED(EEPROM_SETTINGS)
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
#define EEPROM_CHITCHAT // Please keep turned on if you can.
#define EEPROM_CHITCHAT // Please keep turned on if you can.
#endif
#endif
@ -799,7 +799,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// With this option servos are powered only during movement, then turned off to prevent jitter.
// With this option servos are powered only during movement, then turned off to prevent jitter.
//#define DEACTIVATE_SERVOS_AFTER_MOVE
//#define DEACTIVATE_SERVOS_AFTER_MOVE
#ifdef DEACTIVATE_SERVOS_AFTER_MOVE
#ifENABLED(DEACTIVATE_SERVOS_AFTER_MOVE)
// Delay (in microseconds) before turning the servo off. This depends on the servo speed.
// Delay (in microseconds) before turning the servo off. This depends on the servo speed.
// 300ms is a good value but you can try less delay.
// 300ms is a good value but you can try less delay.
// If the servo can't reach the requested position, increase it.
// If the servo can't reach the requested position, increase it.
// Also, if the temperature is set to a value <mintemp, it is not changed by autotemp.
// Also, if the temperature is set to a value <mintemp, it is not changed by autotemp.
// on an Ultimaker, some initial testing worked with M109 S215 B260 F1 in the start.gcode
// on an Ultimaker, some initial testing worked with M109 S215 B260 F1 in the start.gcode
#define AUTOTEMP
#define AUTOTEMP
#ifdef AUTOTEMP
#ifENABLED(AUTOTEMP)
#define AUTOTEMP_OLDWEIGHT 0.98
#define AUTOTEMP_OLDWEIGHT 0.98
#endif
#endif
@ -141,7 +141,7 @@
// On a RAMPS (or other 5 driver) motherboard, using this feature will limit you to using 1 extruder.
// On a RAMPS (or other 5 driver) motherboard, using this feature will limit you to using 1 extruder.
//#define Z_DUAL_STEPPER_DRIVERS
//#define Z_DUAL_STEPPER_DRIVERS
#ifdef Z_DUAL_STEPPER_DRIVERS
#ifENABLED(Z_DUAL_STEPPER_DRIVERS)
// Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
// Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
// That way the machine is capable to align the bed during home, since both Z steppers are homed.
// That way the machine is capable to align the bed during home, since both Z steppers are homed.
@ -158,7 +158,7 @@
// #define Z_DUAL_ENDSTOPS
// #define Z_DUAL_ENDSTOPS
#ifdef Z_DUAL_ENDSTOPS
#ifENABLED(Z_DUAL_ENDSTOPS)
#define Z2_MAX_PIN 36 //Endstop used for Z2 axis. In this case I'm using XMAX in a Rumba Board (pin 36)
#define Z2_MAX_PIN 36 //Endstop used for Z2 axis. In this case I'm using XMAX in a Rumba Board (pin 36)
constboolZ2_MAX_ENDSTOP_INVERTING=false;
constboolZ2_MAX_ENDSTOP_INVERTING=false;
#define DISABLE_XMAX_ENDSTOP //Better to disable the XMAX to avoid conflict. Just rename "XMAX_ENDSTOP" by the endstop you are using for Z2 axis.
#define DISABLE_XMAX_ENDSTOP //Better to disable the XMAX to avoid conflict. Just rename "XMAX_ENDSTOP" by the endstop you are using for Z2 axis.
@ -177,7 +177,7 @@
// prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage
// prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage
// allowing faster printing speeds.
// allowing faster printing speeds.
//#define DUAL_X_CARRIAGE
//#define DUAL_X_CARRIAGE
#ifdef DUAL_X_CARRIAGE
#ifENABLED(DUAL_X_CARRIAGE)
// Configuration for second X-carriage
// Configuration for second X-carriage
// Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
// Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
// the second x-carriage always homes to the maximum endstop.
// the second x-carriage always homes to the maximum endstop.
@ -248,7 +248,7 @@
// @section lcd
// @section lcd
#ifdef ULTIPANEL
#ifENABLED(ULTIPANEL)
#define MANUAL_FEEDRATE {50*60, 50*60, 10*60, 60} // Feedrates for manual moves along X, Y, Z, E from panel
#define MANUAL_FEEDRATE {50*60, 50*60, 10*60, 60} // Feedrates for manual moves along X, Y, Z, E from panel
#define ULTIPANEL_FEEDMULTIPLY // Comment to disable setting feedrate multiplier via encoder
#define ULTIPANEL_FEEDMULTIPLY // Comment to disable setting feedrate multiplier via encoder
#endif
#endif
@ -297,7 +297,7 @@
// @section lcd
// @section lcd
#ifdef SDSUPPORT
#ifENABLED(SDSUPPORT)
// If you are using a RAMPS board or cheap E-bay purchased boards that do not detect when an SD card is inserted
// If you are using a RAMPS board or cheap E-bay purchased boards that do not detect when an SD card is inserted
// You can get round this by connecting a push button or single throw switch to the pin defined as SDCARDCARDDETECT
// You can get round this by connecting a push button or single throw switch to the pin defined as SDCARDCARDDETECT
@ -316,7 +316,7 @@
// Show a progress bar on HD44780 LCDs for SD printing
// Show a progress bar on HD44780 LCDs for SD printing
//#define LCD_PROGRESS_BAR
//#define LCD_PROGRESS_BAR
#ifdef LCD_PROGRESS_BAR
#ifENABLED(LCD_PROGRESS_BAR)
// Amount of time (ms) to show the bar
// Amount of time (ms) to show the bar
#define PROGRESS_BAR_BAR_TIME 2000
#define PROGRESS_BAR_BAR_TIME 2000
// Amount of time (ms) to show the status message
// Amount of time (ms) to show the status message
@ -339,7 +339,7 @@
#endif // SDSUPPORT
#endif // SDSUPPORT
// for dogm lcd displays you can choose some additional fonts:
// for dogm lcd displays you can choose some additional fonts:
#ifdef DOGLCD
#ifENABLED(DOGLCD)
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT
// we don't have a big font for Cyrillic, Kana
// we don't have a big font for Cyrillic, Kana
//#define USE_BIG_EDIT_FONT
//#define USE_BIG_EDIT_FONT
@ -355,7 +355,7 @@
// The hardware watchdog should reset the microcontroller disabling all outputs, in case the firmware gets stuck and doesn't do temperature regulation.
// The hardware watchdog should reset the microcontroller disabling all outputs, in case the firmware gets stuck and doesn't do temperature regulation.
//#define USE_WATCHDOG
//#define USE_WATCHDOG
#ifdef USE_WATCHDOG
#ifENABLED(USE_WATCHDOG)
// If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on.
// If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on.
// The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset.
// The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset.
// 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.
// 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.
@ -368,7 +368,7 @@
// it can e.g. be used to change z-positions in the print startup phase in real-time
// it can e.g. be used to change z-positions in the print startup phase in real-time
// does not respect endstops!
// does not respect endstops!
//#define BABYSTEPPING
//#define BABYSTEPPING
#ifdef BABYSTEPPING
#ifENABLED(BABYSTEPPING)
#define BABYSTEP_XY //not only z, but also XY in the menu. more clutter, more functions
#define BABYSTEP_XY //not only z, but also XY in the menu. more clutter, more functions
#define BABYSTEP_INVERT_Z false //true for inverse movements in Z
#define BABYSTEP_INVERT_Z false //true for inverse movements in Z
#define BABYSTEP_Z_MULTIPLICATOR 2 //faster z movements
#define BABYSTEP_Z_MULTIPLICATOR 2 //faster z movements
@ -385,7 +385,7 @@
// so: v ^ 2 is proportional to number of steps we advance the extruder
// so: v ^ 2 is proportional to number of steps we advance the extruder
#define ADVANCE
#define ADVANCE
#ifdef ADVANCE
#ifENABLED(ADVANCE)
#define EXTRUDER_ADVANCE_K .0
#define EXTRUDER_ADVANCE_K .0
#define D_FILAMENT 1.75
#define D_FILAMENT 1.75
#define STEPS_MM_E 1000
#define STEPS_MM_E 1000
@ -412,7 +412,7 @@ const unsigned int dropsegments=5; //everything with less than this number of st
// The number of linear motions that can be in the plan at any give time.
// The number of linear motions that can be in the plan at any give time.
// 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.
// 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.
#ifdef SDSUPPORT
#ifENABLED(SDSUPPORT)
#define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
#define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
@ -38,7 +38,7 @@ Here are some standard links for getting your machine calibrated:
// @section info
// @section info
#ifdef HAS_AUTOMATIC_VERSIONING
#ifENABLED(HAS_AUTOMATIC_VERSIONING)
#include"_Version.h"
#include"_Version.h"
#else
#else
#include"Default_Version.h"
#include"Default_Version.h"
@ -198,7 +198,7 @@ Here are some standard links for getting your machine calibrated:
#define PIDTEMP
#define PIDTEMP
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
#ifdef PIDTEMP
#ifENABLED(PIDTEMP)
//#define PID_DEBUG // Sends debug data to the serial port.
//#define PID_DEBUG // Sends debug data to the serial port.
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
//#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
//#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
@ -240,7 +240,7 @@ Here are some standard links for getting your machine calibrated:
//#define PID_BED_DEBUG // Sends debug data to the serial port.
//#define PID_BED_DEBUG // Sends debug data to the serial port.
#ifdef PIDTEMPBED
#ifENABLED(PIDTEMPBED)
#define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
#define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
@ -400,7 +400,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic
// In RAMPS uses servo pin 2. Can be changed in pins file. For other boards pin definition should be made.
// In RAMPS uses servo pin 2. Can be changed in pins file. For other boards pin definition should be made.
// It is assumed that when logic high = filament available
// It is assumed that when logic high = filament available
// when logic low = filament ran out
// when logic low = filament ran out
#ifdef FILAMENT_RUNOUT_SENSOR
#ifENABLED(FILAMENT_RUNOUT_SENSOR)
constboolFIL_RUNOUT_INVERTING=true;// Should be uncommented and true or false should assigned
constboolFIL_RUNOUT_INVERTING=true;// Should be uncommented and true or false should assigned
#define ENDSTOPPULLUP_FIL_RUNOUT // Uncomment to use internal pullup for filament runout pins if the sensor is defined.
#define ENDSTOPPULLUP_FIL_RUNOUT // Uncomment to use internal pullup for filament runout pins if the sensor is defined.
#define FILAMENT_RUNOUT_SCRIPT "M600"
#define FILAMENT_RUNOUT_SCRIPT "M600"
@ -413,11 +413,11 @@ const bool Z_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic
// #define MANUAL_BED_LEVELING // Add display menu option for bed leveling
// #define MANUAL_BED_LEVELING // Add display menu option for bed leveling
// #define MESH_BED_LEVELING // Enable mesh bed leveling
// #define MESH_BED_LEVELING // Enable mesh bed leveling
#ifdef MANUAL_BED_LEVELING
#ifENABLED(MANUAL_BED_LEVELING)
#define MBL_Z_STEP 0.025 // Step size while manually probing Z axis
#define MBL_Z_STEP 0.025 // Step size while manually probing Z axis
#endif // MANUAL_BED_LEVELING
#endif // MANUAL_BED_LEVELING
#ifdef MESH_BED_LEVELING
#ifENABLED(MESH_BED_LEVELING)
#define MESH_MIN_X 10
#define MESH_MIN_X 10
#define MESH_MAX_X (X_MAX_POS - MESH_MIN_X)
#define MESH_MAX_X (X_MAX_POS - MESH_MIN_X)
#define MESH_MIN_Y 10
#define MESH_MIN_Y 10
@ -436,7 +436,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic
//#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
//#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
#define Z_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled.
#define Z_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled.
#ifdef ENABLE_AUTO_BED_LEVELING
#ifENABLED(ENABLE_AUTO_BED_LEVELING)
// There are 2 different ways to specify probing locations
// There are 2 different ways to specify probing locations
//
//
@ -453,7 +453,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic
// Note: this feature generates 10KB extra code size
// Note: this feature generates 10KB extra code size
#define AUTO_BED_LEVELING_GRID
#define AUTO_BED_LEVELING_GRID
#ifdef AUTO_BED_LEVELING_GRID
#ifENABLED(AUTO_BED_LEVELING_GRID)
#define LEFT_PROBE_BED_POSITION 15
#define LEFT_PROBE_BED_POSITION 15
#define RIGHT_PROBE_BED_POSITION 170
#define RIGHT_PROBE_BED_POSITION 170
@ -510,7 +510,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic
// - Position the probe in a defined XY point before Z Homing when homing all axis (G28)
// - Position the probe in a defined XY point before Z Homing when homing all axis (G28)
// - Block Z homing only when the probe is outside bed area.
// - Block Z homing only when the probe is outside bed area.
#ifdef Z_SAFE_HOMING
#ifENABLED(Z_SAFE_HOMING)
#define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28)
#define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28)
#define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28)
#define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28)
@ -542,7 +542,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic
// Manual homing switch locations:
// Manual homing switch locations:
// For deltabots this means top and center of the Cartesian print volume.
// For deltabots this means top and center of the Cartesian print volume.
#ifdef MANUAL_HOME_POSITIONS
#ifENABLED(MANUAL_HOME_POSITIONS)
#define MANUAL_X_HOME_POS 0
#define MANUAL_X_HOME_POS 0
#define MANUAL_Y_HOME_POS 0
#define MANUAL_Y_HOME_POS 0
#define MANUAL_Z_HOME_POS 0
#define MANUAL_Z_HOME_POS 0
@ -581,8 +581,8 @@ const bool Z_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic
// Custom M code points
// Custom M code points
#define CUSTOM_M_CODES
#define CUSTOM_M_CODES
#ifdef CUSTOM_M_CODES
#ifENABLED(CUSTOM_M_CODES)
#ifdef ENABLE_AUTO_BED_LEVELING
#ifENABLED(ENABLE_AUTO_BED_LEVELING)
#define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
#define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
#define Z_PROBE_OFFSET_RANGE_MIN -20
#define Z_PROBE_OFFSET_RANGE_MIN -20
#define Z_PROBE_OFFSET_RANGE_MAX 20
#define Z_PROBE_OFFSET_RANGE_MAX 20
@ -599,7 +599,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic
//define this to enable EEPROM support
//define this to enable EEPROM support
//#define EEPROM_SETTINGS
//#define EEPROM_SETTINGS
#ifdef EEPROM_SETTINGS
#ifENABLED(EEPROM_SETTINGS)
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
#define EEPROM_CHITCHAT // Please keep turned on if you can.
#define EEPROM_CHITCHAT // Please keep turned on if you can.
#endif
#endif
@ -783,7 +783,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic
// With this option servos are powered only during movement, then turned off to prevent jitter.
// With this option servos are powered only during movement, then turned off to prevent jitter.
//#define DEACTIVATE_SERVOS_AFTER_MOVE
//#define DEACTIVATE_SERVOS_AFTER_MOVE
#ifdef DEACTIVATE_SERVOS_AFTER_MOVE
#ifENABLED(DEACTIVATE_SERVOS_AFTER_MOVE)
// Delay (in microseconds) before turning the servo off. This depends on the servo speed.
// Delay (in microseconds) before turning the servo off. This depends on the servo speed.
// 300ms is a good value but you can try less delay.
// 300ms is a good value but you can try less delay.
// If the servo can't reach the requested position, increase it.
// If the servo can't reach the requested position, increase it.
// Also, if the temperature is set to a value <mintemp, it is not changed by autotemp.
// Also, if the temperature is set to a value <mintemp, it is not changed by autotemp.
// on an Ultimaker, some initial testing worked with M109 S215 B260 F1 in the start.gcode
// on an Ultimaker, some initial testing worked with M109 S215 B260 F1 in the start.gcode
#define AUTOTEMP
#define AUTOTEMP
#ifdef AUTOTEMP
#ifENABLED(AUTOTEMP)
#define AUTOTEMP_OLDWEIGHT 0.98
#define AUTOTEMP_OLDWEIGHT 0.98
#endif
#endif
@ -141,7 +141,7 @@
// On a RAMPS (or other 5 driver) motherboard, using this feature will limit you to using 1 extruder.
// On a RAMPS (or other 5 driver) motherboard, using this feature will limit you to using 1 extruder.
//#define Z_DUAL_STEPPER_DRIVERS
//#define Z_DUAL_STEPPER_DRIVERS
#ifdef Z_DUAL_STEPPER_DRIVERS
#ifENABLED(Z_DUAL_STEPPER_DRIVERS)
// Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
// Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
// That way the machine is capable to align the bed during home, since both Z steppers are homed.
// That way the machine is capable to align the bed during home, since both Z steppers are homed.
@ -158,7 +158,7 @@
// #define Z_DUAL_ENDSTOPS
// #define Z_DUAL_ENDSTOPS
#ifdef Z_DUAL_ENDSTOPS
#ifENABLED(Z_DUAL_ENDSTOPS)
#define Z2_MAX_PIN 36 //Endstop used for Z2 axis. In this case I'm using XMAX in a Rumba Board (pin 36)
#define Z2_MAX_PIN 36 //Endstop used for Z2 axis. In this case I'm using XMAX in a Rumba Board (pin 36)
constboolZ2_MAX_ENDSTOP_INVERTING=false;
constboolZ2_MAX_ENDSTOP_INVERTING=false;
#define DISABLE_XMAX_ENDSTOP //Better to disable the XMAX to avoid conflict. Just rename "XMAX_ENDSTOP" by the endstop you are using for Z2 axis.
#define DISABLE_XMAX_ENDSTOP //Better to disable the XMAX to avoid conflict. Just rename "XMAX_ENDSTOP" by the endstop you are using for Z2 axis.
@ -177,7 +177,7 @@
// prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage
// prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage
// allowing faster printing speeds.
// allowing faster printing speeds.
//#define DUAL_X_CARRIAGE
//#define DUAL_X_CARRIAGE
#ifdef DUAL_X_CARRIAGE
#ifENABLED(DUAL_X_CARRIAGE)
// Configuration for second X-carriage
// Configuration for second X-carriage
// Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
// Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
// the second x-carriage always homes to the maximum endstop.
// the second x-carriage always homes to the maximum endstop.
@ -248,7 +248,7 @@
// @section lcd
// @section lcd
#ifdef ULTIPANEL
#ifENABLED(ULTIPANEL)
#define MANUAL_FEEDRATE {120*60, 120*60, 18*60, 60} // Feedrates for manual moves along X, Y, Z, E from panel
#define MANUAL_FEEDRATE {120*60, 120*60, 18*60, 60} // Feedrates for manual moves along X, Y, Z, E from panel
#define ULTIPANEL_FEEDMULTIPLY // Comment to disable setting feedrate multiplier via encoder
#define ULTIPANEL_FEEDMULTIPLY // Comment to disable setting feedrate multiplier via encoder
#endif
#endif
@ -297,7 +297,7 @@
// @section lcd
// @section lcd
#ifdef SDSUPPORT
#ifENABLED(SDSUPPORT)
// If you are using a RAMPS board or cheap E-bay purchased boards that do not detect when an SD card is inserted
// If you are using a RAMPS board or cheap E-bay purchased boards that do not detect when an SD card is inserted
// You can get round this by connecting a push button or single throw switch to the pin defined as SDCARDCARDDETECT
// You can get round this by connecting a push button or single throw switch to the pin defined as SDCARDCARDDETECT
@ -316,7 +316,7 @@
// Show a progress bar on HD44780 LCDs for SD printing
// Show a progress bar on HD44780 LCDs for SD printing
//#define LCD_PROGRESS_BAR
//#define LCD_PROGRESS_BAR
#ifdef LCD_PROGRESS_BAR
#ifENABLED(LCD_PROGRESS_BAR)
// Amount of time (ms) to show the bar
// Amount of time (ms) to show the bar
#define PROGRESS_BAR_BAR_TIME 2000
#define PROGRESS_BAR_BAR_TIME 2000
// Amount of time (ms) to show the status message
// Amount of time (ms) to show the status message
@ -339,7 +339,7 @@
#endif // SDSUPPORT
#endif // SDSUPPORT
// for dogm lcd displays you can choose some additional fonts:
// for dogm lcd displays you can choose some additional fonts:
#ifdef DOGLCD
#ifENABLED(DOGLCD)
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT
// we don't have a big font for Cyrillic, Kana
// we don't have a big font for Cyrillic, Kana
//#define USE_BIG_EDIT_FONT
//#define USE_BIG_EDIT_FONT
@ -355,7 +355,7 @@
// The hardware watchdog should reset the microcontroller disabling all outputs, in case the firmware gets stuck and doesn't do temperature regulation.
// The hardware watchdog should reset the microcontroller disabling all outputs, in case the firmware gets stuck and doesn't do temperature regulation.
//#define USE_WATCHDOG
//#define USE_WATCHDOG
#ifdef USE_WATCHDOG
#ifENABLED(USE_WATCHDOG)
// If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on.
// If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on.
// The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset.
// The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset.
// 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.
// 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.
@ -368,7 +368,7 @@
// it can e.g. be used to change z-positions in the print startup phase in real-time
// it can e.g. be used to change z-positions in the print startup phase in real-time
// does not respect endstops!
// does not respect endstops!
//#define BABYSTEPPING
//#define BABYSTEPPING
#ifdef BABYSTEPPING
#ifENABLED(BABYSTEPPING)
#define BABYSTEP_XY //not only z, but also XY in the menu. more clutter, more functions
#define BABYSTEP_XY //not only z, but also XY in the menu. more clutter, more functions
#define BABYSTEP_INVERT_Z false //true for inverse movements in Z
#define BABYSTEP_INVERT_Z false //true for inverse movements in Z
#define BABYSTEP_Z_MULTIPLICATOR 2 //faster z movements
#define BABYSTEP_Z_MULTIPLICATOR 2 //faster z movements
@ -385,7 +385,7 @@
// so: v ^ 2 is proportional to number of steps we advance the extruder
// so: v ^ 2 is proportional to number of steps we advance the extruder
//#define ADVANCE
//#define ADVANCE
#ifdef ADVANCE
#ifENABLED(ADVANCE)
#define EXTRUDER_ADVANCE_K .0
#define EXTRUDER_ADVANCE_K .0
#define D_FILAMENT 1.75
#define D_FILAMENT 1.75
#define STEPS_MM_E 100.47095761381482
#define STEPS_MM_E 100.47095761381482
@ -412,7 +412,7 @@ const unsigned int dropsegments=5; //everything with less than this number of st
// The number of linear motions that can be in the plan at any give time.
// The number of linear motions that can be in the plan at any give time.
// 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.
// 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.
#ifdef SDSUPPORT
#ifENABLED(SDSUPPORT)
#define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
#define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
@ -38,7 +38,7 @@ Here are some standard links for getting your machine calibrated:
// @section info
// @section info
#ifdef HAS_AUTOMATIC_VERSIONING
#ifENABLED(HAS_AUTOMATIC_VERSIONING)
#include"_Version.h"
#include"_Version.h"
#else
#else
#include"Default_Version.h"
#include"Default_Version.h"
@ -195,7 +195,7 @@ Here are some standard links for getting your machine calibrated:
#define PIDTEMP
#define PIDTEMP
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
#ifdef PIDTEMP
#ifENABLED(PIDTEMP)
//#define PID_DEBUG // Sends debug data to the serial port.
//#define PID_DEBUG // Sends debug data to the serial port.
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
//#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
//#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
@ -248,7 +248,7 @@ Here are some standard links for getting your machine calibrated:
//#define PID_BED_DEBUG // Sends debug data to the serial port.
//#define PID_BED_DEBUG // Sends debug data to the serial port.
#ifdef PIDTEMPBED
#ifENABLED(PIDTEMPBED)
#define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
#define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
@ -408,7 +408,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// In RAMPS uses servo pin 2. Can be changed in pins file. For other boards pin definition should be made.
// In RAMPS uses servo pin 2. Can be changed in pins file. For other boards pin definition should be made.
// It is assumed that when logic high = filament available
// It is assumed that when logic high = filament available
// when logic low = filament ran out
// when logic low = filament ran out
#ifdef FILAMENT_RUNOUT_SENSOR
#ifENABLED(FILAMENT_RUNOUT_SENSOR)
constboolFIL_RUNOUT_INVERTING=true;// Should be uncommented and true or false should assigned
constboolFIL_RUNOUT_INVERTING=true;// Should be uncommented and true or false should assigned
#define ENDSTOPPULLUP_FIL_RUNOUT // Uncomment to use internal pullup for filament runout pins if the sensor is defined.
#define ENDSTOPPULLUP_FIL_RUNOUT // Uncomment to use internal pullup for filament runout pins if the sensor is defined.
#define FILAMENT_RUNOUT_SCRIPT "M600"
#define FILAMENT_RUNOUT_SCRIPT "M600"
@ -421,11 +421,11 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// #define MANUAL_BED_LEVELING // Add display menu option for bed leveling
// #define MANUAL_BED_LEVELING // Add display menu option for bed leveling
// #define MESH_BED_LEVELING // Enable mesh bed leveling
// #define MESH_BED_LEVELING // Enable mesh bed leveling
#ifdef MANUAL_BED_LEVELING
#ifENABLED(MANUAL_BED_LEVELING)
#define MBL_Z_STEP 0.025 // Step size while manually probing Z axis
#define MBL_Z_STEP 0.025 // Step size while manually probing Z axis
#endif // MANUAL_BED_LEVELING
#endif // MANUAL_BED_LEVELING
#ifdef MESH_BED_LEVELING
#ifENABLED(MESH_BED_LEVELING)
#define MESH_MIN_X 10
#define MESH_MIN_X 10
#define MESH_MAX_X (X_MAX_POS - MESH_MIN_X)
#define MESH_MAX_X (X_MAX_POS - MESH_MIN_X)
#define MESH_MIN_Y 10
#define MESH_MIN_Y 10
@ -444,7 +444,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
//#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
//#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
#define Z_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled.
#define Z_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled.
#ifdef ENABLE_AUTO_BED_LEVELING
#ifENABLED(ENABLE_AUTO_BED_LEVELING)
// There are 2 different ways to specify probing locations
// There are 2 different ways to specify probing locations
//
//
@ -461,7 +461,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// Note: this feature generates 10KB extra code size
// Note: this feature generates 10KB extra code size
#define AUTO_BED_LEVELING_GRID
#define AUTO_BED_LEVELING_GRID
#ifdef AUTO_BED_LEVELING_GRID
#ifENABLED(AUTO_BED_LEVELING_GRID)
#define LEFT_PROBE_BED_POSITION 15
#define LEFT_PROBE_BED_POSITION 15
#define RIGHT_PROBE_BED_POSITION 170
#define RIGHT_PROBE_BED_POSITION 170
@ -518,7 +518,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// - Position the probe in a defined XY point before Z Homing when homing all axis (G28)
// - Position the probe in a defined XY point before Z Homing when homing all axis (G28)
// - Block Z homing only when the probe is outside bed area.
// - Block Z homing only when the probe is outside bed area.
#ifdef Z_SAFE_HOMING
#ifENABLED(Z_SAFE_HOMING)
#define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28)
#define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28)
#define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28)
#define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28)
@ -550,7 +550,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// Manual homing switch locations:
// Manual homing switch locations:
// For deltabots this means top and center of the Cartesian print volume.
// For deltabots this means top and center of the Cartesian print volume.
#ifdef MANUAL_HOME_POSITIONS
#ifENABLED(MANUAL_HOME_POSITIONS)
#define MANUAL_X_HOME_POS 0
#define MANUAL_X_HOME_POS 0
#define MANUAL_Y_HOME_POS 0
#define MANUAL_Y_HOME_POS 0
#define MANUAL_Z_HOME_POS 0
#define MANUAL_Z_HOME_POS 0
@ -589,8 +589,8 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// Custom M code points
// Custom M code points
#define CUSTOM_M_CODES
#define CUSTOM_M_CODES
#ifdef CUSTOM_M_CODES
#ifENABLED(CUSTOM_M_CODES)
#ifdef ENABLE_AUTO_BED_LEVELING
#ifENABLED(ENABLE_AUTO_BED_LEVELING)
#define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
#define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
#define Z_PROBE_OFFSET_RANGE_MIN -20
#define Z_PROBE_OFFSET_RANGE_MIN -20
#define Z_PROBE_OFFSET_RANGE_MAX 20
#define Z_PROBE_OFFSET_RANGE_MAX 20
@ -607,7 +607,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
//define this to enable EEPROM support
//define this to enable EEPROM support
//#define EEPROM_SETTINGS
//#define EEPROM_SETTINGS
#ifdef EEPROM_SETTINGS
#ifENABLED(EEPROM_SETTINGS)
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
#define EEPROM_CHITCHAT // Please keep turned on if you can.
#define EEPROM_CHITCHAT // Please keep turned on if you can.
#endif
#endif
@ -791,7 +791,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// With this option servos are powered only during movement, then turned off to prevent jitter.
// With this option servos are powered only during movement, then turned off to prevent jitter.
//#define DEACTIVATE_SERVOS_AFTER_MOVE
//#define DEACTIVATE_SERVOS_AFTER_MOVE
#ifdef DEACTIVATE_SERVOS_AFTER_MOVE
#ifENABLED(DEACTIVATE_SERVOS_AFTER_MOVE)
// Delay (in microseconds) before turning the servo off. This depends on the servo speed.
// Delay (in microseconds) before turning the servo off. This depends on the servo speed.
// 300ms is a good value but you can try less delay.
// 300ms is a good value but you can try less delay.
// If the servo can't reach the requested position, increase it.
// If the servo can't reach the requested position, increase it.
@ -38,7 +38,7 @@ Here are some standard links for getting your machine calibrated:
// @section info
// @section info
#ifdef HAS_AUTOMATIC_VERSIONING
#ifENABLED(HAS_AUTOMATIC_VERSIONING)
#include"_Version.h"
#include"_Version.h"
#else
#else
#include"Default_Version.h"
#include"Default_Version.h"
@ -195,7 +195,7 @@ Here are some standard links for getting your machine calibrated:
#define PIDTEMP
#define PIDTEMP
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
#ifdef PIDTEMP
#ifENABLED(PIDTEMP)
//#define PID_DEBUG // Sends debug data to the serial port.
//#define PID_DEBUG // Sends debug data to the serial port.
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
//#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
//#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
@ -248,7 +248,7 @@ Here are some standard links for getting your machine calibrated:
//#define PID_BED_DEBUG // Sends debug data to the serial port.
//#define PID_BED_DEBUG // Sends debug data to the serial port.
#ifdef PIDTEMPBED
#ifENABLED(PIDTEMPBED)
#define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
#define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
@ -316,7 +316,7 @@ Here are some standard links for getting your machine calibrated:
// Enable DELTA kinematics and most of the default configuration for Deltas
// Enable DELTA kinematics and most of the default configuration for Deltas
#define DELTA
#define DELTA
#ifdef DELTA
#ifENABLED(DELTA)
// Make delta curves from many straight lines (linear interpolation).
// Make delta curves from many straight lines (linear interpolation).
// This is a trade-off between visible corners (not enough segments)
// This is a trade-off between visible corners (not enough segments)
@ -443,7 +443,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic
// In RAMPS uses servo pin 2. Can be changed in pins file. For other boards pin definition should be made.
// In RAMPS uses servo pin 2. Can be changed in pins file. For other boards pin definition should be made.
// It is assumed that when logic high = filament available
// It is assumed that when logic high = filament available
// when logic low = filament ran out
// when logic low = filament ran out
#ifdef FILAMENT_RUNOUT_SENSOR
#ifENABLED(FILAMENT_RUNOUT_SENSOR)
constboolFIL_RUNOUT_INVERTING=true;// Should be uncommented and true or false should assigned
constboolFIL_RUNOUT_INVERTING=true;// Should be uncommented and true or false should assigned
#define ENDSTOPPULLUP_FIL_RUNOUT // Uncomment to use internal pullup for filament runout pins if the sensor is defined.
#define ENDSTOPPULLUP_FIL_RUNOUT // Uncomment to use internal pullup for filament runout pins if the sensor is defined.
#define FILAMENT_RUNOUT_SCRIPT "M600"
#define FILAMENT_RUNOUT_SCRIPT "M600"
@ -456,11 +456,11 @@ const bool Z_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic
// #define MANUAL_BED_LEVELING // Add display menu option for bed leveling
// #define MANUAL_BED_LEVELING // Add display menu option for bed leveling
// #define MESH_BED_LEVELING // Enable mesh bed leveling
// #define MESH_BED_LEVELING // Enable mesh bed leveling
#ifdef MANUAL_BED_LEVELING
#ifENABLED(MANUAL_BED_LEVELING)
#define MBL_Z_STEP 0.025 // Step size while manually probing Z axis
#define MBL_Z_STEP 0.025 // Step size while manually probing Z axis
#endif // MANUAL_BED_LEVELING
#endif // MANUAL_BED_LEVELING
#ifdef MESH_BED_LEVELING
#ifENABLED(MESH_BED_LEVELING)
#define MESH_MIN_X 10
#define MESH_MIN_X 10
#define MESH_MAX_X (X_MAX_POS - MESH_MIN_X)
#define MESH_MAX_X (X_MAX_POS - MESH_MIN_X)
#define MESH_MIN_Y 10
#define MESH_MIN_Y 10
@ -479,7 +479,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic
//#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
//#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
//#define Z_PROBE_REPEATABILITY_TEST // Z-Probe Repeatability test is not supported in Deltas yet.
//#define Z_PROBE_REPEATABILITY_TEST // Z-Probe Repeatability test is not supported in Deltas yet.
#ifdef ENABLE_AUTO_BED_LEVELING
#ifENABLED(ENABLE_AUTO_BED_LEVELING)
// There are 2 different ways to specify probing locations
// There are 2 different ways to specify probing locations
//
//
@ -496,7 +496,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic
// Note: this feature generates 10KB extra code size
// Note: this feature generates 10KB extra code size
#define AUTO_BED_LEVELING_GRID // Deltas only support grid mode
#define AUTO_BED_LEVELING_GRID // Deltas only support grid mode
// Also, if the temperature is set to a value <mintemp, it is not changed by autotemp.
// Also, if the temperature is set to a value <mintemp, it is not changed by autotemp.
// on an Ultimaker, some initial testing worked with M109 S215 B260 F1 in the start.gcode
// on an Ultimaker, some initial testing worked with M109 S215 B260 F1 in the start.gcode
#define AUTOTEMP
#define AUTOTEMP
#ifdef AUTOTEMP
#ifENABLED(AUTOTEMP)
#define AUTOTEMP_OLDWEIGHT 0.98
#define AUTOTEMP_OLDWEIGHT 0.98
#endif
#endif
@ -141,7 +141,7 @@
// On a RAMPS (or other 5 driver) motherboard, using this feature will limit you to using 1 extruder.
// On a RAMPS (or other 5 driver) motherboard, using this feature will limit you to using 1 extruder.
//#define Z_DUAL_STEPPER_DRIVERS
//#define Z_DUAL_STEPPER_DRIVERS
#ifdef Z_DUAL_STEPPER_DRIVERS
#ifENABLED(Z_DUAL_STEPPER_DRIVERS)
// Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
// Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
// That way the machine is capable to align the bed during home, since both Z steppers are homed.
// That way the machine is capable to align the bed during home, since both Z steppers are homed.
@ -158,7 +158,7 @@
// #define Z_DUAL_ENDSTOPS
// #define Z_DUAL_ENDSTOPS
#ifdef Z_DUAL_ENDSTOPS
#ifENABLED(Z_DUAL_ENDSTOPS)
#define Z2_MAX_PIN 36 //Endstop used for Z2 axis. In this case I'm using XMAX in a Rumba Board (pin 36)
#define Z2_MAX_PIN 36 //Endstop used for Z2 axis. In this case I'm using XMAX in a Rumba Board (pin 36)
constboolZ2_MAX_ENDSTOP_INVERTING=false;
constboolZ2_MAX_ENDSTOP_INVERTING=false;
#define DISABLE_XMAX_ENDSTOP //Better to disable the XMAX to avoid conflict. Just rename "XMAX_ENDSTOP" by the endstop you are using for Z2 axis.
#define DISABLE_XMAX_ENDSTOP //Better to disable the XMAX to avoid conflict. Just rename "XMAX_ENDSTOP" by the endstop you are using for Z2 axis.
@ -177,7 +177,7 @@
// prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage
// prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage
// allowing faster printing speeds.
// allowing faster printing speeds.
//#define DUAL_X_CARRIAGE
//#define DUAL_X_CARRIAGE
#ifdef DUAL_X_CARRIAGE
#ifENABLED(DUAL_X_CARRIAGE)
// Configuration for second X-carriage
// Configuration for second X-carriage
// Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
// Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
// the second x-carriage always homes to the maximum endstop.
// the second x-carriage always homes to the maximum endstop.
@ -248,7 +248,7 @@
// @section lcd
// @section lcd
#ifdef ULTIPANEL
#ifENABLED(ULTIPANEL)
#define MANUAL_FEEDRATE {50*60, 50*60, 4*60, 60} // Feedrates for manual moves along X, Y, Z, E from panel
#define MANUAL_FEEDRATE {50*60, 50*60, 4*60, 60} // Feedrates for manual moves along X, Y, Z, E from panel
#define ULTIPANEL_FEEDMULTIPLY // Comment to disable setting feedrate multiplier via encoder
#define ULTIPANEL_FEEDMULTIPLY // Comment to disable setting feedrate multiplier via encoder
#endif
#endif
@ -298,7 +298,7 @@
// @section lcd
// @section lcd
#ifdef SDSUPPORT
#ifENABLED(SDSUPPORT)
// If you are using a RAMPS board or cheap E-bay purchased boards that do not detect when an SD card is inserted
// If you are using a RAMPS board or cheap E-bay purchased boards that do not detect when an SD card is inserted
// You can get round this by connecting a push button or single throw switch to the pin defined as SDCARDCARDDETECT
// You can get round this by connecting a push button or single throw switch to the pin defined as SDCARDCARDDETECT
@ -317,7 +317,7 @@
// Show a progress bar on HD44780 LCDs for SD printing
// Show a progress bar on HD44780 LCDs for SD printing
//#define LCD_PROGRESS_BAR
//#define LCD_PROGRESS_BAR
#ifdef LCD_PROGRESS_BAR
#ifENABLED(LCD_PROGRESS_BAR)
// Amount of time (ms) to show the bar
// Amount of time (ms) to show the bar
#define PROGRESS_BAR_BAR_TIME 2000
#define PROGRESS_BAR_BAR_TIME 2000
// Amount of time (ms) to show the status message
// Amount of time (ms) to show the status message
@ -340,7 +340,7 @@
#endif // SDSUPPORT
#endif // SDSUPPORT
// for dogm lcd displays you can choose some additional fonts:
// for dogm lcd displays you can choose some additional fonts:
#ifdef DOGLCD
#ifENABLED(DOGLCD)
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT
// we don't have a big font for Cyrillic, Kana
// we don't have a big font for Cyrillic, Kana
//#define USE_BIG_EDIT_FONT
//#define USE_BIG_EDIT_FONT
@ -355,7 +355,7 @@
// The hardware watchdog should reset the microcontroller disabling all outputs, in case the firmware gets stuck and doesn't do temperature regulation.
// The hardware watchdog should reset the microcontroller disabling all outputs, in case the firmware gets stuck and doesn't do temperature regulation.
//#define USE_WATCHDOG
//#define USE_WATCHDOG
#ifdef USE_WATCHDOG
#ifENABLED(USE_WATCHDOG)
// If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on.
// If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on.
// The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset.
// The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset.
// 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.
// 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.
@ -368,7 +368,7 @@
// it can e.g. be used to change z-positions in the print startup phase in real-time
// it can e.g. be used to change z-positions in the print startup phase in real-time
// does not respect endstops!
// does not respect endstops!
//#define BABYSTEPPING
//#define BABYSTEPPING
#ifdef BABYSTEPPING
#ifENABLED(BABYSTEPPING)
#define BABYSTEP_XY //not only z, but also XY in the menu. more clutter, more functions
#define BABYSTEP_XY //not only z, but also XY in the menu. more clutter, more functions
#define BABYSTEP_INVERT_Z false //true for inverse movements in Z
#define BABYSTEP_INVERT_Z false //true for inverse movements in Z
#define BABYSTEP_Z_MULTIPLICATOR 2 //faster z movements
#define BABYSTEP_Z_MULTIPLICATOR 2 //faster z movements
@ -385,7 +385,7 @@
// so: v ^ 2 is proportional to number of steps we advance the extruder
// so: v ^ 2 is proportional to number of steps we advance the extruder
//#define ADVANCE
//#define ADVANCE
#ifdef ADVANCE
#ifENABLED(ADVANCE)
#define EXTRUDER_ADVANCE_K .0
#define EXTRUDER_ADVANCE_K .0
#define D_FILAMENT 2.85
#define D_FILAMENT 2.85
#define STEPS_MM_E 836
#define STEPS_MM_E 836
@ -412,7 +412,7 @@ const unsigned int dropsegments=5; //everything with less than this number of st
// The number of linear motions that can be in the plan at any give time.
// The number of linear motions that can be in the plan at any give time.
// 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.
// 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.
#ifdef SDSUPPORT
#ifENABLED(SDSUPPORT)
#define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
#define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
@ -38,7 +38,7 @@ Here are some standard links for getting your machine calibrated:
// @section info
// @section info
#ifdef HAS_AUTOMATIC_VERSIONING
#ifENABLED(HAS_AUTOMATIC_VERSIONING)
#include"_Version.h"
#include"_Version.h"
#else
#else
#include"Default_Version.h"
#include"Default_Version.h"
@ -195,7 +195,7 @@ Here are some standard links for getting your machine calibrated:
#define PIDTEMP
#define PIDTEMP
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
#ifdef PIDTEMP
#ifENABLED(PIDTEMP)
//#define PID_DEBUG // Sends debug data to the serial port.
//#define PID_DEBUG // Sends debug data to the serial port.
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
//#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
//#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
@ -248,7 +248,7 @@ Here are some standard links for getting your machine calibrated:
//#define PID_BED_DEBUG // Sends debug data to the serial port.
//#define PID_BED_DEBUG // Sends debug data to the serial port.
#ifdef PIDTEMPBED
#ifENABLED(PIDTEMPBED)
#define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
#define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
@ -316,7 +316,7 @@ Here are some standard links for getting your machine calibrated:
// Enable DELTA kinematics and most of the default configuration for Deltas
// Enable DELTA kinematics and most of the default configuration for Deltas
#define DELTA
#define DELTA
#ifdef DELTA
#ifENABLED(DELTA)
// Make delta curves from many straight lines (linear interpolation).
// Make delta curves from many straight lines (linear interpolation).
// This is a trade-off between visible corners (not enough segments)
// This is a trade-off between visible corners (not enough segments)
@ -443,7 +443,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic
// In RAMPS uses servo pin 2. Can be changed in pins file. For other boards pin definition should be made.
// In RAMPS uses servo pin 2. Can be changed in pins file. For other boards pin definition should be made.
// It is assumed that when logic high = filament available
// It is assumed that when logic high = filament available
// when logic low = filament ran out
// when logic low = filament ran out
#ifdef FILAMENT_RUNOUT_SENSOR
#ifENABLED(FILAMENT_RUNOUT_SENSOR)
constboolFIL_RUNOUT_INVERTING=true;// Should be uncommented and true or false should assigned
constboolFIL_RUNOUT_INVERTING=true;// Should be uncommented and true or false should assigned
#define ENDSTOPPULLUP_FIL_RUNOUT // Uncomment to use internal pullup for filament runout pins if the sensor is defined.
#define ENDSTOPPULLUP_FIL_RUNOUT // Uncomment to use internal pullup for filament runout pins if the sensor is defined.
#define FILAMENT_RUNOUT_SCRIPT "M600"
#define FILAMENT_RUNOUT_SCRIPT "M600"
@ -456,11 +456,11 @@ const bool Z_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic
// #define MANUAL_BED_LEVELING // Add display menu option for bed leveling
// #define MANUAL_BED_LEVELING // Add display menu option for bed leveling
// #define MESH_BED_LEVELING // Enable mesh bed leveling
// #define MESH_BED_LEVELING // Enable mesh bed leveling
#ifdef MANUAL_BED_LEVELING
#ifENABLED(MANUAL_BED_LEVELING)
#define MBL_Z_STEP 0.025 // Step size while manually probing Z axis
#define MBL_Z_STEP 0.025 // Step size while manually probing Z axis
#endif // MANUAL_BED_LEVELING
#endif // MANUAL_BED_LEVELING
#ifdef MESH_BED_LEVELING
#ifENABLED(MESH_BED_LEVELING)
#define MESH_MIN_X 10
#define MESH_MIN_X 10
#define MESH_MAX_X (X_MAX_POS - MESH_MIN_X)
#define MESH_MAX_X (X_MAX_POS - MESH_MIN_X)
#define MESH_MIN_Y 10
#define MESH_MIN_Y 10
@ -479,7 +479,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic
//#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
//#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
//#define Z_PROBE_REPEATABILITY_TEST // Z-Probe Repeatability test is not supported in Deltas yet.
//#define Z_PROBE_REPEATABILITY_TEST // Z-Probe Repeatability test is not supported in Deltas yet.
#ifdef ENABLE_AUTO_BED_LEVELING
#ifENABLED(ENABLE_AUTO_BED_LEVELING)
// There are 2 different ways to specify probing locations
// There are 2 different ways to specify probing locations
//
//
@ -496,7 +496,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic
// Note: this feature generates 10KB extra code size
// Note: this feature generates 10KB extra code size
#define AUTO_BED_LEVELING_GRID // Deltas only support grid mode
#define AUTO_BED_LEVELING_GRID // Deltas only support grid mode
// Also, if the temperature is set to a value <mintemp, it is not changed by autotemp.
// Also, if the temperature is set to a value <mintemp, it is not changed by autotemp.
// on an Ultimaker, some initial testing worked with M109 S215 B260 F1 in the start.gcode
// on an Ultimaker, some initial testing worked with M109 S215 B260 F1 in the start.gcode
#define AUTOTEMP
#define AUTOTEMP
#ifdef AUTOTEMP
#ifENABLED(AUTOTEMP)
#define AUTOTEMP_OLDWEIGHT 0.98
#define AUTOTEMP_OLDWEIGHT 0.98
#endif
#endif
@ -141,7 +141,7 @@
// On a RAMPS (or other 5 driver) motherboard, using this feature will limit you to using 1 extruder.
// On a RAMPS (or other 5 driver) motherboard, using this feature will limit you to using 1 extruder.
//#define Z_DUAL_STEPPER_DRIVERS
//#define Z_DUAL_STEPPER_DRIVERS
#ifdef Z_DUAL_STEPPER_DRIVERS
#ifENABLED(Z_DUAL_STEPPER_DRIVERS)
// Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
// Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
// That way the machine is capable to align the bed during home, since both Z steppers are homed.
// That way the machine is capable to align the bed during home, since both Z steppers are homed.
@ -158,7 +158,7 @@
// #define Z_DUAL_ENDSTOPS
// #define Z_DUAL_ENDSTOPS
#ifdef Z_DUAL_ENDSTOPS
#ifENABLED(Z_DUAL_ENDSTOPS)
#define Z2_MAX_PIN 36 //Endstop used for Z2 axis. In this case I'm using XMAX in a Rumba Board (pin 36)
#define Z2_MAX_PIN 36 //Endstop used for Z2 axis. In this case I'm using XMAX in a Rumba Board (pin 36)
constboolZ2_MAX_ENDSTOP_INVERTING=false;
constboolZ2_MAX_ENDSTOP_INVERTING=false;
#define DISABLE_XMAX_ENDSTOP //Better to disable the XMAX to avoid conflict. Just rename "XMAX_ENDSTOP" by the endstop you are using for Z2 axis.
#define DISABLE_XMAX_ENDSTOP //Better to disable the XMAX to avoid conflict. Just rename "XMAX_ENDSTOP" by the endstop you are using for Z2 axis.
@ -177,7 +177,7 @@
// prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage
// prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage
// allowing faster printing speeds.
// allowing faster printing speeds.
//#define DUAL_X_CARRIAGE
//#define DUAL_X_CARRIAGE
#ifdef DUAL_X_CARRIAGE
#ifENABLED(DUAL_X_CARRIAGE)
// Configuration for second X-carriage
// Configuration for second X-carriage
// Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
// Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
// the second x-carriage always homes to the maximum endstop.
// the second x-carriage always homes to the maximum endstop.
@ -248,7 +248,7 @@
// @section lcd
// @section lcd
#ifdef ULTIPANEL
#ifENABLED(ULTIPANEL)
#define MANUAL_FEEDRATE {50*60, 50*60, 4*60, 60} // Feedrates for manual moves along X, Y, Z, E from panel
#define MANUAL_FEEDRATE {50*60, 50*60, 4*60, 60} // Feedrates for manual moves along X, Y, Z, E from panel
#define ULTIPANEL_FEEDMULTIPLY // Comment to disable setting feedrate multiplier via encoder
#define ULTIPANEL_FEEDMULTIPLY // Comment to disable setting feedrate multiplier via encoder
#endif
#endif
@ -298,7 +298,7 @@
// @section lcd
// @section lcd
#ifdef SDSUPPORT
#ifENABLED(SDSUPPORT)
// If you are using a RAMPS board or cheap E-bay purchased boards that do not detect when an SD card is inserted
// If you are using a RAMPS board or cheap E-bay purchased boards that do not detect when an SD card is inserted
// You can get round this by connecting a push button or single throw switch to the pin defined as SDCARDCARDDETECT
// You can get round this by connecting a push button or single throw switch to the pin defined as SDCARDCARDDETECT
@ -317,7 +317,7 @@
// Show a progress bar on HD44780 LCDs for SD printing
// Show a progress bar on HD44780 LCDs for SD printing
//#define LCD_PROGRESS_BAR
//#define LCD_PROGRESS_BAR
#ifdef LCD_PROGRESS_BAR
#ifENABLED(LCD_PROGRESS_BAR)
// Amount of time (ms) to show the bar
// Amount of time (ms) to show the bar
#define PROGRESS_BAR_BAR_TIME 2000
#define PROGRESS_BAR_BAR_TIME 2000
// Amount of time (ms) to show the status message
// Amount of time (ms) to show the status message
@ -340,7 +340,7 @@
#endif // SDSUPPORT
#endif // SDSUPPORT
// for dogm lcd displays you can choose some additional fonts:
// for dogm lcd displays you can choose some additional fonts:
#ifdef DOGLCD
#ifENABLED(DOGLCD)
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT
// we don't have a big font for Cyrillic, Kana
// we don't have a big font for Cyrillic, Kana
//#define USE_BIG_EDIT_FONT
//#define USE_BIG_EDIT_FONT
@ -356,7 +356,7 @@
// The hardware watchdog should reset the microcontroller disabling all outputs, in case the firmware gets stuck and doesn't do temperature regulation.
// The hardware watchdog should reset the microcontroller disabling all outputs, in case the firmware gets stuck and doesn't do temperature regulation.
//#define USE_WATCHDOG
//#define USE_WATCHDOG
#ifdef USE_WATCHDOG
#ifENABLED(USE_WATCHDOG)
// If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on.
// If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on.
// The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset.
// The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset.
// 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.
// 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.
@ -369,7 +369,7 @@
// it can e.g. be used to change z-positions in the print startup phase in real-time
// it can e.g. be used to change z-positions in the print startup phase in real-time
// does not respect endstops!
// does not respect endstops!
//#define BABYSTEPPING
//#define BABYSTEPPING
#ifdef BABYSTEPPING
#ifENABLED(BABYSTEPPING)
#define BABYSTEP_XY //not only z, but also XY in the menu. more clutter, more functions
#define BABYSTEP_XY //not only z, but also XY in the menu. more clutter, more functions
#define BABYSTEP_INVERT_Z false //true for inverse movements in Z
#define BABYSTEP_INVERT_Z false //true for inverse movements in Z
#define BABYSTEP_Z_MULTIPLICATOR 2 //faster z movements
#define BABYSTEP_Z_MULTIPLICATOR 2 //faster z movements
@ -386,7 +386,7 @@
// so: v ^ 2 is proportional to number of steps we advance the extruder
// so: v ^ 2 is proportional to number of steps we advance the extruder
//#define ADVANCE
//#define ADVANCE
#ifdef ADVANCE
#ifENABLED(ADVANCE)
#define EXTRUDER_ADVANCE_K .0
#define EXTRUDER_ADVANCE_K .0
#define D_FILAMENT 2.85
#define D_FILAMENT 2.85
#define STEPS_MM_E 836
#define STEPS_MM_E 836
@ -413,7 +413,7 @@ const unsigned int dropsegments=5; //everything with less than this number of st
// The number of linear motions that can be in the plan at any give time.
// The number of linear motions that can be in the plan at any give time.
// 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.
// 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.
#ifdef SDSUPPORT
#ifENABLED(SDSUPPORT)
#define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
#define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
@ -38,7 +38,7 @@ Here are some standard links for getting your machine calibrated:
// @section info
// @section info
#ifdef HAS_AUTOMATIC_VERSIONING
#ifENABLED(HAS_AUTOMATIC_VERSIONING)
#include"_Version.h"
#include"_Version.h"
#else
#else
#include"Default_Version.h"
#include"Default_Version.h"
@ -195,7 +195,7 @@ Here are some standard links for getting your machine calibrated:
#define PIDTEMP
#define PIDTEMP
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
#ifdef PIDTEMP
#ifENABLED(PIDTEMP)
//#define PID_DEBUG // Sends debug data to the serial port.
//#define PID_DEBUG // Sends debug data to the serial port.
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
//#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
//#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
@ -248,7 +248,7 @@ Here are some standard links for getting your machine calibrated:
//#define PID_BED_DEBUG // Sends debug data to the serial port.
//#define PID_BED_DEBUG // Sends debug data to the serial port.
#ifdef PIDTEMPBED
#ifENABLED(PIDTEMPBED)
#define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
#define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
@ -316,7 +316,7 @@ Here are some standard links for getting your machine calibrated:
// Enable DELTA kinematics and most of the default configuration for Deltas
// Enable DELTA kinematics and most of the default configuration for Deltas
#define DELTA
#define DELTA
#ifdef DELTA
#ifENABLED(DELTA)
// Make delta curves from many straight lines (linear interpolation).
// Make delta curves from many straight lines (linear interpolation).
// This is a trade-off between visible corners (not enough segments)
// This is a trade-off between visible corners (not enough segments)
@ -443,7 +443,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// In RAMPS uses servo pin 2. Can be changed in pins file. For other boards pin definition should be made.
// In RAMPS uses servo pin 2. Can be changed in pins file. For other boards pin definition should be made.
// It is assumed that when logic high = filament available
// It is assumed that when logic high = filament available
// when logic low = filament ran out
// when logic low = filament ran out
#ifdef FILAMENT_RUNOUT_SENSOR
#ifENABLED(FILAMENT_RUNOUT_SENSOR)
constboolFIL_RUNOUT_INVERTING=true;// Should be uncommented and true or false should assigned
constboolFIL_RUNOUT_INVERTING=true;// Should be uncommented and true or false should assigned
#define ENDSTOPPULLUP_FIL_RUNOUT // Uncomment to use internal pullup for filament runout pins if the sensor is defined.
#define ENDSTOPPULLUP_FIL_RUNOUT // Uncomment to use internal pullup for filament runout pins if the sensor is defined.
#define FILAMENT_RUNOUT_SCRIPT "M600"
#define FILAMENT_RUNOUT_SCRIPT "M600"
@ -456,11 +456,11 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// #define MANUAL_BED_LEVELING // Add display menu option for bed leveling
// #define MANUAL_BED_LEVELING // Add display menu option for bed leveling
// #define MESH_BED_LEVELING // Enable mesh bed leveling
// #define MESH_BED_LEVELING // Enable mesh bed leveling
#ifdef MANUAL_BED_LEVELING
#ifENABLED(MANUAL_BED_LEVELING)
#define MBL_Z_STEP 0.025 // Step size while manually probing Z axis
#define MBL_Z_STEP 0.025 // Step size while manually probing Z axis
#endif // MANUAL_BED_LEVELING
#endif // MANUAL_BED_LEVELING
#ifdef MESH_BED_LEVELING
#ifENABLED(MESH_BED_LEVELING)
#define MESH_MIN_X 10
#define MESH_MIN_X 10
#define MESH_MAX_X (X_MAX_POS - MESH_MIN_X)
#define MESH_MAX_X (X_MAX_POS - MESH_MIN_X)
#define MESH_MIN_Y 10
#define MESH_MIN_Y 10
@ -479,7 +479,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
//#define Z_PROBE_REPEATABILITY_TEST // Z-Probe Repeatability test is not supported in Deltas yet.
//#define Z_PROBE_REPEATABILITY_TEST // Z-Probe Repeatability test is not supported in Deltas yet.
#ifdef ENABLE_AUTO_BED_LEVELING
#ifENABLED(ENABLE_AUTO_BED_LEVELING)
// There are 2 different ways to specify probing locations
// There are 2 different ways to specify probing locations
//
//
@ -496,7 +496,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// Note: this feature generates 10KB extra code size
// Note: this feature generates 10KB extra code size
#define AUTO_BED_LEVELING_GRID // Deltas only support grid mode
#define AUTO_BED_LEVELING_GRID // Deltas only support grid mode
// Also, if the temperature is set to a value <mintemp, it is not changed by autotemp.
// Also, if the temperature is set to a value <mintemp, it is not changed by autotemp.
// on an Ultimaker, some initial testing worked with M109 S215 B260 F1 in the start.gcode
// on an Ultimaker, some initial testing worked with M109 S215 B260 F1 in the start.gcode
#define AUTOTEMP
#define AUTOTEMP
#ifdef AUTOTEMP
#ifENABLED(AUTOTEMP)
#define AUTOTEMP_OLDWEIGHT 0.98
#define AUTOTEMP_OLDWEIGHT 0.98
#endif
#endif
@ -141,7 +141,7 @@
// On a RAMPS (or other 5 driver) motherboard, using this feature will limit you to using 1 extruder.
// On a RAMPS (or other 5 driver) motherboard, using this feature will limit you to using 1 extruder.
//#define Z_DUAL_STEPPER_DRIVERS
//#define Z_DUAL_STEPPER_DRIVERS
#ifdef Z_DUAL_STEPPER_DRIVERS
#ifENABLED(Z_DUAL_STEPPER_DRIVERS)
// Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
// Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
// That way the machine is capable to align the bed during home, since both Z steppers are homed.
// That way the machine is capable to align the bed during home, since both Z steppers are homed.
@ -158,7 +158,7 @@
// #define Z_DUAL_ENDSTOPS
// #define Z_DUAL_ENDSTOPS
#ifdef Z_DUAL_ENDSTOPS
#ifENABLED(Z_DUAL_ENDSTOPS)
#define Z2_MAX_PIN 36 //Endstop used for Z2 axis. In this case I'm using XMAX in a Rumba Board (pin 36)
#define Z2_MAX_PIN 36 //Endstop used for Z2 axis. In this case I'm using XMAX in a Rumba Board (pin 36)
constboolZ2_MAX_ENDSTOP_INVERTING=false;
constboolZ2_MAX_ENDSTOP_INVERTING=false;
#define DISABLE_XMAX_ENDSTOP //Better to disable the XMAX to avoid conflict. Just rename "XMAX_ENDSTOP" by the endstop you are using for Z2 axis.
#define DISABLE_XMAX_ENDSTOP //Better to disable the XMAX to avoid conflict. Just rename "XMAX_ENDSTOP" by the endstop you are using for Z2 axis.
@ -177,7 +177,7 @@
// prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage
// prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage
// allowing faster printing speeds.
// allowing faster printing speeds.
//#define DUAL_X_CARRIAGE
//#define DUAL_X_CARRIAGE
#ifdef DUAL_X_CARRIAGE
#ifENABLED(DUAL_X_CARRIAGE)
// Configuration for second X-carriage
// Configuration for second X-carriage
// Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
// Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
// the second x-carriage always homes to the maximum endstop.
// the second x-carriage always homes to the maximum endstop.
@ -248,7 +248,7 @@
// @section lcd
// @section lcd
#ifdef ULTIPANEL
#ifENABLED(ULTIPANEL)
#define MANUAL_FEEDRATE {50*60, 50*60, 4*60, 60} // Feedrates for manual moves along X, Y, Z, E from panel
#define MANUAL_FEEDRATE {50*60, 50*60, 4*60, 60} // Feedrates for manual moves along X, Y, Z, E from panel
#define ULTIPANEL_FEEDMULTIPLY // Comment to disable setting feedrate multiplier via encoder
#define ULTIPANEL_FEEDMULTIPLY // Comment to disable setting feedrate multiplier via encoder
#endif
#endif
@ -297,7 +297,7 @@
// @section lcd
// @section lcd
#ifdef SDSUPPORT
#ifENABLED(SDSUPPORT)
// If you are using a RAMPS board or cheap E-bay purchased boards that do not detect when an SD card is inserted
// If you are using a RAMPS board or cheap E-bay purchased boards that do not detect when an SD card is inserted
// You can get round this by connecting a push button or single throw switch to the pin defined as SDCARDCARDDETECT
// You can get round this by connecting a push button or single throw switch to the pin defined as SDCARDCARDDETECT
@ -316,7 +316,7 @@
// Show a progress bar on HD44780 LCDs for SD printing
// Show a progress bar on HD44780 LCDs for SD printing
//#define LCD_PROGRESS_BAR
//#define LCD_PROGRESS_BAR
#ifdef LCD_PROGRESS_BAR
#ifENABLED(LCD_PROGRESS_BAR)
// Amount of time (ms) to show the bar
// Amount of time (ms) to show the bar
#define PROGRESS_BAR_BAR_TIME 2000
#define PROGRESS_BAR_BAR_TIME 2000
// Amount of time (ms) to show the status message
// Amount of time (ms) to show the status message
@ -339,7 +339,7 @@
#endif // SDSUPPORT
#endif // SDSUPPORT
// for dogm lcd displays you can choose some additional fonts:
// for dogm lcd displays you can choose some additional fonts:
#ifdef DOGLCD
#ifENABLED(DOGLCD)
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT
// we don't have a big font for Cyrillic, Kana
// we don't have a big font for Cyrillic, Kana
//#define USE_BIG_EDIT_FONT
//#define USE_BIG_EDIT_FONT
@ -355,7 +355,7 @@
// The hardware watchdog should reset the microcontroller disabling all outputs, in case the firmware gets stuck and doesn't do temperature regulation.
// The hardware watchdog should reset the microcontroller disabling all outputs, in case the firmware gets stuck and doesn't do temperature regulation.
//#define USE_WATCHDOG
//#define USE_WATCHDOG
#ifdef USE_WATCHDOG
#ifENABLED(USE_WATCHDOG)
// If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on.
// If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on.
// The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset.
// The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset.
// 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.
// 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.
@ -368,7 +368,7 @@
// it can e.g. be used to change z-positions in the print startup phase in real-time
// it can e.g. be used to change z-positions in the print startup phase in real-time
// does not respect endstops!
// does not respect endstops!
//#define BABYSTEPPING
//#define BABYSTEPPING
#ifdef BABYSTEPPING
#ifENABLED(BABYSTEPPING)
#define BABYSTEP_XY //not only z, but also XY in the menu. more clutter, more functions
#define BABYSTEP_XY //not only z, but also XY in the menu. more clutter, more functions
#define BABYSTEP_INVERT_Z false //true for inverse movements in Z
#define BABYSTEP_INVERT_Z false //true for inverse movements in Z
#define BABYSTEP_Z_MULTIPLICATOR 2 //faster z movements
#define BABYSTEP_Z_MULTIPLICATOR 2 //faster z movements
@ -385,7 +385,7 @@
// so: v ^ 2 is proportional to number of steps we advance the extruder
// so: v ^ 2 is proportional to number of steps we advance the extruder
//#define ADVANCE
//#define ADVANCE
#ifdef ADVANCE
#ifENABLED(ADVANCE)
#define EXTRUDER_ADVANCE_K .0
#define EXTRUDER_ADVANCE_K .0
#define D_FILAMENT 2.85
#define D_FILAMENT 2.85
#define STEPS_MM_E 836
#define STEPS_MM_E 836
@ -412,7 +412,7 @@ const unsigned int dropsegments=5; //everything with less than this number of st
// The number of linear motions that can be in the plan at any give time.
// The number of linear motions that can be in the plan at any give time.
// 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.
// 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.
#ifdef SDSUPPORT
#ifENABLED(SDSUPPORT)
#define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
#define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
@ -42,7 +42,7 @@ Here are some standard links for getting your machine calibrated:
// @section info
// @section info
#ifdef HAS_AUTOMATIC_VERSIONING
#ifENABLED(HAS_AUTOMATIC_VERSIONING)
#include"_Version.h"
#include"_Version.h"
#else
#else
#include"Default_Version.h"
#include"Default_Version.h"
@ -199,7 +199,7 @@ Here are some standard links for getting your machine calibrated:
#define PIDTEMP
#define PIDTEMP
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
#define PID_MAX 125 // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
#define PID_MAX 125 // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
#ifdef PIDTEMP
#ifENABLED(PIDTEMP)
//#define PID_DEBUG // Sends debug data to the serial port.
//#define PID_DEBUG // Sends debug data to the serial port.
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
//#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
//#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
@ -241,7 +241,7 @@ Here are some standard links for getting your machine calibrated:
//#define PID_BED_DEBUG // Sends debug data to the serial port.
//#define PID_BED_DEBUG // Sends debug data to the serial port.
#ifdef PIDTEMPBED
#ifENABLED(PIDTEMPBED)
#define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
#define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
@ -303,7 +303,7 @@ Here are some standard links for getting your machine calibrated:
// Enable DELTA kinematics and most of the default configuration for Deltas
// Enable DELTA kinematics and most of the default configuration for Deltas
#define DELTA
#define DELTA
#ifdef DELTA
#ifENABLED(DELTA)
// Make delta curves from many straight lines (linear interpolation).
// Make delta curves from many straight lines (linear interpolation).
// This is a trade-off between visible corners (not enough segments)
// This is a trade-off between visible corners (not enough segments)
@ -430,7 +430,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// In RAMPS uses servo pin 2. Can be changed in pins file. For other boards pin definition should be made.
// In RAMPS uses servo pin 2. Can be changed in pins file. For other boards pin definition should be made.
// It is assumed that when logic high = filament available
// It is assumed that when logic high = filament available
// when logic low = filament ran out
// when logic low = filament ran out
#ifdef FILAMENT_RUNOUT_SENSOR
#ifENABLED(FILAMENT_RUNOUT_SENSOR)
constboolFIL_RUNOUT_INVERTING=true;// Should be uncommented and true or false should assigned
constboolFIL_RUNOUT_INVERTING=true;// Should be uncommented and true or false should assigned
#define ENDSTOPPULLUP_FIL_RUNOUT // Uncomment to use internal pullup for filament runout pins if the sensor is defined.
#define ENDSTOPPULLUP_FIL_RUNOUT // Uncomment to use internal pullup for filament runout pins if the sensor is defined.
#define FILAMENT_RUNOUT_SCRIPT "M600"
#define FILAMENT_RUNOUT_SCRIPT "M600"
@ -443,11 +443,11 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// #define MANUAL_BED_LEVELING // Add display menu option for bed leveling
// #define MANUAL_BED_LEVELING // Add display menu option for bed leveling
// #define MESH_BED_LEVELING // Enable mesh bed leveling
// #define MESH_BED_LEVELING // Enable mesh bed leveling
#ifdef MANUAL_BED_LEVELING
#ifENABLED(MANUAL_BED_LEVELING)
#define MBL_Z_STEP 0.025 // Step size while manually probing Z axis
#define MBL_Z_STEP 0.025 // Step size while manually probing Z axis
#endif // MANUAL_BED_LEVELING
#endif // MANUAL_BED_LEVELING
#ifdef MESH_BED_LEVELING
#ifENABLED(MESH_BED_LEVELING)
#define MESH_MIN_X 10
#define MESH_MIN_X 10
#define MESH_MAX_X (X_MAX_POS - MESH_MIN_X)
#define MESH_MAX_X (X_MAX_POS - MESH_MIN_X)
#define MESH_MIN_Y 10
#define MESH_MIN_Y 10
@ -466,7 +466,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
//#define Z_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled.
//#define Z_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled.
#ifdef ENABLE_AUTO_BED_LEVELING
#ifENABLED(ENABLE_AUTO_BED_LEVELING)
// There are 2 different ways to specify probing locations
// There are 2 different ways to specify probing locations
//
//
@ -483,7 +483,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// Note: this feature generates 10KB extra code size
// Note: this feature generates 10KB extra code size
#define AUTO_BED_LEVELING_GRID // Deltas only support grid mode
#define AUTO_BED_LEVELING_GRID // Deltas only support grid mode
#ifdef MANUAL_HOME_POSITIONS // Use manual limit switch locations
#ifENABLED(MANUAL_HOME_POSITIONS)// Use manual limit switch locations
#define X_HOME_POS MANUAL_X_HOME_POS
#define X_HOME_POS MANUAL_X_HOME_POS
#define Y_HOME_POS MANUAL_Y_HOME_POS
#define Y_HOME_POS MANUAL_Y_HOME_POS
#define Z_HOME_POS MANUAL_Z_HOME_POS
#define Z_HOME_POS MANUAL_Z_HOME_POS
#else //Set min/max homing switch positions based upon homing direction and min/max travel limits
#else //Set min/max homing switch positions based upon homing direction and min/max travel limits
//X axis
//X axis
#if X_HOME_DIR == -1
#if X_HOME_DIR == -1
#ifdef BED_CENTER_AT_0_0
#ifENABLED(BED_CENTER_AT_0_0)
#define X_HOME_POS X_MAX_LENGTH * -0.5
#define X_HOME_POS X_MAX_LENGTH * -0.5
#else
#else
#define X_HOME_POS X_MIN_POS
#define X_HOME_POS X_MIN_POS
#endif //BED_CENTER_AT_0_0
#endif //BED_CENTER_AT_0_0
#else
#else
#ifdef BED_CENTER_AT_0_0
#ifENABLED(BED_CENTER_AT_0_0)
#define X_HOME_POS X_MAX_LENGTH * 0.5
#define X_HOME_POS X_MAX_LENGTH * 0.5
#else
#else
#define X_HOME_POS X_MAX_POS
#define X_HOME_POS X_MAX_POS
@ -152,13 +152,13 @@
//Y axis
//Y axis
#if Y_HOME_DIR == -1
#if Y_HOME_DIR == -1
#ifdef BED_CENTER_AT_0_0
#ifENABLED(BED_CENTER_AT_0_0)
#define Y_HOME_POS Y_MAX_LENGTH * -0.5
#define Y_HOME_POS Y_MAX_LENGTH * -0.5
#else
#else
#define Y_HOME_POS Y_MIN_POS
#define Y_HOME_POS Y_MIN_POS
#endif //BED_CENTER_AT_0_0
#endif //BED_CENTER_AT_0_0
#else
#else
#ifdef BED_CENTER_AT_0_0
#ifENABLED(BED_CENTER_AT_0_0)
#define Y_HOME_POS Y_MAX_LENGTH * 0.5
#define Y_HOME_POS Y_MAX_LENGTH * 0.5
#else
#else
#define Y_HOME_POS Y_MAX_POS
#define Y_HOME_POS Y_MAX_POS
@ -184,7 +184,7 @@
// On a RAMPS (or other 5 driver) motherboard, using this feature will limit you to using 1 extruder.
// On a RAMPS (or other 5 driver) motherboard, using this feature will limit you to using 1 extruder.
//#define Z_DUAL_STEPPER_DRIVERS
//#define Z_DUAL_STEPPER_DRIVERS
#ifdef Z_DUAL_STEPPER_DRIVERS
#ifENABLED(Z_DUAL_STEPPER_DRIVERS)
#undef EXTRUDERS
#undef EXTRUDERS
#define EXTRUDERS 1
#define EXTRUDERS 1
#endif
#endif
@ -195,7 +195,7 @@
// Define if the two Y drives need to rotate in opposite directions
// Define if the two Y drives need to rotate in opposite directions
#define INVERT_Y2_VS_Y_DIR true
#define INVERT_Y2_VS_Y_DIR true
#ifdef Y_DUAL_STEPPER_DRIVERS
#ifENABLED(Y_DUAL_STEPPER_DRIVERS)
#undef EXTRUDERS
#undef EXTRUDERS
#define EXTRUDERS 1
#define EXTRUDERS 1
#endif
#endif
@ -209,7 +209,7 @@
// prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage
// prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage
// allowing faster printing speeds.
// allowing faster printing speeds.
//#define DUAL_X_CARRIAGE
//#define DUAL_X_CARRIAGE
#ifdef DUAL_X_CARRIAGE
#ifENABLED(DUAL_X_CARRIAGE)
// Configuration for second X-carriage
// Configuration for second X-carriage
// Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
// Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
// the second x-carriage always homes to the maximum endstop.
// the second x-carriage always homes to the maximum endstop.
@ -266,7 +266,7 @@
// @section machine
// @section machine
#ifdef CONFIG_STEPPERS_TOSHIBA
#ifENABLED(CONFIG_STEPPERS_TOSHIBA)
#define MAX_STEP_FREQUENCY 10000 // Max step frequency for Toshiba Stepper Controllers
#define MAX_STEP_FREQUENCY 10000 // Max step frequency for Toshiba Stepper Controllers
#else
#else
#define MAX_STEP_FREQUENCY 40000 // Max step frequency for Ultimaker (5000 pps / half step)
#define MAX_STEP_FREQUENCY 40000 // Max step frequency for Ultimaker (5000 pps / half step)
@ -285,7 +285,7 @@
// @section lcd
// @section lcd
#ifdef ULTIPANEL
#ifENABLED(ULTIPANEL)
#define MANUAL_FEEDRATE {50*60, 50*60, 4*60, 60} // Feedrates for manual moves along X, Y, Z, E from panel
#define MANUAL_FEEDRATE {50*60, 50*60, 4*60, 60} // Feedrates for manual moves along X, Y, Z, E from panel
#define ULTIPANEL_FEEDMULTIPLY // Comment to disable setting feedrate multiplier via encoder
#define ULTIPANEL_FEEDMULTIPLY // Comment to disable setting feedrate multiplier via encoder
#endif
#endif
@ -338,7 +338,7 @@
// @section lcd
// @section lcd
#ifdef SDSUPPORT
#ifENABLED(SDSUPPORT)
// If you are using a RAMPS board or cheap E-bay purchased boards that do not detect when an SD card is inserted
// If you are using a RAMPS board or cheap E-bay purchased boards that do not detect when an SD card is inserted
// You can get round this by connecting a push button or single throw switch to the pin defined as SDCARDCARDDETECT
// You can get round this by connecting a push button or single throw switch to the pin defined as SDCARDCARDDETECT
@ -357,7 +357,7 @@
// Show a progress bar on HD44780 LCDs for SD printing
// Show a progress bar on HD44780 LCDs for SD printing
//#define LCD_PROGRESS_BAR
//#define LCD_PROGRESS_BAR
#ifdef LCD_PROGRESS_BAR
#ifENABLED(LCD_PROGRESS_BAR)
// Amount of time (ms) to show the bar
// Amount of time (ms) to show the bar
#define PROGRESS_BAR_BAR_TIME 2000
#define PROGRESS_BAR_BAR_TIME 2000
// Amount of time (ms) to show the status message
// Amount of time (ms) to show the status message
@ -380,7 +380,7 @@
#endif // SDSUPPORT
#endif // SDSUPPORT
// for dogm lcd displays you can choose some additional fonts:
// for dogm lcd displays you can choose some additional fonts:
#ifdef DOGLCD
#ifENABLED(DOGLCD)
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT
// we don't have a big font for Cyrillic, Kana
// we don't have a big font for Cyrillic, Kana
//#define USE_BIG_EDIT_FONT
//#define USE_BIG_EDIT_FONT
@ -395,7 +395,7 @@
// The hardware watchdog should reset the microcontroller disabling all outputs, in case the firmware gets stuck and doesn't do temperature regulation.
// The hardware watchdog should reset the microcontroller disabling all outputs, in case the firmware gets stuck and doesn't do temperature regulation.
//#define USE_WATCHDOG
//#define USE_WATCHDOG
#ifdef USE_WATCHDOG
#ifENABLED(USE_WATCHDOG)
// If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on.
// If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on.
// The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset.
// The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset.
// 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.
// 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.
@ -408,18 +408,18 @@
// it can e.g. be used to change z-positions in the print startup phase in real-time
// it can e.g. be used to change z-positions in the print startup phase in real-time
// does not respect endstops!
// does not respect endstops!
//#define BABYSTEPPING
//#define BABYSTEPPING
#ifdef BABYSTEPPING
#ifENABLED(BABYSTEPPING)
#define BABYSTEP_XY //not only z, but also XY in the menu. more clutter, more functions
#define BABYSTEP_XY //not only z, but also XY in the menu. more clutter, more functions
#define BABYSTEP_INVERT_Z false //true for inverse movements in Z
#define BABYSTEP_INVERT_Z false //true for inverse movements in Z
#define BABYSTEP_Z_MULTIPLICATOR 2 //faster z movements
#define BABYSTEP_Z_MULTIPLICATOR 2 //faster z movements
// @section extruder
// @section extruder
#ifdef COREXY
#ifENABLED(COREXY)
#error BABYSTEPPING not implemented for COREXY yet.
#error BABYSTEPPING not implemented for COREXY yet.
#endif
#endif
#ifdef DELTA
#ifENABLED(DELTA)
#ifdef BABYSTEP_XY
#ifENABLED(BABYSTEP_XY)
#error BABYSTEPPING only implemented for Z axis on deltabots.
#error BABYSTEPPING only implemented for Z axis on deltabots.
#endif
#endif
#endif
#endif
@ -434,7 +434,7 @@
// so: v ^ 2 is proportional to number of steps we advance the extruder
// so: v ^ 2 is proportional to number of steps we advance the extruder
//#define ADVANCE
//#define ADVANCE
#ifdef ADVANCE
#ifENABLED(ADVANCE)
#define EXTRUDER_ADVANCE_K .0
#define EXTRUDER_ADVANCE_K .0
#define D_FILAMENT 2.85
#define D_FILAMENT 2.85
@ -451,7 +451,7 @@
constunsignedintdropsegments=5;//everything with less than this number of steps will be ignored as move and joined with the next movement
constunsignedintdropsegments=5;//everything with less than this number of steps will be ignored as move and joined with the next movement
#ifdef ULTIPANEL
#ifENABLED(ULTIPANEL)
#undef SDCARDDETECTINVERTED
#undef SDCARDDETECTINVERTED
#endif
#endif
@ -512,7 +512,7 @@ const unsigned int dropsegments=5; //everything with less than this number of st
// the moves are than replaced by the firmware controlled ones.
// the moves are than replaced by the firmware controlled ones.
// #define FWRETRACT //ONLY PARTIALLY TESTED
// #define FWRETRACT //ONLY PARTIALLY TESTED
#ifdef FWRETRACT
#ifENABLED(FWRETRACT)
#define MIN_RETRACT 0.1 //minimum extruded mm to accept a automatic gcode retraction attempt
#define MIN_RETRACT 0.1 //minimum extruded mm to accept a automatic gcode retraction attempt
@ -38,7 +38,7 @@ Here are some standard links for getting your machine calibrated:
// @section info
// @section info
#ifdef HAS_AUTOMATIC_VERSIONING
#ifENABLED(HAS_AUTOMATIC_VERSIONING)
#include"_Version.h"
#include"_Version.h"
#else
#else
#include"Default_Version.h"
#include"Default_Version.h"
@ -195,7 +195,7 @@ Here are some standard links for getting your machine calibrated:
#define PIDTEMP
#define PIDTEMP
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
#ifdef PIDTEMP
#ifENABLED(PIDTEMP)
//#define PID_DEBUG // Sends debug data to the serial port.
//#define PID_DEBUG // Sends debug data to the serial port.
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
//#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
//#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
@ -251,7 +251,7 @@ Here are some standard links for getting your machine calibrated:
//#define PID_BED_DEBUG // Sends debug data to the serial port.
//#define PID_BED_DEBUG // Sends debug data to the serial port.
#ifdef PIDTEMPBED
#ifENABLED(PIDTEMPBED)
#define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
#define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
@ -411,7 +411,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// In RAMPS uses servo pin 2. Can be changed in pins file. For other boards pin definition should be made.
// In RAMPS uses servo pin 2. Can be changed in pins file. For other boards pin definition should be made.
// It is assumed that when logic high = filament available
// It is assumed that when logic high = filament available
// when logic low = filament ran out
// when logic low = filament ran out
#ifdef FILAMENT_RUNOUT_SENSOR
#ifENABLED(FILAMENT_RUNOUT_SENSOR)
constboolFIL_RUNOUT_INVERTING=true;// Should be uncommented and true or false should assigned
constboolFIL_RUNOUT_INVERTING=true;// Should be uncommented and true or false should assigned
#define ENDSTOPPULLUP_FIL_RUNOUT // Uncomment to use internal pullup for filament runout pins if the sensor is defined.
#define ENDSTOPPULLUP_FIL_RUNOUT // Uncomment to use internal pullup for filament runout pins if the sensor is defined.
#define FILAMENT_RUNOUT_SCRIPT "M600"
#define FILAMENT_RUNOUT_SCRIPT "M600"
@ -424,11 +424,11 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// #define MANUAL_BED_LEVELING // Add display menu option for bed leveling
// #define MANUAL_BED_LEVELING // Add display menu option for bed leveling
// #define MESH_BED_LEVELING // Enable mesh bed leveling
// #define MESH_BED_LEVELING // Enable mesh bed leveling
#ifdef MANUAL_BED_LEVELING
#ifENABLED(MANUAL_BED_LEVELING)
#define MBL_Z_STEP 0.025 // Step size while manually probing Z axis
#define MBL_Z_STEP 0.025 // Step size while manually probing Z axis
#endif // MANUAL_BED_LEVELING
#endif // MANUAL_BED_LEVELING
#ifdef MESH_BED_LEVELING
#ifENABLED(MESH_BED_LEVELING)
#define MESH_MIN_X 10
#define MESH_MIN_X 10
#define MESH_MAX_X (X_MAX_POS - MESH_MIN_X)
#define MESH_MAX_X (X_MAX_POS - MESH_MIN_X)
#define MESH_MIN_Y 10
#define MESH_MIN_Y 10
@ -447,7 +447,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
//#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
//#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
#define Z_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled.
#define Z_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled.
#ifdef ENABLE_AUTO_BED_LEVELING
#ifENABLED(ENABLE_AUTO_BED_LEVELING)
// There are 2 different ways to specify probing locations
// There are 2 different ways to specify probing locations
//
//
@ -464,7 +464,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// Note: this feature generates 10KB extra code size
// Note: this feature generates 10KB extra code size
#define AUTO_BED_LEVELING_GRID
#define AUTO_BED_LEVELING_GRID
#ifdef AUTO_BED_LEVELING_GRID
#ifENABLED(AUTO_BED_LEVELING_GRID)
#define LEFT_PROBE_BED_POSITION 15
#define LEFT_PROBE_BED_POSITION 15
#define RIGHT_PROBE_BED_POSITION 170
#define RIGHT_PROBE_BED_POSITION 170
@ -521,7 +521,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// - Position the probe in a defined XY point before Z Homing when homing all axis (G28)
// - Position the probe in a defined XY point before Z Homing when homing all axis (G28)
// - Block Z homing only when the probe is outside bed area.
// - Block Z homing only when the probe is outside bed area.
#ifdef Z_SAFE_HOMING
#ifENABLED(Z_SAFE_HOMING)
#define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28)
#define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28)
#define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28)
#define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28)
@ -553,7 +553,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// Manual homing switch locations:
// Manual homing switch locations:
// For deltabots this means top and center of the Cartesian print volume.
// For deltabots this means top and center of the Cartesian print volume.
#ifdef MANUAL_HOME_POSITIONS
#ifENABLED(MANUAL_HOME_POSITIONS)
#define MANUAL_X_HOME_POS 0
#define MANUAL_X_HOME_POS 0
#define MANUAL_Y_HOME_POS 0
#define MANUAL_Y_HOME_POS 0
#define MANUAL_Z_HOME_POS 0
#define MANUAL_Z_HOME_POS 0
@ -592,8 +592,8 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// Custom M code points
// Custom M code points
#define CUSTOM_M_CODES
#define CUSTOM_M_CODES
#ifdef CUSTOM_M_CODES
#ifENABLED(CUSTOM_M_CODES)
#ifdef ENABLE_AUTO_BED_LEVELING
#ifENABLED(ENABLE_AUTO_BED_LEVELING)
#define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
#define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
#define Z_PROBE_OFFSET_RANGE_MIN -20
#define Z_PROBE_OFFSET_RANGE_MIN -20
#define Z_PROBE_OFFSET_RANGE_MAX 20
#define Z_PROBE_OFFSET_RANGE_MAX 20
@ -610,7 +610,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
//define this to enable EEPROM support
//define this to enable EEPROM support
#define EEPROM_SETTINGS
#define EEPROM_SETTINGS
#ifdef EEPROM_SETTINGS
#ifENABLED(EEPROM_SETTINGS)
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
#define EEPROM_CHITCHAT // Please keep turned on if you can.
#define EEPROM_CHITCHAT // Please keep turned on if you can.
#endif
#endif
@ -794,7 +794,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
// With this option servos are powered only during movement, then turned off to prevent jitter.
// With this option servos are powered only during movement, then turned off to prevent jitter.
//#define DEACTIVATE_SERVOS_AFTER_MOVE
//#define DEACTIVATE_SERVOS_AFTER_MOVE
#ifdef DEACTIVATE_SERVOS_AFTER_MOVE
#ifENABLED(DEACTIVATE_SERVOS_AFTER_MOVE)
// Delay (in microseconds) before turning the servo off. This depends on the servo speed.
// Delay (in microseconds) before turning the servo off. This depends on the servo speed.
// 300ms is a good value but you can try less delay.
// 300ms is a good value but you can try less delay.
// If the servo can't reach the requested position, increase it.
// If the servo can't reach the requested position, increase it.
// Also, if the temperature is set to a value <mintemp, it is not changed by autotemp.
// Also, if the temperature is set to a value <mintemp, it is not changed by autotemp.
// on an Ultimaker, some initial testing worked with M109 S215 B260 F1 in the start.gcode
// on an Ultimaker, some initial testing worked with M109 S215 B260 F1 in the start.gcode
#define AUTOTEMP
#define AUTOTEMP
#ifdef AUTOTEMP
#ifENABLED(AUTOTEMP)
#define AUTOTEMP_OLDWEIGHT 0.98
#define AUTOTEMP_OLDWEIGHT 0.98
#endif
#endif
@ -141,7 +141,7 @@
// On a RAMPS (or other 5 driver) motherboard, using this feature will limit you to using 1 extruder.
// On a RAMPS (or other 5 driver) motherboard, using this feature will limit you to using 1 extruder.
//#define Z_DUAL_STEPPER_DRIVERS
//#define Z_DUAL_STEPPER_DRIVERS
#ifdef Z_DUAL_STEPPER_DRIVERS
#ifENABLED(Z_DUAL_STEPPER_DRIVERS)
// Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
// Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
// That way the machine is capable to align the bed during home, since both Z steppers are homed.
// That way the machine is capable to align the bed during home, since both Z steppers are homed.
@ -158,7 +158,7 @@
// #define Z_DUAL_ENDSTOPS
// #define Z_DUAL_ENDSTOPS
#ifdef Z_DUAL_ENDSTOPS
#ifENABLED(Z_DUAL_ENDSTOPS)
#define Z2_MAX_PIN 36 //Endstop used for Z2 axis. In this case I'm using XMAX in a Rumba Board (pin 36)
#define Z2_MAX_PIN 36 //Endstop used for Z2 axis. In this case I'm using XMAX in a Rumba Board (pin 36)
constboolZ2_MAX_ENDSTOP_INVERTING=false;
constboolZ2_MAX_ENDSTOP_INVERTING=false;
#define DISABLE_XMAX_ENDSTOP //Better to disable the XMAX to avoid conflict. Just rename "XMAX_ENDSTOP" by the endstop you are using for Z2 axis.
#define DISABLE_XMAX_ENDSTOP //Better to disable the XMAX to avoid conflict. Just rename "XMAX_ENDSTOP" by the endstop you are using for Z2 axis.
@ -177,7 +177,7 @@
// prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage
// prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage
// allowing faster printing speeds.
// allowing faster printing speeds.
//#define DUAL_X_CARRIAGE
//#define DUAL_X_CARRIAGE
#ifdef DUAL_X_CARRIAGE
#ifENABLED(DUAL_X_CARRIAGE)
// Configuration for second X-carriage
// Configuration for second X-carriage
// Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
// Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
// the second x-carriage always homes to the maximum endstop.
// the second x-carriage always homes to the maximum endstop.
@ -248,7 +248,7 @@
// @section lcd
// @section lcd
#ifdef ULTIPANEL
#ifENABLED(ULTIPANEL)
#define MANUAL_FEEDRATE {50*60, 50*60, 4*60, 60} // Feedrates for manual moves along X, Y, Z, E from panel
#define MANUAL_FEEDRATE {50*60, 50*60, 4*60, 60} // Feedrates for manual moves along X, Y, Z, E from panel
#define ULTIPANEL_FEEDMULTIPLY // Comment to disable setting feedrate multiplier via encoder
#define ULTIPANEL_FEEDMULTIPLY // Comment to disable setting feedrate multiplier via encoder
#endif
#endif
@ -297,7 +297,7 @@
// @section lcd
// @section lcd
#ifdef SDSUPPORT
#ifENABLED(SDSUPPORT)
// If you are using a RAMPS board or cheap E-bay purchased boards that do not detect when an SD card is inserted
// If you are using a RAMPS board or cheap E-bay purchased boards that do not detect when an SD card is inserted
// You can get round this by connecting a push button or single throw switch to the pin defined as SDCARDCARDDETECT
// You can get round this by connecting a push button or single throw switch to the pin defined as SDCARDCARDDETECT
@ -316,7 +316,7 @@
// Show a progress bar on HD44780 LCDs for SD printing
// Show a progress bar on HD44780 LCDs for SD printing
//#define LCD_PROGRESS_BAR
//#define LCD_PROGRESS_BAR
#ifdef LCD_PROGRESS_BAR
#ifENABLED(LCD_PROGRESS_BAR)
// Amount of time (ms) to show the bar
// Amount of time (ms) to show the bar
#define PROGRESS_BAR_BAR_TIME 2000
#define PROGRESS_BAR_BAR_TIME 2000
// Amount of time (ms) to show the status message
// Amount of time (ms) to show the status message
@ -339,7 +339,7 @@
#endif // SDSUPPORT
#endif // SDSUPPORT
// for dogm lcd displays you can choose some additional fonts:
// for dogm lcd displays you can choose some additional fonts:
#ifdef DOGLCD
#ifENABLED(DOGLCD)
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT
// we don't have a big font for Cyrillic, Kana
// we don't have a big font for Cyrillic, Kana
//#define USE_BIG_EDIT_FONT
//#define USE_BIG_EDIT_FONT
@ -355,7 +355,7 @@
// The hardware watchdog should reset the microcontroller disabling all outputs, in case the firmware gets stuck and doesn't do temperature regulation.
// The hardware watchdog should reset the microcontroller disabling all outputs, in case the firmware gets stuck and doesn't do temperature regulation.
//#define USE_WATCHDOG
//#define USE_WATCHDOG
#ifdef USE_WATCHDOG
#ifENABLED(USE_WATCHDOG)
// If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on.
// If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on.
// The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset.
// The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset.
// 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.
// 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.
@ -368,7 +368,7 @@
// it can e.g. be used to change z-positions in the print startup phase in real-time
// it can e.g. be used to change z-positions in the print startup phase in real-time
// does not respect endstops!
// does not respect endstops!
//#define BABYSTEPPING
//#define BABYSTEPPING
#ifdef BABYSTEPPING
#ifENABLED(BABYSTEPPING)
#define BABYSTEP_XY //not only z, but also XY in the menu. more clutter, more functions
#define BABYSTEP_XY //not only z, but also XY in the menu. more clutter, more functions
#define BABYSTEP_INVERT_Z false //true for inverse movements in Z
#define BABYSTEP_INVERT_Z false //true for inverse movements in Z
#define BABYSTEP_Z_MULTIPLICATOR 2 //faster z movements
#define BABYSTEP_Z_MULTIPLICATOR 2 //faster z movements
@ -385,7 +385,7 @@
// so: v ^ 2 is proportional to number of steps we advance the extruder
// so: v ^ 2 is proportional to number of steps we advance the extruder
//#define ADVANCE
//#define ADVANCE
#ifdef ADVANCE
#ifENABLED(ADVANCE)
#define EXTRUDER_ADVANCE_K .0
#define EXTRUDER_ADVANCE_K .0
#define D_FILAMENT 2.85
#define D_FILAMENT 2.85
#define STEPS_MM_E 836
#define STEPS_MM_E 836
@ -412,7 +412,7 @@ const unsigned int dropsegments=5; //everything with less than this number of st
// The number of linear motions that can be in the plan at any give time.
// The number of linear motions that can be in the plan at any give time.
// 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.
// 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.
#ifdef SDSUPPORT
#ifENABLED(SDSUPPORT)
#define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
#define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
@ -38,7 +38,7 @@ Here are some standard links for getting your machine calibrated:
// @section info
// @section info
#ifdef HAS_AUTOMATIC_VERSIONING
#ifENABLED(HAS_AUTOMATIC_VERSIONING)
#include"_Version.h"
#include"_Version.h"
#else
#else
#include"Default_Version.h"
#include"Default_Version.h"
@ -195,7 +195,7 @@ Here are some standard links for getting your machine calibrated:
#define PIDTEMP
#define PIDTEMP
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
#ifdef PIDTEMP
#ifENABLED(PIDTEMP)
//#define PID_DEBUG // Sends debug data to the serial port.
//#define PID_DEBUG // Sends debug data to the serial port.
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
//#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
//#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
@ -238,7 +238,7 @@ Here are some standard links for getting your machine calibrated:
//#define PID_BED_DEBUG // Sends debug data to the serial port.
//#define PID_BED_DEBUG // Sends debug data to the serial port.
#ifdef PIDTEMPBED
#ifENABLED(PIDTEMPBED)
#define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
#define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
@ -398,7 +398,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic
// In RAMPS uses servo pin 2. Can be changed in pins file. For other boards pin definition should be made.
// In RAMPS uses servo pin 2. Can be changed in pins file. For other boards pin definition should be made.
// It is assumed that when logic high = filament available
// It is assumed that when logic high = filament available
// when logic low = filament ran out
// when logic low = filament ran out
#ifdef FILAMENT_RUNOUT_SENSOR
#ifENABLED(FILAMENT_RUNOUT_SENSOR)
constboolFIL_RUNOUT_INVERTING=true;// Should be uncommented and true or false should assigned
constboolFIL_RUNOUT_INVERTING=true;// Should be uncommented and true or false should assigned
#define ENDSTOPPULLUP_FIL_RUNOUT // Uncomment to use internal pullup for filament runout pins if the sensor is defined.
#define ENDSTOPPULLUP_FIL_RUNOUT // Uncomment to use internal pullup for filament runout pins if the sensor is defined.
#define FILAMENT_RUNOUT_SCRIPT "M600"
#define FILAMENT_RUNOUT_SCRIPT "M600"
@ -411,11 +411,11 @@ const bool Z_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic
// #define MANUAL_BED_LEVELING // Add display menu option for bed leveling
// #define MANUAL_BED_LEVELING // Add display menu option for bed leveling
// #define MESH_BED_LEVELING // Enable mesh bed leveling
// #define MESH_BED_LEVELING // Enable mesh bed leveling
#ifdef MANUAL_BED_LEVELING
#ifENABLED(MANUAL_BED_LEVELING)
#define MBL_Z_STEP 0.025 // Step size while manually probing Z axis
#define MBL_Z_STEP 0.025 // Step size while manually probing Z axis
#endif // MANUAL_BED_LEVELING
#endif // MANUAL_BED_LEVELING
#ifdef MESH_BED_LEVELING
#ifENABLED(MESH_BED_LEVELING)
#define MESH_MIN_X 10
#define MESH_MIN_X 10
#define MESH_MAX_X (X_MAX_POS - MESH_MIN_X)
#define MESH_MAX_X (X_MAX_POS - MESH_MIN_X)
#define MESH_MIN_Y 10
#define MESH_MIN_Y 10
@ -434,7 +434,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic
//#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
//#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
#define Z_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled.
#define Z_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled.
#ifdef ENABLE_AUTO_BED_LEVELING
#ifENABLED(ENABLE_AUTO_BED_LEVELING)
// There are 2 different ways to specify probing locations
// There are 2 different ways to specify probing locations
//
//
@ -451,7 +451,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic
// Note: this feature generates 10KB extra code size
// Note: this feature generates 10KB extra code size
#define AUTO_BED_LEVELING_GRID
#define AUTO_BED_LEVELING_GRID
#ifdef AUTO_BED_LEVELING_GRID
#ifENABLED(AUTO_BED_LEVELING_GRID)
#define LEFT_PROBE_BED_POSITION 15
#define LEFT_PROBE_BED_POSITION 15
#define RIGHT_PROBE_BED_POSITION 170
#define RIGHT_PROBE_BED_POSITION 170
@ -508,7 +508,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic
// - Position the probe in a defined XY point before Z Homing when homing all axis (G28)
// - Position the probe in a defined XY point before Z Homing when homing all axis (G28)
// - Block Z homing only when the probe is outside bed area.
// - Block Z homing only when the probe is outside bed area.
#ifdef Z_SAFE_HOMING
#ifENABLED(Z_SAFE_HOMING)
#define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28)
#define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28)
#define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28)
#define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28)
@ -540,7 +540,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic
// Manual homing switch locations:
// Manual homing switch locations:
// For deltabots this means top and center of the Cartesian print volume.
// For deltabots this means top and center of the Cartesian print volume.
#ifdef MANUAL_HOME_POSITIONS
#ifENABLED(MANUAL_HOME_POSITIONS)
#define MANUAL_X_HOME_POS 0
#define MANUAL_X_HOME_POS 0
#define MANUAL_Y_HOME_POS 0
#define MANUAL_Y_HOME_POS 0
#define MANUAL_Z_HOME_POS 0
#define MANUAL_Z_HOME_POS 0
@ -583,8 +583,8 @@ const bool Z_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic
// Custom M code points
// Custom M code points
#define CUSTOM_M_CODES
#define CUSTOM_M_CODES
#ifdef CUSTOM_M_CODES
#ifENABLED(CUSTOM_M_CODES)
#ifdef ENABLE_AUTO_BED_LEVELING
#ifENABLED(ENABLE_AUTO_BED_LEVELING)
#define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
#define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
#define Z_PROBE_OFFSET_RANGE_MIN -20
#define Z_PROBE_OFFSET_RANGE_MIN -20
#define Z_PROBE_OFFSET_RANGE_MAX 20
#define Z_PROBE_OFFSET_RANGE_MAX 20
@ -601,7 +601,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic
//define this to enable EEPROM support
//define this to enable EEPROM support
//#define EEPROM_SETTINGS
//#define EEPROM_SETTINGS
#ifdef EEPROM_SETTINGS
#ifENABLED(EEPROM_SETTINGS)
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
#define EEPROM_CHITCHAT // Please keep turned on if you can.
#define EEPROM_CHITCHAT // Please keep turned on if you can.
#endif
#endif
@ -785,7 +785,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic
// With this option servos are powered only during movement, then turned off to prevent jitter.
// With this option servos are powered only during movement, then turned off to prevent jitter.
//#define DEACTIVATE_SERVOS_AFTER_MOVE
//#define DEACTIVATE_SERVOS_AFTER_MOVE
#ifdef DEACTIVATE_SERVOS_AFTER_MOVE
#ifENABLED(DEACTIVATE_SERVOS_AFTER_MOVE)
// Delay (in microseconds) before turning the servo off. This depends on the servo speed.
// Delay (in microseconds) before turning the servo off. This depends on the servo speed.
// 300ms is a good value but you can try less delay.
// 300ms is a good value but you can try less delay.
// If the servo can't reach the requested position, increase it.
// If the servo can't reach the requested position, increase it.
// Also, if the temperature is set to a value <mintemp, it is not changed by autotemp.
// Also, if the temperature is set to a value <mintemp, it is not changed by autotemp.
// on an Ultimaker, some initial testing worked with M109 S215 B260 F1 in the start.gcode
// on an Ultimaker, some initial testing worked with M109 S215 B260 F1 in the start.gcode
#define AUTOTEMP
#define AUTOTEMP
#ifdef AUTOTEMP
#ifENABLED(AUTOTEMP)
#define AUTOTEMP_OLDWEIGHT 0.98
#define AUTOTEMP_OLDWEIGHT 0.98
#endif
#endif
@ -141,7 +141,7 @@
// On a RAMPS (or other 5 driver) motherboard, using this feature will limit you to using 1 extruder.
// On a RAMPS (or other 5 driver) motherboard, using this feature will limit you to using 1 extruder.
//#define Z_DUAL_STEPPER_DRIVERS
//#define Z_DUAL_STEPPER_DRIVERS
#ifdef Z_DUAL_STEPPER_DRIVERS
#ifENABLED(Z_DUAL_STEPPER_DRIVERS)
// Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
// Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
// That way the machine is capable to align the bed during home, since both Z steppers are homed.
// That way the machine is capable to align the bed during home, since both Z steppers are homed.
@ -158,7 +158,7 @@
// #define Z_DUAL_ENDSTOPS
// #define Z_DUAL_ENDSTOPS
#ifdef Z_DUAL_ENDSTOPS
#ifENABLED(Z_DUAL_ENDSTOPS)
#define Z2_MAX_PIN 36 //Endstop used for Z2 axis. In this case I'm using XMAX in a Rumba Board (pin 36)
#define Z2_MAX_PIN 36 //Endstop used for Z2 axis. In this case I'm using XMAX in a Rumba Board (pin 36)
constboolZ2_MAX_ENDSTOP_INVERTING=false;
constboolZ2_MAX_ENDSTOP_INVERTING=false;
#define DISABLE_XMAX_ENDSTOP //Better to disable the XMAX to avoid conflict. Just rename "XMAX_ENDSTOP" by the endstop you are using for Z2 axis.
#define DISABLE_XMAX_ENDSTOP //Better to disable the XMAX to avoid conflict. Just rename "XMAX_ENDSTOP" by the endstop you are using for Z2 axis.
@ -177,7 +177,7 @@
// prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage
// prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage
// allowing faster printing speeds.
// allowing faster printing speeds.
//#define DUAL_X_CARRIAGE
//#define DUAL_X_CARRIAGE
#ifdef DUAL_X_CARRIAGE
#ifENABLED(DUAL_X_CARRIAGE)
// Configuration for second X-carriage
// Configuration for second X-carriage
// Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
// Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
// the second x-carriage always homes to the maximum endstop.
// the second x-carriage always homes to the maximum endstop.
@ -248,7 +248,7 @@
// @section lcd
// @section lcd
#ifdef ULTIPANEL
#ifENABLED(ULTIPANEL)
#define MANUAL_FEEDRATE {50*60, 50*60, 4*60, 60} // Feedrates for manual moves along X, Y, Z, E from panel
#define MANUAL_FEEDRATE {50*60, 50*60, 4*60, 60} // Feedrates for manual moves along X, Y, Z, E from panel
#define ULTIPANEL_FEEDMULTIPLY // Comment to disable setting feedrate multiplier via encoder
#define ULTIPANEL_FEEDMULTIPLY // Comment to disable setting feedrate multiplier via encoder
#endif
#endif
@ -297,7 +297,7 @@
// @section lcd
// @section lcd
#ifdef SDSUPPORT
#ifENABLED(SDSUPPORT)
// If you are using a RAMPS board or cheap E-bay purchased boards that do not detect when an SD card is inserted
// If you are using a RAMPS board or cheap E-bay purchased boards that do not detect when an SD card is inserted
// You can get round this by connecting a push button or single throw switch to the pin defined as SDCARDCARDDETECT
// You can get round this by connecting a push button or single throw switch to the pin defined as SDCARDCARDDETECT
@ -316,7 +316,7 @@
// Show a progress bar on HD44780 LCDs for SD printing
// Show a progress bar on HD44780 LCDs for SD printing
//#define LCD_PROGRESS_BAR
//#define LCD_PROGRESS_BAR
#ifdef LCD_PROGRESS_BAR
#ifENABLED(LCD_PROGRESS_BAR)
// Amount of time (ms) to show the bar
// Amount of time (ms) to show the bar
#define PROGRESS_BAR_BAR_TIME 2000
#define PROGRESS_BAR_BAR_TIME 2000
// Amount of time (ms) to show the status message
// Amount of time (ms) to show the status message
@ -339,7 +339,7 @@
#endif // SDSUPPORT
#endif // SDSUPPORT
// for dogm lcd displays you can choose some additional fonts:
// for dogm lcd displays you can choose some additional fonts:
#ifdef DOGLCD
#ifENABLED(DOGLCD)
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT
// save 3120 bytes of PROGMEM by commenting out #define USE_BIG_EDIT_FONT
// we don't have a big font for Cyrillic, Kana
// we don't have a big font for Cyrillic, Kana
//#define USE_BIG_EDIT_FONT
//#define USE_BIG_EDIT_FONT
@ -355,7 +355,7 @@
// The hardware watchdog should reset the microcontroller disabling all outputs, in case the firmware gets stuck and doesn't do temperature regulation.
// The hardware watchdog should reset the microcontroller disabling all outputs, in case the firmware gets stuck and doesn't do temperature regulation.
//#define USE_WATCHDOG
//#define USE_WATCHDOG
#ifdef USE_WATCHDOG
#ifENABLED(USE_WATCHDOG)
// If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on.
// If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on.
// The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset.
// The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset.
// 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.
// 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.
@ -368,7 +368,7 @@
// it can e.g. be used to change z-positions in the print startup phase in real-time
// it can e.g. be used to change z-positions in the print startup phase in real-time
// does not respect endstops!
// does not respect endstops!
//#define BABYSTEPPING
//#define BABYSTEPPING
#ifdef BABYSTEPPING
#ifENABLED(BABYSTEPPING)
#define BABYSTEP_XY //not only z, but also XY in the menu. more clutter, more functions
#define BABYSTEP_XY //not only z, but also XY in the menu. more clutter, more functions
#define BABYSTEP_INVERT_Z false //true for inverse movements in Z
#define BABYSTEP_INVERT_Z false //true for inverse movements in Z
#define BABYSTEP_Z_MULTIPLICATOR 2 //faster z movements
#define BABYSTEP_Z_MULTIPLICATOR 2 //faster z movements
@ -385,7 +385,7 @@
// so: v ^ 2 is proportional to number of steps we advance the extruder
// so: v ^ 2 is proportional to number of steps we advance the extruder
//#define ADVANCE
//#define ADVANCE
#ifdef ADVANCE
#ifENABLED(ADVANCE)
#define EXTRUDER_ADVANCE_K .0
#define EXTRUDER_ADVANCE_K .0
#define D_FILAMENT 2.85
#define D_FILAMENT 2.85
#define STEPS_MM_E 836
#define STEPS_MM_E 836
@ -412,7 +412,7 @@ const unsigned int dropsegments=5; //everything with less than this number of st
// The number of linear motions that can be in the plan at any give time.
// The number of linear motions that can be in the plan at any give time.
// 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.
// 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.
#ifdef SDSUPPORT
#ifENABLED(SDSUPPORT)
#define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
#define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller