Update ABL comments (PR#95)

* Updates the auto bed leveling comments ONLY.
* Renames "Z probe" word usage in //comments and #errors properly.
2.0.x
Christian Lefrançois 9 years ago committed by Richard Wackerbarth
parent a7822e3ff7
commit 9897a9147c

@ -341,9 +341,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
//#define DISABLE_MAX_ENDSTOPS //#define DISABLE_MAX_ENDSTOPS
//#define DISABLE_MIN_ENDSTOPS //#define DISABLE_MIN_ENDSTOPS
// If you want to enable the Z Probe pin, but disable its use, uncomment the line below. // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
// This only affects a Z Probe Endstop if you have separate Z min endstop as well and have // This only affects a Z probe endstop if you have separate Z min endstop as well and have
// activated Z_MIN_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z Probe, // activated Z_MIN_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z probe,
// this has no effect. // this has no effect.
//#define DISABLE_Z_MIN_PROBE_ENDSTOP //#define DISABLE_Z_MIN_PROBE_ENDSTOP
@ -419,11 +419,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
//=========================== Manual Bed Leveling =========================== //=========================== Manual Bed Leveling ===========================
//=========================================================================== //===========================================================================
// #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.
#if ENABLED(MANUAL_BED_LEVELING) #if ENABLED(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
#if ENABLED(MESH_BED_LEVELING) #if ENABLED(MESH_BED_LEVELING)
@ -431,9 +431,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
#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
#define MESH_MAX_Y (Y_MAX_POS - MESH_MIN_Y) #define MESH_MAX_Y (Y_MAX_POS - MESH_MIN_Y)
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited #define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
#define MESH_NUM_Y_POINTS 3 #define MESH_NUM_Y_POINTS 3
#define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0 #define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0.
#endif // MESH_BED_LEVELING #endif // MESH_BED_LEVELING
//=========================================================================== //===========================================================================
@ -442,12 +442,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
// @section bedlevel // @section bedlevel
//#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_MIN_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled. #define Z_MIN_PROBE_REPEATABILITY_TEST // If not commented out, Z probe repeatability test will be included if auto bed leveling is enabled.
#if ENABLED(ENABLE_AUTO_BED_LEVELING) #if ENABLED(ENABLE_AUTO_BED_LEVELING)
// There are 2 different ways to specify probing locations // There are 2 different ways to specify probing locations:
// //
// - "grid" mode // - "grid" mode
// Probe several points in a rectangular grid. // Probe several points in a rectangular grid.
@ -458,8 +458,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
// Probe 3 arbitrary points on the bed (that aren't colinear) // Probe 3 arbitrary points on the bed (that aren't colinear)
// You specify the XY coordinates of all 3 points. // You specify the XY coordinates of all 3 points.
// Enable this to sample the bed in a grid (least squares solution) // Enable this to sample the bed in a grid (least squares solution).
// 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
#if ENABLED(AUTO_BED_LEVELING_GRID) #if ENABLED(AUTO_BED_LEVELING_GRID)
@ -469,16 +469,16 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
#define FRONT_PROBE_BED_POSITION 20 #define FRONT_PROBE_BED_POSITION 20
#define BACK_PROBE_BED_POSITION 170 #define BACK_PROBE_BED_POSITION 170
#define MIN_PROBE_EDGE 10 // The probe square sides can be no smaller than this #define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this.
// Set the number of grid points per dimension // Set the number of grid points per dimension.
// You probably don't need more than 3 (squared=9) // You probably don't need more than 3 (squared=9).
#define AUTO_BED_LEVELING_GRID_POINTS 2 #define AUTO_BED_LEVELING_GRID_POINTS 2
#else // !AUTO_BED_LEVELING_GRID #else // !AUTO_BED_LEVELING_GRID
// Arbitrary points to probe. A simple cross-product // Arbitrary points to probe.
// is used to estimate the plane of the bed. // A simple cross-product is used to estimate the plane of the bed.
#define ABL_PROBE_PT_1_X 15 #define ABL_PROBE_PT_1_X 15
#define ABL_PROBE_PT_1_Y 180 #define ABL_PROBE_PT_1_Y 180
#define ABL_PROBE_PT_2_X 15 #define ABL_PROBE_PT_2_X 15
@ -488,56 +488,73 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
#endif // AUTO_BED_LEVELING_GRID #endif // AUTO_BED_LEVELING_GRID
// Offsets to the probe relative to the extruder tip (Hotend - Probe) // Offsets to the Z probe relative to the nozzle tip.
// X and Y offsets must be integers // X and Y offsets must be integers.
#define X_PROBE_OFFSET_FROM_EXTRUDER -25 // Probe on: -left +right #define X_PROBE_OFFSET_FROM_EXTRUDER -25 // Z probe to nozzle X offset: -left +right
#define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Probe on: -front +behind #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Z probe to nozzle Y offset: -front +behind
#define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // -below (always!) #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // Z probe to nozzle Z offset: -below (always!)
#define Z_RAISE_BEFORE_HOMING 4 // (in mm) Raise Z before homing (G28) for Probe Clearance. #define Z_RAISE_BEFORE_HOMING 4 // (in mm) Raise Z axis before homing (G28) for Z probe clearance.
// Be sure you have this distance over your Z_MAX_POS in case // Be sure you have this distance over your Z_MAX_POS in case.
#define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min #define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min.
#define Z_RAISE_BEFORE_PROBING 15 //How much the extruder will be raised before traveling to the first probing point. #define Z_RAISE_BEFORE_PROBING 15 // How much the Z axis will be raised before traveling to the first probing point.
#define Z_RAISE_BETWEEN_PROBINGS 5 //How much the extruder will be raised when traveling from between next probing points #define Z_RAISE_BETWEEN_PROBINGS 5 // How much the Z axis will be raised when traveling from between next probing points.
#define Z_RAISE_AFTER_PROBING 15 //How much the extruder will be raised after the last probing point. #define Z_RAISE_AFTER_PROBING 15 // How much the Z axis will be raised after the last probing point.
// #define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" //These commands will be executed in the end of G29 routine. // #define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
//Useful to retract a deployable probe. // Useful to retract a deployable Z probe.
//#define Z_PROBE_SLED // turn on if you have a z-probe mounted on a sled like those designed by Charles Bell //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
//#define SLED_DOCKING_OFFSET 5 // the extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.
//If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing, // If you have enabled the bed auto leveling and are using the same Z probe for Z homing,
//it is highly recommended you let this Z_SAFE_HOMING enabled!!! // it is highly recommended you let this Z_SAFE_HOMING enabled!!!
#define Z_SAFE_HOMING // This feature is meant to avoid Z homing with probe outside the bed area. #define Z_SAFE_HOMING // This feature is meant to avoid Z homing with Z probe outside the bed area.
// When defined, it will: // When defined, it will:
// - Allow Z homing only after X and Y homing AND stepper drivers still enabled // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
// - If stepper drivers timeout, it will need X and Y homing again before Z homing // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
// - Position the probe in a defined XY point before Z Homing when homing all axis (G28) // - Position the Z 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 Z probe is outside bed area.
#if ENABLED(Z_SAFE_HOMING) #if ENABLED(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).
#endif #endif
// Support for a dedicated Z PROBE endstop separate from the Z MIN endstop. // Support for a dedicated Z probe endstop separate from the Z min endstop.
// If you would like to use both a Z PROBE and a Z MIN endstop together , uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below. // If you would like to use both a Z probe and a Z min endstop together,
// If you want to still use the Z min endstop for homing, disable Z_SAFE_HOMING above. Eg; to park the head outside the bed area when homing with G28. // uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below.
// WARNING: The Z MIN endstop will need to set properly as it would without a Z PROBE to prevent head crashes and premature stopping during a print. // If you still want to use the Z min endstop for homing, disable Z_SAFE_HOMING above.
// To use a separate Z PROBE endstop, you must have a Z_MIN_PROBE_PIN defined in the pins.h file for your control board. // Example: To park the head outside the bed area when homing with G28.
// If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C Servo below. //
// RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin in the Aux 4 section of the RAMPS board. Use 5V for powered sensors, otherwise connect to ground and D32 // WARNING:
// for normally closed configuration and 5V and D32 for normally open configurations. Normally closed configuration is advised and assumed. // The Z min endstop will need to set properly as it would without a Z probe
// The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin. Z_MIN_PROBE_PIN is setting the pin to use on the Arduino. Since the D32 pin on the RAMPS maps to D32 on Arduino, this works. // to prevent head crashes and premature stopping during a print.
// D32 is currently selected in the RAMPS 1.3/1.4 pin file. All other boards will need changes to the respective pins_XXXXX.h file. //
// WARNING: Setting the wrong pin may have unexpected and potentially disastrous outcomes. Use with caution and do your homework. // To use a separate Z probe endstop, you must have a Z_MIN_PROBE_PIN
// defined in the pins_XXXXX.h file for your control board.
// If you are using a servo based Z probe, you will need to enable NUM_SERVOS,
// Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C SERVO support below.
// RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin
// in the Aux 4 section of the RAMPS board. Use 5V for powered sensors,
// otherwise connect to ground and D32 for normally closed configuration
// and 5V and D32 for normally open configurations.
// Normally closed configuration is advised and assumed.
// The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin.
// Z_MIN_PROBE_PIN is setting the pin to use on the Arduino.
// Since the D32 pin on the RAMPS maps to D32 on Arduino, this works.
// D32 is currently selected in the RAMPS 1.3/1.4 pin file.
// All other boards will need changes to the respective pins_XXXXX.h file.
//
// WARNING:
// Setting the wrong pin may have unexpected and potentially disastrous outcomes.
// Use with caution and do your homework.
//
//#define Z_MIN_PROBE_ENDSTOP //#define Z_MIN_PROBE_ENDSTOP
#endif // ENABLE_AUTO_BED_LEVELING #endif // ENABLE_AUTO_BED_LEVELING
@ -785,7 +802,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
// Servo Endstops // Servo Endstops
// //
// This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes. // This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes.
// Use M851 to set the z-probe vertical offset from the nozzle. Store that setting with M500. // Use M851 to set the Z probe vertical offset from the nozzle. Store that setting with M500.
// //
//#define X_ENDSTOP_SERVO_NR 1 //#define X_ENDSTOP_SERVO_NR 1
//#define Y_ENDSTOP_SERVO_NR 2 //#define Y_ENDSTOP_SERVO_NR 2

@ -88,8 +88,8 @@
* G10 - retract filament according to settings of M207 * G10 - retract filament according to settings of M207
* G11 - retract recover filament according to settings of M208 * G11 - retract recover filament according to settings of M208
* G28 - Home one or more axes * G28 - Home one or more axes
* G29 - Detailed Z-Probe, probes the bed at 3 or more points. Will fail if you haven't homed yet. * G29 - Detailed Z probe, probes the bed at 3 or more points. Will fail if you haven't homed yet.
* G30 - Single Z Probe, probes bed at current XY location. * G30 - Single Z probe, probes bed at current XY location.
* G31 - Dock sled (Z_PROBE_SLED only) * G31 - Dock sled (Z_PROBE_SLED only)
* G32 - Undock sled (Z_PROBE_SLED only) * G32 - Undock sled (Z_PROBE_SLED only)
* G90 - Use Absolute Coordinates * G90 - Use Absolute Coordinates
@ -179,8 +179,8 @@
* M380 - Activate solenoid on active extruder * M380 - Activate solenoid on active extruder
* M381 - Disable all solenoids * M381 - Disable all solenoids
* M400 - Finish all moves * M400 - Finish all moves
* M401 - Lower z-probe if present * M401 - Lower Z probe if present
* M402 - Raise z-probe if present * M402 - Raise Z probe if present
* M404 - N<dia in mm> Enter the nominal filament width (3mm, 1.75mm ) or will display nominal filament width without parameters * M404 - N<dia in mm> Enter the nominal filament width (3mm, 1.75mm ) or will display nominal filament width without parameters
* M405 - Turn on Filament Sensor extrusion control. Optional D<delay in cm> to set delay in centimeters between sensor and extruder * M405 - Turn on Filament Sensor extrusion control. Optional D<delay in cm> to set delay in centimeters between sensor and extruder
* M406 - Turn off Filament Sensor extrusion control * M406 - Turn off Filament Sensor extrusion control
@ -214,7 +214,7 @@
* *
* ************ Custom codes - This can change to suit future G-code regulations * ************ Custom codes - This can change to suit future G-code regulations
* M100 - Watch Free Memory (For Debugging Only) * M100 - Watch Free Memory (For Debugging Only)
* M851 - Set probe's Z offset (mm above extruder -- The value will always be negative) * M851 - Set Z probe's Z offset (mm above extruder -- The value will always be negative)
* M928 - Start SD logging (M928 filename.g) - ended by M29 * M928 - Start SD logging (M928 filename.g) - ended by M29
@ -1239,7 +1239,7 @@ static void setup_for_endstop_move() {
plan_bed_level_matrix.set_to_identity(); plan_bed_level_matrix.set_to_identity();
feedrate = homing_feedrate[Z_AXIS]; feedrate = homing_feedrate[Z_AXIS];
// Move down until the probe (or endstop?) is triggered // Move down until the Z probe (or endstop?) is triggered
float zPosition = -(Z_MAX_LENGTH + 10); float zPosition = -(Z_MAX_LENGTH + 10);
line_to_z(zPosition); line_to_z(zPosition);
st_synchronize(); st_synchronize();
@ -1329,7 +1329,7 @@ static void setup_for_endstop_move() {
#elif ENABLED(Z_PROBE_ALLEN_KEY) #elif ENABLED(Z_PROBE_ALLEN_KEY)
feedrate = Z_PROBE_ALLEN_KEY_DEPLOY_1_FEEDRATE; feedrate = Z_PROBE_ALLEN_KEY_DEPLOY_1_FEEDRATE;
// If endstop is already false, the probe is deployed // If endstop is already false, the Z probe is deployed
#if ENABLED(Z_MIN_PROBE_ENDSTOP) #if ENABLED(Z_MIN_PROBE_ENDSTOP)
bool z_probe_endstop = (READ(Z_MIN_PROBE_PIN) != Z_MIN_PROBE_ENDSTOP_INVERTING); bool z_probe_endstop = (READ(Z_MIN_PROBE_PIN) != Z_MIN_PROBE_ENDSTOP_INVERTING);
if (z_probe_endstop) if (z_probe_endstop)
@ -1443,7 +1443,7 @@ static void setup_for_endstop_move() {
destination[Z_AXIS] = Z_PROBE_ALLEN_KEY_STOW_1_Z; destination[Z_AXIS] = Z_PROBE_ALLEN_KEY_STOW_1_Z;
prepare_move_raw(); prepare_move_raw();
// Move the nozzle down to push the probe into retracted position // Move the nozzle down to push the Z probe into retracted position
if (Z_PROBE_ALLEN_KEY_STOW_2_FEEDRATE != Z_PROBE_ALLEN_KEY_STOW_1_FEEDRATE) { if (Z_PROBE_ALLEN_KEY_STOW_2_FEEDRATE != Z_PROBE_ALLEN_KEY_STOW_1_FEEDRATE) {
feedrate = Z_PROBE_ALLEN_KEY_STOW_2_FEEDRATE; feedrate = Z_PROBE_ALLEN_KEY_STOW_2_FEEDRATE;
} }
@ -1506,7 +1506,7 @@ static void setup_for_endstop_move() {
// Probe bed height at position (x,y), returns the measured z value // Probe bed height at position (x,y), returns the measured z value
static float probe_pt(float x, float y, float z_before, ProbeAction probe_action=ProbeDeployAndStow, int verbose_level=1) { static float probe_pt(float x, float y, float z_before, ProbeAction probe_action=ProbeDeployAndStow, int verbose_level=1) {
// Move Z up to the z_before height, then move the probe to the given XY // Move Z up to the z_before height, then move the Z probe to the given XY
do_blocking_move_to_z(z_before); // this also updates current_position do_blocking_move_to_z(z_before); // this also updates current_position
do_blocking_move_to_xy(x - X_PROBE_OFFSET_FROM_EXTRUDER, y - Y_PROBE_OFFSET_FROM_EXTRUDER); // this also updates current_position do_blocking_move_to_xy(x - X_PROBE_OFFSET_FROM_EXTRUDER, y - Y_PROBE_OFFSET_FROM_EXTRUDER); // this also updates current_position
@ -1678,7 +1678,7 @@ static void homeaxis(AxisEnum axis) {
#if SERVO_LEVELING && DISABLED(Z_PROBE_SLED) #if SERVO_LEVELING && DISABLED(Z_PROBE_SLED)
// Deploy a probe if there is one, and homing towards the bed // Deploy a Z probe if there is one, and homing towards the bed
if (axis == Z_AXIS) { if (axis == Z_AXIS) {
if (axis_home_dir < 0) deploy_z_probe(); if (axis_home_dir < 0) deploy_z_probe();
} }
@ -1770,7 +1770,7 @@ static void homeaxis(AxisEnum axis) {
axis_known_position[axis] = true; axis_known_position[axis] = true;
#if ENABLED(Z_PROBE_SLED) #if ENABLED(Z_PROBE_SLED)
// bring probe back // bring Z probe back
if (axis == Z_AXIS) { if (axis == Z_AXIS) {
if (axis_home_dir < 0) dock_sled(true); if (axis_home_dir < 0) dock_sled(true);
} }
@ -1778,7 +1778,7 @@ static void homeaxis(AxisEnum axis) {
#if SERVO_LEVELING && DISABLED(Z_PROBE_SLED) #if SERVO_LEVELING && DISABLED(Z_PROBE_SLED)
// Deploy a probe if there is one, and homing towards the bed // Deploy a Z probe if there is one, and homing towards the bed
if (axis == Z_AXIS) { if (axis == Z_AXIS) {
if (axis_home_dir < 0) stow_z_probe(); if (axis_home_dir < 0) stow_z_probe();
} }
@ -2157,7 +2157,7 @@ inline void gcode_G28() {
sync_plan_position(); sync_plan_position();
// //
// Set the probe (or just the nozzle) destination to the safe homing point // Set the Z probe (or just the nozzle) destination to the safe homing point
// //
// NOTE: If current_position[X_AXIS] or current_position[Y_AXIS] were set above // NOTE: If current_position[X_AXIS] or current_position[Y_AXIS] were set above
// then this may not work as expected. // then this may not work as expected.
@ -2182,8 +2182,8 @@ inline void gcode_G28() {
// Let's see if X and Y are homed // Let's see if X and Y are homed
if (axis_known_position[X_AXIS] && axis_known_position[Y_AXIS]) { if (axis_known_position[X_AXIS] && axis_known_position[Y_AXIS]) {
// Make sure the probe is within the physical limits // Make sure the Z probe is within the physical limits
// NOTE: This doesn't necessarily ensure the probe is also within the bed! // NOTE: This doesn't necessarily ensure the Z probe is also within the bed!
float cpx = current_position[X_AXIS], cpy = current_position[Y_AXIS]; float cpx = current_position[X_AXIS], cpy = current_position[Y_AXIS];
if ( cpx >= X_MIN_POS - X_PROBE_OFFSET_FROM_EXTRUDER if ( cpx >= X_MIN_POS - X_PROBE_OFFSET_FROM_EXTRUDER
&& cpx <= X_MAX_POS - X_PROBE_OFFSET_FROM_EXTRUDER && cpx <= X_MAX_POS - X_PROBE_OFFSET_FROM_EXTRUDER
@ -2265,7 +2265,7 @@ inline void gcode_G28() {
enum MeshLevelingState { MeshReport, MeshStart, MeshNext, MeshSet }; enum MeshLevelingState { MeshReport, MeshStart, MeshNext, MeshSet };
/** /**
* G29: Mesh-based Z-Probe, probes a grid and produces a * G29: Mesh-based Z probe, probes a grid and produces a
* mesh to compensate for variable bed height * mesh to compensate for variable bed height
* *
* Parameters With MESH_BED_LEVELING: * Parameters With MESH_BED_LEVELING:
@ -2404,7 +2404,7 @@ inline void gcode_G28() {
} }
/** /**
* G29: Detailed Z-Probe, probes the bed at 3 or more points. * G29: Detailed Z probe, probes the bed at 3 or more points.
* Will fail if the printer has not been homed with G28. * Will fail if the printer has not been homed with G28.
* *
* Enhanced G29 Auto Bed Leveling Probe Routine * Enhanced G29 Auto Bed Leveling Probe Routine
@ -2435,9 +2435,9 @@ inline void gcode_G28() {
* *
* Global Parameters: * Global Parameters:
* *
* E/e By default G29 will engage the probe, test the bed, then disengage. * E/e By default G29 will engage the Z probe, test the bed, then disengage.
* Include "E" to engage/disengage the probe for each sample. * Include "E" to engage/disengage the Z probe for each sample.
* There's no extra effect if you have a fixed probe. * There's no extra effect if you have a fixed Z probe.
* Usage: "G29 E" or "G29 e" * Usage: "G29 E" or "G29 e"
* *
*/ */
@ -2519,7 +2519,7 @@ inline void gcode_G28() {
#endif // AUTO_BED_LEVELING_GRID #endif // AUTO_BED_LEVELING_GRID
#if ENABLED(Z_PROBE_SLED) #if ENABLED(Z_PROBE_SLED)
dock_sled(false); // engage (un-dock) the probe dock_sled(false); // engage (un-dock) the Z probe
#elif ENABLED(Z_PROBE_ALLEN_KEY) //|| SERVO_LEVELING #elif ENABLED(Z_PROBE_ALLEN_KEY) //|| SERVO_LEVELING
deploy_z_probe(); deploy_z_probe();
#endif #endif
@ -2755,23 +2755,23 @@ inline void gcode_G28() {
plan_bed_level_matrix.debug(" \n\nBed Level Correction Matrix:"); plan_bed_level_matrix.debug(" \n\nBed Level Correction Matrix:");
if (!dryrun) { if (!dryrun) {
// Correct the Z height difference from z-probe position and hotend tip position. // Correct the Z height difference from Z probe position and nozzle tip position.
// The Z height on homing is measured by Z-Probe, but the probe is quite far from the hotend. // The Z height on homing is measured by Z probe, but the Z probe is quite far from the nozzle.
// When the bed is uneven, this height must be corrected. // When the bed is uneven, this height must be corrected.
float x_tmp = current_position[X_AXIS] + X_PROBE_OFFSET_FROM_EXTRUDER, float x_tmp = current_position[X_AXIS] + X_PROBE_OFFSET_FROM_EXTRUDER,
y_tmp = current_position[Y_AXIS] + Y_PROBE_OFFSET_FROM_EXTRUDER, y_tmp = current_position[Y_AXIS] + Y_PROBE_OFFSET_FROM_EXTRUDER,
z_tmp = current_position[Z_AXIS], z_tmp = current_position[Z_AXIS],
real_z = st_get_position_mm(Z_AXIS); //get the real Z (since plan_get_position is now correcting the plane) real_z = st_get_position_mm(Z_AXIS); //get the real Z (since plan_get_position is now correcting the plane)
apply_rotation_xyz(plan_bed_level_matrix, x_tmp, y_tmp, z_tmp); // Apply the correction sending the probe offset apply_rotation_xyz(plan_bed_level_matrix, x_tmp, y_tmp, z_tmp); // Apply the correction sending the Z probe offset
// Get the current Z position and send it to the planner. // Get the current Z position and send it to the planner.
// //
// >> (z_tmp - real_z) : The rotated current Z minus the uncorrected Z (most recent plan_set_position/sync_plan_position) // >> (z_tmp - real_z) : The rotated current Z minus the uncorrected Z (most recent plan_set_position/sync_plan_position)
// //
// >> zprobe_zoffset : Z distance from nozzle to probe (set by default, M851, EEPROM, or Menu) // >> zprobe_zoffset : Z distance from nozzle to Z probe (set by default, M851, EEPROM, or Menu)
// //
// >> Z_RAISE_AFTER_PROBING : The distance the probe will have lifted after the last probe // >> Z_RAISE_AFTER_PROBING : The distance the Z probe will have lifted after the last probe
// //
// >> Should home_offset[Z_AXIS] be included? // >> Should home_offset[Z_AXIS] be included?
// //
@ -2786,13 +2786,13 @@ inline void gcode_G28() {
+ Z_RAISE_AFTER_PROBING + Z_RAISE_AFTER_PROBING
#endif #endif
; ;
// current_position[Z_AXIS] += home_offset[Z_AXIS]; // The probe determines Z=0, not "Z home" // current_position[Z_AXIS] += home_offset[Z_AXIS]; // The Z probe determines Z=0, not "Z home"
sync_plan_position(); sync_plan_position();
} }
#endif // !DELTA #endif // !DELTA
#if ENABLED(Z_PROBE_SLED) #if ENABLED(Z_PROBE_SLED)
dock_sled(true); // dock the probe dock_sled(true); // dock the Z probe
#elif ENABLED(Z_PROBE_ALLEN_KEY) //|| SERVO_LEVELING #elif ENABLED(Z_PROBE_ALLEN_KEY) //|| SERVO_LEVELING
stow_z_probe(); stow_z_probe();
#endif #endif
@ -3121,14 +3121,14 @@ inline void gcode_M42() {
// This is redundant since the SanityCheck.h already checks for a valid Z_MIN_PROBE_PIN, but here for clarity. // This is redundant since the SanityCheck.h already checks for a valid Z_MIN_PROBE_PIN, but here for clarity.
#if ENABLED(Z_MIN_PROBE_ENDSTOP) #if ENABLED(Z_MIN_PROBE_ENDSTOP)
#if !HAS_Z_PROBE #if !HAS_Z_PROBE
#error You must define Z_MIN_PROBE_PIN to enable Z-Probe repeatability calculation. #error You must define Z_MIN_PROBE_PIN to enable Z probe repeatability calculation.
#endif #endif
#elif !HAS_Z_MIN #elif !HAS_Z_MIN
#error You must define Z_MIN_PIN to enable Z-Probe repeatability calculation. #error You must define Z_MIN_PIN to enable Z probe repeatability calculation.
#endif #endif
/** /**
* M48: Z-Probe repeatability measurement function. * M48: Z probe repeatability measurement function.
* *
* Usage: * Usage:
* M48 <P#> <X#> <Y#> <V#> <E> <L#> * M48 <P#> <X#> <Y#> <V#> <E> <L#>
@ -3136,11 +3136,11 @@ inline void gcode_M42() {
* X = Sample X position * X = Sample X position
* Y = Sample Y position * Y = Sample Y position
* V = Verbose level (0-4, default=1) * V = Verbose level (0-4, default=1)
* E = Engage probe for each reading * E = Engage Z probe for each reading
* L = Number of legs of movement before probe * L = Number of legs of movement before probe
* *
* This function assumes the bed has been homed. Specifically, that a G28 command * This function assumes the bed has been homed. Specifically, that a G28 command
* as been issued prior to invoking the M48 Z-Probe repeatability measurement function. * as been issued prior to invoking the M48 Z probe repeatability measurement function.
* Any information generated by a prior G29 Bed leveling command will be lost and need to be * Any information generated by a prior G29 Bed leveling command will be lost and need to be
* regenerated. * regenerated.
*/ */
@ -3203,7 +3203,7 @@ inline void gcode_M42() {
} }
// //
// Do all the preliminary setup work. First raise the probe. // Do all the preliminary setup work. First raise the Z probe.
// //
st_synchronize(); st_synchronize();
@ -5283,7 +5283,7 @@ void process_next_command() {
break; break;
#if ENABLED(ENABLE_AUTO_BED_LEVELING) || ENABLED(MESH_BED_LEVELING) #if ENABLED(ENABLE_AUTO_BED_LEVELING) || ENABLED(MESH_BED_LEVELING)
case 29: // G29 Detailed Z-Probe, probes the bed at 3 or more points. case 29: // G29 Detailed Z probe, probes the bed at 3 or more points.
gcode_G29(); gcode_G29();
break; break;
#endif #endif
@ -5292,7 +5292,7 @@ void process_next_command() {
#if DISABLED(Z_PROBE_SLED) #if DISABLED(Z_PROBE_SLED)
case 30: // G30 Single Z Probe case 30: // G30 Single Z probe
gcode_G30(); gcode_G30();
break; break;
@ -5378,7 +5378,7 @@ void process_next_command() {
break; break;
#if ENABLED(ENABLE_AUTO_BED_LEVELING) && ENABLED(Z_MIN_PROBE_REPEATABILITY_TEST) #if ENABLED(ENABLE_AUTO_BED_LEVELING) && ENABLED(Z_MIN_PROBE_REPEATABILITY_TEST)
case 48: // M48 Z-Probe repeatability case 48: // M48 Z probe repeatability
gcode_M48(); gcode_M48();
break; break;
#endif // ENABLE_AUTO_BED_LEVELING && Z_MIN_PROBE_REPEATABILITY_TEST #endif // ENABLE_AUTO_BED_LEVELING && Z_MIN_PROBE_REPEATABILITY_TEST

@ -130,20 +130,20 @@
#if ENABLED(ENABLE_AUTO_BED_LEVELING) #if ENABLED(ENABLE_AUTO_BED_LEVELING)
/** /**
* Require a Z Min pin * Require a Z min pin
*/ */
#if !PIN_EXISTS(Z_MIN) #if !PIN_EXISTS(Z_MIN)
#if !PIN_EXISTS(Z_MIN_PROBE) || (DISABLED(Z_MIN_PROBE_ENDSTOP) || ENABLED(DISABLE_Z_MIN_PROBE_ENDSTOP)) // It's possible for someone to set a pin for the Z Probe, but not enable it. #if !PIN_EXISTS(Z_MIN_PROBE) || (DISABLED(Z_MIN_PROBE_ENDSTOP) || ENABLED(DISABLE_Z_MIN_PROBE_ENDSTOP)) // It's possible for someone to set a pin for the Z probe, but not enable it.
#if ENABLED(Z_MIN_PROBE_REPEATABILITY_TEST) #if ENABLED(Z_MIN_PROBE_REPEATABILITY_TEST)
#error You must have a Z_MIN or Z_PROBE endstop to enable Z_MIN_PROBE_REPEATABILITY_TEST. #error You must have a Z min or Z probe endstop to enable Z_MIN_PROBE_REPEATABILITY_TEST.
#else #else
#error ENABLE_AUTO_BED_LEVELING requires a Z_MIN or Z_PROBE endstop. Z_MIN_PIN or Z_MIN_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_MIN_PROBE_PIN must point to a valid hardware pin.
#endif #endif
#endif #endif
#endif #endif
/** /**
* Require a Z Probe Pin if Z_MIN_PROBE_ENDSTOP is enabled. * Require a Z probe pin if Z_MIN_PROBE_ENDSTOP is enabled.
*/ */
#if ENABLED(Z_MIN_PROBE_ENDSTOP) #if ENABLED(Z_MIN_PROBE_ENDSTOP)
#ifndef Z_MIN_PROBE_PIN #ifndef Z_MIN_PROBE_PIN
@ -179,30 +179,30 @@
#endif #endif
// Make sure probing points are reachable // Make sure probing points are reachable
#if LEFT_PROBE_BED_POSITION < MIN_PROBE_X #if LEFT_PROBE_BED_POSITION < MIN_PROBE_X
#error "The given LEFT_PROBE_BED_POSITION can't be reached by the probe." #error "The given LEFT_PROBE_BED_POSITION can't be reached by the Z probe."
#elif RIGHT_PROBE_BED_POSITION > MAX_PROBE_X #elif RIGHT_PROBE_BED_POSITION > MAX_PROBE_X
#error "The given RIGHT_PROBE_BED_POSITION can't be reached by the probe." #error "The given RIGHT_PROBE_BED_POSITION can't be reached by the Z probe."
#elif FRONT_PROBE_BED_POSITION < MIN_PROBE_Y #elif FRONT_PROBE_BED_POSITION < MIN_PROBE_Y
#error "The given FRONT_PROBE_BED_POSITION can't be reached by the probe." #error "The given FRONT_PROBE_BED_POSITION can't be reached by the Z probe."
#elif BACK_PROBE_BED_POSITION > MAX_PROBE_Y #elif BACK_PROBE_BED_POSITION > MAX_PROBE_Y
#error "The given BACK_PROBE_BED_POSITION can't be reached by the probe." #error "The given BACK_PROBE_BED_POSITION can't be reached by the Z probe."
#endif #endif
#endif #endif
#else // !AUTO_BED_LEVELING_GRID #else // !AUTO_BED_LEVELING_GRID
// Check the triangulation points // Check the triangulation points
#if ABL_PROBE_PT_1_X < MIN_PROBE_X || ABL_PROBE_PT_1_X > MAX_PROBE_X #if ABL_PROBE_PT_1_X < MIN_PROBE_X || ABL_PROBE_PT_1_X > MAX_PROBE_X
#error "The given ABL_PROBE_PT_1_X can't be reached by the probe." #error "The given ABL_PROBE_PT_1_X can't be reached by the Z probe."
#elif ABL_PROBE_PT_2_X < MIN_PROBE_X || ABL_PROBE_PT_2_X > MAX_PROBE_X #elif ABL_PROBE_PT_2_X < MIN_PROBE_X || ABL_PROBE_PT_2_X > MAX_PROBE_X
#error "The given ABL_PROBE_PT_2_X can't be reached by the probe." #error "The given ABL_PROBE_PT_2_X can't be reached by the Z probe."
#elif ABL_PROBE_PT_3_X < MIN_PROBE_X || ABL_PROBE_PT_3_X > MAX_PROBE_X #elif ABL_PROBE_PT_3_X < MIN_PROBE_X || ABL_PROBE_PT_3_X > MAX_PROBE_X
#error "The given ABL_PROBE_PT_3_X can't be reached by the probe." #error "The given ABL_PROBE_PT_3_X can't be reached by the Z probe."
#elif ABL_PROBE_PT_1_Y < MIN_PROBE_Y || ABL_PROBE_PT_1_Y > MAX_PROBE_Y #elif ABL_PROBE_PT_1_Y < MIN_PROBE_Y || ABL_PROBE_PT_1_Y > MAX_PROBE_Y
#error "The given ABL_PROBE_PT_1_Y can't be reached by the probe." #error "The given ABL_PROBE_PT_1_Y can't be reached by the Z probe."
#elif ABL_PROBE_PT_2_Y < MIN_PROBE_Y || ABL_PROBE_PT_2_Y > MAX_PROBE_Y #elif ABL_PROBE_PT_2_Y < MIN_PROBE_Y || ABL_PROBE_PT_2_Y > MAX_PROBE_Y
#error "The given ABL_PROBE_PT_2_Y can't be reached by the probe." #error "The given ABL_PROBE_PT_2_Y can't be reached by the Z probe."
#elif ABL_PROBE_PT_3_Y < MIN_PROBE_Y || ABL_PROBE_PT_3_Y > MAX_PROBE_Y #elif ABL_PROBE_PT_3_Y < MIN_PROBE_Y || ABL_PROBE_PT_3_Y > MAX_PROBE_Y
#error "The given ABL_PROBE_PT_3_Y can't be reached by the probe." #error "The given ABL_PROBE_PT_3_Y can't be reached by the Z probe."
#endif #endif
#endif // !AUTO_BED_LEVELING_GRID #endif // !AUTO_BED_LEVELING_GRID
@ -240,7 +240,7 @@
#endif #endif
/** /**
* Allen Key Z Probe requires Auto Bed Leveling grid and Delta * Allen Key Z probe requires Auto Bed Leveling grid and Delta
*/ */
#if ENABLED(Z_PROBE_ALLEN_KEY) && !(ENABLED(AUTO_BED_LEVELING_GRID) && ENABLED(DELTA)) #if ENABLED(Z_PROBE_ALLEN_KEY) && !(ENABLED(AUTO_BED_LEVELING_GRID) && ENABLED(DELTA))
#error Invalid use of Z_PROBE_ALLEN_KEY. #error Invalid use of Z_PROBE_ALLEN_KEY.

@ -341,9 +341,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
//#define DISABLE_MAX_ENDSTOPS //#define DISABLE_MAX_ENDSTOPS
//#define DISABLE_MIN_ENDSTOPS //#define DISABLE_MIN_ENDSTOPS
// If you want to enable the Z Probe pin, but disable its use, uncomment the line below. // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
// This only affects a Z Probe Endstop if you have separate Z min endstop as well and have // This only affects a Z probe endstop if you have separate Z min endstop as well and have
// activated Z_MIN_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z Probe, // activated Z_MIN_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z probe,
// this has no effect. // this has no effect.
//#define DISABLE_Z_MIN_PROBE_ENDSTOP //#define DISABLE_Z_MIN_PROBE_ENDSTOP
@ -419,11 +419,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
//=========================== Manual Bed Leveling =========================== //=========================== Manual Bed Leveling ===========================
//=========================================================================== //===========================================================================
// #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.
#if ENABLED(MANUAL_BED_LEVELING) #if ENABLED(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
#if ENABLED(MESH_BED_LEVELING) #if ENABLED(MESH_BED_LEVELING)
@ -431,9 +431,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
#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
#define MESH_MAX_Y (Y_MAX_POS - MESH_MIN_Y) #define MESH_MAX_Y (Y_MAX_POS - MESH_MIN_Y)
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited #define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
#define MESH_NUM_Y_POINTS 3 #define MESH_NUM_Y_POINTS 3
#define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0 #define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0.
#endif // MESH_BED_LEVELING #endif // MESH_BED_LEVELING
//=========================================================================== //===========================================================================
@ -442,12 +442,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
// @section bedlevel // @section bedlevel
//#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_MIN_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled. #define Z_MIN_PROBE_REPEATABILITY_TEST // If not commented out, Z probe repeatability test will be included if auto bed leveling is enabled.
#if ENABLED(ENABLE_AUTO_BED_LEVELING) #if ENABLED(ENABLE_AUTO_BED_LEVELING)
// There are 2 different ways to specify probing locations // There are 2 different ways to specify probing locations:
// //
// - "grid" mode // - "grid" mode
// Probe several points in a rectangular grid. // Probe several points in a rectangular grid.
@ -458,8 +458,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
// Probe 3 arbitrary points on the bed (that aren't colinear) // Probe 3 arbitrary points on the bed (that aren't colinear)
// You specify the XY coordinates of all 3 points. // You specify the XY coordinates of all 3 points.
// Enable this to sample the bed in a grid (least squares solution) // Enable this to sample the bed in a grid (least squares solution).
// 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
#if ENABLED(AUTO_BED_LEVELING_GRID) #if ENABLED(AUTO_BED_LEVELING_GRID)
@ -469,16 +469,16 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
#define FRONT_PROBE_BED_POSITION 20 #define FRONT_PROBE_BED_POSITION 20
#define BACK_PROBE_BED_POSITION 170 #define BACK_PROBE_BED_POSITION 170
#define MIN_PROBE_EDGE 10 // The probe square sides can be no smaller than this #define MIN_PROBE_EDGE 10 // The Z probe square sides can be no smaller than this.
// Set the number of grid points per dimension // Set the number of grid points per dimension.
// You probably don't need more than 3 (squared=9) // You probably don't need more than 3 (squared=9).
#define AUTO_BED_LEVELING_GRID_POINTS 2 #define AUTO_BED_LEVELING_GRID_POINTS 2
#else // !AUTO_BED_LEVELING_GRID #else // !AUTO_BED_LEVELING_GRID
// Arbitrary points to probe. A simple cross-product // Arbitrary points to probe.
// is used to estimate the plane of the bed. // A simple cross-product is used to estimate the plane of the bed.
#define ABL_PROBE_PT_1_X 15 #define ABL_PROBE_PT_1_X 15
#define ABL_PROBE_PT_1_Y 180 #define ABL_PROBE_PT_1_Y 180
#define ABL_PROBE_PT_2_X 15 #define ABL_PROBE_PT_2_X 15
@ -488,56 +488,73 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
#endif // AUTO_BED_LEVELING_GRID #endif // AUTO_BED_LEVELING_GRID
// Offsets to the probe relative to the extruder tip (Hotend - Probe) // Offsets to the Z probe relative to the nozzle tip.
// X and Y offsets must be integers // X and Y offsets must be integers.
#define X_PROBE_OFFSET_FROM_EXTRUDER -25 // Probe on: -left +right #define X_PROBE_OFFSET_FROM_EXTRUDER -25 // Z probe to nozzle X offset: -left +right
#define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Probe on: -front +behind #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Z probe to nozzle Y offset: -front +behind
#define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // -below (always!) #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // Z probe to nozzle Z offset: -below (always!)
#define Z_RAISE_BEFORE_HOMING 4 // (in mm) Raise Z before homing (G28) for Probe Clearance. #define Z_RAISE_BEFORE_HOMING 4 // (in mm) Raise Z axis before homing (G28) for Z probe clearance.
// Be sure you have this distance over your Z_MAX_POS in case // Be sure you have this distance over your Z_MAX_POS in case.
#define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min #define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min.
#define Z_RAISE_BEFORE_PROBING 15 //How much the extruder will be raised before traveling to the first probing point. #define Z_RAISE_BEFORE_PROBING 15 // How much the Z axis will be raised before traveling to the first probing point.
#define Z_RAISE_BETWEEN_PROBINGS 5 //How much the extruder will be raised when traveling from between next probing points #define Z_RAISE_BETWEEN_PROBINGS 5 // How much the Z axis will be raised when traveling from between next probing points.
#define Z_RAISE_AFTER_PROBING 15 //How much the extruder will be raised after the last probing point. #define Z_RAISE_AFTER_PROBING 15 // How much the Z axis will be raised after the last probing point.
// #define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" //These commands will be executed in the end of G29 routine. // #define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
//Useful to retract a deployable probe. // Useful to retract a deployable Z probe.
//#define Z_PROBE_SLED // turn on if you have a z-probe mounted on a sled like those designed by Charles Bell //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
//#define SLED_DOCKING_OFFSET 5 // the extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.
//If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing, // If you have enabled the bed auto leveling and are using the same Z probe for Z homing,
//it is highly recommended you let this Z_SAFE_HOMING enabled!!! // it is highly recommended you let this Z_SAFE_HOMING enabled!!!
#define Z_SAFE_HOMING // This feature is meant to avoid Z homing with probe outside the bed area. #define Z_SAFE_HOMING // This feature is meant to avoid Z homing with Z probe outside the bed area.
// When defined, it will: // When defined, it will:
// - Allow Z homing only after X and Y homing AND stepper drivers still enabled // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
// - If stepper drivers timeout, it will need X and Y homing again before Z homing // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
// - Position the probe in a defined XY point before Z Homing when homing all axis (G28) // - Position the Z 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 Z probe is outside bed area.
#if ENABLED(Z_SAFE_HOMING) #if ENABLED(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).
#endif #endif
// Support for a dedicated Z PROBE endstop separate from the Z MIN endstop. // Support for a dedicated Z probe endstop separate from the Z min endstop.
// If you would like to use both a Z PROBE and a Z MIN endstop together , uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below. // If you would like to use both a Z probe and a Z min endstop together,
// If you want to still use the Z min endstop for homing, disable Z_SAFE_HOMING above. Eg; to park the head outside the bed area when homing with G28. // uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below.
// WARNING: The Z MIN endstop will need to set properly as it would without a Z PROBE to prevent head crashes and premature stopping during a print. // If you still want to use the Z min endstop for homing, disable Z_SAFE_HOMING above.
// To use a separate Z PROBE endstop, you must have a Z_MIN_PROBE_PIN defined in the pins.h file for your control board. // Example: To park the head outside the bed area when homing with G28.
// If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C Servo below. //
// RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin in the Aux 4 section of the RAMPS board. Use 5V for powered sensors, otherwise connect to ground and D32 // WARNING:
// for normally closed configuration and 5V and D32 for normally open configurations. Normally closed configuration is advised and assumed. // The Z min endstop will need to set properly as it would without a Z probe
// The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin. Z_MIN_PROBE_PIN is setting the pin to use on the Arduino. Since the D32 pin on the RAMPS maps to D32 on Arduino, this works. // to prevent head crashes and premature stopping during a print.
// D32 is currently selected in the RAMPS 1.3/1.4 pin file. All other boards will need changes to the respective pins_XXXXX.h file. //
// WARNING: Setting the wrong pin may have unexpected and potentially disastrous outcomes. Use with caution and do your homework. // To use a separate Z probe endstop, you must have a Z_MIN_PROBE_PIN
// defined in the pins_XXXXX.h file for your control board.
// If you are using a servo based Z probe, you will need to enable NUM_SERVOS,
// Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C SERVO support below.
// RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin
// in the Aux 4 section of the RAMPS board. Use 5V for powered sensors,
// otherwise connect to ground and D32 for normally closed configuration
// and 5V and D32 for normally open configurations.
// Normally closed configuration is advised and assumed.
// The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin.
// Z_MIN_PROBE_PIN is setting the pin to use on the Arduino.
// Since the D32 pin on the RAMPS maps to D32 on Arduino, this works.
// D32 is currently selected in the RAMPS 1.3/1.4 pin file.
// All other boards will need changes to the respective pins_XXXXX.h file.
//
// WARNING:
// Setting the wrong pin may have unexpected and potentially disastrous outcomes.
// Use with caution and do your homework.
//
//#define Z_MIN_PROBE_ENDSTOP //#define Z_MIN_PROBE_ENDSTOP
#endif // ENABLE_AUTO_BED_LEVELING #endif // ENABLE_AUTO_BED_LEVELING
@ -785,7 +802,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
// Servo Endstops // Servo Endstops
// //
// This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes. // This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes.
// Use M851 to set the z-probe vertical offset from the nozzle. Store that setting with M500. // Use M851 to set the Z probe vertical offset from the nozzle. Store that setting with M500.
// //
//#define X_ENDSTOP_SERVO_NR 1 //#define X_ENDSTOP_SERVO_NR 1
//#define Y_ENDSTOP_SERVO_NR 2 //#define Y_ENDSTOP_SERVO_NR 2

@ -323,9 +323,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
#define DISABLE_MAX_ENDSTOPS #define DISABLE_MAX_ENDSTOPS
//#define DISABLE_MIN_ENDSTOPS //#define DISABLE_MIN_ENDSTOPS
// If you want to enable the Z Probe pin, but disable its use, uncomment the line below. // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
// This only affects a Z Probe Endstop if you have separate Z min endstop as well and have // This only affects a Z probe endstop if you have separate Z min endstop as well and have
// activated Z_MIN_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z Probe, // activated Z_MIN_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z probe,
// this has no effect. // this has no effect.
//#define DISABLE_Z_MIN_PROBE_ENDSTOP //#define DISABLE_Z_MIN_PROBE_ENDSTOP
@ -401,11 +401,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
//=========================== Manual Bed Leveling =========================== //=========================== Manual Bed Leveling ===========================
//=========================================================================== //===========================================================================
// #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.
#if ENABLED(MANUAL_BED_LEVELING) #if ENABLED(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
#if ENABLED(MESH_BED_LEVELING) #if ENABLED(MESH_BED_LEVELING)
@ -413,9 +413,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
#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
#define MESH_MAX_Y (Y_MAX_POS - MESH_MIN_Y) #define MESH_MAX_Y (Y_MAX_POS - MESH_MIN_Y)
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited #define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
#define MESH_NUM_Y_POINTS 3 #define MESH_NUM_Y_POINTS 3
#define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0 #define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0.
#endif // MESH_BED_LEVELING #endif // MESH_BED_LEVELING
//=========================================================================== //===========================================================================
@ -424,12 +424,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
// @section bedlevel // @section bedlevel
//#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_MIN_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled. //#define Z_MIN_PROBE_REPEATABILITY_TEST // If not commented out, Z probe repeatability test will be included if auto bed leveling is enabled.
#if ENABLED(ENABLE_AUTO_BED_LEVELING) #if ENABLED(ENABLE_AUTO_BED_LEVELING)
// There are 2 different ways to specify probing locations // There are 2 different ways to specify probing locations:
// //
// - "grid" mode // - "grid" mode
// Probe several points in a rectangular grid. // Probe several points in a rectangular grid.
@ -440,8 +440,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
// Probe 3 arbitrary points on the bed (that aren't colinear) // Probe 3 arbitrary points on the bed (that aren't colinear)
// You specify the XY coordinates of all 3 points. // You specify the XY coordinates of all 3 points.
// Enable this to sample the bed in a grid (least squares solution) // Enable this to sample the bed in a grid (least squares solution).
// 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
#if ENABLED(AUTO_BED_LEVELING_GRID) #if ENABLED(AUTO_BED_LEVELING_GRID)
@ -451,16 +451,16 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
#define FRONT_PROBE_BED_POSITION 20 #define FRONT_PROBE_BED_POSITION 20
#define BACK_PROBE_BED_POSITION 180 #define BACK_PROBE_BED_POSITION 180
#define MIN_PROBE_EDGE 10 // The probe square sides can be no smaller than this #define MIN_PROBE_EDGE 10 // The Z probe square sides can be no smaller than this.
// Set the number of grid points per dimension // Set the number of grid points per dimension.
// You probably don't need more than 3 (squared=9) // You probably don't need more than 3 (squared=9).
#define AUTO_BED_LEVELING_GRID_POINTS 2 #define AUTO_BED_LEVELING_GRID_POINTS 2
#else // !AUTO_BED_LEVELING_GRID #else // !AUTO_BED_LEVELING_GRID
// Arbitrary points to probe. A simple cross-product // Arbitrary points to probe.
// is used to estimate the plane of the bed. // A simple cross-product is used to estimate the plane of the bed.
#define ABL_PROBE_PT_1_X 15 #define ABL_PROBE_PT_1_X 15
#define ABL_PROBE_PT_1_Y 180 #define ABL_PROBE_PT_1_Y 180
#define ABL_PROBE_PT_2_X 15 #define ABL_PROBE_PT_2_X 15
@ -470,56 +470,73 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
#endif // AUTO_BED_LEVELING_GRID #endif // AUTO_BED_LEVELING_GRID
// Offsets to the probe relative to the extruder tip (Hotend - Probe) // Offsets to the Z probe relative to the nozzle tip.
// X and Y offsets must be integers // X and Y offsets must be integers.
#define X_PROBE_OFFSET_FROM_EXTRUDER -25 // Probe on: -left +right #define X_PROBE_OFFSET_FROM_EXTRUDER -25 // Z probe to nozzle X offset: -left +right
#define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Probe on: -front +behind #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Z probe to nozzle Y offset: -front +behind
#define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // -below (always!) #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // Z probe to nozzle Z offset: -below (always!)
#define Z_RAISE_BEFORE_HOMING 4 // (in mm) Raise Z before homing (G28) for Probe Clearance. #define Z_RAISE_BEFORE_HOMING 4 // (in mm) Raise Z axis before homing (G28) for Z probe clearance.
// Be sure you have this distance over your Z_MAX_POS in case // Be sure you have this distance over your Z_MAX_POS in case.
#define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min #define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min.
#define Z_RAISE_BEFORE_PROBING 15 //How much the extruder will be raised before traveling to the first probing point. #define Z_RAISE_BEFORE_PROBING 15 // How much the Z axis will be raised before traveling to the first probing point.
#define Z_RAISE_BETWEEN_PROBINGS 5 //How much the extruder will be raised when traveling from between next probing points #define Z_RAISE_BETWEEN_PROBINGS 5 // How much the Z axis will be raised when traveling from between next probing points.
#define Z_RAISE_AFTER_PROBING 15 //How much the extruder will be raised after the last probing point. #define Z_RAISE_AFTER_PROBING 15 // How much the Z axis will be raised after the last probing point.
// #define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" //These commands will be executed in the end of G29 routine. // #define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
//Useful to retract a deployable probe. // Useful to retract a deployable Z probe.
//#define Z_PROBE_SLED // turn on if you have a z-probe mounted on a sled like those designed by Charles Bell //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
//#define SLED_DOCKING_OFFSET 5 // the extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.
//If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing, // If you have enabled the bed auto leveling and are using the same Z probe for Z homing,
//it is highly recommended you let this Z_SAFE_HOMING enabled!!! // it is highly recommended you let this Z_SAFE_HOMING enabled!!!
#define Z_SAFE_HOMING // This feature is meant to avoid Z homing with probe outside the bed area. #define Z_SAFE_HOMING // This feature is meant to avoid Z homing with Z probe outside the bed area.
// When defined, it will: // When defined, it will:
// - Allow Z homing only after X and Y homing AND stepper drivers still enabled // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
// - If stepper drivers timeout, it will need X and Y homing again before Z homing // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
// - Position the probe in a defined XY point before Z Homing when homing all axis (G28) // - Position the Z 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 Z probe is outside bed area.
#if ENABLED(Z_SAFE_HOMING) #if ENABLED(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).
#endif #endif
// Support for a dedicated Z PROBE endstop separate from the Z MIN endstop. // Support for a dedicated Z probe endstop separate from the Z min endstop.
// If you would like to use both a Z PROBE and a Z MIN endstop together , uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below. // If you would like to use both a Z probe and a Z min endstop together,
// If you want to still use the Z min endstop for homing, disable Z_SAFE_HOMING above. Eg; to park the head outside the bed area when homing with G28. // uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below.
// WARNING: The Z MIN endstop will need to set properly as it would without a Z PROBE to prevent head crashes and premature stopping during a print. // If you still want to use the Z min endstop for homing, disable Z_SAFE_HOMING above.
// To use a separate Z PROBE endstop, you must have a Z_MIN_PROBE_PIN defined in the pins.h file for your control board. // Example: To park the head outside the bed area when homing with G28.
// If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C Servo below. //
// RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin in the Aux 4 section of the RAMPS board. Use 5V for powered sensors, otherwise connect to ground and D32 // WARNING:
// for normally closed configuration and 5V and D32 for normally open configurations. Normally closed configuration is advised and assumed. // The Z min endstop will need to set properly as it would without a Z probe
// The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin. Z_MIN_PROBE_PIN is setting the pin to use on the Arduino. Since the D32 pin on the RAMPS maps to D32 on Arduino, this works. // to prevent head crashes and premature stopping during a print.
// D32 is currently selected in the RAMPS 1.3/1.4 pin file. All other boards will need changes to the respective pins_XXXXX.h file. //
// WARNING: Setting the wrong pin may have unexpected and potentially disastrous outcomes. Use with caution and do your homework. // To use a separate Z probe endstop, you must have a Z_MIN_PROBE_PIN
// defined in the pins_XXXXX.h file for your control board.
// If you are using a servo based Z probe, you will need to enable NUM_SERVOS,
// Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C SERVO support below.
// RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin
// in the Aux 4 section of the RAMPS board. Use 5V for powered sensors,
// otherwise connect to ground and D32 for normally closed configuration
// and 5V and D32 for normally open configurations.
// Normally closed configuration is advised and assumed.
// The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin.
// Z_MIN_PROBE_PIN is setting the pin to use on the Arduino.
// Since the D32 pin on the RAMPS maps to D32 on Arduino, this works.
// D32 is currently selected in the RAMPS 1.3/1.4 pin file.
// All other boards will need changes to the respective pins_XXXXX.h file.
//
// WARNING:
// Setting the wrong pin may have unexpected and potentially disastrous outcomes.
// Use with caution and do your homework.
//
//#define Z_MIN_PROBE_ENDSTOP //#define Z_MIN_PROBE_ENDSTOP
#endif // ENABLE_AUTO_BED_LEVELING #endif // ENABLE_AUTO_BED_LEVELING
@ -596,6 +613,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
#define EEPROM_CHITCHAT // Please keep turned on if you can. #define EEPROM_CHITCHAT // Please keep turned on if you can.
#endif #endif
//
// M100 Free Memory Watcher
//
//#define M100_FREE_MEMORY_WATCHER // uncomment to add the M100 Free Memory Watcher for debug purpose
// @section temperature // @section temperature
// Preheat Constants // Preheat Constants
@ -763,7 +785,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
// Servo Endstops // Servo Endstops
// //
// This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes. // This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes.
// Use M851 to set the z-probe vertical offset from the nozzle. Store that setting with M500. // Use M851 to set the Z probe vertical offset from the nozzle. Store that setting with M500.
// //
//#define X_ENDSTOP_SERVO_NR 1 //#define X_ENDSTOP_SERVO_NR 1
//#define Y_ENDSTOP_SERVO_NR 2 //#define Y_ENDSTOP_SERVO_NR 2

@ -308,6 +308,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
#define DISABLE_MAX_ENDSTOPS #define DISABLE_MAX_ENDSTOPS
//#define DISABLE_MIN_ENDSTOPS //#define DISABLE_MIN_ENDSTOPS
// If you want to enable the Z probe pin, but disable its use, uncomment the line below.
// This only affects a Z probe endstop if you have separate Z min endstop as well and have
// activated Z_MIN_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z probe,
// this has no effect.
//#define DISABLE_Z_MIN_PROBE_ENDSTOP
// For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
#define X_ENABLE_ON 0 #define X_ENABLE_ON 0
#define Y_ENABLE_ON 0 #define Y_ENABLE_ON 0
@ -365,29 +371,35 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
//=========================== Manual Bed Leveling =========================== //=========================== Manual Bed Leveling ===========================
//=========================================================================== //===========================================================================
// #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.
#if ENABLED(MANUAL_BED_LEVELING)
#define MBL_Z_STEP 0.025 // Step size while manually probing Z axis.
#endif // MANUAL_BED_LEVELING
#if ENABLED(MESH_BED_LEVELING) #if ENABLED(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
#define MESH_MAX_Y (Y_MAX_POS - MESH_MIN_Y) #define MESH_MAX_Y (Y_MAX_POS - MESH_MIN_Y)
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited #define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
#define MESH_NUM_Y_POINTS 3 #define MESH_NUM_Y_POINTS 3
#define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0 #define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0.
#endif // MESH_BED_LEVELING #endif // MESH_BED_LEVELING
//=========================================================================== //===========================================================================
//============================ Bed Auto Leveling ============================ //============================ Bed Auto Leveling ============================
//=========================================================================== //===========================================================================
//#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line) // @section bedlevel
//#define Z_MIN_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled.
//#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line).
//#define Z_MIN_PROBE_REPEATABILITY_TEST // If not commented out, Z probe repeatability test will be included if auto bed leveling is enabled.
#if ENABLED(ENABLE_AUTO_BED_LEVELING) #if ENABLED(ENABLE_AUTO_BED_LEVELING)
// There are 2 different ways to specify probing locations // There are 2 different ways to specify probing locations:
// //
// - "grid" mode // - "grid" mode
// Probe several points in a rectangular grid. // Probe several points in a rectangular grid.
@ -398,8 +410,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
// Probe 3 arbitrary points on the bed (that aren't colinear) // Probe 3 arbitrary points on the bed (that aren't colinear)
// You specify the XY coordinates of all 3 points. // You specify the XY coordinates of all 3 points.
// Enable this to sample the bed in a grid (least squares solution) // Enable this to sample the bed in a grid (least squares solution).
// 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
#if ENABLED(AUTO_BED_LEVELING_GRID) #if ENABLED(AUTO_BED_LEVELING_GRID)
@ -409,16 +421,16 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
#define FRONT_PROBE_BED_POSITION 20 #define FRONT_PROBE_BED_POSITION 20
#define BACK_PROBE_BED_POSITION 180 #define BACK_PROBE_BED_POSITION 180
#define MIN_PROBE_EDGE 10 // The probe square sides can be no smaller than this #define MIN_PROBE_EDGE 10 // The Z probe square sides can be no smaller than this.
// Set the number of grid points per dimension // Set the number of grid points per dimension.
// You probably don't need more than 3 (squared=9) // You probably don't need more than 3 (squared=9).
#define AUTO_BED_LEVELING_GRID_POINTS 2 #define AUTO_BED_LEVELING_GRID_POINTS 2
#else // !AUTO_BED_LEVELING_GRID #else // !AUTO_BED_LEVELING_GRID
// Arbitrary points to probe. A simple cross-product // Arbitrary points to probe.
// is used to estimate the plane of the bed. // A simple cross-product is used to estimate the plane of the bed.
#define ABL_PROBE_PT_1_X 15 #define ABL_PROBE_PT_1_X 15
#define ABL_PROBE_PT_1_Y 180 #define ABL_PROBE_PT_1_Y 180
#define ABL_PROBE_PT_2_X 15 #define ABL_PROBE_PT_2_X 15
@ -428,60 +440,73 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
#endif // AUTO_BED_LEVELING_GRID #endif // AUTO_BED_LEVELING_GRID
// Offsets to the probe relative to the extruder tip (Hotend - Probe) // Offsets to the Z probe relative to the nozzle tip.
// X and Y offsets must be integers // X and Y offsets must be integers.
#define X_PROBE_OFFSET_FROM_EXTRUDER -25 // Probe on: -left +right #define X_PROBE_OFFSET_FROM_EXTRUDER -25 // Z probe to nozzle X offset: -left +right
#define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Probe on: -front +behind #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Z probe to nozzle Y offset: -front +behind
#define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // -below (always!) #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // Z probe to nozzle Z offset: -below (always!)
#define Z_RAISE_BEFORE_HOMING 4 // (in mm) Raise Z before homing (G28) for Probe Clearance. #define Z_RAISE_BEFORE_HOMING 4 // (in mm) Raise Z axis before homing (G28) for Z probe clearance.
// Be sure you have this distance over your Z_MAX_POS in case // Be sure you have this distance over your Z_MAX_POS in case.
#define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min #define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min.
#define Z_RAISE_BEFORE_PROBING 15 //How much the extruder will be raised before traveling to the first probing point. #define Z_RAISE_BEFORE_PROBING 15 // How much the Z axis will be raised before traveling to the first probing point.
#define Z_RAISE_BETWEEN_PROBINGS 5 //How much the extruder will be raised when traveling from between next probing points #define Z_RAISE_BETWEEN_PROBINGS 5 // How much the Z axis will be raised when traveling from between next probing points.
#define Z_RAISE_AFTER_PROBING 15 //How much the extruder will be raised after the last probing point. #define Z_RAISE_AFTER_PROBING 15 // How much the Z axis will be raised after the last probing point.
// #define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" //These commands will be executed in the end of G29 routine. // #define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
//Useful to retract a deployable probe. // Useful to retract a deployable Z probe.
//#define Z_PROBE_SLED // turn on if you have a z-probe mounted on a sled like those designed by Charles Bell //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
//#define SLED_DOCKING_OFFSET 5 // the extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.
//If defined, the Probe servo will be turned on only during movement and then turned off to avoid jerk
//The value is the delay to turn the servo off after powered on - depends on the servo speed; 300ms is good value, but you can try lower it.
// If you have enabled the bed auto leveling and are using the same Z probe for Z homing,
// it is highly recommended you let this Z_SAFE_HOMING enabled!!!
//If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing, #define Z_SAFE_HOMING // This feature is meant to avoid Z homing with Z probe outside the bed area.
//it is highly recommended you let this Z_SAFE_HOMING enabled!!!
#define Z_SAFE_HOMING // This feature is meant to avoid Z homing with probe outside the bed area.
// When defined, it will: // When defined, it will:
// - Allow Z homing only after X and Y homing AND stepper drivers still enabled // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
// - If stepper drivers timeout, it will need X and Y homing again before Z homing // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
// - Position the probe in a defined XY point before Z Homing when homing all axis (G28) // - Position the Z 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 Z probe is outside bed area.
#if ENABLED(Z_SAFE_HOMING) #if ENABLED(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).
#endif #endif
// Support for a dedicated Z PROBE endstop separate from the Z MIN endstop. // Support for a dedicated Z probe endstop separate from the Z min endstop.
// If you would like to use both a Z PROBE and a Z MIN endstop together , uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below. // If you would like to use both a Z probe and a Z min endstop together,
// If you want to still use the Z min endstop for homing, disable Z_SAFE_HOMING above. Eg; to park the head outside the bed area when homing with G28. // uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below.
// WARNING: The Z MIN endstop will need to set properly as it would without a Z PROBE to prevent head crashes and premature stopping during a print. // If you still want to use the Z min endstop for homing, disable Z_SAFE_HOMING above.
// To use a separate Z PROBE endstop, you must have a Z_MIN_PROBE_PIN defined in the pins.h file for your control board. // Example: To park the head outside the bed area when homing with G28.
// If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C Servo below. //
// RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin in the Aux 4 section of the RAMPS board. Use 5V for powered sensors, otherwise connect to ground and D32 // WARNING:
// for normally closed configuration and 5V and D32 for normally open configurations. Normally closed configuration is advised and assumed. // The Z min endstop will need to set properly as it would without a Z probe
// The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin. Z_MIN_PROBE_PIN is setting the pin to use on the Arduino. Since the D32 pin on the RAMPS maps to D32 on Arduino, this works. // to prevent head crashes and premature stopping during a print.
// D32 is currently selected in the RAMPS 1.3/1.4 pin file. All other boards will need changes to the respective pins_XXXXX.h file. //
// WARNING: Setting the wrong pin may have unexpected and potentially disastrous outcomes. Use with caution and do your homework. // To use a separate Z probe endstop, you must have a Z_MIN_PROBE_PIN
// defined in the pins_XXXXX.h file for your control board.
// If you are using a servo based Z probe, you will need to enable NUM_SERVOS,
// Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C SERVO support below.
// RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin
// in the Aux 4 section of the RAMPS board. Use 5V for powered sensors,
// otherwise connect to ground and D32 for normally closed configuration
// and 5V and D32 for normally open configurations.
// Normally closed configuration is advised and assumed.
// The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin.
// Z_MIN_PROBE_PIN is setting the pin to use on the Arduino.
// Since the D32 pin on the RAMPS maps to D32 on Arduino, this works.
// D32 is currently selected in the RAMPS 1.3/1.4 pin file.
// All other boards will need changes to the respective pins_XXXXX.h file.
//
// WARNING:
// Setting the wrong pin may have unexpected and potentially disastrous outcomes.
// Use with caution and do your homework.
//
//#define Z_MIN_PROBE_ENDSTOP //#define Z_MIN_PROBE_ENDSTOP
#endif // ENABLE_AUTO_BED_LEVELING #endif // ENABLE_AUTO_BED_LEVELING
@ -557,6 +582,13 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
#define EEPROM_CHITCHAT // please keep turned on if you can. #define EEPROM_CHITCHAT // please keep turned on if you can.
#endif #endif
//
// M100 Free Memory Watcher
//
//#define M100_FREE_MEMORY_WATCHER // uncomment to add the M100 Free Memory Watcher for debug purpose
// @section temperature
// Preheat Constants // Preheat Constants
#define PLA_PREHEAT_HOTEND_TEMP 180 #define PLA_PREHEAT_HOTEND_TEMP 180
#define PLA_PREHEAT_HPB_TEMP 70 #define PLA_PREHEAT_HPB_TEMP 70
@ -716,7 +748,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
// Servo Endstops // Servo Endstops
// //
// This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes. // This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes.
// Use M851 to set the z-probe vertical offset from the nozzle. Store that setting with M500. // Use M851 to set the Z probe vertical offset from the nozzle. Store that setting with M500.
// //
//#define X_ENDSTOP_SERVO_NR 1 //#define X_ENDSTOP_SERVO_NR 1
//#define Y_ENDSTOP_SERVO_NR 2 //#define Y_ENDSTOP_SERVO_NR 2

@ -333,9 +333,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
//#define DISABLE_MAX_ENDSTOPS //#define DISABLE_MAX_ENDSTOPS
//#define DISABLE_MIN_ENDSTOPS //#define DISABLE_MIN_ENDSTOPS
// If you want to enable the Z Probe pin, but disable its use, uncomment the line below. // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
// This only affects a Z Probe Endstop if you have separate Z min endstop as well and have // This only affects a Z probe endstop if you have separate Z min endstop as well and have
// activated Z_MIN_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z Probe, // activated Z_MIN_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z probe,
// this has no effect. // this has no effect.
//#define DISABLE_Z_MIN_PROBE_ENDSTOP //#define DISABLE_Z_MIN_PROBE_ENDSTOP
@ -411,11 +411,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
//=========================== Manual Bed Leveling =========================== //=========================== Manual Bed Leveling ===========================
//=========================================================================== //===========================================================================
// #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.
#if ENABLED(MANUAL_BED_LEVELING) #if ENABLED(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
#if ENABLED(MESH_BED_LEVELING) #if ENABLED(MESH_BED_LEVELING)
@ -423,9 +423,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
#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
#define MESH_MAX_Y (Y_MAX_POS - MESH_MIN_Y) #define MESH_MAX_Y (Y_MAX_POS - MESH_MIN_Y)
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited #define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
#define MESH_NUM_Y_POINTS 3 #define MESH_NUM_Y_POINTS 3
#define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0 #define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0.
#endif // MESH_BED_LEVELING #endif // MESH_BED_LEVELING
//=========================================================================== //===========================================================================
@ -434,12 +434,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
// @section bedlevel // @section bedlevel
//#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_MIN_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled. #define Z_MIN_PROBE_REPEATABILITY_TEST // If not commented out, Z probe repeatability test will be included if auto bed leveling is enabled.
#if ENABLED(ENABLE_AUTO_BED_LEVELING) #if ENABLED(ENABLE_AUTO_BED_LEVELING)
// There are 2 different ways to specify probing locations // There are 2 different ways to specify probing locations:
// //
// - "grid" mode // - "grid" mode
// Probe several points in a rectangular grid. // Probe several points in a rectangular grid.
@ -450,8 +450,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
// Probe 3 arbitrary points on the bed (that aren't colinear) // Probe 3 arbitrary points on the bed (that aren't colinear)
// You specify the XY coordinates of all 3 points. // You specify the XY coordinates of all 3 points.
// Enable this to sample the bed in a grid (least squares solution) // Enable this to sample the bed in a grid (least squares solution).
// 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
#if ENABLED(AUTO_BED_LEVELING_GRID) #if ENABLED(AUTO_BED_LEVELING_GRID)
@ -461,16 +461,16 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
#define FRONT_PROBE_BED_POSITION 20 #define FRONT_PROBE_BED_POSITION 20
#define BACK_PROBE_BED_POSITION 170 #define BACK_PROBE_BED_POSITION 170
#define MIN_PROBE_EDGE 10 // The probe square sides can be no smaller than this #define MIN_PROBE_EDGE 10 // The Z probe square sides can be no smaller than this.
// Set the number of grid points per dimension // Set the number of grid points per dimension.
// You probably don't need more than 3 (squared=9) // You probably don't need more than 3 (squared=9).
#define AUTO_BED_LEVELING_GRID_POINTS 2 #define AUTO_BED_LEVELING_GRID_POINTS 2
#else // !AUTO_BED_LEVELING_GRID #else // !AUTO_BED_LEVELING_GRID
// Arbitrary points to probe. A simple cross-product // Arbitrary points to probe.
// is used to estimate the plane of the bed. // A simple cross-product is used to estimate the plane of the bed.
#define ABL_PROBE_PT_1_X 15 #define ABL_PROBE_PT_1_X 15
#define ABL_PROBE_PT_1_Y 180 #define ABL_PROBE_PT_1_Y 180
#define ABL_PROBE_PT_2_X 15 #define ABL_PROBE_PT_2_X 15
@ -480,56 +480,73 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
#endif // AUTO_BED_LEVELING_GRID #endif // AUTO_BED_LEVELING_GRID
// Offsets to the probe relative to the extruder tip (Hotend - Probe) // Offsets to the Z probe relative to the nozzle tip.
// X and Y offsets must be integers // X and Y offsets must be integers.
#define X_PROBE_OFFSET_FROM_EXTRUDER -25 // Probe on: -left +right #define X_PROBE_OFFSET_FROM_EXTRUDER -25 // Z probe to nozzle X offset: -left +right
#define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Probe on: -front +behind #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Z probe to nozzle Y offset: -front +behind
#define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // -below (always!) #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // Z probe to nozzle Z offset: -below (always!)
#define Z_RAISE_BEFORE_HOMING 4 // (in mm) Raise Z before homing (G28) for Probe Clearance. #define Z_RAISE_BEFORE_HOMING 4 // (in mm) Raise Z axis before homing (G28) for Z probe clearance.
// Be sure you have this distance over your Z_MAX_POS in case // Be sure you have this distance over your Z_MAX_POS in case.
#define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min #define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min.
#define Z_RAISE_BEFORE_PROBING 15 //How much the extruder will be raised before traveling to the first probing point. #define Z_RAISE_BEFORE_PROBING 15 // How much the Z axis will be raised before traveling to the first probing point.
#define Z_RAISE_BETWEEN_PROBINGS 5 //How much the extruder will be raised when traveling from between next probing points #define Z_RAISE_BETWEEN_PROBINGS 5 // How much the Z axis will be raised when traveling from between next probing points.
#define Z_RAISE_AFTER_PROBING 15 //How much the extruder will be raised after the last probing point. #define Z_RAISE_AFTER_PROBING 15 // How much the Z axis will be raised after the last probing point.
// #define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" //These commands will be executed in the end of G29 routine. // #define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
//Useful to retract a deployable probe. // Useful to retract a deployable Z probe.
//#define Z_PROBE_SLED // turn on if you have a z-probe mounted on a sled like those designed by Charles Bell //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
//#define SLED_DOCKING_OFFSET 5 // the extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.
//If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing, // If you have enabled the bed auto leveling and are using the same Z probe for Z homing,
//it is highly recommended you let this Z_SAFE_HOMING enabled!!! // it is highly recommended you let this Z_SAFE_HOMING enabled!!!
#define Z_SAFE_HOMING // This feature is meant to avoid Z homing with probe outside the bed area. #define Z_SAFE_HOMING // This feature is meant to avoid Z homing with Z probe outside the bed area.
// When defined, it will: // When defined, it will:
// - Allow Z homing only after X and Y homing AND stepper drivers still enabled // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
// - If stepper drivers timeout, it will need X and Y homing again before Z homing // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
// - Position the probe in a defined XY point before Z Homing when homing all axis (G28) // - Position the Z 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 Z probe is outside bed area.
#if ENABLED(Z_SAFE_HOMING) #if ENABLED(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).
#endif #endif
// Support for a dedicated Z PROBE endstop separate from the Z MIN endstop. // Support for a dedicated Z probe endstop separate from the Z min endstop.
// If you would like to use both a Z PROBE and a Z MIN endstop together , uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below. // If you would like to use both a Z probe and a Z min endstop together,
// If you want to still use the Z min endstop for homing, disable Z_SAFE_HOMING above. Eg; to park the head outside the bed area when homing with G28. // uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below.
// WARNING: The Z MIN endstop will need to set properly as it would without a Z PROBE to prevent head crashes and premature stopping during a print. // If you still want to use the Z min endstop for homing, disable Z_SAFE_HOMING above.
// To use a separate Z PROBE endstop, you must have a Z_MIN_PROBE_PIN defined in the pins.h file for your control board. // Example: To park the head outside the bed area when homing with G28.
// If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C Servo below. //
// RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin in the Aux 4 section of the RAMPS board. Use 5V for powered sensors, otherwise connect to ground and D32 // WARNING:
// for normally closed configuration and 5V and D32 for normally open configurations. Normally closed configuration is advised and assumed. // The Z min endstop will need to set properly as it would without a Z probe
// The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin. Z_MIN_PROBE_PIN is setting the pin to use on the Arduino. Since the D32 pin on the RAMPS maps to D32 on Arduino, this works. // to prevent head crashes and premature stopping during a print.
// D32 is currently selected in the RAMPS 1.3/1.4 pin file. All other boards will need changes to the respective pins_XXXXX.h file. //
// WARNING: Setting the wrong pin may have unexpected and potentially disastrous outcomes. Use with caution and do your homework. // To use a separate Z probe endstop, you must have a Z_MIN_PROBE_PIN
// defined in the pins_XXXXX.h file for your control board.
// If you are using a servo based Z probe, you will need to enable NUM_SERVOS,
// Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C SERVO support below.
// RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin
// in the Aux 4 section of the RAMPS board. Use 5V for powered sensors,
// otherwise connect to ground and D32 for normally closed configuration
// and 5V and D32 for normally open configurations.
// Normally closed configuration is advised and assumed.
// The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin.
// Z_MIN_PROBE_PIN is setting the pin to use on the Arduino.
// Since the D32 pin on the RAMPS maps to D32 on Arduino, this works.
// D32 is currently selected in the RAMPS 1.3/1.4 pin file.
// All other boards will need changes to the respective pins_XXXXX.h file.
//
// WARNING:
// Setting the wrong pin may have unexpected and potentially disastrous outcomes.
// Use with caution and do your homework.
//
//#define Z_MIN_PROBE_ENDSTOP //#define Z_MIN_PROBE_ENDSTOP
#endif // ENABLE_AUTO_BED_LEVELING #endif // ENABLE_AUTO_BED_LEVELING
@ -605,6 +622,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
#define EEPROM_CHITCHAT // Please keep turned on if you can. #define EEPROM_CHITCHAT // Please keep turned on if you can.
#endif #endif
//
// M100 Free Memory Watcher
//
//#define M100_FREE_MEMORY_WATCHER // uncomment to add the M100 Free Memory Watcher for debug purpose
// @section temperature // @section temperature
// Preheat Constants // Preheat Constants
@ -772,7 +794,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
// Servo Endstops // Servo Endstops
// //
// This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes. // This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes.
// Use M851 to set the z-probe vertical offset from the nozzle. Store that setting with M500. // Use M851 to set the Z probe vertical offset from the nozzle. Store that setting with M500.
// //
//#define X_ENDSTOP_SERVO_NR 1 //#define X_ENDSTOP_SERVO_NR 1
//#define Y_ENDSTOP_SERVO_NR 2 //#define Y_ENDSTOP_SERVO_NR 2

@ -329,9 +329,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
#define DISABLE_MAX_ENDSTOPS #define DISABLE_MAX_ENDSTOPS
//#define DISABLE_MIN_ENDSTOPS //#define DISABLE_MIN_ENDSTOPS
// If you want to enable the Z Probe pin, but disable its use, uncomment the line below. // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
// This only affects a Z Probe Endstop if you have separate Z min endstop as well and have // This only affects a Z probe endstop if you have separate Z min endstop as well and have
// activated Z_MIN_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z Probe, // activated Z_MIN_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z probe,
// this has no effect. // this has no effect.
//#define DISABLE_Z_MIN_PROBE_ENDSTOP //#define DISABLE_Z_MIN_PROBE_ENDSTOP
@ -407,11 +407,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
//=========================== Manual Bed Leveling =========================== //=========================== Manual Bed Leveling ===========================
//=========================================================================== //===========================================================================
// #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.
#if ENABLED(MANUAL_BED_LEVELING) #if ENABLED(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
#if ENABLED(MESH_BED_LEVELING) #if ENABLED(MESH_BED_LEVELING)
@ -419,9 +419,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
#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
#define MESH_MAX_Y (Y_MAX_POS - MESH_MIN_Y) #define MESH_MAX_Y (Y_MAX_POS - MESH_MIN_Y)
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited #define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
#define MESH_NUM_Y_POINTS 3 #define MESH_NUM_Y_POINTS 3
#define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0 #define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0.
#endif // MESH_BED_LEVELING #endif // MESH_BED_LEVELING
//=========================================================================== //===========================================================================
@ -430,12 +430,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
// @section bedlevel // @section bedlevel
//#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_MIN_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled. #define Z_MIN_PROBE_REPEATABILITY_TEST // If not commented out, Z probe repeatability test will be included if auto bed leveling is enabled.
#if ENABLED(ENABLE_AUTO_BED_LEVELING) #if ENABLED(ENABLE_AUTO_BED_LEVELING)
// There are 2 different ways to specify probing locations // There are 2 different ways to specify probing locations:
// //
// - "grid" mode // - "grid" mode
// Probe several points in a rectangular grid. // Probe several points in a rectangular grid.
@ -446,8 +446,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
// Probe 3 arbitrary points on the bed (that aren't colinear) // Probe 3 arbitrary points on the bed (that aren't colinear)
// You specify the XY coordinates of all 3 points. // You specify the XY coordinates of all 3 points.
// Enable this to sample the bed in a grid (least squares solution) // Enable this to sample the bed in a grid (least squares solution).
// 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
#if ENABLED(AUTO_BED_LEVELING_GRID) #if ENABLED(AUTO_BED_LEVELING_GRID)
@ -457,16 +457,16 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
#define FRONT_PROBE_BED_POSITION 20 #define FRONT_PROBE_BED_POSITION 20
#define BACK_PROBE_BED_POSITION 170 #define BACK_PROBE_BED_POSITION 170
#define MIN_PROBE_EDGE 10 // The probe square sides can be no smaller than this #define MIN_PROBE_EDGE 10 // The Z probe square sides can be no smaller than this.
// Set the number of grid points per dimension // Set the number of grid points per dimension.
// You probably don't need more than 3 (squared=9) // You probably don't need more than 3 (squared=9).
#define AUTO_BED_LEVELING_GRID_POINTS 2 #define AUTO_BED_LEVELING_GRID_POINTS 2
#else // !AUTO_BED_LEVELING_GRID #else // !AUTO_BED_LEVELING_GRID
// Arbitrary points to probe. A simple cross-product // Arbitrary points to probe.
// is used to estimate the plane of the bed. // A simple cross-product is used to estimate the plane of the bed.
#define ABL_PROBE_PT_1_X 15 #define ABL_PROBE_PT_1_X 15
#define ABL_PROBE_PT_1_Y 180 #define ABL_PROBE_PT_1_Y 180
#define ABL_PROBE_PT_2_X 15 #define ABL_PROBE_PT_2_X 15
@ -476,56 +476,73 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
#endif // AUTO_BED_LEVELING_GRID #endif // AUTO_BED_LEVELING_GRID
// Offsets to the probe relative to the extruder tip (Hotend - Probe) // Offsets to the Z probe relative to the nozzle tip.
// X and Y offsets must be integers // X and Y offsets must be integers.
#define X_PROBE_OFFSET_FROM_EXTRUDER -25 // Probe on: -left +right #define X_PROBE_OFFSET_FROM_EXTRUDER -25 // Z probe to nozzle X offset: -left +right
#define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Probe on: -front +behind #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Z probe to nozzle Y offset: -front +behind
#define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // -below (always!) #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // Z probe to nozzle Z offset: -below (always!)
#define Z_RAISE_BEFORE_HOMING 4 // (in mm) Raise Z before homing (G28) for Probe Clearance. #define Z_RAISE_BEFORE_HOMING 4 // (in mm) Raise Z axis before homing (G28) for Z probe clearance.
// Be sure you have this distance over your Z_MAX_POS in case // Be sure you have this distance over your Z_MAX_POS in case.
#define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min #define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min.
#define Z_RAISE_BEFORE_PROBING 15 //How much the extruder will be raised before traveling to the first probing point. #define Z_RAISE_BEFORE_PROBING 15 // How much the Z axis will be raised before traveling to the first probing point.
#define Z_RAISE_BETWEEN_PROBINGS 5 //How much the extruder will be raised when traveling from between next probing points #define Z_RAISE_BETWEEN_PROBINGS 5 // How much the Z axis will be raised when traveling from between next probing points.
#define Z_RAISE_AFTER_PROBING 15 //How much the extruder will be raised after the last probing point. #define Z_RAISE_AFTER_PROBING 15 // How much the Z axis will be raised after the last probing point.
// #define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" //These commands will be executed in the end of G29 routine. // #define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
//Useful to retract a deployable probe. // Useful to retract a deployable Z probe.
//#define Z_PROBE_SLED // turn on if you have a z-probe mounted on a sled like those designed by Charles Bell //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
//#define SLED_DOCKING_OFFSET 5 // the extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.
//If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing, // If you have enabled the bed auto leveling and are using the same Z probe for Z homing,
//it is highly recommended you let this Z_SAFE_HOMING enabled!!! // it is highly recommended you let this Z_SAFE_HOMING enabled!!!
#define Z_SAFE_HOMING // This feature is meant to avoid Z homing with probe outside the bed area. #define Z_SAFE_HOMING // This feature is meant to avoid Z homing with Z probe outside the bed area.
// When defined, it will: // When defined, it will:
// - Allow Z homing only after X and Y homing AND stepper drivers still enabled // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
// - If stepper drivers timeout, it will need X and Y homing again before Z homing // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
// - Position the probe in a defined XY point before Z Homing when homing all axis (G28) // - Position the Z 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 Z probe is outside bed area.
#if ENABLED(Z_SAFE_HOMING) #if ENABLED(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).
#endif #endif
// Support for a dedicated Z PROBE endstop separate from the Z MIN endstop. // Support for a dedicated Z probe endstop separate from the Z min endstop.
// If you would like to use both a Z PROBE and a Z MIN endstop together , uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below. // If you would like to use both a Z probe and a Z min endstop together,
// If you want to still use the Z min endstop for homing, disable Z_SAFE_HOMING above. Eg; to park the head outside the bed area when homing with G28. // uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below.
// WARNING: The Z MIN endstop will need to set properly as it would without a Z PROBE to prevent head crashes and premature stopping during a print. // If you still want to use the Z min endstop for homing, disable Z_SAFE_HOMING above.
// To use a separate Z PROBE endstop, you must have a Z_MIN_PROBE_PIN defined in the pins.h file for your control board. // Example: To park the head outside the bed area when homing with G28.
// If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C Servo below. //
// RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin in the Aux 4 section of the RAMPS board. Use 5V for powered sensors, otherwise connect to ground and D32 // WARNING:
// for normally closed configuration and 5V and D32 for normally open configurations. Normally closed configuration is advised and assumed. // The Z min endstop will need to set properly as it would without a Z probe
// The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin. Z_MIN_PROBE_PIN is setting the pin to use on the Arduino. Since the D32 pin on the RAMPS maps to D32 on Arduino, this works. // to prevent head crashes and premature stopping during a print.
// D32 is currently selected in the RAMPS 1.3/1.4 pin file. All other boards will need changes to the respective pins_XXXXX.h file. //
// WARNING: Setting the wrong pin may have unexpected and potentially disastrous outcomes. Use with caution and do your homework. // To use a separate Z probe endstop, you must have a Z_MIN_PROBE_PIN
// defined in the pins_XXXXX.h file for your control board.
// If you are using a servo based Z probe, you will need to enable NUM_SERVOS,
// Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C SERVO support below.
// RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin
// in the Aux 4 section of the RAMPS board. Use 5V for powered sensors,
// otherwise connect to ground and D32 for normally closed configuration
// and 5V and D32 for normally open configurations.
// Normally closed configuration is advised and assumed.
// The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin.
// Z_MIN_PROBE_PIN is setting the pin to use on the Arduino.
// Since the D32 pin on the RAMPS maps to D32 on Arduino, this works.
// D32 is currently selected in the RAMPS 1.3/1.4 pin file.
// All other boards will need changes to the respective pins_XXXXX.h file.
//
// WARNING:
// Setting the wrong pin may have unexpected and potentially disastrous outcomes.
// Use with caution and do your homework.
//
//#define Z_MIN_PROBE_ENDSTOP //#define Z_MIN_PROBE_ENDSTOP
#endif // ENABLE_AUTO_BED_LEVELING #endif // ENABLE_AUTO_BED_LEVELING
@ -601,6 +618,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
#define EEPROM_CHITCHAT // Please keep turned on if you can. #define EEPROM_CHITCHAT // Please keep turned on if you can.
#endif #endif
//
// M100 Free Memory Watcher
//
//#define M100_FREE_MEMORY_WATCHER // uncomment to add the M100 Free Memory Watcher for debug purpose
// @section temperature // @section temperature
// Preheat Constants // Preheat Constants
@ -768,7 +790,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
// Servo Endstops // Servo Endstops
// //
// This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes. // This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes.
// Use M851 to set the z-probe vertical offset from the nozzle. Store that setting with M500. // Use M851 to set the Z probe vertical offset from the nozzle. Store that setting with M500.
// //
//#define X_ENDSTOP_SERVO_NR 1 //#define X_ENDSTOP_SERVO_NR 1
//#define Y_ENDSTOP_SERVO_NR 2 //#define Y_ENDSTOP_SERVO_NR 2

@ -341,9 +341,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
//#define DISABLE_MAX_ENDSTOPS //#define DISABLE_MAX_ENDSTOPS
//#define DISABLE_MIN_ENDSTOPS //#define DISABLE_MIN_ENDSTOPS
// If you want to enable the Z Probe pin, but disable its use, uncomment the line below. // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
// This only affects a Z Probe Endstop if you have separate Z min endstop as well and have // This only affects a Z probe endstop if you have separate Z min endstop as well and have
// activated Z_MIN_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z Probe, // activated Z_MIN_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z probe,
// this has no effect. // this has no effect.
//#define DISABLE_Z_MIN_PROBE_ENDSTOP //#define DISABLE_Z_MIN_PROBE_ENDSTOP
@ -419,11 +419,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
//=========================== Manual Bed Leveling =========================== //=========================== Manual Bed Leveling ===========================
//=========================================================================== //===========================================================================
// #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.
#if ENABLED(MANUAL_BED_LEVELING) #if ENABLED(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
#if ENABLED(MESH_BED_LEVELING) #if ENABLED(MESH_BED_LEVELING)
@ -431,9 +431,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
#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
#define MESH_MAX_Y (Y_MAX_POS - MESH_MIN_Y) #define MESH_MAX_Y (Y_MAX_POS - MESH_MIN_Y)
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited #define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
#define MESH_NUM_Y_POINTS 3 #define MESH_NUM_Y_POINTS 3
#define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0 #define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0.
#endif // MESH_BED_LEVELING #endif // MESH_BED_LEVELING
//=========================================================================== //===========================================================================
@ -442,12 +442,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
// @section bedlevel // @section bedlevel
//#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_MIN_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled. #define Z_MIN_PROBE_REPEATABILITY_TEST // If not commented out, Z probe repeatability test will be included if auto bed leveling is enabled.
#if ENABLED(ENABLE_AUTO_BED_LEVELING) #if ENABLED(ENABLE_AUTO_BED_LEVELING)
// There are 2 different ways to specify probing locations // There are 2 different ways to specify probing locations:
// //
// - "grid" mode // - "grid" mode
// Probe several points in a rectangular grid. // Probe several points in a rectangular grid.
@ -458,8 +458,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
// Probe 3 arbitrary points on the bed (that aren't colinear) // Probe 3 arbitrary points on the bed (that aren't colinear)
// You specify the XY coordinates of all 3 points. // You specify the XY coordinates of all 3 points.
// Enable this to sample the bed in a grid (least squares solution) // Enable this to sample the bed in a grid (least squares solution).
// 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
#if ENABLED(AUTO_BED_LEVELING_GRID) #if ENABLED(AUTO_BED_LEVELING_GRID)
@ -469,16 +469,16 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
#define FRONT_PROBE_BED_POSITION 20 #define FRONT_PROBE_BED_POSITION 20
#define BACK_PROBE_BED_POSITION 170 #define BACK_PROBE_BED_POSITION 170
#define MIN_PROBE_EDGE 10 // The probe square sides can be no smaller than this #define MIN_PROBE_EDGE 10 // The Z probe square sides can be no smaller than this.
// Set the number of grid points per dimension // Set the number of grid points per dimension.
// You probably don't need more than 3 (squared=9) // You probably don't need more than 3 (squared=9).
#define AUTO_BED_LEVELING_GRID_POINTS 2 #define AUTO_BED_LEVELING_GRID_POINTS 2
#else // !AUTO_BED_LEVELING_GRID #else // !AUTO_BED_LEVELING_GRID
// Arbitrary points to probe. A simple cross-product // Arbitrary points to probe.
// is used to estimate the plane of the bed. // A simple cross-product is used to estimate the plane of the bed.
#define ABL_PROBE_PT_1_X 15 #define ABL_PROBE_PT_1_X 15
#define ABL_PROBE_PT_1_Y 180 #define ABL_PROBE_PT_1_Y 180
#define ABL_PROBE_PT_2_X 15 #define ABL_PROBE_PT_2_X 15
@ -488,56 +488,73 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
#endif // AUTO_BED_LEVELING_GRID #endif // AUTO_BED_LEVELING_GRID
// Offsets to the probe relative to the extruder tip (Hotend - Probe) // Offsets to the Z probe relative to the nozzle tip.
// X and Y offsets must be integers // X and Y offsets must be integers.
#define X_PROBE_OFFSET_FROM_EXTRUDER -25 // Probe on: -left +right #define X_PROBE_OFFSET_FROM_EXTRUDER -25 // Z probe to nozzle X offset: -left +right
#define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Probe on: -front +behind #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Z probe to nozzle Y offset: -front +behind
#define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // -below (always!) #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // Z probe to nozzle Z offset: -below (always!)
#define Z_RAISE_BEFORE_HOMING 4 // (in mm) Raise Z before homing (G28) for Probe Clearance. #define Z_RAISE_BEFORE_HOMING 4 // (in mm) Raise Z axis before homing (G28) for Z probe clearance.
// Be sure you have this distance over your Z_MAX_POS in case // Be sure you have this distance over your Z_MAX_POS in case.
#define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min #define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min.
#define Z_RAISE_BEFORE_PROBING 15 //How much the extruder will be raised before traveling to the first probing point. #define Z_RAISE_BEFORE_PROBING 15 // How much the Z axis will be raised before traveling to the first probing point.
#define Z_RAISE_BETWEEN_PROBINGS 5 //How much the extruder will be raised when traveling from between next probing points #define Z_RAISE_BETWEEN_PROBINGS 5 // How much the Z axis will be raised when traveling from between next probing points.
#define Z_RAISE_AFTER_PROBING 15 //How much the extruder will be raised after the last probing point. #define Z_RAISE_AFTER_PROBING 15 // How much the Z axis will be raised after the last probing point.
// #define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" //These commands will be executed in the end of G29 routine. // #define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
//Useful to retract a deployable probe. // Useful to retract a deployable Z probe.
//#define Z_PROBE_SLED // turn on if you have a z-probe mounted on a sled like those designed by Charles Bell //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
//#define SLED_DOCKING_OFFSET 5 // the extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.
//If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing, // If you have enabled the bed auto leveling and are using the same Z probe for Z homing,
//it is highly recommended you let this Z_SAFE_HOMING enabled!!! // it is highly recommended you let this Z_SAFE_HOMING enabled!!!
#define Z_SAFE_HOMING // This feature is meant to avoid Z homing with probe outside the bed area. #define Z_SAFE_HOMING // This feature is meant to avoid Z homing with Z probe outside the bed area.
// When defined, it will: // When defined, it will:
// - Allow Z homing only after X and Y homing AND stepper drivers still enabled // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
// - If stepper drivers timeout, it will need X and Y homing again before Z homing // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
// - Position the probe in a defined XY point before Z Homing when homing all axis (G28) // - Position the Z 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 Z probe is outside bed area.
#if ENABLED(Z_SAFE_HOMING) #if ENABLED(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).
#endif #endif
// Support for a dedicated Z PROBE endstop separate from the Z MIN endstop. // Support for a dedicated Z probe endstop separate from the Z min endstop.
// If you would like to use both a Z PROBE and a Z MIN endstop together , uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below. // If you would like to use both a Z probe and a Z min endstop together,
// If you want to still use the Z min endstop for homing, disable Z_SAFE_HOMING above. Eg; to park the head outside the bed area when homing with G28. // uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below.
// WARNING: The Z MIN endstop will need to set properly as it would without a Z PROBE to prevent head crashes and premature stopping during a print. // If you still want to use the Z min endstop for homing, disable Z_SAFE_HOMING above.
// To use a separate Z PROBE endstop, you must have a Z_MIN_PROBE_PIN defined in the pins.h file for your control board. // Example: To park the head outside the bed area when homing with G28.
// If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C Servo below. //
// RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin in the Aux 4 section of the RAMPS board. Use 5V for powered sensors, otherwise connect to ground and D32 // WARNING:
// for normally closed configuration and 5V and D32 for normally open configurations. Normally closed configuration is advised and assumed. // The Z min endstop will need to set properly as it would without a Z probe
// The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin. Z_MIN_PROBE_PIN is setting the pin to use on the Arduino. Since the D32 pin on the RAMPS maps to D32 on Arduino, this works. // to prevent head crashes and premature stopping during a print.
// D32 is currently selected in the RAMPS 1.3/1.4 pin file. All other boards will need changes to the respective pins_XXXXX.h file. //
// WARNING: Setting the wrong pin may have unexpected and potentially disastrous outcomes. Use with caution and do your homework. // To use a separate Z probe endstop, you must have a Z_MIN_PROBE_PIN
// defined in the pins_XXXXX.h file for your control board.
// If you are using a servo based Z probe, you will need to enable NUM_SERVOS,
// Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C SERVO support below.
// RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin
// in the Aux 4 section of the RAMPS board. Use 5V for powered sensors,
// otherwise connect to ground and D32 for normally closed configuration
// and 5V and D32 for normally open configurations.
// Normally closed configuration is advised and assumed.
// The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin.
// Z_MIN_PROBE_PIN is setting the pin to use on the Arduino.
// Since the D32 pin on the RAMPS maps to D32 on Arduino, this works.
// D32 is currently selected in the RAMPS 1.3/1.4 pin file.
// All other boards will need changes to the respective pins_XXXXX.h file.
//
// WARNING:
// Setting the wrong pin may have unexpected and potentially disastrous outcomes.
// Use with caution and do your homework.
//
//#define Z_MIN_PROBE_ENDSTOP //#define Z_MIN_PROBE_ENDSTOP
#endif // ENABLE_AUTO_BED_LEVELING #endif // ENABLE_AUTO_BED_LEVELING
@ -613,6 +630,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
#define EEPROM_CHITCHAT // Please keep turned on if you can. #define EEPROM_CHITCHAT // Please keep turned on if you can.
#endif #endif
//
// M100 Free Memory Watcher
//
//#define M100_FREE_MEMORY_WATCHER // uncomment to add the M100 Free Memory Watcher for debug purpose
// @section temperature // @section temperature
// Preheat Constants // Preheat Constants
@ -780,7 +802,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
// Servo Endstops // Servo Endstops
// //
// This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes. // This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes.
// Use M851 to set the z-probe vertical offset from the nozzle. Store that setting with M500. // Use M851 to set the Z probe vertical offset from the nozzle. Store that setting with M500.
// //
//#define X_ENDSTOP_SERVO_NR 1 //#define X_ENDSTOP_SERVO_NR 1
//#define Y_ENDSTOP_SERVO_NR 2 //#define Y_ENDSTOP_SERVO_NR 2

@ -327,9 +327,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
//#define DISABLE_MAX_ENDSTOPS //#define DISABLE_MAX_ENDSTOPS
//#define DISABLE_MIN_ENDSTOPS //#define DISABLE_MIN_ENDSTOPS
// If you want to enable the Z Probe pin, but disable its use, uncomment the line below. // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
// This only affects a Z Probe Endstop if you have separate Z min endstop as well and have // This only affects a Z probe endstop if you have separate Z min endstop as well and have
// activated Z_MIN_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z Probe, // activated Z_MIN_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z probe,
// this has no effect. // this has no effect.
//#define DISABLE_Z_MIN_PROBE_ENDSTOP //#define DISABLE_Z_MIN_PROBE_ENDSTOP
@ -405,11 +405,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
//=========================== Manual Bed Leveling =========================== //=========================== Manual Bed Leveling ===========================
//=========================================================================== //===========================================================================
// #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.
#if ENABLED(MANUAL_BED_LEVELING) #if ENABLED(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
#if ENABLED(MESH_BED_LEVELING) #if ENABLED(MESH_BED_LEVELING)
@ -417,9 +417,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
#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
#define MESH_MAX_Y (Y_MAX_POS - MESH_MIN_Y) #define MESH_MAX_Y (Y_MAX_POS - MESH_MIN_Y)
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited #define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
#define MESH_NUM_Y_POINTS 3 #define MESH_NUM_Y_POINTS 3
#define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0 #define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0.
#endif // MESH_BED_LEVELING #endif // MESH_BED_LEVELING
//=========================================================================== //===========================================================================
@ -428,12 +428,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
// @section bedlevel // @section bedlevel
//#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_MIN_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled. //#define Z_MIN_PROBE_REPEATABILITY_TEST // If not commented out, Z probe repeatability test will be included if auto bed leveling is enabled.
#if ENABLED(ENABLE_AUTO_BED_LEVELING) #if ENABLED(ENABLE_AUTO_BED_LEVELING)
// There are 2 different ways to specify probing locations // There are 2 different ways to specify probing locations:
// //
// - "grid" mode // - "grid" mode
// Probe several points in a rectangular grid. // Probe several points in a rectangular grid.
@ -444,8 +444,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
// Probe 3 arbitrary points on the bed (that aren't colinear) // Probe 3 arbitrary points on the bed (that aren't colinear)
// You specify the XY coordinates of all 3 points. // You specify the XY coordinates of all 3 points.
// Enable this to sample the bed in a grid (least squares solution) // Enable this to sample the bed in a grid (least squares solution).
// 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
#if ENABLED(AUTO_BED_LEVELING_GRID) #if ENABLED(AUTO_BED_LEVELING_GRID)
@ -455,16 +455,16 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
#define FRONT_PROBE_BED_POSITION 20 #define FRONT_PROBE_BED_POSITION 20
#define BACK_PROBE_BED_POSITION 170 #define BACK_PROBE_BED_POSITION 170
#define MIN_PROBE_EDGE 10 // The probe square sides can be no smaller than this #define MIN_PROBE_EDGE 10 // The Z probe square sides can be no smaller than this.
// Set the number of grid points per dimension // Set the number of grid points per dimension.
// You probably don't need more than 3 (squared=9) // You probably don't need more than 3 (squared=9).
#define AUTO_BED_LEVELING_GRID_POINTS 2 #define AUTO_BED_LEVELING_GRID_POINTS 2
#else // !AUTO_BED_LEVELING_GRID #else // !AUTO_BED_LEVELING_GRID
// Arbitrary points to probe. A simple cross-product // Arbitrary points to probe.
// is used to estimate the plane of the bed. // A simple cross-product is used to estimate the plane of the bed.
#define ABL_PROBE_PT_1_X 15 #define ABL_PROBE_PT_1_X 15
#define ABL_PROBE_PT_1_Y 180 #define ABL_PROBE_PT_1_Y 180
#define ABL_PROBE_PT_2_X 15 #define ABL_PROBE_PT_2_X 15
@ -474,56 +474,73 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
#endif // AUTO_BED_LEVELING_GRID #endif // AUTO_BED_LEVELING_GRID
// Offsets to the probe relative to the extruder tip (Hotend - Probe) // Offsets to the Z probe relative to the nozzle tip.
// X and Y offsets must be integers // X and Y offsets must be integers.
#define X_PROBE_OFFSET_FROM_EXTRUDER -25 // Probe on: -left +right #define X_PROBE_OFFSET_FROM_EXTRUDER -25 // Z probe to nozzle X offset: -left +right
#define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Probe on: -front +behind #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Z probe to nozzle Y offset: -front +behind
#define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // -below (always!) #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // Z probe to nozzle Z offset: -below (always!)
#define Z_RAISE_BEFORE_HOMING 4 // (in mm) Raise Z before homing (G28) for Probe Clearance. #define Z_RAISE_BEFORE_HOMING 4 // (in mm) Raise Z axis before homing (G28) for Z probe clearance.
// Be sure you have this distance over your Z_MAX_POS in case // Be sure you have this distance over your Z_MAX_POS in case.
#define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min #define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min.
#define Z_RAISE_BEFORE_PROBING 15 //How much the extruder will be raised before traveling to the first probing point. #define Z_RAISE_BEFORE_PROBING 15 // How much the Z axis will be raised before traveling to the first probing point.
#define Z_RAISE_BETWEEN_PROBINGS 5 //How much the extruder will be raised when traveling from between next probing points #define Z_RAISE_BETWEEN_PROBINGS 5 // How much the Z axis will be raised when traveling from between next probing points.
#define Z_RAISE_AFTER_PROBING 15 //How much the extruder will be raised after the last probing point. #define Z_RAISE_AFTER_PROBING 15 // How much the Z axis will be raised after the last probing point.
// #define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" //These commands will be executed in the end of G29 routine. // #define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
//Useful to retract a deployable probe. // Useful to retract a deployable Z probe.
//#define Z_PROBE_SLED // turn on if you have a z-probe mounted on a sled like those designed by Charles Bell //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
//#define SLED_DOCKING_OFFSET 5 // the extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.
//If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing, // If you have enabled the bed auto leveling and are using the same Z probe for Z homing,
//it is highly recommended you let this Z_SAFE_HOMING enabled!!! // it is highly recommended you let this Z_SAFE_HOMING enabled!!!
#define Z_SAFE_HOMING // This feature is meant to avoid Z homing with probe outside the bed area. #define Z_SAFE_HOMING // This feature is meant to avoid Z homing with Z probe outside the bed area.
// When defined, it will: // When defined, it will:
// - Allow Z homing only after X and Y homing AND stepper drivers still enabled // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
// - If stepper drivers timeout, it will need X and Y homing again before Z homing // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
// - Position the probe in a defined XY point before Z Homing when homing all axis (G28) // - Position the Z 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 Z probe is outside bed area.
#if ENABLED(Z_SAFE_HOMING) #if ENABLED(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).
#endif #endif
// Support for a dedicated Z PROBE endstop separate from the Z MIN endstop. // Support for a dedicated Z probe endstop separate from the Z min endstop.
// If you would like to use both a Z PROBE and a Z MIN endstop together , uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below. // If you would like to use both a Z probe and a Z min endstop together,
// If you want to still use the Z min endstop for homing, disable Z_SAFE_HOMING above. Eg; to park the head outside the bed area when homing with G28. // uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below.
// WARNING: The Z MIN endstop will need to set properly as it would without a Z PROBE to prevent head crashes and premature stopping during a print. // If you still want to use the Z min endstop for homing, disable Z_SAFE_HOMING above.
// To use a separate Z PROBE endstop, you must have a Z_MIN_PROBE_PIN defined in the pins.h file for your control board. // Example: To park the head outside the bed area when homing with G28.
// If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C Servo below. //
// RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin in the Aux 4 section of the RAMPS board. Use 5V for powered sensors, otherwise connect to ground and D32 // WARNING:
// for normally closed configuration and 5V and D32 for normally open configurations. Normally closed configuration is advised and assumed. // The Z min endstop will need to set properly as it would without a Z probe
// The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin. Z_MIN_PROBE_PIN is setting the pin to use on the Arduino. Since the D32 pin on the RAMPS maps to D32 on Arduino, this works. // to prevent head crashes and premature stopping during a print.
// D32 is currently selected in the RAMPS 1.3/1.4 pin file. All other boards will need changes to the respective pins_XXXXX.h file. //
// WARNING: Setting the wrong pin may have unexpected and potentially disastrous outcomes. Use with caution and do your homework. // To use a separate Z probe endstop, you must have a Z_MIN_PROBE_PIN
// defined in the pins_XXXXX.h file for your control board.
// If you are using a servo based Z probe, you will need to enable NUM_SERVOS,
// Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C SERVO support below.
// RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin
// in the Aux 4 section of the RAMPS board. Use 5V for powered sensors,
// otherwise connect to ground and D32 for normally closed configuration
// and 5V and D32 for normally open configurations.
// Normally closed configuration is advised and assumed.
// The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin.
// Z_MIN_PROBE_PIN is setting the pin to use on the Arduino.
// Since the D32 pin on the RAMPS maps to D32 on Arduino, this works.
// D32 is currently selected in the RAMPS 1.3/1.4 pin file.
// All other boards will need changes to the respective pins_XXXXX.h file.
//
// WARNING:
// Setting the wrong pin may have unexpected and potentially disastrous outcomes.
// Use with caution and do your homework.
//
//#define Z_MIN_PROBE_ENDSTOP //#define Z_MIN_PROBE_ENDSTOP
#endif // ENABLE_AUTO_BED_LEVELING #endif // ENABLE_AUTO_BED_LEVELING
@ -775,7 +792,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
// Servo Endstops // Servo Endstops
// //
// This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes. // This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes.
// Use M851 to set the z-probe vertical offset from the nozzle. Store that setting with M500. // Use M851 to set the Z probe vertical offset from the nozzle. Store that setting with M500.
// //
//#define X_ENDSTOP_SERVO_NR 1 //#define X_ENDSTOP_SERVO_NR 1
//#define Y_ENDSTOP_SERVO_NR 2 //#define Y_ENDSTOP_SERVO_NR 2

@ -349,9 +349,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
//#define DISABLE_MAX_ENDSTOPS //#define DISABLE_MAX_ENDSTOPS
//#define DISABLE_MIN_ENDSTOPS //#define DISABLE_MIN_ENDSTOPS
// If you want to enable the Z Probe pin, but disable its use, uncomment the line below. // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
// This only affects a Z Probe Endstop if you have separate Z min endstop as well and have // This only affects a Z probe endstop if you have separate Z min endstop as well and have
// activated Z_MIN_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z Probe, // activated Z_MIN_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z probe,
// this has no effect. // this has no effect.
//#define DISABLE_Z_MIN_PROBE_ENDSTOP //#define DISABLE_Z_MIN_PROBE_ENDSTOP
@ -427,11 +427,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
//=========================== Manual Bed Leveling =========================== //=========================== Manual Bed Leveling ===========================
//=========================================================================== //===========================================================================
// #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.
#if ENABLED(MANUAL_BED_LEVELING) #if ENABLED(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
#if ENABLED(MESH_BED_LEVELING) #if ENABLED(MESH_BED_LEVELING)
@ -439,9 +439,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
#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
#define MESH_MAX_Y (Y_MAX_POS - MESH_MIN_Y) #define MESH_MAX_Y (Y_MAX_POS - MESH_MIN_Y)
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited #define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
#define MESH_NUM_Y_POINTS 3 #define MESH_NUM_Y_POINTS 3
#define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0 #define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0.
#endif // MESH_BED_LEVELING #endif // MESH_BED_LEVELING
//=========================================================================== //===========================================================================
@ -450,12 +450,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
// @section bedlevel // @section bedlevel
//#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_MIN_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled. #define Z_MIN_PROBE_REPEATABILITY_TEST // If not commented out, Z probe repeatability test will be included if auto bed leveling is enabled.
#if ENABLED(ENABLE_AUTO_BED_LEVELING) #if ENABLED(ENABLE_AUTO_BED_LEVELING)
// There are 2 different ways to specify probing locations // There are 2 different ways to specify probing locations:
// //
// - "grid" mode // - "grid" mode
// Probe several points in a rectangular grid. // Probe several points in a rectangular grid.
@ -466,8 +466,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
// Probe 3 arbitrary points on the bed (that aren't colinear) // Probe 3 arbitrary points on the bed (that aren't colinear)
// You specify the XY coordinates of all 3 points. // You specify the XY coordinates of all 3 points.
// Enable this to sample the bed in a grid (least squares solution) // Enable this to sample the bed in a grid (least squares solution).
// 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
#if ENABLED(AUTO_BED_LEVELING_GRID) #if ENABLED(AUTO_BED_LEVELING_GRID)
@ -477,16 +477,16 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
#define FRONT_PROBE_BED_POSITION 20 #define FRONT_PROBE_BED_POSITION 20
#define BACK_PROBE_BED_POSITION 170 #define BACK_PROBE_BED_POSITION 170
#define MIN_PROBE_EDGE 10 // The probe square sides can be no smaller than this #define MIN_PROBE_EDGE 10 // The Z probe square sides can be no smaller than this.
// Set the number of grid points per dimension // Set the number of grid points per dimension.
// You probably don't need more than 3 (squared=9) // You probably don't need more than 3 (squared=9).
#define AUTO_BED_LEVELING_GRID_POINTS 2 #define AUTO_BED_LEVELING_GRID_POINTS 2
#else // !AUTO_BED_LEVELING_GRID #else // !AUTO_BED_LEVELING_GRID
// Arbitrary points to probe. A simple cross-product // Arbitrary points to probe.
// is used to estimate the plane of the bed. // A simple cross-product is used to estimate the plane of the bed.
#define ABL_PROBE_PT_1_X 15 #define ABL_PROBE_PT_1_X 15
#define ABL_PROBE_PT_1_Y 180 #define ABL_PROBE_PT_1_Y 180
#define ABL_PROBE_PT_2_X 15 #define ABL_PROBE_PT_2_X 15
@ -496,56 +496,73 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
#endif // AUTO_BED_LEVELING_GRID #endif // AUTO_BED_LEVELING_GRID
// Offsets to the probe relative to the extruder tip (Hotend - Probe) // Offsets to the Z probe relative to the nozzle tip.
// X and Y offsets must be integers // X and Y offsets must be integers.
#define X_PROBE_OFFSET_FROM_EXTRUDER -25 // Probe on: -left +right #define X_PROBE_OFFSET_FROM_EXTRUDER -25 // Z probe to nozzle X offset: -left +right
#define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Probe on: -front +behind #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Z probe to nozzle Y offset: -front +behind
#define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // -below (always!) #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // Z probe to nozzle Z offset: -below (always!)
//#define Z_RAISE_BEFORE_HOMING 4 // (in mm) Raise Z before homing (G28) for Probe Clearance. //#define Z_RAISE_BEFORE_HOMING 4 // (in mm) Raise Z axis before homing (G28) for Z probe clearance.
// Be sure you have this distance over your Z_MAX_POS in case // Be sure you have this distance over your Z_MAX_POS in case.
#define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min #define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min.
#define Z_RAISE_BEFORE_PROBING 15 //How much the extruder will be raised before traveling to the first probing point. #define Z_RAISE_BEFORE_PROBING 15 // How much the Z axis will be raised before traveling to the first probing point.
#define Z_RAISE_BETWEEN_PROBINGS 5 //How much the extruder will be raised when traveling from between next probing points #define Z_RAISE_BETWEEN_PROBINGS 5 // How much the Z axis will be raised when traveling from between next probing points.
#define Z_RAISE_AFTER_PROBING 15 //How much the extruder will be raised after the last probing point. #define Z_RAISE_AFTER_PROBING 15 // How much the Z axis will be raised after the last probing point.
// #define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" //These commands will be executed in the end of G29 routine. // #define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
//Useful to retract a deployable probe. // Useful to retract a deployable Z probe.
//#define Z_PROBE_SLED // turn on if you have a z-probe mounted on a sled like those designed by Charles Bell //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
//#define SLED_DOCKING_OFFSET 5 // the extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.
//If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing, // If you have enabled the bed auto leveling and are using the same Z probe for Z homing,
//it is highly recommended you let this Z_SAFE_HOMING enabled!!! // it is highly recommended you let this Z_SAFE_HOMING enabled!!!
// #define Z_SAFE_HOMING // This feature is meant to avoid Z homing with probe outside the bed area. // #define Z_SAFE_HOMING // This feature is meant to avoid Z homing with Z probe outside the bed area.
// When defined, it will: // When defined, it will:
// - Allow Z homing only after X and Y homing AND stepper drivers still enabled // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
// - If stepper drivers timeout, it will need X and Y homing again before Z homing // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
// - Position the probe in a defined XY point before Z Homing when homing all axis (G28) // - Position the Z 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 Z probe is outside bed area.
#if ENABLED(Z_SAFE_HOMING) #if ENABLED(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).
#endif #endif
// Support for a dedicated Z PROBE endstop separate from the Z MIN endstop. // Support for a dedicated Z probe endstop separate from the Z min endstop.
// If you would like to use both a Z PROBE and a Z MIN endstop together , uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below. // If you would like to use both a Z probe and a Z min endstop together,
// If you want to still use the Z min endstop for homing, disable Z_SAFE_HOMING above. Eg; to park the head outside the bed area when homing with G28. // uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below.
// WARNING: The Z MIN endstop will need to set properly as it would without a Z PROBE to prevent head crashes and premature stopping during a print. // If you still want to use the Z min endstop for homing, disable Z_SAFE_HOMING above.
// To use a separate Z PROBE endstop, you must have a Z_MIN_PROBE_PIN defined in the pins.h file for your control board. // Example: To park the head outside the bed area when homing with G28.
// If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C Servo below. //
// RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin in the Aux 4 section of the RAMPS board. Use 5V for powered sensors, otherwise connect to ground and D32 // WARNING:
// for normally closed configuration and 5V and D32 for normally open configurations. Normally closed configuration is advised and assumed. // The Z min endstop will need to set properly as it would without a Z probe
// The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin. Z_MIN_PROBE_PIN is setting the pin to use on the Arduino. Since the D32 pin on the RAMPS maps to D32 on Arduino, this works. // to prevent head crashes and premature stopping during a print.
// D32 is currently selected in the RAMPS 1.3/1.4 pin file. All other boards will need changes to the respective pins_XXXXX.h file. //
// WARNING: Setting the wrong pin may have unexpected and potentially disastrous outcomes. Use with caution and do your homework. // To use a separate Z probe endstop, you must have a Z_MIN_PROBE_PIN
// defined in the pins_XXXXX.h file for your control board.
// If you are using a servo based Z probe, you will need to enable NUM_SERVOS,
// Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C SERVO support below.
// RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin
// in the Aux 4 section of the RAMPS board. Use 5V for powered sensors,
// otherwise connect to ground and D32 for normally closed configuration
// and 5V and D32 for normally open configurations.
// Normally closed configuration is advised and assumed.
// The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin.
// Z_MIN_PROBE_PIN is setting the pin to use on the Arduino.
// Since the D32 pin on the RAMPS maps to D32 on Arduino, this works.
// D32 is currently selected in the RAMPS 1.3/1.4 pin file.
// All other boards will need changes to the respective pins_XXXXX.h file.
//
// WARNING:
// Setting the wrong pin may have unexpected and potentially disastrous outcomes.
// Use with caution and do your homework.
//
//#define Z_MIN_PROBE_ENDSTOP //#define Z_MIN_PROBE_ENDSTOP
#endif // ENABLE_AUTO_BED_LEVELING #endif // ENABLE_AUTO_BED_LEVELING
@ -621,6 +638,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
#define EEPROM_CHITCHAT // Please keep turned on if you can. #define EEPROM_CHITCHAT // Please keep turned on if you can.
#endif #endif
//
// M100 Free Memory Watcher
//
//#define M100_FREE_MEMORY_WATCHER // uncomment to add the M100 Free Memory Watcher for debug purpose
// @section temperature // @section temperature
// Preheat Constants // Preheat Constants
@ -788,7 +810,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
// Servo Endstops // Servo Endstops
// //
// This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes. // This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes.
// Use M851 to set the z-probe vertical offset from the nozzle. Store that setting with M500. // Use M851 to set the Z probe vertical offset from the nozzle. Store that setting with M500.
// //
//#define X_ENDSTOP_SERVO_NR 1 //#define X_ENDSTOP_SERVO_NR 1
//#define Y_ENDSTOP_SERVO_NR 2 //#define Y_ENDSTOP_SERVO_NR 2

@ -333,9 +333,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
//#define DISABLE_MAX_ENDSTOPS //#define DISABLE_MAX_ENDSTOPS
//#define DISABLE_MIN_ENDSTOPS //#define DISABLE_MIN_ENDSTOPS
// If you want to enable the Z Probe pin, but disable its use, uncomment the line below. // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
// This only affects a Z Probe Endstop if you have separate Z min endstop as well and have // This only affects a Z probe endstop if you have separate Z min endstop as well and have
// activated Z_MIN_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z Probe, // activated Z_MIN_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z probe,
// this has no effect. // this has no effect.
//#define DISABLE_Z_MIN_PROBE_ENDSTOP //#define DISABLE_Z_MIN_PROBE_ENDSTOP
@ -411,11 +411,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
//=========================== Manual Bed Leveling =========================== //=========================== Manual Bed Leveling ===========================
//=========================================================================== //===========================================================================
// #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.
#if ENABLED(MANUAL_BED_LEVELING) #if ENABLED(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
#if ENABLED(MESH_BED_LEVELING) #if ENABLED(MESH_BED_LEVELING)
@ -423,9 +423,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
#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
#define MESH_MAX_Y (Y_MAX_POS - MESH_MIN_Y) #define MESH_MAX_Y (Y_MAX_POS - MESH_MIN_Y)
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited #define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
#define MESH_NUM_Y_POINTS 3 #define MESH_NUM_Y_POINTS 3
#define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0 #define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0.
#endif // MESH_BED_LEVELING #endif // MESH_BED_LEVELING
//=========================================================================== //===========================================================================
@ -434,12 +434,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
// @section bedlevel // @section bedlevel
//#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_MIN_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled. #define Z_MIN_PROBE_REPEATABILITY_TEST // If not commented out, Z probe repeatability test will be included if auto bed leveling is enabled.
#if ENABLED(ENABLE_AUTO_BED_LEVELING) #if ENABLED(ENABLE_AUTO_BED_LEVELING)
// There are 2 different ways to specify probing locations // There are 2 different ways to specify probing locations:
// //
// - "grid" mode // - "grid" mode
// Probe several points in a rectangular grid. // Probe several points in a rectangular grid.
@ -450,8 +450,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
// Probe 3 arbitrary points on the bed (that aren't colinear) // Probe 3 arbitrary points on the bed (that aren't colinear)
// You specify the XY coordinates of all 3 points. // You specify the XY coordinates of all 3 points.
// Enable this to sample the bed in a grid (least squares solution) // Enable this to sample the bed in a grid (least squares solution).
// 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
#if ENABLED(AUTO_BED_LEVELING_GRID) #if ENABLED(AUTO_BED_LEVELING_GRID)
@ -461,16 +461,16 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
#define FRONT_PROBE_BED_POSITION 20 #define FRONT_PROBE_BED_POSITION 20
#define BACK_PROBE_BED_POSITION 170 #define BACK_PROBE_BED_POSITION 170
#define MIN_PROBE_EDGE 10 // The probe square sides can be no smaller than this #define MIN_PROBE_EDGE 10 // The Z probe square sides can be no smaller than this.
// Set the number of grid points per dimension // Set the number of grid points per dimension.
// You probably don't need more than 3 (squared=9) // You probably don't need more than 3 (squared=9).
#define AUTO_BED_LEVELING_GRID_POINTS 2 #define AUTO_BED_LEVELING_GRID_POINTS 2
#else // !AUTO_BED_LEVELING_GRID #else // !AUTO_BED_LEVELING_GRID
// Arbitrary points to probe. A simple cross-product // Arbitrary points to probe.
// is used to estimate the plane of the bed. // A simple cross-product is used to estimate the plane of the bed.
#define ABL_PROBE_PT_1_X 15 #define ABL_PROBE_PT_1_X 15
#define ABL_PROBE_PT_1_Y 180 #define ABL_PROBE_PT_1_Y 180
#define ABL_PROBE_PT_2_X 15 #define ABL_PROBE_PT_2_X 15
@ -480,56 +480,73 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
#endif // AUTO_BED_LEVELING_GRID #endif // AUTO_BED_LEVELING_GRID
// Offsets to the probe relative to the extruder tip (Hotend - Probe) // Offsets to the Z probe relative to the nozzle tip.
// X and Y offsets must be integers // X and Y offsets must be integers.
#define X_PROBE_OFFSET_FROM_EXTRUDER -25 // Probe on: -left +right #define X_PROBE_OFFSET_FROM_EXTRUDER -25 // Z probe to nozzle X offset: -left +right
#define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Probe on: -front +behind #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Z probe to nozzle Y offset: -front +behind
#define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // -below (always!) #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // Z probe to nozzle Z offset: -below (always!)
#define Z_RAISE_BEFORE_HOMING 4 // (in mm) Raise Z before homing (G28) for Probe Clearance. #define Z_RAISE_BEFORE_HOMING 4 // (in mm) Raise Z axis before homing (G28) for Z probe clearance.
// Be sure you have this distance over your Z_MAX_POS in case // Be sure you have this distance over your Z_MAX_POS in case.
#define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min #define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min.
#define Z_RAISE_BEFORE_PROBING 15 //How much the extruder will be raised before traveling to the first probing point. #define Z_RAISE_BEFORE_PROBING 15 // How much the Z axis will be raised before traveling to the first probing point.
#define Z_RAISE_BETWEEN_PROBINGS 5 //How much the extruder will be raised when traveling from between next probing points #define Z_RAISE_BETWEEN_PROBINGS 5 // How much the Z axis will be raised when traveling from between next probing points.
#define Z_RAISE_AFTER_PROBING 15 //How much the extruder will be raised after the last probing point. #define Z_RAISE_AFTER_PROBING 15 // How much the Z axis will be raised after the last probing point.
// #define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" //These commands will be executed in the end of G29 routine. // #define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
//Useful to retract a deployable probe. // Useful to retract a deployable Z probe.
//#define Z_PROBE_SLED // turn on if you have a z-probe mounted on a sled like those designed by Charles Bell //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
//#define SLED_DOCKING_OFFSET 5 // the extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.
//If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing, // If you have enabled the bed auto leveling and are using the same Z probe for Z homing,
//it is highly recommended you let this Z_SAFE_HOMING enabled!!! // it is highly recommended you let this Z_SAFE_HOMING enabled!!!
#define Z_SAFE_HOMING // This feature is meant to avoid Z homing with probe outside the bed area. #define Z_SAFE_HOMING // This feature is meant to avoid Z homing with Z probe outside the bed area.
// When defined, it will: // When defined, it will:
// - Allow Z homing only after X and Y homing AND stepper drivers still enabled // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
// - If stepper drivers timeout, it will need X and Y homing again before Z homing // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
// - Position the probe in a defined XY point before Z Homing when homing all axis (G28) // - Position the Z 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 Z probe is outside bed area.
#if ENABLED(Z_SAFE_HOMING) #if ENABLED(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).
#endif #endif
// Support for a dedicated Z PROBE endstop separate from the Z MIN endstop. // Support for a dedicated Z probe endstop separate from the Z min endstop.
// If you would like to use both a Z PROBE and a Z MIN endstop together , uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below. // If you would like to use both a Z probe and a Z min endstop together,
// If you want to still use the Z min endstop for homing, disable Z_SAFE_HOMING above. Eg; to park the head outside the bed area when homing with G28. // uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below.
// WARNING: The Z MIN endstop will need to set properly as it would without a Z PROBE to prevent head crashes and premature stopping during a print. // If you still want to use the Z min endstop for homing, disable Z_SAFE_HOMING above.
// To use a separate Z PROBE endstop, you must have a Z_MIN_PROBE_PIN defined in the pins.h file for your control board. // Example: To park the head outside the bed area when homing with G28.
// If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C Servo below. //
// RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin in the Aux 4 section of the RAMPS board. Use 5V for powered sensors, otherwise connect to ground and D32 // WARNING:
// for normally closed configuration and 5V and D32 for normally open configurations. Normally closed configuration is advised and assumed. // The Z min endstop will need to set properly as it would without a Z probe
// The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin. Z_MIN_PROBE_PIN is setting the pin to use on the Arduino. Since the D32 pin on the RAMPS maps to D32 on Arduino, this works. // to prevent head crashes and premature stopping during a print.
// D32 is currently selected in the RAMPS 1.3/1.4 pin file. All other boards will need changes to the respective pins_XXXXX.h file. //
// WARNING: Setting the wrong pin may have unexpected and potentially disastrous outcomes. Use with caution and do your homework. // To use a separate Z probe endstop, you must have a Z_MIN_PROBE_PIN
// defined in the pins_XXXXX.h file for your control board.
// If you are using a servo based Z probe, you will need to enable NUM_SERVOS,
// Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C SERVO support below.
// RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin
// in the Aux 4 section of the RAMPS board. Use 5V for powered sensors,
// otherwise connect to ground and D32 for normally closed configuration
// and 5V and D32 for normally open configurations.
// Normally closed configuration is advised and assumed.
// The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin.
// Z_MIN_PROBE_PIN is setting the pin to use on the Arduino.
// Since the D32 pin on the RAMPS maps to D32 on Arduino, this works.
// D32 is currently selected in the RAMPS 1.3/1.4 pin file.
// All other boards will need changes to the respective pins_XXXXX.h file.
//
// WARNING:
// Setting the wrong pin may have unexpected and potentially disastrous outcomes.
// Use with caution and do your homework.
//
//#define Z_MIN_PROBE_ENDSTOP //#define Z_MIN_PROBE_ENDSTOP
#endif // ENABLE_AUTO_BED_LEVELING #endif // ENABLE_AUTO_BED_LEVELING
@ -605,6 +622,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
#define EEPROM_CHITCHAT // Please keep turned on if you can. #define EEPROM_CHITCHAT // Please keep turned on if you can.
#endif #endif
//
// M100 Free Memory Watcher
//
//#define M100_FREE_MEMORY_WATCHER // uncomment to add the M100 Free Memory Watcher for debug purpose
// @section temperature // @section temperature
// Preheat Constants // Preheat Constants
@ -772,7 +794,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
// Servo Endstops // Servo Endstops
// //
// This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes. // This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes.
// Use M851 to set the z-probe vertical offset from the nozzle. Store that setting with M500. // Use M851 to set the Z probe vertical offset from the nozzle. Store that setting with M500.
// //
//#define X_ENDSTOP_SERVO_NR 1 //#define X_ENDSTOP_SERVO_NR 1
//#define Y_ENDSTOP_SERVO_NR 2 //#define Y_ENDSTOP_SERVO_NR 2

@ -341,9 +341,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
//#define DISABLE_MAX_ENDSTOPS //#define DISABLE_MAX_ENDSTOPS
//#define DISABLE_MIN_ENDSTOPS //#define DISABLE_MIN_ENDSTOPS
// If you want to enable the Z Probe pin, but disable its use, uncomment the line below. // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
// This only affects a Z Probe Endstop if you have separate Z min endstop as well and have // This only affects a Z probe endstop if you have separate Z min endstop as well and have
// activated Z_MIN_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z Probe, // activated Z_MIN_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z probe,
// this has no effect. // this has no effect.
//#define DISABLE_Z_MIN_PROBE_ENDSTOP //#define DISABLE_Z_MIN_PROBE_ENDSTOP
@ -419,11 +419,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
//=========================== Manual Bed Leveling =========================== //=========================== Manual Bed Leveling ===========================
//=========================================================================== //===========================================================================
// #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.
#if ENABLED(MANUAL_BED_LEVELING) #if ENABLED(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
#if ENABLED(MESH_BED_LEVELING) #if ENABLED(MESH_BED_LEVELING)
@ -431,9 +431,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
#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
#define MESH_MAX_Y (Y_MAX_POS - MESH_MIN_Y) #define MESH_MAX_Y (Y_MAX_POS - MESH_MIN_Y)
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited #define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
#define MESH_NUM_Y_POINTS 3 #define MESH_NUM_Y_POINTS 3
#define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0 #define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0.
#endif // MESH_BED_LEVELING #endif // MESH_BED_LEVELING
//=========================================================================== //===========================================================================
@ -442,12 +442,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
// @section bedlevel // @section bedlevel
//#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_MIN_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled. #define Z_MIN_PROBE_REPEATABILITY_TEST // If not commented out, Z probe repeatability test will be included if auto bed leveling is enabled.
#if ENABLED(ENABLE_AUTO_BED_LEVELING) #if ENABLED(ENABLE_AUTO_BED_LEVELING)
// There are 2 different ways to specify probing locations // There are 2 different ways to specify probing locations:
// //
// - "grid" mode // - "grid" mode
// Probe several points in a rectangular grid. // Probe several points in a rectangular grid.
@ -458,8 +458,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
// Probe 3 arbitrary points on the bed (that aren't colinear) // Probe 3 arbitrary points on the bed (that aren't colinear)
// You specify the XY coordinates of all 3 points. // You specify the XY coordinates of all 3 points.
// Enable this to sample the bed in a grid (least squares solution) // Enable this to sample the bed in a grid (least squares solution).
// 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
#if ENABLED(AUTO_BED_LEVELING_GRID) #if ENABLED(AUTO_BED_LEVELING_GRID)
@ -469,16 +469,16 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
#define FRONT_PROBE_BED_POSITION 20 #define FRONT_PROBE_BED_POSITION 20
#define BACK_PROBE_BED_POSITION 170 #define BACK_PROBE_BED_POSITION 170
#define MIN_PROBE_EDGE 10 // The probe square sides can be no smaller than this #define MIN_PROBE_EDGE 10 // The Z probe square sides can be no smaller than this.
// Set the number of grid points per dimension // Set the number of grid points per dimension.
// You probably don't need more than 3 (squared=9) // You probably don't need more than 3 (squared=9).
#define AUTO_BED_LEVELING_GRID_POINTS 2 #define AUTO_BED_LEVELING_GRID_POINTS 2
#else // !AUTO_BED_LEVELING_GRID #else // !AUTO_BED_LEVELING_GRID
// Arbitrary points to probe. A simple cross-product // Arbitrary points to probe.
// is used to estimate the plane of the bed. // A simple cross-product is used to estimate the plane of the bed.
#define ABL_PROBE_PT_1_X 15 #define ABL_PROBE_PT_1_X 15
#define ABL_PROBE_PT_1_Y 180 #define ABL_PROBE_PT_1_Y 180
#define ABL_PROBE_PT_2_X 15 #define ABL_PROBE_PT_2_X 15
@ -488,56 +488,73 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
#endif // AUTO_BED_LEVELING_GRID #endif // AUTO_BED_LEVELING_GRID
// Offsets to the probe relative to the extruder tip (Hotend - Probe) // Offsets to the Z probe relative to the nozzle tip.
// X and Y offsets must be integers // X and Y offsets must be integers.
#define X_PROBE_OFFSET_FROM_EXTRUDER -25 // Probe on: -left +right #define X_PROBE_OFFSET_FROM_EXTRUDER -25 // Z probe to nozzle X offset: -left +right
#define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Probe on: -front +behind #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Z probe to nozzle Y offset: -front +behind
#define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // -below (always!) #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // Z probe to nozzle Z offset: -below (always!)
#define Z_RAISE_BEFORE_HOMING 4 // (in mm) Raise Z before homing (G28) for Probe Clearance. #define Z_RAISE_BEFORE_HOMING 4 // (in mm) Raise Z axis before homing (G28) for Z probe clearance.
// Be sure you have this distance over your Z_MAX_POS in case // Be sure you have this distance over your Z_MAX_POS in case.
#define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min #define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min.
#define Z_RAISE_BEFORE_PROBING 15 //How much the extruder will be raised before traveling to the first probing point. #define Z_RAISE_BEFORE_PROBING 15 // How much the Z axis will be raised before traveling to the first probing point.
#define Z_RAISE_BETWEEN_PROBINGS 5 //How much the extruder will be raised when traveling from between next probing points #define Z_RAISE_BETWEEN_PROBINGS 5 // How much the Z axis will be raised when traveling from between next probing points.
#define Z_RAISE_AFTER_PROBING 15 //How much the extruder will be raised after the last probing point. #define Z_RAISE_AFTER_PROBING 15 // How much the Z axis will be raised after the last probing point.
// #define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" //These commands will be executed in the end of G29 routine. // #define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
//Useful to retract a deployable probe. // Useful to retract a deployable Z probe.
//#define Z_PROBE_SLED // turn on if you have a z-probe mounted on a sled like those designed by Charles Bell //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
//#define SLED_DOCKING_OFFSET 5 // the extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.
//If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing, // If you have enabled the bed auto leveling and are using the same Z probe for Z homing,
//it is highly recommended you let this Z_SAFE_HOMING enabled!!! // it is highly recommended you let this Z_SAFE_HOMING enabled!!!
#define Z_SAFE_HOMING // This feature is meant to avoid Z homing with probe outside the bed area. #define Z_SAFE_HOMING // This feature is meant to avoid Z homing with Z probe outside the bed area.
// When defined, it will: // When defined, it will:
// - Allow Z homing only after X and Y homing AND stepper drivers still enabled // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
// - If stepper drivers timeout, it will need X and Y homing again before Z homing // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
// - Position the probe in a defined XY point before Z Homing when homing all axis (G28) // - Position the Z 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 Z probe is outside bed area.
#if ENABLED(Z_SAFE_HOMING) #if ENABLED(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).
#endif #endif
// Support for a dedicated Z PROBE endstop separate from the Z MIN endstop. // Support for a dedicated Z probe endstop separate from the Z min endstop.
// If you would like to use both a Z PROBE and a Z MIN endstop together , uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below. // If you would like to use both a Z probe and a Z min endstop together,
// If you want to still use the Z min endstop for homing, disable Z_SAFE_HOMING above. Eg; to park the head outside the bed area when homing with G28. // uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below.
// WARNING: The Z MIN endstop will need to set properly as it would without a Z PROBE to prevent head crashes and premature stopping during a print. // If you still want to use the Z min endstop for homing, disable Z_SAFE_HOMING above.
// To use a separate Z PROBE endstop, you must have a Z_MIN_PROBE_PIN defined in the pins.h file for your control board. // Example: To park the head outside the bed area when homing with G28.
// If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C Servo below. //
// RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin in the Aux 4 section of the RAMPS board. Use 5V for powered sensors, otherwise connect to ground and D32 // WARNING:
// for normally closed configuration and 5V and D32 for normally open configurations. Normally closed configuration is advised and assumed. // The Z min endstop will need to set properly as it would without a Z probe
// The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin. Z_MIN_PROBE_PIN is setting the pin to use on the Arduino. Since the D32 pin on the RAMPS maps to D32 on Arduino, this works. // to prevent head crashes and premature stopping during a print.
// D32 is currently selected in the RAMPS 1.3/1.4 pin file. All other boards will need changes to the respective pins_XXXXX.h file. //
// WARNING: Setting the wrong pin may have unexpected and potentially disastrous outcomes. Use with caution and do your homework. // To use a separate Z probe endstop, you must have a Z_MIN_PROBE_PIN
// defined in the pins_XXXXX.h file for your control board.
// If you are using a servo based Z probe, you will need to enable NUM_SERVOS,
// Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C SERVO support below.
// RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin
// in the Aux 4 section of the RAMPS board. Use 5V for powered sensors,
// otherwise connect to ground and D32 for normally closed configuration
// and 5V and D32 for normally open configurations.
// Normally closed configuration is advised and assumed.
// The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin.
// Z_MIN_PROBE_PIN is setting the pin to use on the Arduino.
// Since the D32 pin on the RAMPS maps to D32 on Arduino, this works.
// D32 is currently selected in the RAMPS 1.3/1.4 pin file.
// All other boards will need changes to the respective pins_XXXXX.h file.
//
// WARNING:
// Setting the wrong pin may have unexpected and potentially disastrous outcomes.
// Use with caution and do your homework.
//
//#define Z_MIN_PROBE_ENDSTOP //#define Z_MIN_PROBE_ENDSTOP
#endif // ENABLE_AUTO_BED_LEVELING #endif // ENABLE_AUTO_BED_LEVELING
@ -613,6 +630,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
#define EEPROM_CHITCHAT // Please keep turned on if you can. #define EEPROM_CHITCHAT // Please keep turned on if you can.
#endif #endif
//
// M100 Free Memory Watcher
//
//#define M100_FREE_MEMORY_WATCHER // uncomment to add the M100 Free Memory Watcher for debug purpose
// @section temperature // @section temperature
// Preheat Constants // Preheat Constants
@ -780,7 +802,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
// Servo Endstops // Servo Endstops
// //
// This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes. // This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes.
// Use M851 to set the z-probe vertical offset from the nozzle. Store that setting with M500. // Use M851 to set the Z probe vertical offset from the nozzle. Store that setting with M500.
// //
//#define X_ENDSTOP_SERVO_NR 1 //#define X_ENDSTOP_SERVO_NR 1
//#define Y_ENDSTOP_SERVO_NR 2 //#define Y_ENDSTOP_SERVO_NR 2

@ -374,11 +374,11 @@ const bool Y_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic o
const bool Z_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop. const bool Z_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop. const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
//#define DISABLE_MAX_ENDSTOPS //#define DISABLE_MAX_ENDSTOPS
#define DISABLE_MIN_ENDSTOPS // Deltas only use min endstops for probing #define DISABLE_MIN_ENDSTOPS // Deltas only use min endstops for probing.
// If you want to enable the Z Probe pin, but disable its use, uncomment the line below. // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
// This only affects a Z Probe Endstop if you have separate Z min endstop as well and have // This only affects a Z probe endstop if you have separate Z min endstop as well and have
// activated Z_MIN_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z Probe, // activated Z_MIN_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z probe,
// this has no effect. // this has no effect.
//#define DISABLE_Z_MIN_PROBE_ENDSTOP //#define DISABLE_Z_MIN_PROBE_ENDSTOP
@ -454,11 +454,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
//=========================== Manual Bed Leveling =========================== //=========================== Manual Bed Leveling ===========================
//=========================================================================== //===========================================================================
// #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.
#if ENABLED(MANUAL_BED_LEVELING) #if ENABLED(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
#if ENABLED(MESH_BED_LEVELING) #if ENABLED(MESH_BED_LEVELING)
@ -466,9 +466,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
#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
#define MESH_MAX_Y (Y_MAX_POS - MESH_MIN_Y) #define MESH_MAX_Y (Y_MAX_POS - MESH_MIN_Y)
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited #define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
#define MESH_NUM_Y_POINTS 3 #define MESH_NUM_Y_POINTS 3
#define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0 #define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0.
#endif // MESH_BED_LEVELING #endif // MESH_BED_LEVELING
//=========================================================================== //===========================================================================
@ -477,12 +477,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
// @section bedlevel // @section bedlevel
//#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_MIN_PROBE_REPEATABILITY_TEST // Z-Probe Repeatability test is not supported in Deltas yet. //#define Z_MIN_PROBE_REPEATABILITY_TEST // Z probe repeatability test is not supported in Deltas yet.
#if ENABLED(ENABLE_AUTO_BED_LEVELING) #if ENABLED(ENABLE_AUTO_BED_LEVELING)
// There are 2 different ways to specify probing locations // There are 2 different ways to specify probing locations:
// //
// - "grid" mode // - "grid" mode
// Probe several points in a rectangular grid. // Probe several points in a rectangular grid.
@ -493,20 +493,20 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
// Probe 3 arbitrary points on the bed (that aren't colinear) // Probe 3 arbitrary points on the bed (that aren't colinear)
// You specify the XY coordinates of all 3 points. // You specify the XY coordinates of all 3 points.
// Enable this to sample the bed in a grid (least squares solution) // Enable this to sample the bed in a grid (least squares solution).
// 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.
#if ENABLED(AUTO_BED_LEVELING_GRID) #if ENABLED(AUTO_BED_LEVELING_GRID)
// set the rectangle in which to probe // Set the rectangle in which to probe.
#define DELTA_PROBABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10) #define DELTA_PROBABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10)
#define LEFT_PROBE_BED_POSITION -DELTA_PROBABLE_RADIUS #define LEFT_PROBE_BED_POSITION -DELTA_PROBABLE_RADIUS
#define RIGHT_PROBE_BED_POSITION DELTA_PROBABLE_RADIUS #define RIGHT_PROBE_BED_POSITION DELTA_PROBABLE_RADIUS
#define FRONT_PROBE_BED_POSITION -DELTA_PROBABLE_RADIUS #define FRONT_PROBE_BED_POSITION -DELTA_PROBABLE_RADIUS
#define BACK_PROBE_BED_POSITION DELTA_PROBABLE_RADIUS #define BACK_PROBE_BED_POSITION DELTA_PROBABLE_RADIUS
#define MIN_PROBE_EDGE 10 // The probe square sides can be no smaller than this #define MIN_PROBE_EDGE 10 // The Z probe square sides can be no smaller than this.
// Non-linear bed leveling will be used. // Non-linear bed leveling will be used.
// Compensate by interpolating between the nearest four Z probe values for each point. // Compensate by interpolating between the nearest four Z probe values for each point.
@ -516,8 +516,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
#else // !AUTO_BED_LEVELING_GRID #else // !AUTO_BED_LEVELING_GRID
// Arbitrary points to probe. A simple cross-product // Arbitrary points to probe.
// is used to estimate the plane of the bed. // A simple cross-product is used to estimate the plane of the bed.
#define ABL_PROBE_PT_1_X 15 #define ABL_PROBE_PT_1_X 15
#define ABL_PROBE_PT_1_Y 180 #define ABL_PROBE_PT_1_Y 180
#define ABL_PROBE_PT_2_X 15 #define ABL_PROBE_PT_2_X 15
@ -527,28 +527,28 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
#endif // AUTO_BED_LEVELING_GRID #endif // AUTO_BED_LEVELING_GRID
// Offsets to the probe relative to the extruder tip (Hotend - Probe) // Offsets to the Z probe relative to the nozzle tip.
// X and Y offsets must be integers // X and Y offsets must be integers.
#define X_PROBE_OFFSET_FROM_EXTRUDER 0 // Probe on: -left +right #define X_PROBE_OFFSET_FROM_EXTRUDER 0 // Z probe to nozzle X offset: -left +right
#define Y_PROBE_OFFSET_FROM_EXTRUDER -10 // Probe on: -front +behind #define Y_PROBE_OFFSET_FROM_EXTRUDER -10 // Z probe to nozzle Y offset: -front +behind
#define Z_PROBE_OFFSET_FROM_EXTRUDER -3.5 // -below (always!) #define Z_PROBE_OFFSET_FROM_EXTRUDER -3.5 // Z probe to nozzle Z offset: -below (always!)
#define Z_RAISE_BEFORE_HOMING 4 // (in mm) Raise Z before homing (G28) for Probe Clearance. #define Z_RAISE_BEFORE_HOMING 4 // (in mm) Raise Z axis before homing (G28) for Z probe clearance.
// Be sure you have this distance over your Z_MAX_POS in case // Be sure you have this distance over your Z_MAX_POS in case.
#define XY_TRAVEL_SPEED 4000 // X and Y axis travel speed between probes, in mm/min #define XY_TRAVEL_SPEED 4000 // X and Y axis travel speed between probes, in mm/min.
#define Z_RAISE_BEFORE_PROBING 15 //How much the extruder will be raised before traveling to the first probing point. #define Z_RAISE_BEFORE_PROBING 15 // How much the Z axis will be raised before traveling to the first probing point.
#define Z_RAISE_BETWEEN_PROBINGS 5 //How much the extruder will be raised when traveling from between next probing points #define Z_RAISE_BETWEEN_PROBINGS 5 // How much the Z axis will be raised when traveling from between next probing points.
#define Z_RAISE_AFTER_PROBING 50 //How much the extruder will be raised after the last probing point. #define Z_RAISE_AFTER_PROBING 50 // How much the Z axis will be raised after the last probing point.
// #define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" //These commands will be executed in the end of G29 routine. // #define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
//Useful to retract a deployable probe. // Useful to retract a deployable Z probe.
//#define Z_PROBE_SLED // turn on if you have a z-probe mounted on a sled like those designed by Charles Bell //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
//#define SLED_DOCKING_OFFSET 5 // the extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.
// Allen key retractable z-probe as seen on many Kossel delta printers - http://reprap.org/wiki/Kossel#Automatic_bed_leveling_probe // Allen key retractable Z probe as seen on many Kossel delta printers - http://reprap.org/wiki/Kossel#Automatic_bed_leveling_probe
// Deploys by touching z-axis belt. Retracts by pushing the probe down. Uses Z_MIN_PIN. // Deploys by touching z-axis belt. Retracts by pushing the probe down. Uses Z_MIN_PIN.
//#define Z_PROBE_ALLEN_KEY //#define Z_PROBE_ALLEN_KEY
@ -629,35 +629,52 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
#define Z_PROBE_ALLEN_KEY_STOW_3_FEEDRATE HOMING_FEEDRATE_Z #define Z_PROBE_ALLEN_KEY_STOW_3_FEEDRATE HOMING_FEEDRATE_Z
#endif #endif
//If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing, // If you have enabled the bed auto leveling and are using the same Z probe for Z homing,
//it is highly recommended you let this Z_SAFE_HOMING enabled!!! // it is highly recommended you let this Z_SAFE_HOMING enabled!!!
#define Z_SAFE_HOMING // This feature is meant to avoid Z homing with probe outside the bed area. #define Z_SAFE_HOMING // This feature is meant to avoid Z homing with Z probe outside the bed area.
// When defined, it will: // When defined, it will:
// - Allow Z homing only after X and Y homing AND stepper drivers still enabled // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
// - If stepper drivers timeout, it will need X and Y homing again before Z homing // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
// - Position the probe in a defined XY point before Z Homing when homing all axis (G28) // - Position the Z 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 Z probe is outside bed area.
#if ENABLED(Z_SAFE_HOMING) #if ENABLED(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).
#endif #endif
// Support for a dedicated Z PROBE endstop separate from the Z MIN endstop. // Support for a dedicated Z probe endstop separate from the Z min endstop.
// If you would like to use both a Z PROBE and a Z MIN endstop together , uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below. // If you would like to use both a Z probe and a Z min endstop together,
// If you want to still use the Z min endstop for homing, disable Z_SAFE_HOMING above. Eg; to park the head outside the bed area when homing with G28. // uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below.
// WARNING: The Z MIN endstop will need to set properly as it would without a Z PROBE to prevent head crashes and premature stopping during a print. // If you still want to use the Z min endstop for homing, disable Z_SAFE_HOMING above.
// To use a separate Z PROBE endstop, you must have a Z_MIN_PROBE_PIN defined in the pins.h file for your control board. // Example: To park the head outside the bed area when homing with G28.
// If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C Servo below. //
// RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin in the Aux 4 section of the RAMPS board. Use 5V for powered sensors, otherwise connect to ground and D32 // WARNING:
// for normally closed configuration and 5V and D32 for normally open configurations. Normally closed configuration is advised and assumed. // The Z min endstop will need to set properly as it would without a Z probe
// The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin. Z_MIN_PROBE_PIN is setting the pin to use on the Arduino. Since the D32 pin on the RAMPS maps to D32 on Arduino, this works. // to prevent head crashes and premature stopping during a print.
// D32 is currently selected in the RAMPS 1.3/1.4 pin file. All other boards will need changes to the respective pins_XXXXX.h file. //
// WARNING: Setting the wrong pin may have unexpected and potentially disastrous outcomes. Use with caution and do your homework. // To use a separate Z probe endstop, you must have a Z_MIN_PROBE_PIN
// defined in the pins_XXXXX.h file for your control board.
// If you are using a servo based Z probe, you will need to enable NUM_SERVOS,
// Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C SERVO support below.
// RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin
// in the Aux 4 section of the RAMPS board. Use 5V for powered sensors,
// otherwise connect to ground and D32 for normally closed configuration
// and 5V and D32 for normally open configurations.
// Normally closed configuration is advised and assumed.
// The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin.
// Z_MIN_PROBE_PIN is setting the pin to use on the Arduino.
// Since the D32 pin on the RAMPS maps to D32 on Arduino, this works.
// D32 is currently selected in the RAMPS 1.3/1.4 pin file.
// All other boards will need changes to the respective pins_XXXXX.h file.
//
// WARNING:
// Setting the wrong pin may have unexpected and potentially disastrous outcomes.
// Use with caution and do your homework.
//
//#define Z_MIN_PROBE_ENDSTOP //#define Z_MIN_PROBE_ENDSTOP
#endif // ENABLE_AUTO_BED_LEVELING #endif // ENABLE_AUTO_BED_LEVELING
@ -733,6 +750,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
#define EEPROM_CHITCHAT // Please keep turned on if you can. #define EEPROM_CHITCHAT // Please keep turned on if you can.
#endif #endif
//
// M100 Free Memory Watcher
//
//#define M100_FREE_MEMORY_WATCHER // uncomment to add the M100 Free Memory Watcher for debug purpose
// @section temperature // @section temperature
// Preheat Constants // Preheat Constants
@ -903,7 +925,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
// Servo Endstops // Servo Endstops
// //
// This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes. // This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes.
// Use M851 to set the z-probe vertical offset from the nozzle. Store that setting with M500. // Use M851 to set the Z probe vertical offset from the nozzle. Store that setting with M500.
// //
//#define X_ENDSTOP_SERVO_NR 1 //#define X_ENDSTOP_SERVO_NR 1
//#define Y_ENDSTOP_SERVO_NR 2 //#define Y_ENDSTOP_SERVO_NR 2

@ -374,11 +374,11 @@ const bool Y_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop. const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop. const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
//#define DISABLE_MAX_ENDSTOPS //#define DISABLE_MAX_ENDSTOPS
#define DISABLE_MIN_ENDSTOPS // Deltas only use min endstops for probing #define DISABLE_MIN_ENDSTOPS // Deltas only use min endstops for probing.
// If you want to enable the Z Probe pin, but disable its use, uncomment the line below. // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
// This only affects a Z Probe Endstop if you have separate Z min endstop as well and have // This only affects a Z probe endstop if you have separate Z min endstop as well and have
// activated Z_MIN_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z Probe, // activated Z_MIN_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z probe,
// this has no effect. // this has no effect.
//#define DISABLE_Z_MIN_PROBE_ENDSTOP //#define DISABLE_Z_MIN_PROBE_ENDSTOP
@ -454,11 +454,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
//=========================== Manual Bed Leveling =========================== //=========================== Manual Bed Leveling ===========================
//=========================================================================== //===========================================================================
// #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.
#if ENABLED(MANUAL_BED_LEVELING) #if ENABLED(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
#if ENABLED(MESH_BED_LEVELING) #if ENABLED(MESH_BED_LEVELING)
@ -466,9 +466,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
#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
#define MESH_MAX_Y (Y_MAX_POS - MESH_MIN_Y) #define MESH_MAX_Y (Y_MAX_POS - MESH_MIN_Y)
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited #define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
#define MESH_NUM_Y_POINTS 3 #define MESH_NUM_Y_POINTS 3
#define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0 #define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0.
#endif // MESH_BED_LEVELING #endif // MESH_BED_LEVELING
//=========================================================================== //===========================================================================
@ -477,12 +477,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
// @section bedlevel // @section bedlevel
//#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_MIN_PROBE_REPEATABILITY_TEST // Z-Probe Repeatability test is not supported in Deltas yet. //#define Z_MIN_PROBE_REPEATABILITY_TEST // Z probe repeatability test is not supported in Deltas yet.
#if ENABLED(ENABLE_AUTO_BED_LEVELING) #if ENABLED(ENABLE_AUTO_BED_LEVELING)
// There are 2 different ways to specify probing locations // There are 2 different ways to specify probing locations.
// //
// - "grid" mode // - "grid" mode
// Probe several points in a rectangular grid. // Probe several points in a rectangular grid.
@ -493,9 +493,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
// Probe 3 arbitrary points on the bed (that aren't colinear) // Probe 3 arbitrary points on the bed (that aren't colinear)
// You specify the XY coordinates of all 3 points. // You specify the XY coordinates of all 3 points.
// Enable this to sample the bed in a grid (least squares solution) // Enable this to sample the bed in a grid (least squares solution).
// 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.
#if ENABLED(AUTO_BED_LEVELING_GRID) #if ENABLED(AUTO_BED_LEVELING_GRID)
@ -506,7 +506,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
#define FRONT_PROBE_BED_POSITION -DELTA_PROBABLE_RADIUS #define FRONT_PROBE_BED_POSITION -DELTA_PROBABLE_RADIUS
#define BACK_PROBE_BED_POSITION DELTA_PROBABLE_RADIUS #define BACK_PROBE_BED_POSITION DELTA_PROBABLE_RADIUS
#define MIN_PROBE_EDGE 10 // The probe square sides can be no smaller than this #define MIN_PROBE_EDGE 10 // The Z probe square sides can be no smaller than this.
// Non-linear bed leveling will be used. // Non-linear bed leveling will be used.
// Compensate by interpolating between the nearest four Z probe values for each point. // Compensate by interpolating between the nearest four Z probe values for each point.
@ -516,8 +516,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
#else // !AUTO_BED_LEVELING_GRID #else // !AUTO_BED_LEVELING_GRID
// Arbitrary points to probe. A simple cross-product // Arbitrary points to probe.
// is used to estimate the plane of the bed. // A simple cross-product is used to estimate the plane of the bed.
#define ABL_PROBE_PT_1_X 15 #define ABL_PROBE_PT_1_X 15
#define ABL_PROBE_PT_1_Y 180 #define ABL_PROBE_PT_1_Y 180
#define ABL_PROBE_PT_2_X 15 #define ABL_PROBE_PT_2_X 15
@ -527,26 +527,26 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
#endif // AUTO_BED_LEVELING_GRID #endif // AUTO_BED_LEVELING_GRID
// Offsets to the probe relative to the extruder tip (Hotend - Probe) // Offsets to the Z probe relative to the nozzle tip.
// X and Y offsets must be integers // X and Y offsets must be integers.
#define X_PROBE_OFFSET_FROM_EXTRUDER 0 // Probe on: -left +right #define X_PROBE_OFFSET_FROM_EXTRUDER 0 // Z probe to nozzle X offset: -left +right
#define Y_PROBE_OFFSET_FROM_EXTRUDER -10 // Probe on: -front +behind #define Y_PROBE_OFFSET_FROM_EXTRUDER -10 // Z probe to nozzle Y offset: -front +behind
#define Z_PROBE_OFFSET_FROM_EXTRUDER -3.5 // -below (always!) #define Z_PROBE_OFFSET_FROM_EXTRUDER -3.5 // Z probe to nozzle Z offset: -below (always!)
#define Z_RAISE_BEFORE_HOMING 4 // (in mm) Raise Z before homing (G28) for Probe Clearance. #define Z_RAISE_BEFORE_HOMING 4 // (in mm) Raise Z axis before homing (G28) for Z probe clearance.
// Be sure you have this distance over your Z_MAX_POS in case // Be sure you have this distance over your Z_MAX_POS in case.
#define XY_TRAVEL_SPEED 4000 // X and Y axis travel speed between probes, in mm/min #define XY_TRAVEL_SPEED 4000 // X and Y axis travel speed between probes, in mm/min.
#define Z_RAISE_BEFORE_PROBING 15 //How much the extruder will be raised before traveling to the first probing point. #define Z_RAISE_BEFORE_PROBING 15 // How much the Z axis will be raised before traveling to the first probing point.
#define Z_RAISE_BETWEEN_PROBINGS 5 //How much the extruder will be raised when traveling from between next probing points #define Z_RAISE_BETWEEN_PROBINGS 5 // How much the Z axis will be raised when traveling from between next probing points
#define Z_RAISE_AFTER_PROBING 50 //How much the extruder will be raised after the last probing point. #define Z_RAISE_AFTER_PROBING 50 // How much the Z axis will be raised after the last probing point.
// #define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" //These commands will be executed in the end of G29 routine. // #define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
//Useful to retract a deployable probe. // Useful to retract a deployable Z probe.
//#define Z_PROBE_SLED // turn on if you have a z-probe mounted on a sled like those designed by Charles Bell //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
//#define SLED_DOCKING_OFFSET 5 // the extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.
// Allen key retractable z-probe as seen on many Kossel delta printers - http://reprap.org/wiki/Kossel#Automatic_bed_leveling_probe // Allen key retractable z-probe as seen on many Kossel delta printers - http://reprap.org/wiki/Kossel#Automatic_bed_leveling_probe
// Deploys by touching z-axis belt. Retracts by pushing the probe down. Uses Z_MIN_PIN. // Deploys by touching z-axis belt. Retracts by pushing the probe down. Uses Z_MIN_PIN.
@ -629,35 +629,52 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
//#define Z_PROBE_ALLEN_KEY_STOW_3_FEEDRATE HOMING_FEEDRATE_Z //#define Z_PROBE_ALLEN_KEY_STOW_3_FEEDRATE HOMING_FEEDRATE_Z
#endif #endif
//If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing, // If you have enabled the bed auto leveling and are using the same Z probe for Z homing,
//it is highly recommended you let this Z_SAFE_HOMING enabled!!! // it is highly recommended you let this Z_SAFE_HOMING enabled!!!
#define Z_SAFE_HOMING // This feature is meant to avoid Z homing with probe outside the bed area. #define Z_SAFE_HOMING // This feature is meant to avoid Z homing with Z probe outside the bed area.
// When defined, it will: // When defined, it will:
// - Allow Z homing only after X and Y homing AND stepper drivers still enabled // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
// - If stepper drivers timeout, it will need X and Y homing again before Z homing // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
// - Position the probe in a defined XY point before Z Homing when homing all axis (G28) // - Position the Z 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 Z probe is outside bed area.
#if ENABLED(Z_SAFE_HOMING) #if ENABLED(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).
#endif #endif
// Support for a dedicated Z PROBE endstop separate from the Z MIN endstop. // Support for a dedicated Z probe endstop separate from the Z min endstop.
// If you would like to use both a Z PROBE and a Z MIN endstop together , uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below. // If you would like to use both a Z probe and a Z min endstop together,
// If you want to still use the Z min endstop for homing, disable Z_SAFE_HOMING above. Eg; to park the head outside the bed area when homing with G28. // uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below.
// WARNING: The Z MIN endstop will need to set properly as it would without a Z PROBE to prevent head crashes and premature stopping during a print. // If you still want to use the Z min endstop for homing, disable Z_SAFE_HOMING above.
// To use a separate Z PROBE endstop, you must have a Z_MIN_PROBE_PIN defined in the pins.h file for your control board. // Example: To park the head outside the bed area when homing with G28.
// If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C Servo below. //
// RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin in the Aux 4 section of the RAMPS board. Use 5V for powered sensors, otherwise connect to ground and D32 // WARNING:
// for normally closed configuration and 5V and D32 for normally open configurations. Normally closed configuration is advised and assumed. // The Z min endstop will need to set properly as it would without a Z probe
// The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin. Z_MIN_PROBE_PIN is setting the pin to use on the Arduino. Since the D32 pin on the RAMPS maps to D32 on Arduino, this works. // to prevent head crashes and premature stopping during a print.
// D32 is currently selected in the RAMPS 1.3/1.4 pin file. All other boards will need changes to the respective pins_XXXXX.h file. //
// WARNING: Setting the wrong pin may have unexpected and potentially disastrous outcomes. Use with caution and do your homework. // To use a separate Z probe endstop, you must have a Z_MIN_PROBE_PIN
// defined in the pins_XXXXX.h file for your control board.
// If you are using a servo based Z probe, you will need to enable NUM_SERVOS,
// Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C SERVO support below.
// RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin
// in the Aux 4 section of the RAMPS board. Use 5V for powered sensors,
// otherwise connect to ground and D32 for normally closed configuration
// and 5V and D32 for normally open configurations.
// Normally closed configuration is advised and assumed.
// The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin.
// Z_MIN_PROBE_PIN is setting the pin to use on the Arduino.
// Since the D32 pin on the RAMPS maps to D32 on Arduino, this works.
// D32 is currently selected in the RAMPS 1.3/1.4 pin file.
// All other boards will need changes to the respective pins_XXXXX.h file.
//
// WARNING:
// Setting the wrong pin may have unexpected and potentially disastrous outcomes.
// Use with caution and do your homework.
//
//#define Z_MIN_PROBE_ENDSTOP //#define Z_MIN_PROBE_ENDSTOP
#endif // ENABLE_AUTO_BED_LEVELING #endif // ENABLE_AUTO_BED_LEVELING
@ -733,6 +750,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
#define EEPROM_CHITCHAT // Please keep turned on if you can. #define EEPROM_CHITCHAT // Please keep turned on if you can.
#endif #endif
//
// M100 Free Memory Watcher
//
//#define M100_FREE_MEMORY_WATCHER // uncomment to add the M100 Free Memory Watcher for debug purpose
// @section temperature // @section temperature
// Preheat Constants // Preheat Constants
@ -907,7 +929,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
// Servo Endstops // Servo Endstops
// //
// This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes. // This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes.
// Use M851 to set the z-probe vertical offset from the nozzle. Store that setting with M500. // Use M851 to set the Z probe vertical offset from the nozzle. Store that setting with M500.
// //
//#define X_ENDSTOP_SERVO_NR 1 //#define X_ENDSTOP_SERVO_NR 1
//#define Y_ENDSTOP_SERVO_NR 2 //#define Y_ENDSTOP_SERVO_NR 2

@ -374,11 +374,11 @@ const bool Y_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic o
const bool Z_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop. const bool Z_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop. const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
//#define DISABLE_MAX_ENDSTOPS //#define DISABLE_MAX_ENDSTOPS
//#define DISABLE_MIN_ENDSTOPS // Deltas only use min endstops for probing //#define DISABLE_MIN_ENDSTOPS // Deltas only use min endstops for probing.
// If you want to enable the Z Probe pin, but disable its use, uncomment the line below. // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
// This only affects a Z Probe Endstop if you have separate Z min endstop as well and have // This only affects a Z probe endstop if you have separate Z min endstop as well and have
// activated Z_MIN_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z Probe, // activated Z_MIN_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z probe,
// this has no effect. // this has no effect.
//#define DISABLE_Z_MIN_PROBE_ENDSTOP //#define DISABLE_Z_MIN_PROBE_ENDSTOP
@ -454,11 +454,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
//=========================== Manual Bed Leveling =========================== //=========================== Manual Bed Leveling ===========================
//=========================================================================== //===========================================================================
// #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.
#if ENABLED(MANUAL_BED_LEVELING) #if ENABLED(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
#if ENABLED(MESH_BED_LEVELING) #if ENABLED(MESH_BED_LEVELING)
@ -466,9 +466,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
#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
#define MESH_MAX_Y (Y_MAX_POS - MESH_MIN_Y) #define MESH_MAX_Y (Y_MAX_POS - MESH_MIN_Y)
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited #define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
#define MESH_NUM_Y_POINTS 3 #define MESH_NUM_Y_POINTS 3
#define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0 #define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0.
#endif // MESH_BED_LEVELING #endif // MESH_BED_LEVELING
//=========================================================================== //===========================================================================
@ -477,12 +477,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
// @section bedlevel // @section bedlevel
#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_MIN_PROBE_REPEATABILITY_TEST // Z-Probe Repeatability test is not supported in Deltas yet. //#define Z_MIN_PROBE_REPEATABILITY_TEST // Z probe repeatability test is not supported in Deltas yet.
#if ENABLED(ENABLE_AUTO_BED_LEVELING) #if ENABLED(ENABLE_AUTO_BED_LEVELING)
// There are 2 different ways to specify probing locations // There are 2 different ways to specify probing locations:
// //
// - "grid" mode // - "grid" mode
// Probe several points in a rectangular grid. // Probe several points in a rectangular grid.
@ -493,9 +493,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
// Probe 3 arbitrary points on the bed (that aren't colinear) // Probe 3 arbitrary points on the bed (that aren't colinear)
// You specify the XY coordinates of all 3 points. // You specify the XY coordinates of all 3 points.
// Enable this to sample the bed in a grid (least squares solution) // Enable this to sample the bed in a grid (least squares solution).
// 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.
#if ENABLED(AUTO_BED_LEVELING_GRID) #if ENABLED(AUTO_BED_LEVELING_GRID)
@ -506,7 +506,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
#define FRONT_PROBE_BED_POSITION -DELTA_PROBABLE_RADIUS #define FRONT_PROBE_BED_POSITION -DELTA_PROBABLE_RADIUS
#define BACK_PROBE_BED_POSITION DELTA_PROBABLE_RADIUS #define BACK_PROBE_BED_POSITION DELTA_PROBABLE_RADIUS
#define MIN_PROBE_EDGE 10 // The probe square sides can be no smaller than this #define MIN_PROBE_EDGE 10 // The Z probe square sides can be no smaller than this.
// Non-linear bed leveling will be used. // Non-linear bed leveling will be used.
// Compensate by interpolating between the nearest four Z probe values for each point. // Compensate by interpolating between the nearest four Z probe values for each point.
@ -516,8 +516,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
#else // !AUTO_BED_LEVELING_GRID #else // !AUTO_BED_LEVELING_GRID
// Arbitrary points to probe. A simple cross-product // Arbitrary points to probe.
// is used to estimate the plane of the bed. // A simple cross-product is used to estimate the plane of the bed.
#define ABL_PROBE_PT_1_X 15 #define ABL_PROBE_PT_1_X 15
#define ABL_PROBE_PT_1_Y 180 #define ABL_PROBE_PT_1_Y 180
#define ABL_PROBE_PT_2_X 15 #define ABL_PROBE_PT_2_X 15
@ -527,26 +527,26 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
#endif // AUTO_BED_LEVELING_GRID #endif // AUTO_BED_LEVELING_GRID
// Offsets to the probe relative to the extruder tip (Hotend - Probe) // Offsets to the Z probe relative to the nozzle tip.
// X and Y offsets must be integers // X and Y offsets must be integers.
#define X_PROBE_OFFSET_FROM_EXTRUDER 0 // Probe on: -left +right #define X_PROBE_OFFSET_FROM_EXTRUDER 0 // Z probe to nozzle X offset: -left +right
#define Y_PROBE_OFFSET_FROM_EXTRUDER -10 // Probe on: -front +behind #define Y_PROBE_OFFSET_FROM_EXTRUDER -10 // Z probe to nozzle Y offset: -front +behind
#define Z_PROBE_OFFSET_FROM_EXTRUDER -3.5 // -below (always!) #define Z_PROBE_OFFSET_FROM_EXTRUDER -3.5 // Z probe to nozzle Z offset: -below (always!)
#define Z_RAISE_BEFORE_HOMING 15 // (in mm) Raise Z before homing (G28) for Probe Clearance. #define Z_RAISE_BEFORE_HOMING 15 // (in mm) Raise Z axis before homing (G28) for Z probe clearance.
// Be sure you have this distance over your Z_MAX_POS in case // Be sure you have this distance over your Z_MAX_POS in case.
#define XY_TRAVEL_SPEED 4000 // X and Y axis travel speed between probes, in mm/min #define XY_TRAVEL_SPEED 4000 // X and Y axis travel speed between probes, in mm/min.
#define Z_RAISE_BEFORE_PROBING 15 //How much the extruder will be raised before traveling to the first probing point. #define Z_RAISE_BEFORE_PROBING 15 // How much the Z axis will be raised before traveling to the first probing point.
#define Z_RAISE_BETWEEN_PROBINGS 5 //How much the extruder will be raised when traveling from between next probing points #define Z_RAISE_BETWEEN_PROBINGS 5 // How much the Z axis will be raised when traveling from between next probing points
#define Z_RAISE_AFTER_PROBING 50 //How much the extruder will be raised after the last probing point. #define Z_RAISE_AFTER_PROBING 50 // How much the Z axis will be raised after the last probing point.
// #define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" //These commands will be executed in the end of G29 routine. // #define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
//Useful to retract a deployable probe. // Useful to retract a deployable Z probe.
//#define Z_PROBE_SLED // turn on if you have a z-probe mounted on a sled like those designed by Charles Bell //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
//#define SLED_DOCKING_OFFSET 5 // the extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.
// Allen key retractable z-probe as seen on many Kossel delta printers - http://reprap.org/wiki/Kossel#Automatic_bed_leveling_probe // Allen key retractable z-probe as seen on many Kossel delta printers - http://reprap.org/wiki/Kossel#Automatic_bed_leveling_probe
// Deploys by touching z-axis belt. Retracts by pushing the probe down. Uses Z_MIN_PIN. // Deploys by touching z-axis belt. Retracts by pushing the probe down. Uses Z_MIN_PIN.
@ -633,35 +633,52 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
//#define Z_PROBE_ALLEN_KEY_STOW_3_FEEDRATE HOMING_FEEDRATE_Z //#define Z_PROBE_ALLEN_KEY_STOW_3_FEEDRATE HOMING_FEEDRATE_Z
#endif #endif
//If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing, // If you have enabled the bed auto leveling and are using the same Z probe for Z homing,
//it is highly recommended you let this Z_SAFE_HOMING enabled!!! // it is highly recommended you let this Z_SAFE_HOMING enabled!!!
#define Z_SAFE_HOMING // This feature is meant to avoid Z homing with probe outside the bed area. #define Z_SAFE_HOMING // This feature is meant to avoid Z homing with Z probe outside the bed area.
// When defined, it will: // When defined, it will:
// - Allow Z homing only after X and Y homing AND stepper drivers still enabled // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
// - If stepper drivers timeout, it will need X and Y homing again before Z homing // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
// - Position the probe in a defined XY point before Z Homing when homing all axis (G28) // - Position the Z 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 Z probe is outside bed area.
#if ENABLED(Z_SAFE_HOMING) #if ENABLED(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).
#endif #endif
// Support for a dedicated Z PROBE endstop separate from the Z MIN endstop. // Support for a dedicated Z probe endstop separate from the Z min endstop.
// If you would like to use both a Z PROBE and a Z MIN endstop together , uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below. // If you would like to use both a Z probe and a Z min endstop together,
// If you want to still use the Z min endstop for homing, disable Z_SAFE_HOMING above. Eg; to park the head outside the bed area when homing with G28. // uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below.
// WARNING: The Z MIN endstop will need to set properly as it would without a Z PROBE to prevent head crashes and premature stopping during a print. // If you still want to use the Z min endstop for homing, disable Z_SAFE_HOMING above.
// To use a separate Z PROBE endstop, you must have a Z_MIN_PROBE_PIN defined in the pins.h file for your control board. // Example: To park the head outside the bed area when homing with G28.
// If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C Servo below. //
// RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin in the Aux 4 section of the RAMPS board. Use 5V for powered sensors, otherwise connect to ground and D32 // WARNING:
// for normally closed configuration and 5V and D32 for normally open configurations. Normally closed configuration is advised and assumed. // The Z min endstop will need to set properly as it would without a Z probe
// The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin. Z_MIN_PROBE_PIN is setting the pin to use on the Arduino. Since the D32 pin on the RAMPS maps to D32 on Arduino, this works. // to prevent head crashes and premature stopping during a print.
// D32 is currently selected in the RAMPS 1.3/1.4 pin file. All other boards will need changes to the respective pins_XXXXX.h file. //
// WARNING: Setting the wrong pin may have unexpected and potentially disastrous outcomes. Use with caution and do your homework. // To use a separate Z probe endstop, you must have a Z_MIN_PROBE_PIN
// defined in the pins_XXXXX.h file for your control board.
// If you are using a servo based Z probe, you will need to enable NUM_SERVOS,
// Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C SERVO support below.
// RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin
// in the Aux 4 section of the RAMPS board. Use 5V for powered sensors,
// otherwise connect to ground and D32 for normally closed configuration
// and 5V and D32 for normally open configurations.
// Normally closed configuration is advised and assumed.
// The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin.
// Z_MIN_PROBE_PIN is setting the pin to use on the Arduino.
// Since the D32 pin on the RAMPS maps to D32 on Arduino, this works.
// D32 is currently selected in the RAMPS 1.3/1.4 pin file.
// All other boards will need changes to the respective pins_XXXXX.h file.
//
// WARNING:
// Setting the wrong pin may have unexpected and potentially disastrous outcomes.
// Use with caution and do your homework.
//
//#define Z_MIN_PROBE_ENDSTOP //#define Z_MIN_PROBE_ENDSTOP
#endif // ENABLE_AUTO_BED_LEVELING #endif // ENABLE_AUTO_BED_LEVELING
@ -737,6 +754,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
#define EEPROM_CHITCHAT // Please keep turned on if you can. #define EEPROM_CHITCHAT // Please keep turned on if you can.
#endif #endif
//
// M100 Free Memory Watcher
//
//#define M100_FREE_MEMORY_WATCHER // uncomment to add the M100 Free Memory Watcher for debug purpose
// @section temperature // @section temperature
// Preheat Constants // Preheat Constants
@ -907,7 +929,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
// Servo Endstops // Servo Endstops
// //
// This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes. // This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes.
// Use M851 to set the z-probe vertical offset from the nozzle. Store that setting with M500. // Use M851 to set the Z probe vertical offset from the nozzle. Store that setting with M500.
// //
//#define X_ENDSTOP_SERVO_NR 1 //#define X_ENDSTOP_SERVO_NR 1
//#define Y_ENDSTOP_SERVO_NR 2 //#define Y_ENDSTOP_SERVO_NR 2

@ -361,11 +361,11 @@ const bool Y_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic o
const bool Z_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop. const bool Z_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop. const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
//#define DISABLE_MAX_ENDSTOPS //#define DISABLE_MAX_ENDSTOPS
//#define DISABLE_MIN_ENDSTOPS // Deltas only use min endstops for probing //#define DISABLE_MIN_ENDSTOPS // Deltas only use min endstops for probing.
// If you want to enable the Z Probe pin, but disable its use, uncomment the line below. // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
// This only affects a Z Probe Endstop if you have separate Z min endstop as well and have // This only affects a Z probe endstop if you have separate Z min endstop as well and have
// activated Z_MIN_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z Probe, // activated Z_MIN_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z probe,
// this has no effect. // this has no effect.
//#define DISABLE_Z_MIN_PROBE_ENDSTOP //#define DISABLE_Z_MIN_PROBE_ENDSTOP
@ -441,11 +441,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
//=========================== Manual Bed Leveling =========================== //=========================== Manual Bed Leveling ===========================
//=========================================================================== //===========================================================================
// #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.
#if ENABLED(MANUAL_BED_LEVELING) #if ENABLED(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
#if ENABLED(MESH_BED_LEVELING) #if ENABLED(MESH_BED_LEVELING)
@ -453,9 +453,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
#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
#define MESH_MAX_Y (Y_MAX_POS - MESH_MIN_Y) #define MESH_MAX_Y (Y_MAX_POS - MESH_MIN_Y)
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited #define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
#define MESH_NUM_Y_POINTS 3 #define MESH_NUM_Y_POINTS 3
#define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0 #define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0.
#endif // MESH_BED_LEVELING #endif // MESH_BED_LEVELING
//=========================================================================== //===========================================================================
@ -464,12 +464,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
// @section bedlevel // @section bedlevel
#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_MIN_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled. //#define Z_MIN_PROBE_REPEATABILITY_TEST // If not commented out, Z probe repeatability test will be included if auto bed leveling is enabled.
#if ENABLED(ENABLE_AUTO_BED_LEVELING) #if ENABLED(ENABLE_AUTO_BED_LEVELING)
// There are 2 different ways to specify probing locations // There are 2 different ways to specify probing locations:
// //
// - "grid" mode // - "grid" mode
// Probe several points in a rectangular grid. // Probe several points in a rectangular grid.
@ -480,9 +480,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
// Probe 3 arbitrary points on the bed (that aren't colinear) // Probe 3 arbitrary points on the bed (that aren't colinear)
// You specify the XY coordinates of all 3 points. // You specify the XY coordinates of all 3 points.
// Enable this to sample the bed in a grid (least squares solution) // Enable this to sample the bed in a grid (least squares solution).
// 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.
#if ENABLED(AUTO_BED_LEVELING_GRID) #if ENABLED(AUTO_BED_LEVELING_GRID)
@ -493,7 +493,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
#define FRONT_PROBE_BED_POSITION -DELTA_PROBABLE_RADIUS #define FRONT_PROBE_BED_POSITION -DELTA_PROBABLE_RADIUS
#define BACK_PROBE_BED_POSITION DELTA_PROBABLE_RADIUS #define BACK_PROBE_BED_POSITION DELTA_PROBABLE_RADIUS
#define MIN_PROBE_EDGE 10 // The probe square sides can be no smaller than this #define MIN_PROBE_EDGE 10 // The Z probe square sides can be no smaller than this.
// Non-linear bed leveling will be used. // Non-linear bed leveling will be used.
// Compensate by interpolating between the nearest four Z probe values for each point. // Compensate by interpolating between the nearest four Z probe values for each point.
@ -503,8 +503,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
#else // !AUTO_BED_LEVELING_GRID #else // !AUTO_BED_LEVELING_GRID
// Arbitrary points to probe. A simple cross-product // Arbitrary points to probe.
// is used to estimate the plane of the bed. // A simple cross-product is used to estimate the plane of the bed.
#define ABL_PROBE_PT_1_X 15 #define ABL_PROBE_PT_1_X 15
#define ABL_PROBE_PT_1_Y 180 #define ABL_PROBE_PT_1_Y 180
#define ABL_PROBE_PT_2_X 15 #define ABL_PROBE_PT_2_X 15
@ -514,28 +514,28 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
#endif // AUTO_BED_LEVELING_GRID #endif // AUTO_BED_LEVELING_GRID
// Offsets to the probe relative to the extruder tip (Hotend - Probe) // Offsets to the Z probe relative to the nozzle tip.
// X and Y offsets must be integers // X and Y offsets must be integers.
#define X_PROBE_OFFSET_FROM_EXTRUDER -23 // KosselPro actual: -22.919 #define X_PROBE_OFFSET_FROM_EXTRUDER -23 // KosselPro actual: -22.919
#define Y_PROBE_OFFSET_FROM_EXTRUDER -6 // KosselPro actual: -6.304 #define Y_PROBE_OFFSET_FROM_EXTRUDER -6 // KosselPro actual: -6.304
// Kossel Pro note: The correct value is likely -17.45 but I'd rather err on the side of // Kossel Pro note: The correct value is likely -17.45 but I'd rather err on the side of
// not giving someone a head crash. Use something like G29 Z-0.2 to adjust as needed. // not giving someone a head crash. Use something like G29 Z-0.2 to adjust as needed.
#define Z_PROBE_OFFSET_FROM_EXTRUDER -17.25 // Increase this if the first layer is too thin (remember: it's a negative number so increase means closer to zero). #define Z_PROBE_OFFSET_FROM_EXTRUDER -17.25 // Increase this if the first layer is too thin (remember: it's a negative number so increase means closer to zero).
#define Z_RAISE_BEFORE_HOMING 4 // (in mm) Raise Z before homing (G28) for Probe Clearance. #define Z_RAISE_BEFORE_HOMING 4 // (in mm) Raise Z axis before homing (G28) for Z probe clearance.
// Be sure you have this distance over your Z_MAX_POS in case // Be sure you have this distance over your Z_MAX_POS in case.
#define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min #define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min.
#define Z_RAISE_BEFORE_PROBING 100 //How much the extruder will be raised before traveling to the first probing point. #define Z_RAISE_BEFORE_PROBING 100 // How much the Z axis will be raised before traveling to the first probing point.
#define Z_RAISE_BETWEEN_PROBINGS 5 //How much the extruder will be raised when traveling from between next probing points #define Z_RAISE_BETWEEN_PROBINGS 5 // How much the Z axis will be raised when traveling from between next probing points.
#define Z_RAISE_AFTER_PROBING 15 //How much the extruder will be raised after the last probing point. #define Z_RAISE_AFTER_PROBING 15 // How much the Z axis will be raised after the last probing point.
// #define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" //These commands will be executed in the end of G29 routine. // #define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
//Useful to retract a deployable probe. // Useful to retract a deployable Z probe.
//#define Z_PROBE_SLED // turn on if you have a z-probe mounted on a sled like those designed by Charles Bell //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
//#define SLED_DOCKING_OFFSET 5 // the extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.
// Allen key retractable z-probe as seen on many Kossel delta printers - http://reprap.org/wiki/Kossel#Automatic_bed_leveling_probe // Allen key retractable z-probe as seen on many Kossel delta printers - http://reprap.org/wiki/Kossel#Automatic_bed_leveling_probe
// Deploys by touching z-axis belt. Retracts by pushing the probe down. Uses Z_MIN_PIN. // Deploys by touching z-axis belt. Retracts by pushing the probe down. Uses Z_MIN_PIN.
@ -618,35 +618,52 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
#define Z_PROBE_ALLEN_KEY_STOW_3_FEEDRATE HOMING_FEEDRATE_Z #define Z_PROBE_ALLEN_KEY_STOW_3_FEEDRATE HOMING_FEEDRATE_Z
#endif #endif
//If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing, // If you have enabled the bed auto leveling and are using the same Z probe for Z homing,
//it is highly recommended you let this Z_SAFE_HOMING enabled!!! // it is highly recommended you let this Z_SAFE_HOMING enabled!!!
#define Z_SAFE_HOMING // This feature is meant to avoid Z homing with probe outside the bed area. #define Z_SAFE_HOMING // This feature is meant to avoid Z homing with Z probe outside the bed area.
// When defined, it will: // When defined, it will:
// - Allow Z homing only after X and Y homing AND stepper drivers still enabled // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
// - If stepper drivers timeout, it will need X and Y homing again before Z homing // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
// - Position the probe in a defined XY point before Z Homing when homing all axis (G28) // - Position the Z 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 Z probe is outside bed area.
#if ENABLED(Z_SAFE_HOMING) #if ENABLED(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).
#endif #endif
// Support for a dedicated Z PROBE endstop separate from the Z MIN endstop. // Support for a dedicated Z probe endstop separate from the Z min endstop.
// If you would like to use both a Z PROBE and a Z MIN endstop together , uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below. // If you would like to use both a Z probe and a Z min endstop together,
// If you want to still use the Z min endstop for homing, disable Z_SAFE_HOMING above. Eg; to park the head outside the bed area when homing with G28. // uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below.
// WARNING: The Z MIN endstop will need to set properly as it would without a Z PROBE to prevent head crashes and premature stopping during a print. // If you still want to use the Z min endstop for homing, disable Z_SAFE_HOMING above.
// To use a separate Z PROBE endstop, you must have a Z_MIN_PROBE_PIN defined in the pins.h file for your control board. // Example: To park the head outside the bed area when homing with G28.
// If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C Servo below. //
// RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin in the Aux 4 section of the RAMPS board. Use 5V for powered sensors, otherwise connect to ground and D32 // WARNING:
// for normally closed configuration and 5V and D32 for normally open configurations. Normally closed configuration is advised and assumed. // The Z min endstop will need to set properly as it would without a Z probe
// The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin. Z_MIN_PROBE_PIN is setting the pin to use on the Arduino. Since the D32 pin on the RAMPS maps to D32 on Arduino, this works. // to prevent head crashes and premature stopping during a print.
// D32 is currently selected in the RAMPS 1.3/1.4 pin file. All other boards will need changes to the respective pins_XXXXX.h file. //
// WARNING: Setting the wrong pin may have unexpected and potentially disastrous outcomes. Use with caution and do your homework. // To use a separate Z probe endstop, you must have a Z_MIN_PROBE_PIN
// defined in the pins_XXXXX.h file for your control board.
// If you are using a servo based Z probe, you will need to enable NUM_SERVOS,
// Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C SERVO support below.
// RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin
// in the Aux 4 section of the RAMPS board. Use 5V for powered sensors,
// otherwise connect to ground and D32 for normally closed configuration
// and 5V and D32 for normally open configurations.
// Normally closed configuration is advised and assumed.
// The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin.
// Z_MIN_PROBE_PIN is setting the pin to use on the Arduino.
// Since the D32 pin on the RAMPS maps to D32 on Arduino, this works.
// D32 is currently selected in the RAMPS 1.3/1.4 pin file.
// All other boards will need changes to the respective pins_XXXXX.h file.
//
// WARNING:
// Setting the wrong pin may have unexpected and potentially disastrous outcomes.
// Use with caution and do your homework.
//
//#define Z_MIN_PROBE_ENDSTOP //#define Z_MIN_PROBE_ENDSTOP
#endif // ENABLE_AUTO_BED_LEVELING #endif // ENABLE_AUTO_BED_LEVELING
@ -732,6 +749,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
#define EEPROM_CHITCHAT // Please keep turned on if you can. #define EEPROM_CHITCHAT // Please keep turned on if you can.
#endif #endif
//
// M100 Free Memory Watcher
//
//#define M100_FREE_MEMORY_WATCHER // uncomment to add the M100 Free Memory Watcher for debug purpose
// @section temperature // @section temperature
// Preheat Constants // Preheat Constants
@ -902,7 +924,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
// Servo Endstops // Servo Endstops
// //
// This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes. // This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes.
// Use M851 to set the z-probe vertical offset from the nozzle. Store that setting with M500. // Use M851 to set the Z probe vertical offset from the nozzle. Store that setting with M500.
// //
//#define X_ENDSTOP_SERVO_NR 1 //#define X_ENDSTOP_SERVO_NR 1
//#define Y_ENDSTOP_SERVO_NR 2 //#define Y_ENDSTOP_SERVO_NR 2

@ -344,9 +344,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
//#define DISABLE_MAX_ENDSTOPS //#define DISABLE_MAX_ENDSTOPS
//#define DISABLE_MIN_ENDSTOPS //#define DISABLE_MIN_ENDSTOPS
// If you want to enable the Z Probe pin, but disable its use, uncomment the line below. // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
// This only affects a Z Probe Endstop if you have separate Z min endstop as well and have // This only affects a Z probe endstop if you have separate Z min endstop as well and have
// activated Z_MIN_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z Probe, // activated Z_MIN_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z probe,
// this has no effect. // this has no effect.
//#define DISABLE_Z_MIN_PROBE_ENDSTOP //#define DISABLE_Z_MIN_PROBE_ENDSTOP
@ -422,11 +422,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
//=========================== Manual Bed Leveling =========================== //=========================== Manual Bed Leveling ===========================
//=========================================================================== //===========================================================================
// #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.
#if ENABLED(MANUAL_BED_LEVELING) #if ENABLED(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
#if ENABLED(MESH_BED_LEVELING) #if ENABLED(MESH_BED_LEVELING)
@ -434,9 +434,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
#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
#define MESH_MAX_Y (Y_MAX_POS - MESH_MIN_Y) #define MESH_MAX_Y (Y_MAX_POS - MESH_MIN_Y)
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited #define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
#define MESH_NUM_Y_POINTS 3 #define MESH_NUM_Y_POINTS 3
#define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0 #define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0.
#endif // MESH_BED_LEVELING #endif // MESH_BED_LEVELING
//=========================================================================== //===========================================================================
@ -445,12 +445,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
// @section bedlevel // @section bedlevel
//#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_MIN_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled. #define Z_MIN_PROBE_REPEATABILITY_TEST // If not commented out, Z probe repeatability test will be included if auto bed leveling is enabled.
#if ENABLED(ENABLE_AUTO_BED_LEVELING) #if ENABLED(ENABLE_AUTO_BED_LEVELING)
// There are 2 different ways to specify probing locations // There are 2 different ways to specify probing locations:
// //
// - "grid" mode // - "grid" mode
// Probe several points in a rectangular grid. // Probe several points in a rectangular grid.
@ -461,8 +461,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
// Probe 3 arbitrary points on the bed (that aren't colinear) // Probe 3 arbitrary points on the bed (that aren't colinear)
// You specify the XY coordinates of all 3 points. // You specify the XY coordinates of all 3 points.
// Enable this to sample the bed in a grid (least squares solution) // Enable this to sample the bed in a grid (least squares solution).
// 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
#if ENABLED(AUTO_BED_LEVELING_GRID) #if ENABLED(AUTO_BED_LEVELING_GRID)
@ -472,16 +472,16 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
#define FRONT_PROBE_BED_POSITION 20 #define FRONT_PROBE_BED_POSITION 20
#define BACK_PROBE_BED_POSITION 170 #define BACK_PROBE_BED_POSITION 170
#define MIN_PROBE_EDGE 10 // The probe square sides can be no smaller than this #define MIN_PROBE_EDGE 10 // The Z probe square sides can be no smaller than this.
// Set the number of grid points per dimension // Set the number of grid points per dimension.
// You probably don't need more than 3 (squared=9) // You probably don't need more than 3 (squared=9).
#define AUTO_BED_LEVELING_GRID_POINTS 2 #define AUTO_BED_LEVELING_GRID_POINTS 2
#else // !AUTO_BED_LEVELING_GRID #else // !AUTO_BED_LEVELING_GRID
// Arbitrary points to probe. A simple cross-product // Arbitrary points to probe.
// is used to estimate the plane of the bed. // A simple cross-product is used to estimate the plane of the bed.
#define ABL_PROBE_PT_1_X 15 #define ABL_PROBE_PT_1_X 15
#define ABL_PROBE_PT_1_Y 180 #define ABL_PROBE_PT_1_Y 180
#define ABL_PROBE_PT_2_X 15 #define ABL_PROBE_PT_2_X 15
@ -491,56 +491,73 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
#endif // AUTO_BED_LEVELING_GRID #endif // AUTO_BED_LEVELING_GRID
// Offsets to the probe relative to the extruder tip (Hotend - Probe) // Offsets to the Z probe relative to the nozzle tip.
// X and Y offsets must be integers // X and Y offsets must be integers.
#define X_PROBE_OFFSET_FROM_EXTRUDER -25 // Probe on: -left +right #define X_PROBE_OFFSET_FROM_EXTRUDER -25 // Z probe to nozzle X offset: -left +right
#define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Probe on: -front +behind #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Z probe to nozzle Y offset: -front +behind
#define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // -below (always!) #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // Z probe to nozzle Z offset: -below (always!)
#define Z_RAISE_BEFORE_HOMING 4 // (in mm) Raise Z before homing (G28) for Probe Clearance. #define Z_RAISE_BEFORE_HOMING 4 // (in mm) Raise Z axis before homing (G28) for Z probe clearance.
// Be sure you have this distance over your Z_MAX_POS in case // Be sure you have this distance over your Z_MAX_POS in case.
#define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min #define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min.
#define Z_RAISE_BEFORE_PROBING 15 //How much the extruder will be raised before traveling to the first probing point. #define Z_RAISE_BEFORE_PROBING 15 // How much the Z axis will be raised before traveling to the first probing point.
#define Z_RAISE_BETWEEN_PROBINGS 5 //How much the extruder will be raised when traveling from between next probing points #define Z_RAISE_BETWEEN_PROBINGS 5 // How much the Z axis will be raised when traveling from between next probing points.
#define Z_RAISE_AFTER_PROBING 15 //How much the extruder will be raised after the last probing point. #define Z_RAISE_AFTER_PROBING 15 // How much the Z axis will be raised after the last probing point.
// #define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" //These commands will be executed in the end of G29 routine. // #define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
//Useful to retract a deployable probe. // Useful to retract a deployable Z probe.
//#define Z_PROBE_SLED // turn on if you have a z-probe mounted on a sled like those designed by Charles Bell //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
//#define SLED_DOCKING_OFFSET 5 // the extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.
//If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing, // If you have enabled the bed auto leveling and are using the same Z probe for Z homing,
//it is highly recommended you let this Z_SAFE_HOMING enabled!!! // it is highly recommended you let this Z_SAFE_HOMING enabled!!!
#define Z_SAFE_HOMING // This feature is meant to avoid Z homing with probe outside the bed area. #define Z_SAFE_HOMING // This feature is meant to avoid Z homing with Z probe outside the bed area.
// When defined, it will: // When defined, it will:
// - Allow Z homing only after X and Y homing AND stepper drivers still enabled // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
// - If stepper drivers timeout, it will need X and Y homing again before Z homing // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
// - Position the probe in a defined XY point before Z Homing when homing all axis (G28) // - Position the Z 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 Z probe is outside bed area.
#if ENABLED(Z_SAFE_HOMING) #if ENABLED(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).
#endif #endif
// Support for a dedicated Z PROBE endstop separate from the Z MIN endstop. // Support for a dedicated Z probe endstop separate from the Z min endstop.
// If you would like to use both a Z PROBE and a Z MIN endstop together , uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below. // If you would like to use both a Z probe and a Z min endstop together,
// If you want to still use the Z min endstop for homing, disable Z_SAFE_HOMING above. Eg; to park the head outside the bed area when homing with G28. // uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below.
// WARNING: The Z MIN endstop will need to set properly as it would without a Z PROBE to prevent head crashes and premature stopping during a print. // If you still want to use the Z min endstop for homing, disable Z_SAFE_HOMING above.
// To use a separate Z PROBE endstop, you must have a Z_MIN_PROBE_PIN defined in the pins.h file for your control board. // Example: To park the head outside the bed area when homing with G28.
// If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C Servo below. //
// RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin in the Aux 4 section of the RAMPS board. Use 5V for powered sensors, otherwise connect to ground and D32 // WARNING:
// for normally closed configuration and 5V and D32 for normally open configurations. Normally closed configuration is advised and assumed. // The Z min endstop will need to set properly as it would without a Z probe
// The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin. Z_MIN_PROBE_PIN is setting the pin to use on the Arduino. Since the D32 pin on the RAMPS maps to D32 on Arduino, this works. // to prevent head crashes and premature stopping during a print.
// D32 is currently selected in the RAMPS 1.3/1.4 pin file. All other boards will need changes to the respective pins_XXXXX.h file. //
// WARNING: Setting the wrong pin may have unexpected and potentially disastrous outcomes. Use with caution and do your homework. // To use a separate Z probe endstop, you must have a Z_MIN_PROBE_PIN
// defined in the pins_XXXXX.h file for your control board.
// If you are using a servo based Z probe, you will need to enable NUM_SERVOS,
// Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C SERVO support below.
// RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin
// in the Aux 4 section of the RAMPS board. Use 5V for powered sensors,
// otherwise connect to ground and D32 for normally closed configuration
// and 5V and D32 for normally open configurations.
// Normally closed configuration is advised and assumed.
// The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin.
// Z_MIN_PROBE_PIN is setting the pin to use on the Arduino.
// Since the D32 pin on the RAMPS maps to D32 on Arduino, this works.
// D32 is currently selected in the RAMPS 1.3/1.4 pin file.
// All other boards will need changes to the respective pins_XXXXX.h file.
//
// WARNING:
// Setting the wrong pin may have unexpected and potentially disastrous outcomes.
// Use with caution and do your homework.
//
//#define Z_MIN_PROBE_ENDSTOP //#define Z_MIN_PROBE_ENDSTOP
#endif // ENABLE_AUTO_BED_LEVELING #endif // ENABLE_AUTO_BED_LEVELING
@ -616,6 +633,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
#define EEPROM_CHITCHAT // Please keep turned on if you can. #define EEPROM_CHITCHAT // Please keep turned on if you can.
#endif #endif
//
// M100 Free Memory Watcher
//
//#define M100_FREE_MEMORY_WATCHER // uncomment to add the M100 Free Memory Watcher for debug purpose
// @section temperature // @section temperature
// Preheat Constants // Preheat Constants
@ -783,7 +805,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
// Servo Endstops // Servo Endstops
// //
// This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes. // This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes.
// Use M851 to set the z-probe vertical offset from the nozzle. Store that setting with M500. // Use M851 to set the Z probe vertical offset from the nozzle. Store that setting with M500.
// //
//#define X_ENDSTOP_SERVO_NR 1 //#define X_ENDSTOP_SERVO_NR 1
//#define Y_ENDSTOP_SERVO_NR 2 //#define Y_ENDSTOP_SERVO_NR 2

@ -331,9 +331,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
//#define DISABLE_MAX_ENDSTOPS //#define DISABLE_MAX_ENDSTOPS
//#define DISABLE_MIN_ENDSTOPS //#define DISABLE_MIN_ENDSTOPS
// If you want to enable the Z Probe pin, but disable its use, uncomment the line below. // If you want to enable the Z probe pin, but disable its use, uncomment the line below.
// This only affects a Z Probe Endstop if you have separate Z min endstop as well and have // This only affects a Z probe endstop if you have separate Z min endstop as well and have
// activated Z_MIN_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z Probe, // activated Z_MIN_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z probe,
// this has no effect. // this has no effect.
//#define DISABLE_Z_MIN_PROBE_ENDSTOP //#define DISABLE_Z_MIN_PROBE_ENDSTOP
@ -409,11 +409,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
//=========================== Manual Bed Leveling =========================== //=========================== Manual Bed Leveling ===========================
//=========================================================================== //===========================================================================
// #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.
#if ENABLED(MANUAL_BED_LEVELING) #if ENABLED(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
#if ENABLED(MESH_BED_LEVELING) #if ENABLED(MESH_BED_LEVELING)
@ -421,9 +421,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
#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
#define MESH_MAX_Y (Y_MAX_POS - MESH_MIN_Y) #define MESH_MAX_Y (Y_MAX_POS - MESH_MIN_Y)
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited #define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
#define MESH_NUM_Y_POINTS 3 #define MESH_NUM_Y_POINTS 3
#define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0 #define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0.
#endif // MESH_BED_LEVELING #endif // MESH_BED_LEVELING
//=========================================================================== //===========================================================================
@ -432,12 +432,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
// @section bedlevel // @section bedlevel
//#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_MIN_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled. #define Z_MIN_PROBE_REPEATABILITY_TEST // If not commented out, Z probe repeatability test will be included if auto bed leveling is enabled.
#if ENABLED(ENABLE_AUTO_BED_LEVELING) #if ENABLED(ENABLE_AUTO_BED_LEVELING)
// There are 2 different ways to specify probing locations // There are 2 different ways to specify probing locations:
// //
// - "grid" mode // - "grid" mode
// Probe several points in a rectangular grid. // Probe several points in a rectangular grid.
@ -448,8 +448,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
// Probe 3 arbitrary points on the bed (that aren't colinear) // Probe 3 arbitrary points on the bed (that aren't colinear)
// You specify the XY coordinates of all 3 points. // You specify the XY coordinates of all 3 points.
// Enable this to sample the bed in a grid (least squares solution) // Enable this to sample the bed in a grid (least squares solution).
// 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
#if ENABLED(AUTO_BED_LEVELING_GRID) #if ENABLED(AUTO_BED_LEVELING_GRID)
@ -459,16 +459,16 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
#define FRONT_PROBE_BED_POSITION 20 #define FRONT_PROBE_BED_POSITION 20
#define BACK_PROBE_BED_POSITION 170 #define BACK_PROBE_BED_POSITION 170
#define MIN_PROBE_EDGE 10 // The probe square sides can be no smaller than this #define MIN_PROBE_EDGE 10 // The Z probe square sides can be no smaller than this.
// Set the number of grid points per dimension // Set the number of grid points per dimension.
// You probably don't need more than 3 (squared=9) // You probably don't need more than 3 (squared=9).
#define AUTO_BED_LEVELING_GRID_POINTS 2 #define AUTO_BED_LEVELING_GRID_POINTS 2
#else // !AUTO_BED_LEVELING_GRID #else // !AUTO_BED_LEVELING_GRID
// Arbitrary points to probe. A simple cross-product // Arbitrary points to probe.
// is used to estimate the plane of the bed. // A simple cross-product is used to estimate the plane of the bed.
#define ABL_PROBE_PT_1_X 15 #define ABL_PROBE_PT_1_X 15
#define ABL_PROBE_PT_1_Y 180 #define ABL_PROBE_PT_1_Y 180
#define ABL_PROBE_PT_2_X 15 #define ABL_PROBE_PT_2_X 15
@ -478,56 +478,73 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
#endif // AUTO_BED_LEVELING_GRID #endif // AUTO_BED_LEVELING_GRID
// Offsets to the probe relative to the extruder tip (Hotend - Probe) // Offsets to the Z probe relative to the nozzle tip.
// X and Y offsets must be integers // X and Y offsets must be integers.
#define X_PROBE_OFFSET_FROM_EXTRUDER -25 // Probe on: -left +right #define X_PROBE_OFFSET_FROM_EXTRUDER -25 // Z probe to nozzle X offset: -left +right
#define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Probe on: -front +behind #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Z probe to nozzle Y offset: -front +behind
#define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // -below (always!) #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // Z probe to nozzle Z offset: -below (always!)
#define Z_RAISE_BEFORE_HOMING 4 // (in mm) Raise Z before homing (G28) for Probe Clearance. #define Z_RAISE_BEFORE_HOMING 4 // (in mm) Raise Z axis before homing (G28) for Z probe clearance.
// Be sure you have this distance over your Z_MAX_POS in case // Be sure you have this distance over your Z_MAX_POS in case.
#define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min #define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min.
#define Z_RAISE_BEFORE_PROBING 15 //How much the extruder will be raised before traveling to the first probing point. #define Z_RAISE_BEFORE_PROBING 15 // How much the Z axis will be raised before traveling to the first probing point.
#define Z_RAISE_BETWEEN_PROBINGS 5 //How much the extruder will be raised when traveling from between next probing points #define Z_RAISE_BETWEEN_PROBINGS 5 // How much the Z axis will be raised when traveling from between next probing points.
#define Z_RAISE_AFTER_PROBING 15 //How much the extruder will be raised after the last probing point. #define Z_RAISE_AFTER_PROBING 15 // How much the Z axis will be raised after the last probing point.
// #define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" //These commands will be executed in the end of G29 routine. // #define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
//Useful to retract a deployable probe. // Useful to retract a deployable Z probe.
//#define Z_PROBE_SLED // turn on if you have a z-probe mounted on a sled like those designed by Charles Bell //#define Z_PROBE_SLED // Turn on if you have a Z probe mounted on a sled like those designed by Charles Bell.
//#define SLED_DOCKING_OFFSET 5 // the extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.
//If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing, // If you have enabled the bed auto leveling and are using the same Z probe for Z homing,
//it is highly recommended you let this Z_SAFE_HOMING enabled!!! // it is highly recommended you let this Z_SAFE_HOMING enabled!!!
#define Z_SAFE_HOMING // This feature is meant to avoid Z homing with probe outside the bed area. #define Z_SAFE_HOMING // This feature is meant to avoid Z homing with Z probe outside the bed area.
// When defined, it will: // When defined, it will:
// - Allow Z homing only after X and Y homing AND stepper drivers still enabled // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
// - If stepper drivers timeout, it will need X and Y homing again before Z homing // - If stepper drivers timeout, it will need X and Y homing again before Z homing.
// - Position the probe in a defined XY point before Z Homing when homing all axis (G28) // - Position the Z 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 Z probe is outside bed area.
#if ENABLED(Z_SAFE_HOMING) #if ENABLED(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).
#endif #endif
// Support for a dedicated Z PROBE endstop separate from the Z MIN endstop. // Support for a dedicated Z probe endstop separate from the Z min endstop.
// If you would like to use both a Z PROBE and a Z MIN endstop together , uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below. // If you would like to use both a Z probe and a Z min endstop together,
// If you want to still use the Z min endstop for homing, disable Z_SAFE_HOMING above. Eg; to park the head outside the bed area when homing with G28. // uncomment #define Z_MIN_PROBE_ENDSTOP and read the instructions below.
// WARNING: The Z MIN endstop will need to set properly as it would without a Z PROBE to prevent head crashes and premature stopping during a print. // If you still want to use the Z min endstop for homing, disable Z_SAFE_HOMING above.
// To use a separate Z PROBE endstop, you must have a Z_MIN_PROBE_PIN defined in the pins.h file for your control board. // Example: To park the head outside the bed area when homing with G28.
// If you are using a servo based Z PROBE, you will need to enable NUM_SERVOS, Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C Servo below. //
// RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin in the Aux 4 section of the RAMPS board. Use 5V for powered sensors, otherwise connect to ground and D32 // WARNING:
// for normally closed configuration and 5V and D32 for normally open configurations. Normally closed configuration is advised and assumed. // The Z min endstop will need to set properly as it would without a Z probe
// The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin. Z_MIN_PROBE_PIN is setting the pin to use on the Arduino. Since the D32 pin on the RAMPS maps to D32 on Arduino, this works. // to prevent head crashes and premature stopping during a print.
// D32 is currently selected in the RAMPS 1.3/1.4 pin file. All other boards will need changes to the respective pins_XXXXX.h file. //
// WARNING: Setting the wrong pin may have unexpected and potentially disastrous outcomes. Use with caution and do your homework. // To use a separate Z probe endstop, you must have a Z_MIN_PROBE_PIN
// defined in the pins_XXXXX.h file for your control board.
// If you are using a servo based Z probe, you will need to enable NUM_SERVOS,
// Z_ENDSTOP_SERVO_NR and SERVO_ENDSTOP_ANGLES in the R/C SERVO support below.
// RAMPS 1.3/1.4 boards may be able to use the 5V, Ground and the D32 pin
// in the Aux 4 section of the RAMPS board. Use 5V for powered sensors,
// otherwise connect to ground and D32 for normally closed configuration
// and 5V and D32 for normally open configurations.
// Normally closed configuration is advised and assumed.
// The D32 pin in Aux 4 on RAMPS maps to the Arduino D32 pin.
// Z_MIN_PROBE_PIN is setting the pin to use on the Arduino.
// Since the D32 pin on the RAMPS maps to D32 on Arduino, this works.
// D32 is currently selected in the RAMPS 1.3/1.4 pin file.
// All other boards will need changes to the respective pins_XXXXX.h file.
//
// WARNING:
// Setting the wrong pin may have unexpected and potentially disastrous outcomes.
// Use with caution and do your homework.
//
//#define Z_MIN_PROBE_ENDSTOP //#define Z_MIN_PROBE_ENDSTOP
#endif // ENABLE_AUTO_BED_LEVELING #endif // ENABLE_AUTO_BED_LEVELING
@ -607,6 +624,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
#define EEPROM_CHITCHAT // Please keep turned on if you can. #define EEPROM_CHITCHAT // Please keep turned on if you can.
#endif #endif
//
// M100 Free Memory Watcher
//
//#define M100_FREE_MEMORY_WATCHER // uncomment to add the M100 Free Memory Watcher for debug purpose
// @section temperature // @section temperature
// Preheat Constants // Preheat Constants
@ -774,7 +796,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
// Servo Endstops // Servo Endstops
// //
// This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes. // This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes.
// Use M851 to set the z-probe vertical offset from the nozzle. Store that setting with M500. // Use M851 to set the Z probe vertical offset from the nozzle. Store that setting with M500.
// //
//#define X_ENDSTOP_SERVO_NR 1 //#define X_ENDSTOP_SERVO_NR 1
//#define Y_ENDSTOP_SERVO_NR 2 //#define Y_ENDSTOP_SERVO_NR 2

@ -31,7 +31,7 @@
#define Z_DIR_PIN 28 #define Z_DIR_PIN 28
#define Z_ENABLE_PIN 37 #define Z_ENABLE_PIN 37
#define Z_MAX_PIN 36 #define Z_MAX_PIN 36
#define Z_MIN_PIN 17 // Bed probe #define Z_MIN_PIN 17 // Bed Z probe
#define E0_STEP_PIN 35 #define E0_STEP_PIN 35
#define E0_DIR_PIN 34 #define E0_DIR_PIN 34

Loading…
Cancel
Save