@ -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