Merge pull request #4899 from thinkyhead/rc_nonlinear_grid
ABL: Enable by type. Bilinear for all.
This commit is contained in:
commit
f4b9052529
34 changed files with 1484 additions and 1260 deletions
16
.travis.yml
16
.travis.yml
|
@ -106,9 +106,9 @@ script:
|
||||||
- opt_enable FIX_MOUNTED_PROBE Z_SAFE_HOMING
|
- opt_enable FIX_MOUNTED_PROBE Z_SAFE_HOMING
|
||||||
- build_marlin
|
- build_marlin
|
||||||
#
|
#
|
||||||
# ...with AUTO_BED_LEVELING_FEATURE, Z_MIN_PROBE_REPEATABILITY_TEST, & DEBUG_LEVELING_FEATURE
|
# ...with AUTO_BED_LEVELING_LINEAR, Z_MIN_PROBE_REPEATABILITY_TEST, & DEBUG_LEVELING_FEATURE
|
||||||
#
|
#
|
||||||
- opt_enable AUTO_BED_LEVELING_FEATURE Z_MIN_PROBE_REPEATABILITY_TEST DEBUG_LEVELING_FEATURE
|
- opt_enable AUTO_BED_LEVELING_LINEAR Z_MIN_PROBE_REPEATABILITY_TEST DEBUG_LEVELING_FEATURE
|
||||||
- opt_set ABL_GRID_POINTS_X 16
|
- opt_set ABL_GRID_POINTS_X 16
|
||||||
- opt_set ABL_GRID_POINTS_Y 16
|
- opt_set ABL_GRID_POINTS_Y 16
|
||||||
- build_marlin
|
- build_marlin
|
||||||
|
@ -119,9 +119,9 @@ script:
|
||||||
- opt_enable Z_PROBE_SLED
|
- opt_enable Z_PROBE_SLED
|
||||||
- build_marlin
|
- build_marlin
|
||||||
#
|
#
|
||||||
# ...with AUTO_BED_LEVELING_FEATURE & DEBUG_LEVELING_FEATURE
|
# ...with AUTO_BED_LEVELING_LINEAR & DEBUG_LEVELING_FEATURE
|
||||||
#
|
#
|
||||||
- opt_enable AUTO_BED_LEVELING_FEATURE DEBUG_LEVELING_FEATURE
|
- opt_enable AUTO_BED_LEVELING_LINEAR DEBUG_LEVELING_FEATURE
|
||||||
- build_marlin
|
- build_marlin
|
||||||
#
|
#
|
||||||
# Test a Servo Probe
|
# Test a Servo Probe
|
||||||
|
@ -130,9 +130,9 @@ script:
|
||||||
- opt_enable NUM_SERVOS Z_ENDSTOP_SERVO_NR Z_SERVO_ANGLES DEACTIVATE_SERVOS_AFTER_MOVE
|
- opt_enable NUM_SERVOS Z_ENDSTOP_SERVO_NR Z_SERVO_ANGLES DEACTIVATE_SERVOS_AFTER_MOVE
|
||||||
- build_marlin
|
- build_marlin
|
||||||
#
|
#
|
||||||
# ...with AUTO_BED_LEVELING_FEATURE & DEBUG_LEVELING_FEATURE
|
# ...with AUTO_BED_LEVELING_3POINT & DEBUG_LEVELING_FEATURE
|
||||||
#
|
#
|
||||||
- opt_enable AUTO_BED_LEVELING_FEATURE DEBUG_LEVELING_FEATURE
|
- opt_enable AUTO_BED_LEVELING_3POINT DEBUG_LEVELING_FEATURE
|
||||||
- build_marlin
|
- build_marlin
|
||||||
#
|
#
|
||||||
# Test MESH_BED_LEVELING feature, with LCD
|
# Test MESH_BED_LEVELING feature, with LCD
|
||||||
|
@ -360,7 +360,7 @@ script:
|
||||||
#
|
#
|
||||||
- use_example_configs delta/generic
|
- use_example_configs delta/generic
|
||||||
- opt_disable DISABLE_MIN_ENDSTOPS
|
- opt_disable DISABLE_MIN_ENDSTOPS
|
||||||
- opt_enable AUTO_BED_LEVELING_FEATURE Z_PROBE_ALLEN_KEY
|
- opt_enable AUTO_BED_LEVELING_BILINEAR Z_PROBE_ALLEN_KEY
|
||||||
- build_marlin
|
- build_marlin
|
||||||
#
|
#
|
||||||
# Delta Config (Mini Kossel)
|
# Delta Config (Mini Kossel)
|
||||||
|
@ -376,7 +376,7 @@ script:
|
||||||
# SCARA Config
|
# SCARA Config
|
||||||
#
|
#
|
||||||
- use_example_configs SCARA
|
- use_example_configs SCARA
|
||||||
- opt_enable AUTO_BED_LEVELING_FEATURE FIX_MOUNTED_PROBE USE_ZMIN_PLUG EEPROM_SETTINGS EEPROM_CHITCHAT ULTIMAKERCONTROLLER
|
- opt_enable AUTO_BED_LEVELING_BILINEAR FIX_MOUNTED_PROBE USE_ZMIN_PLUG EEPROM_SETTINGS EEPROM_CHITCHAT ULTIMAKERCONTROLLER
|
||||||
- build_marlin
|
- build_marlin
|
||||||
#
|
#
|
||||||
# tvrrug Config need to check board type for sanguino atmega644p
|
# tvrrug Config need to check board type for sanguino atmega644p
|
||||||
|
|
|
@ -117,8 +117,6 @@
|
||||||
/**
|
/**
|
||||||
* Auto Bed Leveling and Z Probe Repeatability Test
|
* Auto Bed Leveling and Z Probe Repeatability Test
|
||||||
*/
|
*/
|
||||||
#define HAS_PROBING_PROCEDURE (ENABLED(AUTO_BED_LEVELING_FEATURE) || ENABLED(Z_MIN_PROBE_REPEATABILITY_TEST))
|
|
||||||
|
|
||||||
#define HOMING_Z_WITH_PROBE (HAS_BED_PROBE && Z_HOME_DIR < 0 && ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN))
|
#define HOMING_Z_WITH_PROBE (HAS_BED_PROBE && Z_HOME_DIR < 0 && ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN))
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -644,25 +642,14 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Specify the exact style of auto bed leveling
|
* Set ABL options based on the specific type of leveling
|
||||||
*
|
|
||||||
* 3POINT - 3 Point Probing with the least-squares solution.
|
|
||||||
* LINEAR - Grid Probing with the least-squares solution.
|
|
||||||
* NONLINEAR - Grid Probing with a mesh solution. Best for large beds.
|
|
||||||
*/
|
*/
|
||||||
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
|
#define ABL_PLANAR (ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_3POINT))
|
||||||
#if DISABLED(AUTO_BED_LEVELING_GRID)
|
#define ABL_GRID (ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR))
|
||||||
#define AUTO_BED_LEVELING_LINEAR
|
#define HAS_ABL (ABL_PLANAR || ABL_GRID)
|
||||||
#define AUTO_BED_LEVELING_3POINT
|
|
||||||
#elif IS_KINEMATIC
|
|
||||||
#define AUTO_BED_LEVELING_NONLINEAR
|
|
||||||
#else
|
|
||||||
#define AUTO_BED_LEVELING_LINEAR
|
|
||||||
#define AUTO_BED_LEVELING_LINEAR_GRID
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define PLANNER_LEVELING (ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_FEATURE))
|
#define HAS_PROBING_PROCEDURE (HAS_ABL || ENABLED(Z_MIN_PROBE_REPEATABILITY_TEST))
|
||||||
|
#define PLANNER_LEVELING (HAS_ABL || ENABLED(MESH_BED_LEVELING))
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Buzzer/Speaker
|
* Buzzer/Speaker
|
||||||
|
|
|
@ -516,7 +516,7 @@
|
||||||
// Probes are sensors/switches that are activated / deactivated before/after use.
|
// Probes are sensors/switches that are activated / deactivated before/after use.
|
||||||
//
|
//
|
||||||
// Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
|
// Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
|
||||||
// You must activate one of these to use AUTO_BED_LEVELING_FEATURE below.
|
// You must activate one of these to use Auto Bed Leveling below.
|
||||||
//
|
//
|
||||||
// Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
|
// Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
|
||||||
//
|
//
|
||||||
|
@ -738,69 +738,142 @@
|
||||||
#endif // MESH_BED_LEVELING
|
#endif // MESH_BED_LEVELING
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//============================ Bed Auto Leveling ============================
|
//============================ Auto Bed Leveling ============================
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
|
|
||||||
// @section bedlevel
|
// @section bedlevel
|
||||||
|
|
||||||
//#define AUTO_BED_LEVELING_FEATURE // Delete the comment to enable (remove // at the start of the line)
|
/**
|
||||||
|
* Select one form of Auto Bed Leveling below.
|
||||||
|
*
|
||||||
|
* If you're also using the Probe for Z Homing, it's
|
||||||
|
* highly recommended to enable Z_SAFE_HOMING also!
|
||||||
|
*
|
||||||
|
* - 3POINT
|
||||||
|
* Probe 3 arbitrary points on the bed (that aren't collinear)
|
||||||
|
* You specify the XY coordinates of all 3 points.
|
||||||
|
* The result is a single tilted plane. Best for a flat bed.
|
||||||
|
*
|
||||||
|
* - LINEAR
|
||||||
|
* Probe several points in a grid.
|
||||||
|
* You specify the rectangle and the density of sample points.
|
||||||
|
* The result is a single tilted plane. Best for a flat bed.
|
||||||
|
*
|
||||||
|
* - BILINEAR
|
||||||
|
* Probe several points in a grid.
|
||||||
|
* You specify the rectangle and the density of sample points.
|
||||||
|
* The result is a mesh, best for large or uneven beds.
|
||||||
|
*/
|
||||||
|
//#define AUTO_BED_LEVELING_3POINT
|
||||||
|
//#define AUTO_BED_LEVELING_LINEAR
|
||||||
|
//#define AUTO_BED_LEVELING_BILINEAR
|
||||||
|
|
||||||
// Enable this feature to get detailed logging of G28, G29, M48, etc.
|
/**
|
||||||
// Logging is off by default. Enable this logging feature with 'M111 S32'.
|
* Enable detailed logging of G28, G29, M48, etc.
|
||||||
// NOTE: Requires a huge amount of PROGMEM.
|
* Turn on with the command 'M111 S32'.
|
||||||
|
* NOTE: Requires a lot of PROGMEM!
|
||||||
|
*/
|
||||||
//#define DEBUG_LEVELING_FEATURE
|
//#define DEBUG_LEVELING_FEATURE
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
|
#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
|
||||||
|
|
||||||
// There are 2 different ways to specify probing locations:
|
// Set the number of grid points per dimension.
|
||||||
//
|
#define ABL_GRID_POINTS_X 3
|
||||||
// - "grid" mode
|
#define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
|
||||||
// Probe several points in a rectangular grid.
|
|
||||||
// You specify the rectangle and the density of sample points.
|
|
||||||
// This mode is preferred because there are more measurements.
|
|
||||||
//
|
|
||||||
// - "3-point" mode
|
|
||||||
// Probe 3 arbitrary points on the bed (that aren't collinear)
|
|
||||||
// You specify the XY coordinates of all 3 points.
|
|
||||||
|
|
||||||
// Enable this to sample the bed in a grid (least squares solution).
|
// Set the boundaries for probing (where the probe can reach).
|
||||||
// Note: this feature generates 10KB extra code size.
|
#define LEFT_PROBE_BED_POSITION 15
|
||||||
#define AUTO_BED_LEVELING_GRID
|
#define RIGHT_PROBE_BED_POSITION 170
|
||||||
|
#define FRONT_PROBE_BED_POSITION 20
|
||||||
|
#define BACK_PROBE_BED_POSITION 170
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_GRID)
|
// The Z probe minimum outer margin (to validate G29 parameters).
|
||||||
|
#define MIN_PROBE_EDGE 10
|
||||||
|
|
||||||
#define LEFT_PROBE_BED_POSITION 15
|
#elif ENABLED(AUTO_BED_LEVELING_3POINT)
|
||||||
#define RIGHT_PROBE_BED_POSITION 170
|
|
||||||
#define FRONT_PROBE_BED_POSITION 20
|
|
||||||
#define BACK_PROBE_BED_POSITION 170
|
|
||||||
|
|
||||||
#define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this.
|
// 3 arbitrary points to probe.
|
||||||
|
// 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_Y 180
|
||||||
|
#define ABL_PROBE_PT_2_X 15
|
||||||
|
#define ABL_PROBE_PT_2_Y 20
|
||||||
|
#define ABL_PROBE_PT_3_X 170
|
||||||
|
#define ABL_PROBE_PT_3_Y 20
|
||||||
|
|
||||||
// Set the number of grid points per dimension.
|
#endif
|
||||||
// You probably don't need more than 3 (squared=9).
|
|
||||||
#define ABL_GRID_POINTS_X 3
|
|
||||||
#define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
|
|
||||||
|
|
||||||
#else // !AUTO_BED_LEVELING_GRID
|
/**
|
||||||
|
* Commands to execute at the end of G29 probing.
|
||||||
|
* Useful to retract or move the Z probe out of the way.
|
||||||
|
*/
|
||||||
|
//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"
|
||||||
|
|
||||||
// Arbitrary points to probe.
|
|
||||||
// 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_Y 180
|
|
||||||
#define ABL_PROBE_PT_2_X 15
|
|
||||||
#define ABL_PROBE_PT_2_Y 20
|
|
||||||
#define ABL_PROBE_PT_3_X 170
|
|
||||||
#define ABL_PROBE_PT_3_Y 20
|
|
||||||
|
|
||||||
#endif // !AUTO_BED_LEVELING_GRID
|
/**
|
||||||
|
* Select one form of Auto Bed Leveling below.
|
||||||
|
*
|
||||||
|
* If you're also using the Probe for Z Homing, it's
|
||||||
|
* highly recommended to enable Z_SAFE_HOMING also!
|
||||||
|
*
|
||||||
|
* - 3POINT
|
||||||
|
* Probe 3 arbitrary points on the bed (that aren't collinear)
|
||||||
|
* You specify the XY coordinates of all 3 points.
|
||||||
|
* The result is a single tilted plane. Best for a flat bed.
|
||||||
|
*
|
||||||
|
* - LINEAR
|
||||||
|
* Probe several points in a grid.
|
||||||
|
* You specify the rectangle and the density of sample points.
|
||||||
|
* The result is a single tilted plane. Best for a flat bed.
|
||||||
|
*
|
||||||
|
* - BILINEAR
|
||||||
|
* Probe several points in a grid.
|
||||||
|
* You specify the rectangle and the density of sample points.
|
||||||
|
* The result is a mesh, best for large or uneven beds.
|
||||||
|
*/
|
||||||
|
//#define AUTO_BED_LEVELING_3POINT
|
||||||
|
//#define AUTO_BED_LEVELING_LINEAR
|
||||||
|
//#define AUTO_BED_LEVELING_BILINEAR
|
||||||
|
|
||||||
//#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 Z probe.
|
* Enable detailed logging of G28, G29, M48, etc.
|
||||||
|
* Turn on with the command 'M111 S32'.
|
||||||
|
* NOTE: Requires a lot of PROGMEM!
|
||||||
|
*/
|
||||||
|
//#define DEBUG_LEVELING_FEATURE
|
||||||
|
|
||||||
// If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing,
|
#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
|
||||||
// it is highly recommended you also enable Z_SAFE_HOMING below!
|
|
||||||
|
|
||||||
#endif // AUTO_BED_LEVELING_FEATURE
|
// Set the number of grid points per dimension.
|
||||||
|
#define ABL_GRID_POINTS_X 3
|
||||||
|
#define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
|
||||||
|
|
||||||
|
// Set the boundaries for probing (where the probe can reach).
|
||||||
|
#define LEFT_PROBE_BED_POSITION 15
|
||||||
|
#define RIGHT_PROBE_BED_POSITION 170
|
||||||
|
#define FRONT_PROBE_BED_POSITION 20
|
||||||
|
#define BACK_PROBE_BED_POSITION 170
|
||||||
|
|
||||||
|
// The Z probe minimum outer margin (to validate G29 parameters).
|
||||||
|
#define MIN_PROBE_EDGE 10
|
||||||
|
|
||||||
|
#elif ENABLED(AUTO_BED_LEVELING_3POINT)
|
||||||
|
|
||||||
|
// 3 arbitrary points to probe.
|
||||||
|
// 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_Y 180
|
||||||
|
#define ABL_PROBE_PT_2_X 15
|
||||||
|
#define ABL_PROBE_PT_2_Y 20
|
||||||
|
#define ABL_PROBE_PT_3_X 170
|
||||||
|
#define ABL_PROBE_PT_3_Y 20
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Commands to execute at the end of G29 probing.
|
||||||
|
* Useful to retract or move the Z probe out of the way.
|
||||||
|
*/
|
||||||
|
//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"
|
||||||
|
|
||||||
|
|
||||||
// @section homing
|
// @section homing
|
||||||
|
|
|
@ -319,9 +319,9 @@ float code_value_temp_diff();
|
||||||
void forward_kinematics_SCARA(const float &a, const float &b);
|
void forward_kinematics_SCARA(const float &a, const float &b);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_NONLINEAR)
|
#if ENABLED(AUTO_BED_LEVELING_BILINEAR)
|
||||||
extern int nonlinear_grid_spacing[2];
|
extern int bilinear_grid_spacing[2];
|
||||||
float nonlinear_z_offset(float logical[XYZ]);
|
float bilinear_z_offset(float logical[XYZ]);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if ENABLED(Z_DUAL_ENDSTOPS)
|
#if ENABLED(Z_DUAL_ENDSTOPS)
|
||||||
|
|
|
@ -21,7 +21,6 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* About Marlin
|
* About Marlin
|
||||||
*
|
*
|
||||||
* This firmware is a mashup between Sprinter and grbl.
|
* This firmware is a mashup between Sprinter and grbl.
|
||||||
|
@ -34,11 +33,11 @@
|
||||||
|
|
||||||
#include "Marlin.h"
|
#include "Marlin.h"
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
|
#if HAS_ABL
|
||||||
#include "vector_3.h"
|
#include "vector_3.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_LINEAR_GRID)
|
#if ENABLED(AUTO_BED_LEVELING_LINEAR)
|
||||||
#include "qr_solve.h"
|
#include "qr_solve.h"
|
||||||
#elif ENABLED(MESH_BED_LEVELING)
|
#elif ENABLED(MESH_BED_LEVELING)
|
||||||
#include "mesh_bed_leveling.h"
|
#include "mesh_bed_leveling.h"
|
||||||
|
@ -397,7 +396,7 @@ static uint8_t target_extruder;
|
||||||
|
|
||||||
#define PLANNER_XY_FEEDRATE() (min(planner.max_feedrate_mm_s[X_AXIS], planner.max_feedrate_mm_s[Y_AXIS]))
|
#define PLANNER_XY_FEEDRATE() (min(planner.max_feedrate_mm_s[X_AXIS], planner.max_feedrate_mm_s[Y_AXIS]))
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
|
#if HAS_ABL
|
||||||
float xy_probe_feedrate_mm_s = MMM_TO_MMS(XY_PROBE_SPEED);
|
float xy_probe_feedrate_mm_s = MMM_TO_MMS(XY_PROBE_SPEED);
|
||||||
#define XY_PROBE_FEEDRATE_MM_S xy_probe_feedrate_mm_s
|
#define XY_PROBE_FEEDRATE_MM_S xy_probe_feedrate_mm_s
|
||||||
#elif defined(XY_PROBE_SPEED)
|
#elif defined(XY_PROBE_SPEED)
|
||||||
|
@ -490,8 +489,8 @@ static uint8_t target_extruder;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_NONLINEAR)
|
#if ENABLED(AUTO_BED_LEVELING_BILINEAR)
|
||||||
int nonlinear_grid_spacing[2] = { 0 };
|
int bilinear_grid_spacing[2] = { 0 };
|
||||||
float bed_level_grid[ABL_GRID_POINTS_X][ABL_GRID_POINTS_Y];
|
float bed_level_grid[ABL_GRID_POINTS_X][ABL_GRID_POINTS_Y];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -631,7 +630,7 @@ static void report_current_position();
|
||||||
print_xyz(prefix, suffix, xyz[X_AXIS], xyz[Y_AXIS], xyz[Z_AXIS]);
|
print_xyz(prefix, suffix, xyz[X_AXIS], xyz[Y_AXIS], xyz[Z_AXIS]);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
|
#if HAS_ABL
|
||||||
void print_xyz(const char* prefix, const char* suffix, const vector_3 &xyz) {
|
void print_xyz(const char* prefix, const char* suffix, const vector_3 &xyz) {
|
||||||
print_xyz(prefix, suffix, xyz.x, xyz.y, xyz.z);
|
print_xyz(prefix, suffix, xyz.x, xyz.y, xyz.z);
|
||||||
}
|
}
|
||||||
|
@ -2120,7 +2119,7 @@ static void clean_up_after_endstop_or_probe_move() {
|
||||||
|
|
||||||
#endif // HAS_BED_PROBE
|
#endif // HAS_BED_PROBE
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
|
#if HAS_ABL
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Reset calibration results to zero.
|
* Reset calibration results to zero.
|
||||||
|
@ -2134,16 +2133,16 @@ static void clean_up_after_endstop_or_probe_move() {
|
||||||
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
||||||
if (DEBUGGING(LEVELING)) SERIAL_ECHOLNPGM("reset_bed_level");
|
if (DEBUGGING(LEVELING)) SERIAL_ECHOLNPGM("reset_bed_level");
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(AUTO_BED_LEVELING_LINEAR)
|
#if ABL_PLANAR
|
||||||
planner.bed_level_matrix.set_to_identity();
|
planner.bed_level_matrix.set_to_identity();
|
||||||
#elif ENABLED(AUTO_BED_LEVELING_NONLINEAR)
|
#elif ENABLED(AUTO_BED_LEVELING_BILINEAR)
|
||||||
memset(bed_level_grid, 0, sizeof(bed_level_grid));
|
memset(bed_level_grid, 0, sizeof(bed_level_grid));
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // AUTO_BED_LEVELING_FEATURE
|
#endif // HAS_ABL
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_NONLINEAR)
|
#if ENABLED(AUTO_BED_LEVELING_BILINEAR)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Extrapolate a single point from its neighbors
|
* Extrapolate a single point from its neighbors
|
||||||
|
@ -2189,7 +2188,7 @@ static void clean_up_after_endstop_or_probe_move() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // AUTO_BED_LEVELING_NONLINEAR
|
#endif // AUTO_BED_LEVELING_BILINEAR
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Home an individual linear axis
|
* Home an individual linear axis
|
||||||
|
@ -2980,7 +2979,7 @@ inline void gcode_G28() {
|
||||||
stepper.synchronize();
|
stepper.synchronize();
|
||||||
|
|
||||||
// For auto bed leveling, clear the level matrix
|
// For auto bed leveling, clear the level matrix
|
||||||
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
|
#if HAS_ABL
|
||||||
reset_bed_level();
|
reset_bed_level();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -3392,7 +3391,7 @@ inline void gcode_G28() {
|
||||||
report_current_position();
|
report_current_position();
|
||||||
}
|
}
|
||||||
|
|
||||||
#elif ENABLED(AUTO_BED_LEVELING_FEATURE)
|
#elif HAS_ABL
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* G29: Detailed Z probe, probes the bed at 3 or more points.
|
* G29: Detailed Z probe, probes the bed at 3 or more points.
|
||||||
|
@ -3400,7 +3399,7 @@ inline void gcode_G28() {
|
||||||
*
|
*
|
||||||
* Enhanced G29 Auto Bed Leveling Probe Routine
|
* Enhanced G29 Auto Bed Leveling Probe Routine
|
||||||
*
|
*
|
||||||
* Parameters With AUTO_BED_LEVELING_GRID:
|
* Parameters With ABL_GRID:
|
||||||
*
|
*
|
||||||
* P Set the size of the grid that will be probed (P x P points).
|
* P Set the size of the grid that will be probed (P x P points).
|
||||||
* Not supported by non-linear delta printer bed leveling.
|
* Not supported by non-linear delta printer bed leveling.
|
||||||
|
@ -3454,9 +3453,9 @@ inline void gcode_G28() {
|
||||||
bool dryrun = code_seen('D'),
|
bool dryrun = code_seen('D'),
|
||||||
stow_probe_after_each = code_seen('E');
|
stow_probe_after_each = code_seen('E');
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_GRID)
|
#if ABL_GRID
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_LINEAR)
|
#if ABL_PLANAR
|
||||||
bool do_topography_map = verbose_level > 2 || code_seen('T');
|
bool do_topography_map = verbose_level > 2 || code_seen('T');
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -3468,7 +3467,7 @@ inline void gcode_G28() {
|
||||||
int abl_grid_points_x = ABL_GRID_POINTS_X,
|
int abl_grid_points_x = ABL_GRID_POINTS_X,
|
||||||
abl_grid_points_y = ABL_GRID_POINTS_Y;
|
abl_grid_points_y = ABL_GRID_POINTS_Y;
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_LINEAR)
|
#if ABL_PLANAR
|
||||||
if (code_seen('P')) abl_grid_points_x = abl_grid_points_y = code_value_int();
|
if (code_seen('P')) abl_grid_points_x = abl_grid_points_y = code_value_int();
|
||||||
if (abl_grid_points_x < 2) {
|
if (abl_grid_points_x < 2) {
|
||||||
SERIAL_PROTOCOLLNPGM("?Number of probed (P)oints is implausible (2 minimum).");
|
SERIAL_PROTOCOLLNPGM("?Number of probed (P)oints is implausible (2 minimum).");
|
||||||
|
@ -3512,7 +3511,7 @@ inline void gcode_G28() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // AUTO_BED_LEVELING_GRID
|
#endif // ABL_GRID
|
||||||
|
|
||||||
stepper.synchronize();
|
stepper.synchronize();
|
||||||
|
|
||||||
|
@ -3541,25 +3540,25 @@ inline void gcode_G28() {
|
||||||
|
|
||||||
float xProbe = 0, yProbe = 0, measured_z = 0;
|
float xProbe = 0, yProbe = 0, measured_z = 0;
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_GRID)
|
#if ABL_GRID
|
||||||
|
|
||||||
// probe at the points of a lattice grid
|
// probe at the points of a lattice grid
|
||||||
const float xGridSpacing = (right_probe_bed_position - left_probe_bed_position) / (abl_grid_points_x - 1),
|
const float xGridSpacing = (right_probe_bed_position - left_probe_bed_position) / (abl_grid_points_x - 1),
|
||||||
yGridSpacing = (back_probe_bed_position - front_probe_bed_position) / (abl_grid_points_y - 1);
|
yGridSpacing = (back_probe_bed_position - front_probe_bed_position) / (abl_grid_points_y - 1);
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_NONLINEAR)
|
#if ENABLED(AUTO_BED_LEVELING_BILINEAR)
|
||||||
|
|
||||||
float zoffset = zprobe_zoffset;
|
float zoffset = zprobe_zoffset;
|
||||||
if (code_seen('Z')) zoffset += code_value_axis_units(Z_AXIS);
|
if (code_seen('Z')) zoffset += code_value_axis_units(Z_AXIS);
|
||||||
|
|
||||||
if (xGridSpacing != nonlinear_grid_spacing[X_AXIS] || yGridSpacing != nonlinear_grid_spacing[Y_AXIS]) {
|
if (xGridSpacing != bilinear_grid_spacing[X_AXIS] || yGridSpacing != bilinear_grid_spacing[Y_AXIS]) {
|
||||||
nonlinear_grid_spacing[X_AXIS] = xGridSpacing;
|
bilinear_grid_spacing[X_AXIS] = xGridSpacing;
|
||||||
nonlinear_grid_spacing[Y_AXIS] = yGridSpacing;
|
bilinear_grid_spacing[Y_AXIS] = yGridSpacing;
|
||||||
// Can't re-enable (on error) until the new grid is written
|
// Can't re-enable (on error) until the new grid is written
|
||||||
abl_should_reenable = false;
|
abl_should_reenable = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
#elif ENABLED(AUTO_BED_LEVELING_LINEAR_GRID)
|
#elif ENABLED(AUTO_BED_LEVELING_LINEAR)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* solve the plane equation ax + by + d = z
|
* solve the plane equation ax + by + d = z
|
||||||
|
@ -3578,7 +3577,7 @@ inline void gcode_G28() {
|
||||||
eqnBVector[abl2], // "B" vector of Z points
|
eqnBVector[abl2], // "B" vector of Z points
|
||||||
mean = 0.0;
|
mean = 0.0;
|
||||||
|
|
||||||
#endif // AUTO_BED_LEVELING_LINEAR_GRID
|
#endif // AUTO_BED_LEVELING_LINEAR
|
||||||
|
|
||||||
bool zig = abl_grid_points_y & 1; //always end at [RIGHT_PROBE_BED_POSITION, BACK_PROBE_BED_POSITION]
|
bool zig = abl_grid_points_y & 1; //always end at [RIGHT_PROBE_BED_POSITION, BACK_PROBE_BED_POSITION]
|
||||||
|
|
||||||
|
@ -3605,7 +3604,7 @@ inline void gcode_G28() {
|
||||||
float xBase = left_probe_bed_position + xGridSpacing * xCount;
|
float xBase = left_probe_bed_position + xGridSpacing * xCount;
|
||||||
xProbe = floor(xBase + (xBase < 0 ? 0 : 0.5));
|
xProbe = floor(xBase + (xBase < 0 ? 0 : 0.5));
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_LINEAR_GRID)
|
#if ENABLED(AUTO_BED_LEVELING_LINEAR)
|
||||||
indexIntoAB[xCount][yCount] = ++probePointCounter;
|
indexIntoAB[xCount][yCount] = ++probePointCounter;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -3622,7 +3621,7 @@ inline void gcode_G28() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_LINEAR_GRID)
|
#if ENABLED(AUTO_BED_LEVELING_LINEAR)
|
||||||
|
|
||||||
mean += measured_z;
|
mean += measured_z;
|
||||||
eqnBVector[probePointCounter] = measured_z;
|
eqnBVector[probePointCounter] = measured_z;
|
||||||
|
@ -3630,7 +3629,7 @@ inline void gcode_G28() {
|
||||||
eqnAMatrix[probePointCounter + 1 * abl2] = yProbe;
|
eqnAMatrix[probePointCounter + 1 * abl2] = yProbe;
|
||||||
eqnAMatrix[probePointCounter + 2 * abl2] = 1;
|
eqnAMatrix[probePointCounter + 2 * abl2] = 1;
|
||||||
|
|
||||||
#elif ENABLED(AUTO_BED_LEVELING_NONLINEAR)
|
#elif ENABLED(AUTO_BED_LEVELING_BILINEAR)
|
||||||
|
|
||||||
bed_level_grid[xCount][yCount] = measured_z + zoffset;
|
bed_level_grid[xCount][yCount] = measured_z + zoffset;
|
||||||
|
|
||||||
|
@ -3700,12 +3699,12 @@ inline void gcode_G28() {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Calculate leveling, print reports, correct the position
|
// Calculate leveling, print reports, correct the position
|
||||||
#if ENABLED(AUTO_BED_LEVELING_NONLINEAR)
|
#if ENABLED(AUTO_BED_LEVELING_BILINEAR)
|
||||||
|
|
||||||
if (!dryrun) extrapolate_unprobed_bed_level();
|
if (!dryrun) extrapolate_unprobed_bed_level();
|
||||||
print_bed_level();
|
print_bed_level();
|
||||||
|
|
||||||
#elif ENABLED(AUTO_BED_LEVELING_LINEAR_GRID)
|
#elif ENABLED(AUTO_BED_LEVELING_LINEAR)
|
||||||
|
|
||||||
// For LINEAR leveling calculate matrix, print reports, correct the position
|
// For LINEAR leveling calculate matrix, print reports, correct the position
|
||||||
|
|
||||||
|
@ -3802,9 +3801,9 @@ inline void gcode_G28() {
|
||||||
}
|
}
|
||||||
} //do_topography_map
|
} //do_topography_map
|
||||||
|
|
||||||
#endif // AUTO_BED_LEVELING_LINEAR_GRID
|
#endif // AUTO_BED_LEVELING_LINEAR
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_LINEAR)
|
#if ABL_PLANAR
|
||||||
|
|
||||||
// For LINEAR and 3POINT leveling correct the current position
|
// For LINEAR and 3POINT leveling correct the current position
|
||||||
|
|
||||||
|
@ -3819,7 +3818,7 @@ inline void gcode_G28() {
|
||||||
// 1. Get the distance from the current position to the reference point.
|
// 1. Get the distance from the current position to the reference point.
|
||||||
float x_dist = RAW_CURRENT_POSITION(X_AXIS) - X_TILT_FULCRUM,
|
float x_dist = RAW_CURRENT_POSITION(X_AXIS) - X_TILT_FULCRUM,
|
||||||
y_dist = RAW_CURRENT_POSITION(Y_AXIS) - Y_TILT_FULCRUM,
|
y_dist = RAW_CURRENT_POSITION(Y_AXIS) - Y_TILT_FULCRUM,
|
||||||
z_real = RAW_CURRENT_POSITION(Z_AXIS),
|
z_real = current_position[Z_AXIS],
|
||||||
z_zero = 0;
|
z_zero = 0;
|
||||||
|
|
||||||
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
||||||
|
@ -3854,7 +3853,7 @@ inline void gcode_G28() {
|
||||||
// 5. The rotated XY and corrected Z are now current_position
|
// 5. The rotated XY and corrected Z are now current_position
|
||||||
current_position[X_AXIS] = LOGICAL_X_POSITION(x_dist) + X_TILT_FULCRUM;
|
current_position[X_AXIS] = LOGICAL_X_POSITION(x_dist) + X_TILT_FULCRUM;
|
||||||
current_position[Y_AXIS] = LOGICAL_Y_POSITION(y_dist) + Y_TILT_FULCRUM;
|
current_position[Y_AXIS] = LOGICAL_Y_POSITION(y_dist) + Y_TILT_FULCRUM;
|
||||||
current_position[Z_AXIS] = LOGICAL_Z_POSITION(new_z);
|
current_position[Z_AXIS] = new_z;
|
||||||
|
|
||||||
SYNC_PLAN_POSITION_KINEMATIC();
|
SYNC_PLAN_POSITION_KINEMATIC();
|
||||||
|
|
||||||
|
@ -3863,7 +3862,23 @@ inline void gcode_G28() {
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // AUTO_BED_LEVELING_LINEAR
|
#elif ENABLED(AUTO_BED_LEVELING_BILINEAR)
|
||||||
|
|
||||||
|
if (!dryrun) {
|
||||||
|
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
||||||
|
if (DEBUGGING(LEVELING)) SERIAL_ECHOPAIR("G29 uncorrected Z:", current_position[Z_AXIS]);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
current_position[Z_AXIS] -= bilinear_z_offset(current_position);
|
||||||
|
|
||||||
|
SYNC_PLAN_POSITION_KINEMATIC();
|
||||||
|
|
||||||
|
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
||||||
|
if (DEBUGGING(LEVELING)) SERIAL_ECHOPAIR("G29 corrected Z:", current_position[Z_AXIS]);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // ABL_PLANAR
|
||||||
|
|
||||||
#ifdef Z_PROBE_END_SCRIPT
|
#ifdef Z_PROBE_END_SCRIPT
|
||||||
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
||||||
|
@ -3885,7 +3900,7 @@ inline void gcode_G28() {
|
||||||
planner.abl_enabled = dryrun ? abl_should_reenable : true;
|
planner.abl_enabled = dryrun ? abl_should_reenable : true;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // AUTO_BED_LEVELING_FEATURE
|
#endif // HAS_ABL
|
||||||
|
|
||||||
#if HAS_BED_PROBE
|
#if HAS_BED_PROBE
|
||||||
|
|
||||||
|
@ -3894,7 +3909,7 @@ inline void gcode_G28() {
|
||||||
*/
|
*/
|
||||||
inline void gcode_G30() {
|
inline void gcode_G30() {
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
|
#if HAS_ABL
|
||||||
reset_bed_level();
|
reset_bed_level();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -4340,7 +4355,7 @@ inline void gcode_M42() {
|
||||||
SERIAL_PROTOCOLLNPGM("Positioning the probe...");
|
SERIAL_PROTOCOLLNPGM("Positioning the probe...");
|
||||||
|
|
||||||
// Disable bed level correction in M48 because we want the raw data when we probe
|
// Disable bed level correction in M48 because we want the raw data when we probe
|
||||||
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
|
#if HAS_ABL
|
||||||
reset_bed_level();
|
reset_bed_level();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -6806,7 +6821,7 @@ void tool_change(const uint8_t tmp_extruder, const float fr_mm_s/*=0.0*/, bool n
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// No extra case for AUTO_BED_LEVELING_FEATURE in DUAL_X_CARRIAGE. Does that mean they don't work together?
|
// No extra case for HAS_ABL in DUAL_X_CARRIAGE. Does that mean they don't work together?
|
||||||
#else // !DUAL_X_CARRIAGE
|
#else // !DUAL_X_CARRIAGE
|
||||||
|
|
||||||
#if ENABLED(SWITCHING_EXTRUDER)
|
#if ENABLED(SWITCHING_EXTRUDER)
|
||||||
|
@ -6865,7 +6880,7 @@ void tool_change(const uint8_t tmp_extruder, const float fr_mm_s/*=0.0*/, bool n
|
||||||
* Z software endstop. But this is technically correct (and
|
* Z software endstop. But this is technically correct (and
|
||||||
* there is no viable alternative).
|
* there is no viable alternative).
|
||||||
*/
|
*/
|
||||||
#if ENABLED(AUTO_BED_LEVELING_LINEAR)
|
#if ABL_PLANAR
|
||||||
// Offset extruder, make sure to apply the bed level rotation matrix
|
// Offset extruder, make sure to apply the bed level rotation matrix
|
||||||
vector_3 tmp_offset_vec = vector_3(hotend_offset[X_AXIS][tmp_extruder],
|
vector_3 tmp_offset_vec = vector_3(hotend_offset[X_AXIS][tmp_extruder],
|
||||||
hotend_offset[Y_AXIS][tmp_extruder],
|
hotend_offset[Y_AXIS][tmp_extruder],
|
||||||
|
@ -6893,7 +6908,7 @@ void tool_change(const uint8_t tmp_extruder, const float fr_mm_s/*=0.0*/, bool n
|
||||||
float xydiff[2] = { offset_vec.x, offset_vec.y };
|
float xydiff[2] = { offset_vec.x, offset_vec.y };
|
||||||
current_position[Z_AXIS] += offset_vec.z;
|
current_position[Z_AXIS] += offset_vec.z;
|
||||||
|
|
||||||
#else // !AUTO_BED_LEVELING_LINEAR
|
#else // !ABL_PLANAR
|
||||||
|
|
||||||
float xydiff[2] = {
|
float xydiff[2] = {
|
||||||
hotend_offset[X_AXIS][tmp_extruder] - hotend_offset[X_AXIS][active_extruder],
|
hotend_offset[X_AXIS][tmp_extruder] - hotend_offset[X_AXIS][active_extruder],
|
||||||
|
@ -6917,7 +6932,7 @@ void tool_change(const uint8_t tmp_extruder, const float fr_mm_s/*=0.0*/, bool n
|
||||||
|
|
||||||
#endif // MESH_BED_LEVELING
|
#endif // MESH_BED_LEVELING
|
||||||
|
|
||||||
#endif // !AUTO_BED_LEVELING_FEATURE
|
#endif // !HAS_ABL
|
||||||
|
|
||||||
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
||||||
if (DEBUGGING(LEVELING)) {
|
if (DEBUGGING(LEVELING)) {
|
||||||
|
@ -7140,11 +7155,11 @@ void process_next_command() {
|
||||||
gcode_G28();
|
gcode_G28();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_FEATURE) || ENABLED(MESH_BED_LEVELING)
|
#if HAS_ABL || 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 // AUTO_BED_LEVELING_FEATURE
|
#endif // HAS_ABL
|
||||||
|
|
||||||
#if HAS_BED_PROBE
|
#if HAS_BED_PROBE
|
||||||
|
|
||||||
|
@ -7780,17 +7795,17 @@ void ok_to_send() {
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_NONLINEAR)
|
#if ENABLED(AUTO_BED_LEVELING_BILINEAR)
|
||||||
|
|
||||||
// Get the Z adjustment for non-linear bed leveling
|
// Get the Z adjustment for non-linear bed leveling
|
||||||
float nonlinear_z_offset(float cartesian[XYZ]) {
|
float bilinear_z_offset(float cartesian[XYZ]) {
|
||||||
|
|
||||||
int half_x = (ABL_GRID_POINTS_X - 1) / 2,
|
int half_x = (ABL_GRID_POINTS_X - 1) / 2,
|
||||||
half_y = (ABL_GRID_POINTS_Y - 1) / 2;
|
half_y = (ABL_GRID_POINTS_Y - 1) / 2;
|
||||||
float hx2 = half_x - 0.001, hx1 = -hx2,
|
float hx2 = half_x - 0.001, hx1 = -hx2,
|
||||||
hy2 = half_y - 0.001, hy1 = -hy2,
|
hy2 = half_y - 0.001, hy1 = -hy2,
|
||||||
grid_x = max(hx1, min(hx2, RAW_X_POSITION(cartesian[X_AXIS]) / nonlinear_grid_spacing[X_AXIS])),
|
grid_x = max(hx1, min(hx2, RAW_X_POSITION(cartesian[X_AXIS]) / bilinear_grid_spacing[X_AXIS])),
|
||||||
grid_y = max(hy1, min(hy2, RAW_Y_POSITION(cartesian[Y_AXIS]) / nonlinear_grid_spacing[Y_AXIS]));
|
grid_y = max(hy1, min(hy2, RAW_Y_POSITION(cartesian[Y_AXIS]) / bilinear_grid_spacing[Y_AXIS]));
|
||||||
int floor_x = floor(grid_x), floor_y = floor(grid_y);
|
int floor_x = floor(grid_x), floor_y = floor(grid_y);
|
||||||
float ratio_x = grid_x - floor_x, ratio_y = grid_y - floor_y,
|
float ratio_x = grid_x - floor_x, ratio_y = grid_y - floor_y,
|
||||||
z1 = bed_level_grid[floor_x + half_x][floor_y + half_y],
|
z1 = bed_level_grid[floor_x + half_x][floor_y + half_y],
|
||||||
|
@ -7819,7 +7834,7 @@ void ok_to_send() {
|
||||||
return (1 - ratio_x) * left + ratio_x * right;
|
return (1 - ratio_x) * left + ratio_x * right;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // AUTO_BED_LEVELING_NONLINEAR
|
#endif // AUTO_BED_LEVELING_BILINEAR
|
||||||
|
|
||||||
#if ENABLED(DELTA)
|
#if ENABLED(DELTA)
|
||||||
|
|
||||||
|
|
|
@ -69,8 +69,6 @@
|
||||||
#error "CUSTOM_MENDEL_NAME is now CUSTOM_MACHINE_NAME. Please update your configuration."
|
#error "CUSTOM_MENDEL_NAME is now CUSTOM_MACHINE_NAME. Please update your configuration."
|
||||||
#elif defined(HAS_AUTOMATIC_VERSIONING)
|
#elif defined(HAS_AUTOMATIC_VERSIONING)
|
||||||
#error "HAS_AUTOMATIC_VERSIONING is now USE_AUTOMATIC_VERSIONING. Please update your configuration."
|
#error "HAS_AUTOMATIC_VERSIONING is now USE_AUTOMATIC_VERSIONING. Please update your configuration."
|
||||||
#elif defined(ENABLE_AUTO_BED_LEVELING)
|
|
||||||
#error "ENABLE_AUTO_BED_LEVELING is now AUTO_BED_LEVELING_FEATURE. Please update your configuration."
|
|
||||||
#elif defined(SDSLOW)
|
#elif defined(SDSLOW)
|
||||||
#error "SDSLOW deprecated. Set SPI_SPEED to SPI_HALF_SPEED instead."
|
#error "SDSLOW deprecated. Set SPI_SPEED to SPI_HALF_SPEED instead."
|
||||||
#elif defined(SDEXTRASLOW)
|
#elif defined(SDEXTRASLOW)
|
||||||
|
@ -137,8 +135,12 @@
|
||||||
#error "PREVENT_DANGEROUS_EXTRUDE is now PREVENT_COLD_EXTRUSION. Please update your configuration."
|
#error "PREVENT_DANGEROUS_EXTRUDE is now PREVENT_COLD_EXTRUSION. Please update your configuration."
|
||||||
#elif defined(SCARA)
|
#elif defined(SCARA)
|
||||||
#error "SCARA is now MORGAN_SCARA. Please update your configuration."
|
#error "SCARA is now MORGAN_SCARA. Please update your configuration."
|
||||||
#elif defined(AUTO_BED_LEVELING_GRID_POINTS)
|
#elif defined(ENABLE_AUTO_BED_LEVELING)
|
||||||
#error "AUTO_BED_LEVELING_GRID_POINTS is now ABL_GRID_POINTS_X and ABL_GRID_POINTS_Y. Please update your configuration."
|
#error "ENABLE_AUTO_BED_LEVELING is deprecated. Specify AUTO_BED_LEVELING_LINEAR, AUTO_BED_LEVELING_BILINEAR, or AUTO_BED_LEVELING_3POINT."
|
||||||
|
#elif defined(AUTO_BED_LEVELING_FEATURE)
|
||||||
|
#error "AUTO_BED_LEVELING_FEATURE is deprecated. Specify AUTO_BED_LEVELING_LINEAR, AUTO_BED_LEVELING_BILINEAR, or AUTO_BED_LEVELING_3POINT."
|
||||||
|
#elif defined(ABL_GRID_POINTS)
|
||||||
|
#error "ABL_GRID_POINTS is now ABL_GRID_POINTS_X and ABL_GRID_POINTS_Y. Please update your configuration."
|
||||||
#elif defined(BEEPER)
|
#elif defined(BEEPER)
|
||||||
#error "BEEPER is now BEEPER_PIN. Please update your pins definitions."
|
#error "BEEPER is now BEEPER_PIN. Please update your pins definitions."
|
||||||
#elif defined(SDCARDDETECT)
|
#elif defined(SDCARDDETECT)
|
||||||
|
@ -205,7 +207,7 @@
|
||||||
#if DISABLED(USE_XMAX_PLUG) && DISABLED(USE_YMAX_PLUG) && DISABLED(USE_ZMAX_PLUG)
|
#if DISABLED(USE_XMAX_PLUG) && DISABLED(USE_YMAX_PLUG) && DISABLED(USE_ZMAX_PLUG)
|
||||||
#error "You probably want to use Max Endstops for DELTA!"
|
#error "You probably want to use Max Endstops for DELTA!"
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(AUTO_BED_LEVELING_GRID)
|
#if ABL_GRID
|
||||||
#if (ABL_GRID_POINTS_X & 1) == 0 || (ABL_GRID_POINTS_Y & 1) == 0
|
#if (ABL_GRID_POINTS_X & 1) == 0 || (ABL_GRID_POINTS_Y & 1) == 0
|
||||||
#error "DELTA requires ABL_GRID_POINTS_X and ABL_GRID_POINTS_Y to be odd numbers."
|
#error "DELTA requires ABL_GRID_POINTS_X and ABL_GRID_POINTS_Y to be odd numbers."
|
||||||
#elif ABL_GRID_POINTS_X < 3
|
#elif ABL_GRID_POINTS_X < 3
|
||||||
|
@ -339,29 +341,56 @@
|
||||||
#error "To use BED_LIMIT_SWITCHING you must disable PIDTEMPBED."
|
#error "To use BED_LIMIT_SWITCHING you must disable PIDTEMPBED."
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Allow only one bed leveling option to be defined
|
||||||
|
*/
|
||||||
|
#if HAS_ABL
|
||||||
|
#define COUNT_LEV_1 0
|
||||||
|
#if ENABLED(AUTO_BED_LEVELING_LINEAR)
|
||||||
|
#define COUNT_LEV_2 INCREMENT(COUNT_LEV_1)
|
||||||
|
#else
|
||||||
|
#define COUNT_LEV_2 COUNT_LEV_1
|
||||||
|
#endif
|
||||||
|
#if ENABLED(AUTO_BED_LEVELING_3POINT)
|
||||||
|
#define COUNT_LEV_3 INCREMENT(COUNT_LEV_2)
|
||||||
|
#else
|
||||||
|
#define COUNT_LEV_3 COUNT_LEV_2
|
||||||
|
#endif
|
||||||
|
#if ENABLED(AUTO_BED_LEVELING_BILINEAR)
|
||||||
|
#define COUNT_LEV_4 INCREMENT(COUNT_LEV_3)
|
||||||
|
#else
|
||||||
|
#define COUNT_LEV_4 COUNT_LEV_3
|
||||||
|
#endif
|
||||||
|
#if ENABLED(MESH_BED_LEVELING)
|
||||||
|
#define COUNT_LEV_5 INCREMENT(COUNT_LEV_4)
|
||||||
|
#else
|
||||||
|
#define COUNT_LEV_5 COUNT_LEV_4
|
||||||
|
#endif
|
||||||
|
#if COUNT_LEV_5 > 1
|
||||||
|
#error "Select only one of: MESH_BED_LEVELING, AUTO_BED_LEVELING_LINEAR, AUTO_BED_LEVELING_3POINT, or AUTO_BED_LEVELING_BILINEAR."
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Mesh Bed Leveling
|
* Mesh Bed Leveling
|
||||||
*/
|
*/
|
||||||
#if ENABLED(MESH_BED_LEVELING)
|
#if ENABLED(MESH_BED_LEVELING)
|
||||||
#if ENABLED(DELTA)
|
#if ENABLED(DELTA)
|
||||||
#error "MESH_BED_LEVELING does not yet support DELTA printers."
|
#error "MESH_BED_LEVELING does not yet support DELTA printers."
|
||||||
#elif ENABLED(AUTO_BED_LEVELING_FEATURE)
|
|
||||||
#error "Select AUTO_BED_LEVELING_FEATURE or MESH_BED_LEVELING, not both."
|
|
||||||
#elif MESH_NUM_X_POINTS > 9 || MESH_NUM_Y_POINTS > 9
|
#elif MESH_NUM_X_POINTS > 9 || MESH_NUM_Y_POINTS > 9
|
||||||
#error "MESH_NUM_X_POINTS and MESH_NUM_Y_POINTS must be less than 10."
|
#error "MESH_NUM_X_POINTS and MESH_NUM_Y_POINTS must be less than 10."
|
||||||
#endif
|
#endif
|
||||||
#elif ENABLED(MANUAL_BED_LEVELING)
|
#elif ENABLED(MANUAL_BED_LEVELING)
|
||||||
#error "MESH_BED_LEVELING is required for MANUAL_BED_LEVELING."
|
#error "MANUAL_BED_LEVELING only applies to MESH_BED_LEVELING."
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Probes
|
* Probes
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#if PROBE_SELECTED
|
#if PROBE_SELECTED
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Only allow one probe option to be defined
|
* Allow only one probe option to be defined
|
||||||
*/
|
*/
|
||||||
#define COUNT_PROBE_1 0
|
#define COUNT_PROBE_1 0
|
||||||
#if ENABLED(FIX_MOUNTED_PROBE)
|
#if ENABLED(FIX_MOUNTED_PROBE)
|
||||||
|
@ -448,8 +477,8 @@
|
||||||
/**
|
/**
|
||||||
* Require some kind of probe for bed leveling and probe testing
|
* Require some kind of probe for bed leveling and probe testing
|
||||||
*/
|
*/
|
||||||
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
|
#if HAS_ABL
|
||||||
#error "AUTO_BED_LEVELING_FEATURE requires a probe! Define a Z Servo, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or FIX_MOUNTED_PROBE."
|
#error "Auto Bed Leveling requires a probe! Define a Z Servo, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or FIX_MOUNTED_PROBE."
|
||||||
#elif ENABLED(Z_MIN_PROBE_REPEATABILITY_TEST)
|
#elif ENABLED(Z_MIN_PROBE_REPEATABILITY_TEST)
|
||||||
#error "Z_MIN_PROBE_REPEATABILITY_TEST requires a probe! Define a Z Servo, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or FIX_MOUNTED_PROBE."
|
#error "Z_MIN_PROBE_REPEATABILITY_TEST requires a probe! Define a Z Servo, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or FIX_MOUNTED_PROBE."
|
||||||
#endif
|
#endif
|
||||||
|
@ -485,19 +514,23 @@
|
||||||
/**
|
/**
|
||||||
* Auto Bed Leveling
|
* Auto Bed Leveling
|
||||||
*/
|
*/
|
||||||
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
|
#if HAS_ABL
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Delta has limited bed leveling options
|
* Delta and SCARA have limited bed leveling options
|
||||||
*/
|
*/
|
||||||
#if ENABLED(DELTA) && DISABLED(AUTO_BED_LEVELING_GRID)
|
#if DISABLED(AUTO_BED_LEVELING_BILINEAR)
|
||||||
#error "You must use AUTO_BED_LEVELING_GRID for DELTA bed leveling."
|
#if ENABLED(DELTA)
|
||||||
|
#error "Only AUTO_BED_LEVELING_BILINEAR is supported for DELTA bed leveling."
|
||||||
|
#elif ENABLED(SCARA)
|
||||||
|
#error "Only AUTO_BED_LEVELING_BILINEAR is supported for SCARA bed leveling."
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check if Probe_Offset * Grid Points is greater than Probing Range
|
* Check if Probe_Offset * Grid Points is greater than Probing Range
|
||||||
*/
|
*/
|
||||||
#if ENABLED(AUTO_BED_LEVELING_GRID)
|
#if ABL_GRID
|
||||||
#ifndef DELTA_PROBEABLE_RADIUS
|
#ifndef DELTA_PROBEABLE_RADIUS
|
||||||
// Be sure points are in the right order
|
// Be sure points are in the right order
|
||||||
#if LEFT_PROBE_BED_POSITION > RIGHT_PROBE_BED_POSITION
|
#if LEFT_PROBE_BED_POSITION > RIGHT_PROBE_BED_POSITION
|
||||||
|
@ -516,7 +549,7 @@
|
||||||
#error "The given BACK_PROBE_BED_POSITION can't be reached by the Z 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 // !ABL_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
|
||||||
|
@ -533,9 +566,9 @@
|
||||||
#error "The given ABL_PROBE_PT_3_Y can't be reached by the Z 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 // !ABL_GRID
|
||||||
|
|
||||||
#endif // AUTO_BED_LEVELING_FEATURE
|
#endif // HAS_ABL
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advance Extrusion
|
* Advance Extrusion
|
||||||
|
|
|
@ -499,7 +499,7 @@
|
||||||
// Probes are sensors/switches that are activated / deactivated before/after use.
|
// Probes are sensors/switches that are activated / deactivated before/after use.
|
||||||
//
|
//
|
||||||
// Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
|
// Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
|
||||||
// You must activate one of these to use AUTO_BED_LEVELING_FEATURE below.
|
// You must activate one of these to use Auto Bed Leveling below.
|
||||||
//
|
//
|
||||||
// Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
|
// Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
|
||||||
//
|
//
|
||||||
|
@ -721,69 +721,75 @@
|
||||||
#endif // MESH_BED_LEVELING
|
#endif // MESH_BED_LEVELING
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//============================ Bed Auto Leveling ============================
|
//============================ Auto Bed Leveling ============================
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
|
|
||||||
// @section bedlevel
|
// @section bedlevel
|
||||||
|
|
||||||
//#define AUTO_BED_LEVELING_FEATURE // Delete the comment to enable (remove // at the start of the line)
|
/**
|
||||||
|
* Select one form of Auto Bed Leveling below.
|
||||||
|
*
|
||||||
|
* If you're also using the Probe for Z Homing, it's
|
||||||
|
* highly recommended to enable Z_SAFE_HOMING also!
|
||||||
|
*
|
||||||
|
* - 3POINT
|
||||||
|
* Probe 3 arbitrary points on the bed (that aren't collinear)
|
||||||
|
* You specify the XY coordinates of all 3 points.
|
||||||
|
* The result is a single tilted plane. Best for a flat bed.
|
||||||
|
*
|
||||||
|
* - LINEAR
|
||||||
|
* Probe several points in a grid.
|
||||||
|
* You specify the rectangle and the density of sample points.
|
||||||
|
* The result is a single tilted plane. Best for a flat bed.
|
||||||
|
*
|
||||||
|
* - BILINEAR
|
||||||
|
* Probe several points in a grid.
|
||||||
|
* You specify the rectangle and the density of sample points.
|
||||||
|
* The result is a mesh, best for large or uneven beds.
|
||||||
|
*/
|
||||||
|
//#define AUTO_BED_LEVELING_3POINT
|
||||||
|
//#define AUTO_BED_LEVELING_LINEAR
|
||||||
|
//#define AUTO_BED_LEVELING_BILINEAR
|
||||||
|
|
||||||
// Enable this feature to get detailed logging of G28, G29, M48, etc.
|
/**
|
||||||
// Logging is off by default. Enable this logging feature with 'M111 S32'.
|
* Enable detailed logging of G28, G29, M48, etc.
|
||||||
// NOTE: Requires a huge amount of PROGMEM.
|
* Turn on with the command 'M111 S32'.
|
||||||
|
* NOTE: Requires a lot of PROGMEM!
|
||||||
|
*/
|
||||||
//#define DEBUG_LEVELING_FEATURE
|
//#define DEBUG_LEVELING_FEATURE
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
|
#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
|
||||||
|
|
||||||
// There are 2 different ways to specify probing locations:
|
// Set the number of grid points per dimension.
|
||||||
//
|
#define ABL_GRID_POINTS_X 3
|
||||||
// - "grid" mode
|
#define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
|
||||||
// Probe several points in a rectangular grid.
|
|
||||||
// You specify the rectangle and the density of sample points.
|
|
||||||
// This mode is preferred because there are more measurements.
|
|
||||||
//
|
|
||||||
// - "3-point" mode
|
|
||||||
// Probe 3 arbitrary points on the bed (that aren't collinear)
|
|
||||||
// You specify the XY coordinates of all 3 points.
|
|
||||||
|
|
||||||
// Enable this to sample the bed in a grid (least squares solution).
|
// Set the boundaries for probing (where the probe can reach).
|
||||||
// Note: this feature generates 10KB extra code size.
|
#define LEFT_PROBE_BED_POSITION 15
|
||||||
#define AUTO_BED_LEVELING_GRID
|
#define RIGHT_PROBE_BED_POSITION 170
|
||||||
|
#define FRONT_PROBE_BED_POSITION 20
|
||||||
|
#define BACK_PROBE_BED_POSITION 170
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_GRID)
|
// The Z probe minimum outer margin (to validate G29 parameters).
|
||||||
|
#define MIN_PROBE_EDGE 10
|
||||||
|
|
||||||
#define LEFT_PROBE_BED_POSITION 15
|
#elif ENABLED(AUTO_BED_LEVELING_3POINT)
|
||||||
#define RIGHT_PROBE_BED_POSITION 170
|
|
||||||
#define FRONT_PROBE_BED_POSITION 20
|
|
||||||
#define BACK_PROBE_BED_POSITION 170
|
|
||||||
|
|
||||||
#define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this.
|
// 3 arbitrary points to probe.
|
||||||
|
// 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_Y 180
|
||||||
|
#define ABL_PROBE_PT_2_X 15
|
||||||
|
#define ABL_PROBE_PT_2_Y 20
|
||||||
|
#define ABL_PROBE_PT_3_X 170
|
||||||
|
#define ABL_PROBE_PT_3_Y 20
|
||||||
|
|
||||||
// Set the number of grid points per dimension.
|
#endif
|
||||||
// You probably don't need more than 3 (squared=9).
|
|
||||||
#define ABL_GRID_POINTS_X 3
|
|
||||||
#define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
|
|
||||||
|
|
||||||
#else // !AUTO_BED_LEVELING_GRID
|
/**
|
||||||
|
* Commands to execute at the end of G29 probing.
|
||||||
// Arbitrary points to probe.
|
* Useful to retract or move the Z probe out of the way.
|
||||||
// A simple cross-product is used to estimate the plane of the bed.
|
*/
|
||||||
#define ABL_PROBE_PT_1_X 15
|
//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"
|
||||||
#define ABL_PROBE_PT_1_Y 180
|
|
||||||
#define ABL_PROBE_PT_2_X 15
|
|
||||||
#define ABL_PROBE_PT_2_Y 20
|
|
||||||
#define ABL_PROBE_PT_3_X 170
|
|
||||||
#define ABL_PROBE_PT_3_Y 20
|
|
||||||
|
|
||||||
#endif // !AUTO_BED_LEVELING_GRID
|
|
||||||
|
|
||||||
//#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 Z probe.
|
|
||||||
|
|
||||||
// If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing,
|
|
||||||
// it is highly recommended you also enable Z_SAFE_HOMING below!
|
|
||||||
|
|
||||||
#endif // AUTO_BED_LEVELING_FEATURE
|
|
||||||
|
|
||||||
|
|
||||||
// @section homing
|
// @section homing
|
||||||
|
|
|
@ -482,7 +482,7 @@
|
||||||
// Probes are sensors/switches that are activated / deactivated before/after use.
|
// Probes are sensors/switches that are activated / deactivated before/after use.
|
||||||
//
|
//
|
||||||
// Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
|
// Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
|
||||||
// You must activate one of these to use AUTO_BED_LEVELING_FEATURE below.
|
// You must activate one of these to use Auto Bed Leveling below.
|
||||||
//
|
//
|
||||||
// Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
|
// Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
|
||||||
//
|
//
|
||||||
|
@ -704,69 +704,75 @@
|
||||||
#endif // MESH_BED_LEVELING
|
#endif // MESH_BED_LEVELING
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//============================ Bed Auto Leveling ============================
|
//============================ Auto Bed Leveling ============================
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
|
|
||||||
// @section bedlevel
|
// @section bedlevel
|
||||||
|
|
||||||
//#define AUTO_BED_LEVELING_FEATURE // Delete the comment to enable (remove // at the start of the line)
|
/**
|
||||||
|
* Select one form of Auto Bed Leveling below.
|
||||||
|
*
|
||||||
|
* If you're also using the Probe for Z Homing, it's
|
||||||
|
* highly recommended to enable Z_SAFE_HOMING also!
|
||||||
|
*
|
||||||
|
* - 3POINT
|
||||||
|
* Probe 3 arbitrary points on the bed (that aren't collinear)
|
||||||
|
* You specify the XY coordinates of all 3 points.
|
||||||
|
* The result is a single tilted plane. Best for a flat bed.
|
||||||
|
*
|
||||||
|
* - LINEAR
|
||||||
|
* Probe several points in a grid.
|
||||||
|
* You specify the rectangle and the density of sample points.
|
||||||
|
* The result is a single tilted plane. Best for a flat bed.
|
||||||
|
*
|
||||||
|
* - BILINEAR
|
||||||
|
* Probe several points in a grid.
|
||||||
|
* You specify the rectangle and the density of sample points.
|
||||||
|
* The result is a mesh, best for large or uneven beds.
|
||||||
|
*/
|
||||||
|
//#define AUTO_BED_LEVELING_3POINT
|
||||||
|
//#define AUTO_BED_LEVELING_LINEAR
|
||||||
|
//#define AUTO_BED_LEVELING_BILINEAR
|
||||||
|
|
||||||
// Enable this feature to get detailed logging of G28, G29, M48, etc.
|
/**
|
||||||
// Logging is off by default. Enable this logging feature with 'M111 S32'.
|
* Enable detailed logging of G28, G29, M48, etc.
|
||||||
// NOTE: Requires a huge amount of PROGMEM.
|
* Turn on with the command 'M111 S32'.
|
||||||
|
* NOTE: Requires a lot of PROGMEM!
|
||||||
|
*/
|
||||||
//#define DEBUG_LEVELING_FEATURE
|
//#define DEBUG_LEVELING_FEATURE
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
|
#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
|
||||||
|
|
||||||
// There are 2 different ways to specify probing locations:
|
// Set the number of grid points per dimension.
|
||||||
//
|
#define ABL_GRID_POINTS_X 3
|
||||||
// - "grid" mode
|
#define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
|
||||||
// Probe several points in a rectangular grid.
|
|
||||||
// You specify the rectangle and the density of sample points.
|
|
||||||
// This mode is preferred because there are more measurements.
|
|
||||||
//
|
|
||||||
// - "3-point" mode
|
|
||||||
// Probe 3 arbitrary points on the bed (that aren't collinear)
|
|
||||||
// You specify the XY coordinates of all 3 points.
|
|
||||||
|
|
||||||
// Enable this to sample the bed in a grid (least squares solution).
|
// Set the boundaries for probing (where the probe can reach).
|
||||||
// Note: this feature generates 10KB extra code size.
|
#define LEFT_PROBE_BED_POSITION 15
|
||||||
#define AUTO_BED_LEVELING_GRID
|
#define RIGHT_PROBE_BED_POSITION 170
|
||||||
|
#define FRONT_PROBE_BED_POSITION 20
|
||||||
|
#define BACK_PROBE_BED_POSITION 180
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_GRID)
|
// The Z probe minimum outer margin (to validate G29 parameters).
|
||||||
|
#define MIN_PROBE_EDGE 10
|
||||||
|
|
||||||
#define LEFT_PROBE_BED_POSITION 15
|
#elif ENABLED(AUTO_BED_LEVELING_3POINT)
|
||||||
#define RIGHT_PROBE_BED_POSITION 170
|
|
||||||
#define FRONT_PROBE_BED_POSITION 20
|
|
||||||
#define BACK_PROBE_BED_POSITION 180
|
|
||||||
|
|
||||||
#define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this.
|
// 3 arbitrary points to probe.
|
||||||
|
// 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_Y 180
|
||||||
|
#define ABL_PROBE_PT_2_X 15
|
||||||
|
#define ABL_PROBE_PT_2_Y 20
|
||||||
|
#define ABL_PROBE_PT_3_X 170
|
||||||
|
#define ABL_PROBE_PT_3_Y 20
|
||||||
|
|
||||||
// Set the number of grid points per dimension.
|
#endif
|
||||||
// You probably don't need more than 3 (squared=9).
|
|
||||||
#define ABL_GRID_POINTS_X 3
|
|
||||||
#define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
|
|
||||||
|
|
||||||
#else // !AUTO_BED_LEVELING_GRID
|
/**
|
||||||
|
* Commands to execute at the end of G29 probing.
|
||||||
// Arbitrary points to probe.
|
* Useful to retract or move the Z probe out of the way.
|
||||||
// A simple cross-product is used to estimate the plane of the bed.
|
*/
|
||||||
#define ABL_PROBE_PT_1_X 15
|
//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"
|
||||||
#define ABL_PROBE_PT_1_Y 180
|
|
||||||
#define ABL_PROBE_PT_2_X 15
|
|
||||||
#define ABL_PROBE_PT_2_Y 20
|
|
||||||
#define ABL_PROBE_PT_3_X 170
|
|
||||||
#define ABL_PROBE_PT_3_Y 20
|
|
||||||
|
|
||||||
#endif // !AUTO_BED_LEVELING_GRID
|
|
||||||
|
|
||||||
//#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 Z probe.
|
|
||||||
|
|
||||||
// If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing,
|
|
||||||
// it is highly recommended you also enable Z_SAFE_HOMING below!
|
|
||||||
|
|
||||||
#endif // AUTO_BED_LEVELING_FEATURE
|
|
||||||
|
|
||||||
|
|
||||||
// @section homing
|
// @section homing
|
||||||
|
|
|
@ -480,7 +480,7 @@
|
||||||
// Probes are sensors/switches that are activated / deactivated before/after use.
|
// Probes are sensors/switches that are activated / deactivated before/after use.
|
||||||
//
|
//
|
||||||
// Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
|
// Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
|
||||||
// You must activate one of these to use AUTO_BED_LEVELING_FEATURE below.
|
// You must activate one of these to use Auto Bed Leveling below.
|
||||||
//
|
//
|
||||||
// Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
|
// Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
|
||||||
//
|
//
|
||||||
|
@ -702,69 +702,75 @@
|
||||||
#endif // MESH_BED_LEVELING
|
#endif // MESH_BED_LEVELING
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//============================ Bed Auto Leveling ============================
|
//============================ Auto Bed Leveling ============================
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
|
|
||||||
// @section bedlevel
|
// @section bedlevel
|
||||||
|
|
||||||
//#define AUTO_BED_LEVELING_FEATURE // Delete the comment to enable (remove // at the start of the line)
|
/**
|
||||||
|
* Select one form of Auto Bed Leveling below.
|
||||||
|
*
|
||||||
|
* If you're also using the Probe for Z Homing, it's
|
||||||
|
* highly recommended to enable Z_SAFE_HOMING also!
|
||||||
|
*
|
||||||
|
* - 3POINT
|
||||||
|
* Probe 3 arbitrary points on the bed (that aren't collinear)
|
||||||
|
* You specify the XY coordinates of all 3 points.
|
||||||
|
* The result is a single tilted plane. Best for a flat bed.
|
||||||
|
*
|
||||||
|
* - LINEAR
|
||||||
|
* Probe several points in a grid.
|
||||||
|
* You specify the rectangle and the density of sample points.
|
||||||
|
* The result is a single tilted plane. Best for a flat bed.
|
||||||
|
*
|
||||||
|
* - BILINEAR
|
||||||
|
* Probe several points in a grid.
|
||||||
|
* You specify the rectangle and the density of sample points.
|
||||||
|
* The result is a mesh, best for large or uneven beds.
|
||||||
|
*/
|
||||||
|
//#define AUTO_BED_LEVELING_3POINT
|
||||||
|
//#define AUTO_BED_LEVELING_LINEAR
|
||||||
|
//#define AUTO_BED_LEVELING_BILINEAR
|
||||||
|
|
||||||
// Enable this feature to get detailed logging of G28, G29, M48, etc.
|
/**
|
||||||
// Logging is off by default. Enable this logging feature with 'M111 S32'.
|
* Enable detailed logging of G28, G29, M48, etc.
|
||||||
// NOTE: Requires a huge amount of PROGMEM.
|
* Turn on with the command 'M111 S32'.
|
||||||
|
* NOTE: Requires a lot of PROGMEM!
|
||||||
|
*/
|
||||||
//#define DEBUG_LEVELING_FEATURE
|
//#define DEBUG_LEVELING_FEATURE
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
|
#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
|
||||||
|
|
||||||
// There are 2 different ways to specify probing locations:
|
// Set the number of grid points per dimension.
|
||||||
//
|
#define ABL_GRID_POINTS_X 3
|
||||||
// - "grid" mode
|
#define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
|
||||||
// Probe several points in a rectangular grid.
|
|
||||||
// You specify the rectangle and the density of sample points.
|
|
||||||
// This mode is preferred because there are more measurements.
|
|
||||||
//
|
|
||||||
// - "3-point" mode
|
|
||||||
// Probe 3 arbitrary points on the bed (that aren't collinear)
|
|
||||||
// You specify the XY coordinates of all 3 points.
|
|
||||||
|
|
||||||
// Enable this to sample the bed in a grid (least squares solution).
|
// Set the boundaries for probing (where the probe can reach).
|
||||||
// Note: this feature generates 10KB extra code size.
|
#define LEFT_PROBE_BED_POSITION 15
|
||||||
#define AUTO_BED_LEVELING_GRID
|
#define RIGHT_PROBE_BED_POSITION 170
|
||||||
|
#define FRONT_PROBE_BED_POSITION 20
|
||||||
|
#define BACK_PROBE_BED_POSITION 180
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_GRID)
|
// The Z probe minimum outer margin (to validate G29 parameters).
|
||||||
|
#define MIN_PROBE_EDGE 10
|
||||||
|
|
||||||
#define LEFT_PROBE_BED_POSITION 15
|
#elif ENABLED(AUTO_BED_LEVELING_3POINT)
|
||||||
#define RIGHT_PROBE_BED_POSITION 170
|
|
||||||
#define FRONT_PROBE_BED_POSITION 20
|
|
||||||
#define BACK_PROBE_BED_POSITION 180
|
|
||||||
|
|
||||||
#define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this.
|
// 3 arbitrary points to probe.
|
||||||
|
// 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_Y 180
|
||||||
|
#define ABL_PROBE_PT_2_X 15
|
||||||
|
#define ABL_PROBE_PT_2_Y 20
|
||||||
|
#define ABL_PROBE_PT_3_X 170
|
||||||
|
#define ABL_PROBE_PT_3_Y 20
|
||||||
|
|
||||||
// Set the number of grid points per dimension.
|
#endif
|
||||||
// You probably don't need more than 3 (squared=9).
|
|
||||||
#define ABL_GRID_POINTS_X 3
|
|
||||||
#define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
|
|
||||||
|
|
||||||
#else // !AUTO_BED_LEVELING_GRID
|
/**
|
||||||
|
* Commands to execute at the end of G29 probing.
|
||||||
// Arbitrary points to probe.
|
* Useful to retract or move the Z probe out of the way.
|
||||||
// A simple cross-product is used to estimate the plane of the bed.
|
*/
|
||||||
#define ABL_PROBE_PT_1_X 15
|
//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"
|
||||||
#define ABL_PROBE_PT_1_Y 180
|
|
||||||
#define ABL_PROBE_PT_2_X 15
|
|
||||||
#define ABL_PROBE_PT_2_Y 20
|
|
||||||
#define ABL_PROBE_PT_3_X 170
|
|
||||||
#define ABL_PROBE_PT_3_Y 20
|
|
||||||
|
|
||||||
#endif // !AUTO_BED_LEVELING_GRID
|
|
||||||
|
|
||||||
//#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 Z probe.
|
|
||||||
|
|
||||||
// If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing,
|
|
||||||
// it is highly recommended you also enable Z_SAFE_HOMING below!
|
|
||||||
|
|
||||||
#endif // AUTO_BED_LEVELING_FEATURE
|
|
||||||
|
|
||||||
|
|
||||||
// @section homing
|
// @section homing
|
||||||
|
|
|
@ -491,7 +491,7 @@
|
||||||
// Probes are sensors/switches that are activated / deactivated before/after use.
|
// Probes are sensors/switches that are activated / deactivated before/after use.
|
||||||
//
|
//
|
||||||
// Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
|
// Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
|
||||||
// You must activate one of these to use AUTO_BED_LEVELING_FEATURE below.
|
// You must activate one of these to use Auto Bed Leveling below.
|
||||||
//
|
//
|
||||||
// Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
|
// Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
|
||||||
//
|
//
|
||||||
|
@ -713,69 +713,75 @@
|
||||||
#endif // MESH_BED_LEVELING
|
#endif // MESH_BED_LEVELING
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//============================ Bed Auto Leveling ============================
|
//============================ Auto Bed Leveling ============================
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
|
|
||||||
// @section bedlevel
|
// @section bedlevel
|
||||||
|
|
||||||
//#define AUTO_BED_LEVELING_FEATURE // Delete the comment to enable (remove // at the start of the line)
|
/**
|
||||||
|
* Select one form of Auto Bed Leveling below.
|
||||||
|
*
|
||||||
|
* If you're also using the Probe for Z Homing, it's
|
||||||
|
* highly recommended to enable Z_SAFE_HOMING also!
|
||||||
|
*
|
||||||
|
* - 3POINT
|
||||||
|
* Probe 3 arbitrary points on the bed (that aren't collinear)
|
||||||
|
* You specify the XY coordinates of all 3 points.
|
||||||
|
* The result is a single tilted plane. Best for a flat bed.
|
||||||
|
*
|
||||||
|
* - LINEAR
|
||||||
|
* Probe several points in a grid.
|
||||||
|
* You specify the rectangle and the density of sample points.
|
||||||
|
* The result is a single tilted plane. Best for a flat bed.
|
||||||
|
*
|
||||||
|
* - BILINEAR
|
||||||
|
* Probe several points in a grid.
|
||||||
|
* You specify the rectangle and the density of sample points.
|
||||||
|
* The result is a mesh, best for large or uneven beds.
|
||||||
|
*/
|
||||||
|
//#define AUTO_BED_LEVELING_3POINT
|
||||||
|
//#define AUTO_BED_LEVELING_LINEAR
|
||||||
|
//#define AUTO_BED_LEVELING_BILINEAR
|
||||||
|
|
||||||
// Enable this feature to get detailed logging of G28, G29, M48, etc.
|
/**
|
||||||
// Logging is off by default. Enable this logging feature with 'M111 S32'.
|
* Enable detailed logging of G28, G29, M48, etc.
|
||||||
// NOTE: Requires a huge amount of PROGMEM.
|
* Turn on with the command 'M111 S32'.
|
||||||
|
* NOTE: Requires a lot of PROGMEM!
|
||||||
|
*/
|
||||||
//#define DEBUG_LEVELING_FEATURE
|
//#define DEBUG_LEVELING_FEATURE
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
|
#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
|
||||||
|
|
||||||
// There are 2 different ways to specify probing locations:
|
// Set the number of grid points per dimension.
|
||||||
//
|
#define ABL_GRID_POINTS_X 3
|
||||||
// - "grid" mode
|
#define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
|
||||||
// Probe several points in a rectangular grid.
|
|
||||||
// You specify the rectangle and the density of sample points.
|
|
||||||
// This mode is preferred because there are more measurements.
|
|
||||||
//
|
|
||||||
// - "3-point" mode
|
|
||||||
// Probe 3 arbitrary points on the bed (that aren't collinear)
|
|
||||||
// You specify the XY coordinates of all 3 points.
|
|
||||||
|
|
||||||
// Enable this to sample the bed in a grid (least squares solution).
|
// Set the boundaries for probing (where the probe can reach).
|
||||||
// Note: this feature generates 10KB extra code size.
|
#define LEFT_PROBE_BED_POSITION 15
|
||||||
#define AUTO_BED_LEVELING_GRID
|
#define RIGHT_PROBE_BED_POSITION 170
|
||||||
|
#define FRONT_PROBE_BED_POSITION 20
|
||||||
|
#define BACK_PROBE_BED_POSITION 170
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_GRID)
|
// The Z probe minimum outer margin (to validate G29 parameters).
|
||||||
|
#define MIN_PROBE_EDGE 10
|
||||||
|
|
||||||
#define LEFT_PROBE_BED_POSITION 15
|
#elif ENABLED(AUTO_BED_LEVELING_3POINT)
|
||||||
#define RIGHT_PROBE_BED_POSITION 170
|
|
||||||
#define FRONT_PROBE_BED_POSITION 20
|
|
||||||
#define BACK_PROBE_BED_POSITION 170
|
|
||||||
|
|
||||||
#define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this.
|
// 3 arbitrary points to probe.
|
||||||
|
// 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_Y 180
|
||||||
|
#define ABL_PROBE_PT_2_X 15
|
||||||
|
#define ABL_PROBE_PT_2_Y 20
|
||||||
|
#define ABL_PROBE_PT_3_X 170
|
||||||
|
#define ABL_PROBE_PT_3_Y 20
|
||||||
|
|
||||||
// Set the number of grid points per dimension.
|
#endif
|
||||||
// You probably don't need more than 3 (squared=9).
|
|
||||||
#define ABL_GRID_POINTS_X 3
|
|
||||||
#define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
|
|
||||||
|
|
||||||
#else // !AUTO_BED_LEVELING_GRID
|
/**
|
||||||
|
* Commands to execute at the end of G29 probing.
|
||||||
// Arbitrary points to probe.
|
* Useful to retract or move the Z probe out of the way.
|
||||||
// A simple cross-product is used to estimate the plane of the bed.
|
*/
|
||||||
#define ABL_PROBE_PT_1_X 15
|
//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"
|
||||||
#define ABL_PROBE_PT_1_Y 180
|
|
||||||
#define ABL_PROBE_PT_2_X 15
|
|
||||||
#define ABL_PROBE_PT_2_Y 20
|
|
||||||
#define ABL_PROBE_PT_3_X 170
|
|
||||||
#define ABL_PROBE_PT_3_Y 20
|
|
||||||
|
|
||||||
#endif // !AUTO_BED_LEVELING_GRID
|
|
||||||
|
|
||||||
//#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 Z probe.
|
|
||||||
|
|
||||||
// If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing,
|
|
||||||
// it is highly recommended you also enable Z_SAFE_HOMING below!
|
|
||||||
|
|
||||||
#endif // AUTO_BED_LEVELING_FEATURE
|
|
||||||
|
|
||||||
|
|
||||||
// @section homing
|
// @section homing
|
||||||
|
|
|
@ -493,7 +493,7 @@
|
||||||
// Probes are sensors/switches that are activated / deactivated before/after use.
|
// Probes are sensors/switches that are activated / deactivated before/after use.
|
||||||
//
|
//
|
||||||
// Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
|
// Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
|
||||||
// You must activate one of these to use AUTO_BED_LEVELING_FEATURE below.
|
// You must activate one of these to use Auto Bed Leveling below.
|
||||||
//
|
//
|
||||||
// Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
|
// Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
|
||||||
//
|
//
|
||||||
|
@ -715,69 +715,75 @@
|
||||||
#endif // MESH_BED_LEVELING
|
#endif // MESH_BED_LEVELING
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//============================ Bed Auto Leveling ============================
|
//============================ Auto Bed Leveling ============================
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
|
|
||||||
// @section bedlevel
|
// @section bedlevel
|
||||||
|
|
||||||
#define AUTO_BED_LEVELING_FEATURE // Delete the comment to enable (remove // at the start of the line)
|
/**
|
||||||
|
* Select one form of Auto Bed Leveling below.
|
||||||
|
*
|
||||||
|
* If you're also using the Probe for Z Homing, it's
|
||||||
|
* highly recommended to enable Z_SAFE_HOMING also!
|
||||||
|
*
|
||||||
|
* - 3POINT
|
||||||
|
* Probe 3 arbitrary points on the bed (that aren't collinear)
|
||||||
|
* You specify the XY coordinates of all 3 points.
|
||||||
|
* The result is a single tilted plane. Best for a flat bed.
|
||||||
|
*
|
||||||
|
* - LINEAR
|
||||||
|
* Probe several points in a grid.
|
||||||
|
* You specify the rectangle and the density of sample points.
|
||||||
|
* The result is a single tilted plane. Best for a flat bed.
|
||||||
|
*
|
||||||
|
* - BILINEAR
|
||||||
|
* Probe several points in a grid.
|
||||||
|
* You specify the rectangle and the density of sample points.
|
||||||
|
* The result is a mesh, best for large or uneven beds.
|
||||||
|
*/
|
||||||
|
//#define AUTO_BED_LEVELING_3POINT
|
||||||
|
#define AUTO_BED_LEVELING_LINEAR
|
||||||
|
//#define AUTO_BED_LEVELING_BILINEAR
|
||||||
|
|
||||||
// Enable this feature to get detailed logging of G28, G29, M48, etc.
|
/**
|
||||||
// Logging is off by default. Enable this logging feature with 'M111 S32'.
|
* Enable detailed logging of G28, G29, M48, etc.
|
||||||
// NOTE: Requires a huge amount of PROGMEM.
|
* Turn on with the command 'M111 S32'.
|
||||||
|
* NOTE: Requires a lot of PROGMEM!
|
||||||
|
*/
|
||||||
//#define DEBUG_LEVELING_FEATURE
|
//#define DEBUG_LEVELING_FEATURE
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
|
#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
|
||||||
|
|
||||||
// There are 2 different ways to specify probing locations:
|
// Set the number of grid points per dimension.
|
||||||
//
|
#define ABL_GRID_POINTS_X 3
|
||||||
// - "grid" mode
|
#define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
|
||||||
// Probe several points in a rectangular grid.
|
|
||||||
// You specify the rectangle and the density of sample points.
|
|
||||||
// This mode is preferred because there are more measurements.
|
|
||||||
//
|
|
||||||
// - "3-point" mode
|
|
||||||
// Probe 3 arbitrary points on the bed (that aren't collinear)
|
|
||||||
// You specify the XY coordinates of all 3 points.
|
|
||||||
|
|
||||||
// Enable this to sample the bed in a grid (least squares solution).
|
// Set the boundaries for probing (where the probe can reach).
|
||||||
// Note: this feature generates 10KB extra code size.
|
#define LEFT_PROBE_BED_POSITION X_MIN_POS + X_PROBE_OFFSET_FROM_EXTRUDER
|
||||||
#define AUTO_BED_LEVELING_GRID
|
#define RIGHT_PROBE_BED_POSITION X_MAX_POS - (X_PROBE_OFFSET_FROM_EXTRUDER)
|
||||||
|
#define FRONT_PROBE_BED_POSITION Y_MIN_POS + Y_PROBE_OFFSET_FROM_EXTRUDER
|
||||||
|
#define BACK_PROBE_BED_POSITION Y_MAX_POS - (Y_PROBE_OFFSET_FROM_EXTRUDER)
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_GRID)
|
// The Z probe minimum outer margin (to validate G29 parameters).
|
||||||
|
#define MIN_PROBE_EDGE 10
|
||||||
|
|
||||||
#define LEFT_PROBE_BED_POSITION X_MIN_POS + X_PROBE_OFFSET_FROM_EXTRUDER
|
#elif ENABLED(AUTO_BED_LEVELING_3POINT)
|
||||||
#define RIGHT_PROBE_BED_POSITION X_MAX_POS - (X_PROBE_OFFSET_FROM_EXTRUDER)
|
|
||||||
#define FRONT_PROBE_BED_POSITION Y_MIN_POS + Y_PROBE_OFFSET_FROM_EXTRUDER
|
|
||||||
#define BACK_PROBE_BED_POSITION Y_MAX_POS - (Y_PROBE_OFFSET_FROM_EXTRUDER)
|
|
||||||
|
|
||||||
#define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this.
|
// 3 arbitrary points to probe.
|
||||||
|
// A simple cross-product is used to estimate the plane of the bed.
|
||||||
|
#define ABL_PROBE_PT_1_X X_MIN_POS + X_PROBE_OFFSET_FROM_EXTRUDER
|
||||||
|
#define ABL_PROBE_PT_1_Y Y_MIN_POS + Y_PROBE_OFFSET_FROM_EXTRUDER
|
||||||
|
#define ABL_PROBE_PT_2_X X_MAX_POS - (X_PROBE_OFFSET_FROM_EXTRUDER)
|
||||||
|
#define ABL_PROBE_PT_2_Y Y_MIN_POS + Y_PROBE_OFFSET_FROM_EXTRUDER
|
||||||
|
#define ABL_PROBE_PT_3_X ((X_MIN_POS + X_MAX_POS) / 2)
|
||||||
|
#define ABL_PROBE_PT_3_Y Y_MAX_POS - (Y_PROBE_OFFSET_FROM_EXTRUDER)
|
||||||
|
|
||||||
// Set the number of grid points per dimension.
|
#endif
|
||||||
// You probably don't need more than 3 (squared=9).
|
|
||||||
#define ABL_GRID_POINTS_X 3
|
|
||||||
#define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
|
|
||||||
|
|
||||||
#else // !AUTO_BED_LEVELING_GRID
|
/**
|
||||||
|
* Commands to execute at the end of G29 probing.
|
||||||
// Arbitrary points to probe.
|
* Useful to retract or move the Z probe out of the way.
|
||||||
// A simple cross-product is used to estimate the plane of the bed.
|
*/
|
||||||
#define ABL_PROBE_PT_1_X X_MIN_POS + X_PROBE_OFFSET_FROM_EXTRUDER
|
//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"
|
||||||
#define ABL_PROBE_PT_1_Y Y_MIN_POS + Y_PROBE_OFFSET_FROM_EXTRUDER
|
|
||||||
#define ABL_PROBE_PT_2_X X_MAX_POS - (X_PROBE_OFFSET_FROM_EXTRUDER)
|
|
||||||
#define ABL_PROBE_PT_2_Y Y_MIN_POS + Y_PROBE_OFFSET_FROM_EXTRUDER
|
|
||||||
#define ABL_PROBE_PT_3_X ((X_MIN_POS + X_MAX_POS) / 2)
|
|
||||||
#define ABL_PROBE_PT_3_Y Y_MAX_POS - (Y_PROBE_OFFSET_FROM_EXTRUDER)
|
|
||||||
|
|
||||||
#endif // !AUTO_BED_LEVELING_GRID
|
|
||||||
|
|
||||||
//#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 Z probe.
|
|
||||||
|
|
||||||
// If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing,
|
|
||||||
// it is highly recommended you also enable Z_SAFE_HOMING below!
|
|
||||||
|
|
||||||
#endif // AUTO_BED_LEVELING_FEATURE
|
|
||||||
|
|
||||||
|
|
||||||
// @section homing
|
// @section homing
|
||||||
|
|
|
@ -516,7 +516,7 @@
|
||||||
// Probes are sensors/switches that are activated / deactivated before/after use.
|
// Probes are sensors/switches that are activated / deactivated before/after use.
|
||||||
//
|
//
|
||||||
// Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
|
// Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
|
||||||
// You must activate one of these to use AUTO_BED_LEVELING_FEATURE below.
|
// You must activate one of these to use Auto Bed Leveling below.
|
||||||
//
|
//
|
||||||
// Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
|
// Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
|
||||||
//
|
//
|
||||||
|
@ -738,69 +738,75 @@
|
||||||
#endif // MESH_BED_LEVELING
|
#endif // MESH_BED_LEVELING
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//============================ Bed Auto Leveling ============================
|
//============================ Auto Bed Leveling ============================
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
|
|
||||||
// @section bedlevel
|
// @section bedlevel
|
||||||
|
|
||||||
//#define AUTO_BED_LEVELING_FEATURE // Delete the comment to enable (remove // at the start of the line)
|
/**
|
||||||
|
* Select one form of Auto Bed Leveling below.
|
||||||
|
*
|
||||||
|
* If you're also using the Probe for Z Homing, it's
|
||||||
|
* highly recommended to enable Z_SAFE_HOMING also!
|
||||||
|
*
|
||||||
|
* - 3POINT
|
||||||
|
* Probe 3 arbitrary points on the bed (that aren't collinear)
|
||||||
|
* You specify the XY coordinates of all 3 points.
|
||||||
|
* The result is a single tilted plane. Best for a flat bed.
|
||||||
|
*
|
||||||
|
* - LINEAR
|
||||||
|
* Probe several points in a grid.
|
||||||
|
* You specify the rectangle and the density of sample points.
|
||||||
|
* The result is a single tilted plane. Best for a flat bed.
|
||||||
|
*
|
||||||
|
* - BILINEAR
|
||||||
|
* Probe several points in a grid.
|
||||||
|
* You specify the rectangle and the density of sample points.
|
||||||
|
* The result is a mesh, best for large or uneven beds.
|
||||||
|
*/
|
||||||
|
//#define AUTO_BED_LEVELING_3POINT
|
||||||
|
//#define AUTO_BED_LEVELING_LINEAR
|
||||||
|
//#define AUTO_BED_LEVELING_BILINEAR
|
||||||
|
|
||||||
// Enable this feature to get detailed logging of G28, G29, M48, etc.
|
/**
|
||||||
// Logging is off by default. Enable this logging feature with 'M111 S32'.
|
* Enable detailed logging of G28, G29, M48, etc.
|
||||||
// NOTE: Requires a huge amount of PROGMEM.
|
* Turn on with the command 'M111 S32'.
|
||||||
|
* NOTE: Requires a lot of PROGMEM!
|
||||||
|
*/
|
||||||
//#define DEBUG_LEVELING_FEATURE
|
//#define DEBUG_LEVELING_FEATURE
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
|
#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
|
||||||
|
|
||||||
// There are 2 different ways to specify probing locations:
|
// Set the number of grid points per dimension.
|
||||||
//
|
#define ABL_GRID_POINTS_X 3
|
||||||
// - "grid" mode
|
#define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
|
||||||
// Probe several points in a rectangular grid.
|
|
||||||
// You specify the rectangle and the density of sample points.
|
|
||||||
// This mode is preferred because there are more measurements.
|
|
||||||
//
|
|
||||||
// - "3-point" mode
|
|
||||||
// Probe 3 arbitrary points on the bed (that aren't collinear)
|
|
||||||
// You specify the XY coordinates of all 3 points.
|
|
||||||
|
|
||||||
// Enable this to sample the bed in a grid (least squares solution).
|
// Set the boundaries for probing (where the probe can reach).
|
||||||
// Note: this feature generates 10KB extra code size.
|
#define LEFT_PROBE_BED_POSITION 15
|
||||||
#define AUTO_BED_LEVELING_GRID
|
#define RIGHT_PROBE_BED_POSITION 170
|
||||||
|
#define FRONT_PROBE_BED_POSITION 20
|
||||||
|
#define BACK_PROBE_BED_POSITION 170
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_GRID)
|
// The Z probe minimum outer margin (to validate G29 parameters).
|
||||||
|
#define MIN_PROBE_EDGE 10
|
||||||
|
|
||||||
#define LEFT_PROBE_BED_POSITION 15
|
#elif ENABLED(AUTO_BED_LEVELING_3POINT)
|
||||||
#define RIGHT_PROBE_BED_POSITION 170
|
|
||||||
#define FRONT_PROBE_BED_POSITION 20
|
|
||||||
#define BACK_PROBE_BED_POSITION 170
|
|
||||||
|
|
||||||
#define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this.
|
// 3 arbitrary points to probe.
|
||||||
|
// 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_Y 180
|
||||||
|
#define ABL_PROBE_PT_2_X 15
|
||||||
|
#define ABL_PROBE_PT_2_Y 20
|
||||||
|
#define ABL_PROBE_PT_3_X 170
|
||||||
|
#define ABL_PROBE_PT_3_Y 20
|
||||||
|
|
||||||
// Set the number of grid points per dimension.
|
#endif
|
||||||
// You probably don't need more than 3 (squared=9).
|
|
||||||
#define ABL_GRID_POINTS_X 3
|
|
||||||
#define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
|
|
||||||
|
|
||||||
#else // !AUTO_BED_LEVELING_GRID
|
/**
|
||||||
|
* Commands to execute at the end of G29 probing.
|
||||||
// Arbitrary points to probe.
|
* Useful to retract or move the Z probe out of the way.
|
||||||
// A simple cross-product is used to estimate the plane of the bed.
|
*/
|
||||||
#define ABL_PROBE_PT_1_X 15
|
//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"
|
||||||
#define ABL_PROBE_PT_1_Y 180
|
|
||||||
#define ABL_PROBE_PT_2_X 15
|
|
||||||
#define ABL_PROBE_PT_2_Y 20
|
|
||||||
#define ABL_PROBE_PT_3_X 170
|
|
||||||
#define ABL_PROBE_PT_3_Y 20
|
|
||||||
|
|
||||||
#endif // !AUTO_BED_LEVELING_GRID
|
|
||||||
|
|
||||||
//#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 Z probe.
|
|
||||||
|
|
||||||
// If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing,
|
|
||||||
// it is highly recommended you also enable Z_SAFE_HOMING below!
|
|
||||||
|
|
||||||
#endif // AUTO_BED_LEVELING_FEATURE
|
|
||||||
|
|
||||||
|
|
||||||
// @section homing
|
// @section homing
|
||||||
|
|
|
@ -499,7 +499,7 @@
|
||||||
// Probes are sensors/switches that are activated / deactivated before/after use.
|
// Probes are sensors/switches that are activated / deactivated before/after use.
|
||||||
//
|
//
|
||||||
// Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
|
// Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
|
||||||
// You must activate one of these to use AUTO_BED_LEVELING_FEATURE below.
|
// You must activate one of these to use Auto Bed Leveling below.
|
||||||
//
|
//
|
||||||
// Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
|
// Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
|
||||||
//
|
//
|
||||||
|
@ -721,69 +721,75 @@
|
||||||
#endif // MESH_BED_LEVELING
|
#endif // MESH_BED_LEVELING
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//============================ Bed Auto Leveling ============================
|
//============================ Auto Bed Leveling ============================
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
|
|
||||||
// @section bedlevel
|
// @section bedlevel
|
||||||
|
|
||||||
//#define AUTO_BED_LEVELING_FEATURE // Delete the comment to enable (remove // at the start of the line)
|
/**
|
||||||
|
* Select one form of Auto Bed Leveling below.
|
||||||
|
*
|
||||||
|
* If you're also using the Probe for Z Homing, it's
|
||||||
|
* highly recommended to enable Z_SAFE_HOMING also!
|
||||||
|
*
|
||||||
|
* - 3POINT
|
||||||
|
* Probe 3 arbitrary points on the bed (that aren't collinear)
|
||||||
|
* You specify the XY coordinates of all 3 points.
|
||||||
|
* The result is a single tilted plane. Best for a flat bed.
|
||||||
|
*
|
||||||
|
* - LINEAR
|
||||||
|
* Probe several points in a grid.
|
||||||
|
* You specify the rectangle and the density of sample points.
|
||||||
|
* The result is a single tilted plane. Best for a flat bed.
|
||||||
|
*
|
||||||
|
* - BILINEAR
|
||||||
|
* Probe several points in a grid.
|
||||||
|
* You specify the rectangle and the density of sample points.
|
||||||
|
* The result is a mesh, best for large or uneven beds.
|
||||||
|
*/
|
||||||
|
//#define AUTO_BED_LEVELING_3POINT
|
||||||
|
//#define AUTO_BED_LEVELING_LINEAR
|
||||||
|
//#define AUTO_BED_LEVELING_BILINEAR
|
||||||
|
|
||||||
// Enable this feature to get detailed logging of G28, G29, M48, etc.
|
/**
|
||||||
// Logging is off by default. Enable this logging feature with 'M111 S32'.
|
* Enable detailed logging of G28, G29, M48, etc.
|
||||||
// NOTE: Requires a huge amount of PROGMEM.
|
* Turn on with the command 'M111 S32'.
|
||||||
|
* NOTE: Requires a lot of PROGMEM!
|
||||||
|
*/
|
||||||
//#define DEBUG_LEVELING_FEATURE
|
//#define DEBUG_LEVELING_FEATURE
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
|
#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
|
||||||
|
|
||||||
// There are 2 different ways to specify probing locations:
|
// Set the number of grid points per dimension.
|
||||||
//
|
#define ABL_GRID_POINTS_X 3
|
||||||
// - "grid" mode
|
#define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
|
||||||
// Probe several points in a rectangular grid.
|
|
||||||
// You specify the rectangle and the density of sample points.
|
|
||||||
// This mode is preferred because there are more measurements.
|
|
||||||
//
|
|
||||||
// - "3-point" mode
|
|
||||||
// Probe 3 arbitrary points on the bed (that aren't collinear)
|
|
||||||
// You specify the XY coordinates of all 3 points.
|
|
||||||
|
|
||||||
// Enable this to sample the bed in a grid (least squares solution).
|
// Set the boundaries for probing (where the probe can reach).
|
||||||
// Note: this feature generates 10KB extra code size.
|
#define LEFT_PROBE_BED_POSITION 15
|
||||||
#define AUTO_BED_LEVELING_GRID
|
#define RIGHT_PROBE_BED_POSITION 170
|
||||||
|
#define FRONT_PROBE_BED_POSITION 20
|
||||||
|
#define BACK_PROBE_BED_POSITION 170
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_GRID)
|
// The Z probe minimum outer margin (to validate G29 parameters).
|
||||||
|
#define MIN_PROBE_EDGE 10
|
||||||
|
|
||||||
#define LEFT_PROBE_BED_POSITION 15
|
#elif ENABLED(AUTO_BED_LEVELING_3POINT)
|
||||||
#define RIGHT_PROBE_BED_POSITION 170
|
|
||||||
#define FRONT_PROBE_BED_POSITION 20
|
|
||||||
#define BACK_PROBE_BED_POSITION 170
|
|
||||||
|
|
||||||
#define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this.
|
// 3 arbitrary points to probe.
|
||||||
|
// 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_Y 180
|
||||||
|
#define ABL_PROBE_PT_2_X 15
|
||||||
|
#define ABL_PROBE_PT_2_Y 20
|
||||||
|
#define ABL_PROBE_PT_3_X 170
|
||||||
|
#define ABL_PROBE_PT_3_Y 20
|
||||||
|
|
||||||
// Set the number of grid points per dimension.
|
#endif
|
||||||
// You probably don't need more than 3 (squared=9).
|
|
||||||
#define ABL_GRID_POINTS_X 3
|
|
||||||
#define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
|
|
||||||
|
|
||||||
#else // !AUTO_BED_LEVELING_GRID
|
/**
|
||||||
|
* Commands to execute at the end of G29 probing.
|
||||||
// Arbitrary points to probe.
|
* Useful to retract or move the Z probe out of the way.
|
||||||
// A simple cross-product is used to estimate the plane of the bed.
|
*/
|
||||||
#define ABL_PROBE_PT_1_X 15
|
//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"
|
||||||
#define ABL_PROBE_PT_1_Y 180
|
|
||||||
#define ABL_PROBE_PT_2_X 15
|
|
||||||
#define ABL_PROBE_PT_2_Y 20
|
|
||||||
#define ABL_PROBE_PT_3_X 170
|
|
||||||
#define ABL_PROBE_PT_3_Y 20
|
|
||||||
|
|
||||||
#endif // !AUTO_BED_LEVELING_GRID
|
|
||||||
|
|
||||||
//#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 Z probe.
|
|
||||||
|
|
||||||
// If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing,
|
|
||||||
// it is highly recommended you also enable Z_SAFE_HOMING below!
|
|
||||||
|
|
||||||
#endif // AUTO_BED_LEVELING_FEATURE
|
|
||||||
|
|
||||||
|
|
||||||
// @section homing
|
// @section homing
|
||||||
|
|
|
@ -499,7 +499,7 @@
|
||||||
// Probes are sensors/switches that are activated / deactivated before/after use.
|
// Probes are sensors/switches that are activated / deactivated before/after use.
|
||||||
//
|
//
|
||||||
// Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
|
// Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
|
||||||
// You must activate one of these to use AUTO_BED_LEVELING_FEATURE below.
|
// You must activate one of these to use Auto Bed Leveling below.
|
||||||
//
|
//
|
||||||
// Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
|
// Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
|
||||||
//
|
//
|
||||||
|
@ -721,69 +721,75 @@
|
||||||
#endif // MESH_BED_LEVELING
|
#endif // MESH_BED_LEVELING
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//============================ Bed Auto Leveling ============================
|
//============================ Auto Bed Leveling ============================
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
|
|
||||||
// @section bedlevel
|
// @section bedlevel
|
||||||
|
|
||||||
//#define AUTO_BED_LEVELING_FEATURE // Delete the comment to enable (remove // at the start of the line)
|
/**
|
||||||
|
* Select one form of Auto Bed Leveling below.
|
||||||
|
*
|
||||||
|
* If you're also using the Probe for Z Homing, it's
|
||||||
|
* highly recommended to enable Z_SAFE_HOMING also!
|
||||||
|
*
|
||||||
|
* - 3POINT
|
||||||
|
* Probe 3 arbitrary points on the bed (that aren't collinear)
|
||||||
|
* You specify the XY coordinates of all 3 points.
|
||||||
|
* The result is a single tilted plane. Best for a flat bed.
|
||||||
|
*
|
||||||
|
* - LINEAR
|
||||||
|
* Probe several points in a grid.
|
||||||
|
* You specify the rectangle and the density of sample points.
|
||||||
|
* The result is a single tilted plane. Best for a flat bed.
|
||||||
|
*
|
||||||
|
* - BILINEAR
|
||||||
|
* Probe several points in a grid.
|
||||||
|
* You specify the rectangle and the density of sample points.
|
||||||
|
* The result is a mesh, best for large or uneven beds.
|
||||||
|
*/
|
||||||
|
//#define AUTO_BED_LEVELING_3POINT
|
||||||
|
//#define AUTO_BED_LEVELING_LINEAR
|
||||||
|
//#define AUTO_BED_LEVELING_BILINEAR
|
||||||
|
|
||||||
// Enable this feature to get detailed logging of G28, G29, M48, etc.
|
/**
|
||||||
// Logging is off by default. Enable this logging feature with 'M111 S32'.
|
* Enable detailed logging of G28, G29, M48, etc.
|
||||||
// NOTE: Requires a huge amount of PROGMEM.
|
* Turn on with the command 'M111 S32'.
|
||||||
|
* NOTE: Requires a lot of PROGMEM!
|
||||||
|
*/
|
||||||
//#define DEBUG_LEVELING_FEATURE
|
//#define DEBUG_LEVELING_FEATURE
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
|
#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
|
||||||
|
|
||||||
// There are 2 different ways to specify probing locations:
|
// Set the number of grid points per dimension.
|
||||||
//
|
#define ABL_GRID_POINTS_X 3
|
||||||
// - "grid" mode
|
#define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
|
||||||
// Probe several points in a rectangular grid.
|
|
||||||
// You specify the rectangle and the density of sample points.
|
|
||||||
// This mode is preferred because there are more measurements.
|
|
||||||
//
|
|
||||||
// - "3-point" mode
|
|
||||||
// Probe 3 arbitrary points on the bed (that aren't collinear)
|
|
||||||
// You specify the XY coordinates of all 3 points.
|
|
||||||
|
|
||||||
// Enable this to sample the bed in a grid (least squares solution).
|
// Set the boundaries for probing (where the probe can reach).
|
||||||
// Note: this feature generates 10KB extra code size.
|
#define LEFT_PROBE_BED_POSITION 15
|
||||||
#define AUTO_BED_LEVELING_GRID
|
#define RIGHT_PROBE_BED_POSITION 170
|
||||||
|
#define FRONT_PROBE_BED_POSITION 20
|
||||||
|
#define BACK_PROBE_BED_POSITION 170
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_GRID)
|
// The Z probe minimum outer margin (to validate G29 parameters).
|
||||||
|
#define MIN_PROBE_EDGE 10
|
||||||
|
|
||||||
#define LEFT_PROBE_BED_POSITION 15
|
#elif ENABLED(AUTO_BED_LEVELING_3POINT)
|
||||||
#define RIGHT_PROBE_BED_POSITION 170
|
|
||||||
#define FRONT_PROBE_BED_POSITION 20
|
|
||||||
#define BACK_PROBE_BED_POSITION 170
|
|
||||||
|
|
||||||
#define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this.
|
// 3 arbitrary points to probe.
|
||||||
|
// 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_Y 180
|
||||||
|
#define ABL_PROBE_PT_2_X 15
|
||||||
|
#define ABL_PROBE_PT_2_Y 20
|
||||||
|
#define ABL_PROBE_PT_3_X 170
|
||||||
|
#define ABL_PROBE_PT_3_Y 20
|
||||||
|
|
||||||
// Set the number of grid points per dimension.
|
#endif
|
||||||
// You probably don't need more than 3 (squared=9).
|
|
||||||
#define ABL_GRID_POINTS_X 3
|
|
||||||
#define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
|
|
||||||
|
|
||||||
#else // !AUTO_BED_LEVELING_GRID
|
/**
|
||||||
|
* Commands to execute at the end of G29 probing.
|
||||||
// Arbitrary points to probe.
|
* Useful to retract or move the Z probe out of the way.
|
||||||
// A simple cross-product is used to estimate the plane of the bed.
|
*/
|
||||||
#define ABL_PROBE_PT_1_X 15
|
//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"
|
||||||
#define ABL_PROBE_PT_1_Y 180
|
|
||||||
#define ABL_PROBE_PT_2_X 15
|
|
||||||
#define ABL_PROBE_PT_2_Y 20
|
|
||||||
#define ABL_PROBE_PT_3_X 170
|
|
||||||
#define ABL_PROBE_PT_3_Y 20
|
|
||||||
|
|
||||||
#endif // !AUTO_BED_LEVELING_GRID
|
|
||||||
|
|
||||||
//#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 Z probe.
|
|
||||||
|
|
||||||
// If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing,
|
|
||||||
// it is highly recommended you also enable Z_SAFE_HOMING below!
|
|
||||||
|
|
||||||
#endif // AUTO_BED_LEVELING_FEATURE
|
|
||||||
|
|
||||||
|
|
||||||
// @section homing
|
// @section homing
|
||||||
|
|
|
@ -499,7 +499,7 @@
|
||||||
// Probes are sensors/switches that are activated / deactivated before/after use.
|
// Probes are sensors/switches that are activated / deactivated before/after use.
|
||||||
//
|
//
|
||||||
// Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
|
// Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
|
||||||
// You must activate one of these to use AUTO_BED_LEVELING_FEATURE below.
|
// You must activate one of these to use Auto Bed Leveling below.
|
||||||
//
|
//
|
||||||
// Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
|
// Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
|
||||||
//
|
//
|
||||||
|
@ -721,69 +721,75 @@
|
||||||
#endif // MESH_BED_LEVELING
|
#endif // MESH_BED_LEVELING
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//============================ Bed Auto Leveling ============================
|
//============================ Auto Bed Leveling ============================
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
|
|
||||||
// @section bedlevel
|
// @section bedlevel
|
||||||
|
|
||||||
//#define AUTO_BED_LEVELING_FEATURE // Delete the comment to enable (remove // at the start of the line)
|
/**
|
||||||
|
* Select one form of Auto Bed Leveling below.
|
||||||
|
*
|
||||||
|
* If you're also using the Probe for Z Homing, it's
|
||||||
|
* highly recommended to enable Z_SAFE_HOMING also!
|
||||||
|
*
|
||||||
|
* - 3POINT
|
||||||
|
* Probe 3 arbitrary points on the bed (that aren't collinear)
|
||||||
|
* You specify the XY coordinates of all 3 points.
|
||||||
|
* The result is a single tilted plane. Best for a flat bed.
|
||||||
|
*
|
||||||
|
* - LINEAR
|
||||||
|
* Probe several points in a grid.
|
||||||
|
* You specify the rectangle and the density of sample points.
|
||||||
|
* The result is a single tilted plane. Best for a flat bed.
|
||||||
|
*
|
||||||
|
* - BILINEAR
|
||||||
|
* Probe several points in a grid.
|
||||||
|
* You specify the rectangle and the density of sample points.
|
||||||
|
* The result is a mesh, best for large or uneven beds.
|
||||||
|
*/
|
||||||
|
//#define AUTO_BED_LEVELING_3POINT
|
||||||
|
//#define AUTO_BED_LEVELING_LINEAR
|
||||||
|
//#define AUTO_BED_LEVELING_BILINEAR
|
||||||
|
|
||||||
// Enable this feature to get detailed logging of G28, G29, M48, etc.
|
/**
|
||||||
// Logging is off by default. Enable this logging feature with 'M111 S32'.
|
* Enable detailed logging of G28, G29, M48, etc.
|
||||||
// NOTE: Requires a huge amount of PROGMEM.
|
* Turn on with the command 'M111 S32'.
|
||||||
|
* NOTE: Requires a lot of PROGMEM!
|
||||||
|
*/
|
||||||
//#define DEBUG_LEVELING_FEATURE
|
//#define DEBUG_LEVELING_FEATURE
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
|
#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
|
||||||
|
|
||||||
// There are 2 different ways to specify probing locations:
|
// Set the number of grid points per dimension.
|
||||||
//
|
#define ABL_GRID_POINTS_X 3
|
||||||
// - "grid" mode
|
#define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
|
||||||
// Probe several points in a rectangular grid.
|
|
||||||
// You specify the rectangle and the density of sample points.
|
|
||||||
// This mode is preferred because there are more measurements.
|
|
||||||
//
|
|
||||||
// - "3-point" mode
|
|
||||||
// Probe 3 arbitrary points on the bed (that aren't collinear)
|
|
||||||
// You specify the XY coordinates of all 3 points.
|
|
||||||
|
|
||||||
// Enable this to sample the bed in a grid (least squares solution).
|
// Set the boundaries for probing (where the probe can reach).
|
||||||
// Note: this feature generates 10KB extra code size.
|
#define LEFT_PROBE_BED_POSITION 15
|
||||||
#define AUTO_BED_LEVELING_GRID
|
#define RIGHT_PROBE_BED_POSITION 170
|
||||||
|
#define FRONT_PROBE_BED_POSITION 20
|
||||||
|
#define BACK_PROBE_BED_POSITION 170
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_GRID)
|
// The Z probe minimum outer margin (to validate G29 parameters).
|
||||||
|
#define MIN_PROBE_EDGE 10
|
||||||
|
|
||||||
#define LEFT_PROBE_BED_POSITION 15
|
#elif ENABLED(AUTO_BED_LEVELING_3POINT)
|
||||||
#define RIGHT_PROBE_BED_POSITION 170
|
|
||||||
#define FRONT_PROBE_BED_POSITION 20
|
|
||||||
#define BACK_PROBE_BED_POSITION 170
|
|
||||||
|
|
||||||
#define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this.
|
// 3 arbitrary points to probe.
|
||||||
|
// 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_Y 180
|
||||||
|
#define ABL_PROBE_PT_2_X 15
|
||||||
|
#define ABL_PROBE_PT_2_Y 20
|
||||||
|
#define ABL_PROBE_PT_3_X 170
|
||||||
|
#define ABL_PROBE_PT_3_Y 20
|
||||||
|
|
||||||
// Set the number of grid points per dimension.
|
#endif
|
||||||
// You probably don't need more than 3 (squared=9).
|
|
||||||
#define ABL_GRID_POINTS_X 3
|
|
||||||
#define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
|
|
||||||
|
|
||||||
#else // !AUTO_BED_LEVELING_GRID
|
/**
|
||||||
|
* Commands to execute at the end of G29 probing.
|
||||||
// Arbitrary points to probe.
|
* Useful to retract or move the Z probe out of the way.
|
||||||
// A simple cross-product is used to estimate the plane of the bed.
|
*/
|
||||||
#define ABL_PROBE_PT_1_X 15
|
//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"
|
||||||
#define ABL_PROBE_PT_1_Y 180
|
|
||||||
#define ABL_PROBE_PT_2_X 15
|
|
||||||
#define ABL_PROBE_PT_2_Y 20
|
|
||||||
#define ABL_PROBE_PT_3_X 170
|
|
||||||
#define ABL_PROBE_PT_3_Y 20
|
|
||||||
|
|
||||||
#endif // !AUTO_BED_LEVELING_GRID
|
|
||||||
|
|
||||||
//#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 Z probe.
|
|
||||||
|
|
||||||
// If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing,
|
|
||||||
// it is highly recommended you also enable Z_SAFE_HOMING below!
|
|
||||||
|
|
||||||
#endif // AUTO_BED_LEVELING_FEATURE
|
|
||||||
|
|
||||||
|
|
||||||
// @section homing
|
// @section homing
|
||||||
|
|
|
@ -497,7 +497,7 @@
|
||||||
// Probes are sensors/switches that are activated / deactivated before/after use.
|
// Probes are sensors/switches that are activated / deactivated before/after use.
|
||||||
//
|
//
|
||||||
// Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
|
// Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
|
||||||
// You must activate one of these to use AUTO_BED_LEVELING_FEATURE below.
|
// You must activate one of these to use Auto Bed Leveling below.
|
||||||
//
|
//
|
||||||
// Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
|
// Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
|
||||||
//
|
//
|
||||||
|
@ -719,69 +719,75 @@
|
||||||
#endif // MESH_BED_LEVELING
|
#endif // MESH_BED_LEVELING
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//============================ Bed Auto Leveling ============================
|
//============================ Auto Bed Leveling ============================
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
|
|
||||||
// @section bedlevel
|
// @section bedlevel
|
||||||
|
|
||||||
//#define AUTO_BED_LEVELING_FEATURE // Delete the comment to enable (remove // at the start of the line)
|
/**
|
||||||
|
* Select one form of Auto Bed Leveling below.
|
||||||
|
*
|
||||||
|
* If you're also using the Probe for Z Homing, it's
|
||||||
|
* highly recommended to enable Z_SAFE_HOMING also!
|
||||||
|
*
|
||||||
|
* - 3POINT
|
||||||
|
* Probe 3 arbitrary points on the bed (that aren't collinear)
|
||||||
|
* You specify the XY coordinates of all 3 points.
|
||||||
|
* The result is a single tilted plane. Best for a flat bed.
|
||||||
|
*
|
||||||
|
* - LINEAR
|
||||||
|
* Probe several points in a grid.
|
||||||
|
* You specify the rectangle and the density of sample points.
|
||||||
|
* The result is a single tilted plane. Best for a flat bed.
|
||||||
|
*
|
||||||
|
* - BILINEAR
|
||||||
|
* Probe several points in a grid.
|
||||||
|
* You specify the rectangle and the density of sample points.
|
||||||
|
* The result is a mesh, best for large or uneven beds.
|
||||||
|
*/
|
||||||
|
//#define AUTO_BED_LEVELING_3POINT
|
||||||
|
//#define AUTO_BED_LEVELING_LINEAR
|
||||||
|
//#define AUTO_BED_LEVELING_BILINEAR
|
||||||
|
|
||||||
// Enable this feature to get detailed logging of G28, G29, M48, etc.
|
/**
|
||||||
// Logging is off by default. Enable this logging feature with 'M111 S32'.
|
* Enable detailed logging of G28, G29, M48, etc.
|
||||||
// NOTE: Requires a huge amount of PROGMEM.
|
* Turn on with the command 'M111 S32'.
|
||||||
|
* NOTE: Requires a lot of PROGMEM!
|
||||||
|
*/
|
||||||
//#define DEBUG_LEVELING_FEATURE
|
//#define DEBUG_LEVELING_FEATURE
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
|
#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
|
||||||
|
|
||||||
// There are 2 different ways to specify probing locations:
|
// Set the number of grid points per dimension.
|
||||||
//
|
#define ABL_GRID_POINTS_X 3
|
||||||
// - "grid" mode
|
#define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
|
||||||
// Probe several points in a rectangular grid.
|
|
||||||
// You specify the rectangle and the density of sample points.
|
|
||||||
// This mode is preferred because there are more measurements.
|
|
||||||
//
|
|
||||||
// - "3-point" mode
|
|
||||||
// Probe 3 arbitrary points on the bed (that aren't collinear)
|
|
||||||
// You specify the XY coordinates of all 3 points.
|
|
||||||
|
|
||||||
// Enable this to sample the bed in a grid (least squares solution).
|
// Set the boundaries for probing (where the probe can reach).
|
||||||
// Note: this feature generates 10KB extra code size.
|
#define LEFT_PROBE_BED_POSITION 15
|
||||||
#define AUTO_BED_LEVELING_GRID
|
#define RIGHT_PROBE_BED_POSITION 170
|
||||||
|
#define FRONT_PROBE_BED_POSITION 20
|
||||||
|
#define BACK_PROBE_BED_POSITION 170
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_GRID)
|
// The Z probe minimum outer margin (to validate G29 parameters).
|
||||||
|
#define MIN_PROBE_EDGE 10
|
||||||
|
|
||||||
#define LEFT_PROBE_BED_POSITION 15
|
#elif ENABLED(AUTO_BED_LEVELING_3POINT)
|
||||||
#define RIGHT_PROBE_BED_POSITION 170
|
|
||||||
#define FRONT_PROBE_BED_POSITION 20
|
|
||||||
#define BACK_PROBE_BED_POSITION 170
|
|
||||||
|
|
||||||
#define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this.
|
// 3 arbitrary points to probe.
|
||||||
|
// 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_Y 180
|
||||||
|
#define ABL_PROBE_PT_2_X 15
|
||||||
|
#define ABL_PROBE_PT_2_Y 20
|
||||||
|
#define ABL_PROBE_PT_3_X 170
|
||||||
|
#define ABL_PROBE_PT_3_Y 20
|
||||||
|
|
||||||
// Set the number of grid points per dimension.
|
#endif
|
||||||
// You probably don't need more than 3 (squared=9).
|
|
||||||
#define ABL_GRID_POINTS_X 3
|
|
||||||
#define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
|
|
||||||
|
|
||||||
#else // !AUTO_BED_LEVELING_GRID
|
/**
|
||||||
|
* Commands to execute at the end of G29 probing.
|
||||||
// Arbitrary points to probe.
|
* Useful to retract or move the Z probe out of the way.
|
||||||
// A simple cross-product is used to estimate the plane of the bed.
|
*/
|
||||||
#define ABL_PROBE_PT_1_X 15
|
//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"
|
||||||
#define ABL_PROBE_PT_1_Y 180
|
|
||||||
#define ABL_PROBE_PT_2_X 15
|
|
||||||
#define ABL_PROBE_PT_2_Y 20
|
|
||||||
#define ABL_PROBE_PT_3_X 170
|
|
||||||
#define ABL_PROBE_PT_3_Y 20
|
|
||||||
|
|
||||||
#endif // !AUTO_BED_LEVELING_GRID
|
|
||||||
|
|
||||||
//#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 Z probe.
|
|
||||||
|
|
||||||
// If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing,
|
|
||||||
// it is highly recommended you also enable Z_SAFE_HOMING below!
|
|
||||||
|
|
||||||
#endif // AUTO_BED_LEVELING_FEATURE
|
|
||||||
|
|
||||||
|
|
||||||
// @section homing
|
// @section homing
|
||||||
|
|
|
@ -514,7 +514,7 @@
|
||||||
// Probes are sensors/switches that are activated / deactivated before/after use.
|
// Probes are sensors/switches that are activated / deactivated before/after use.
|
||||||
//
|
//
|
||||||
// Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
|
// Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
|
||||||
// You must activate one of these to use AUTO_BED_LEVELING_FEATURE below.
|
// You must activate one of these to use Auto Bed Leveling below.
|
||||||
//
|
//
|
||||||
// Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
|
// Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
|
||||||
//
|
//
|
||||||
|
@ -736,69 +736,75 @@
|
||||||
#endif // MESH_BED_LEVELING
|
#endif // MESH_BED_LEVELING
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//============================ Bed Auto Leveling ============================
|
//============================ Auto Bed Leveling ============================
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
|
|
||||||
// @section bedlevel
|
// @section bedlevel
|
||||||
|
|
||||||
//#define AUTO_BED_LEVELING_FEATURE // Delete the comment to enable (remove // at the start of the line)
|
/**
|
||||||
|
* Select one form of Auto Bed Leveling below.
|
||||||
|
*
|
||||||
|
* If you're also using the Probe for Z Homing, it's
|
||||||
|
* highly recommended to enable Z_SAFE_HOMING also!
|
||||||
|
*
|
||||||
|
* - 3POINT
|
||||||
|
* Probe 3 arbitrary points on the bed (that aren't collinear)
|
||||||
|
* You specify the XY coordinates of all 3 points.
|
||||||
|
* The result is a single tilted plane. Best for a flat bed.
|
||||||
|
*
|
||||||
|
* - LINEAR
|
||||||
|
* Probe several points in a grid.
|
||||||
|
* You specify the rectangle and the density of sample points.
|
||||||
|
* The result is a single tilted plane. Best for a flat bed.
|
||||||
|
*
|
||||||
|
* - BILINEAR
|
||||||
|
* Probe several points in a grid.
|
||||||
|
* You specify the rectangle and the density of sample points.
|
||||||
|
* The result is a mesh, best for large or uneven beds.
|
||||||
|
*/
|
||||||
|
//#define AUTO_BED_LEVELING_3POINT
|
||||||
|
//#define AUTO_BED_LEVELING_LINEAR
|
||||||
|
//#define AUTO_BED_LEVELING_BILINEAR
|
||||||
|
|
||||||
// Enable this feature to get detailed logging of G28, G29, M48, etc.
|
/**
|
||||||
// Logging is off by default. Enable this logging feature with 'M111 S32'.
|
* Enable detailed logging of G28, G29, M48, etc.
|
||||||
// NOTE: Requires a huge amount of PROGMEM.
|
* Turn on with the command 'M111 S32'.
|
||||||
|
* NOTE: Requires a lot of PROGMEM!
|
||||||
|
*/
|
||||||
//#define DEBUG_LEVELING_FEATURE
|
//#define DEBUG_LEVELING_FEATURE
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
|
#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
|
||||||
|
|
||||||
// There are 2 different ways to specify probing locations:
|
// Set the number of grid points per dimension.
|
||||||
//
|
#define ABL_GRID_POINTS_X 3
|
||||||
// - "grid" mode
|
#define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
|
||||||
// Probe several points in a rectangular grid.
|
|
||||||
// You specify the rectangle and the density of sample points.
|
|
||||||
// This mode is preferred because there are more measurements.
|
|
||||||
//
|
|
||||||
// - "3-point" mode
|
|
||||||
// Probe 3 arbitrary points on the bed (that aren't collinear)
|
|
||||||
// You specify the XY coordinates of all 3 points.
|
|
||||||
|
|
||||||
// Enable this to sample the bed in a grid (least squares solution).
|
// Set the boundaries for probing (where the probe can reach).
|
||||||
// Note: this feature generates 10KB extra code size.
|
#define LEFT_PROBE_BED_POSITION 15
|
||||||
#define AUTO_BED_LEVELING_GRID
|
#define RIGHT_PROBE_BED_POSITION 170
|
||||||
|
#define FRONT_PROBE_BED_POSITION 20
|
||||||
|
#define BACK_PROBE_BED_POSITION 170
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_GRID)
|
// The Z probe minimum outer margin (to validate G29 parameters).
|
||||||
|
#define MIN_PROBE_EDGE 10
|
||||||
|
|
||||||
#define LEFT_PROBE_BED_POSITION 15
|
#elif ENABLED(AUTO_BED_LEVELING_3POINT)
|
||||||
#define RIGHT_PROBE_BED_POSITION 170
|
|
||||||
#define FRONT_PROBE_BED_POSITION 20
|
|
||||||
#define BACK_PROBE_BED_POSITION 170
|
|
||||||
|
|
||||||
#define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this.
|
// 3 arbitrary points to probe.
|
||||||
|
// 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_Y 180
|
||||||
|
#define ABL_PROBE_PT_2_X 15
|
||||||
|
#define ABL_PROBE_PT_2_Y 20
|
||||||
|
#define ABL_PROBE_PT_3_X 170
|
||||||
|
#define ABL_PROBE_PT_3_Y 20
|
||||||
|
|
||||||
// Set the number of grid points per dimension.
|
#endif
|
||||||
// You probably don't need more than 3 (squared=9).
|
|
||||||
#define ABL_GRID_POINTS_X 3
|
|
||||||
#define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
|
|
||||||
|
|
||||||
#else // !AUTO_BED_LEVELING_GRID
|
/**
|
||||||
|
* Commands to execute at the end of G29 probing.
|
||||||
// Arbitrary points to probe.
|
* Useful to retract or move the Z probe out of the way.
|
||||||
// A simple cross-product is used to estimate the plane of the bed.
|
*/
|
||||||
#define ABL_PROBE_PT_1_X 15
|
//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"
|
||||||
#define ABL_PROBE_PT_1_Y 180
|
|
||||||
#define ABL_PROBE_PT_2_X 15
|
|
||||||
#define ABL_PROBE_PT_2_Y 20
|
|
||||||
#define ABL_PROBE_PT_3_X 170
|
|
||||||
#define ABL_PROBE_PT_3_Y 20
|
|
||||||
|
|
||||||
#endif // !AUTO_BED_LEVELING_GRID
|
|
||||||
|
|
||||||
//#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 Z probe.
|
|
||||||
|
|
||||||
// If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing,
|
|
||||||
// it is highly recommended you also enable Z_SAFE_HOMING below!
|
|
||||||
|
|
||||||
#endif // AUTO_BED_LEVELING_FEATURE
|
|
||||||
|
|
||||||
|
|
||||||
// @section homing
|
// @section homing
|
||||||
|
|
|
@ -520,7 +520,7 @@
|
||||||
// Probes are sensors/switches that are activated / deactivated before/after use.
|
// Probes are sensors/switches that are activated / deactivated before/after use.
|
||||||
//
|
//
|
||||||
// Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
|
// Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
|
||||||
// You must activate one of these to use AUTO_BED_LEVELING_FEATURE below.
|
// You must activate one of these to use Auto Bed Leveling below.
|
||||||
//
|
//
|
||||||
// Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
|
// Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
|
||||||
//
|
//
|
||||||
|
@ -742,69 +742,75 @@
|
||||||
#endif // MESH_BED_LEVELING
|
#endif // MESH_BED_LEVELING
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//============================ Bed Auto Leveling ============================
|
//============================ Auto Bed Leveling ============================
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
|
|
||||||
// @section bedlevel
|
// @section bedlevel
|
||||||
|
|
||||||
//#define AUTO_BED_LEVELING_FEATURE // Delete the comment to enable (remove // at the start of the line)
|
/**
|
||||||
|
* Select one form of Auto Bed Leveling below.
|
||||||
|
*
|
||||||
|
* If you're also using the Probe for Z Homing, it's
|
||||||
|
* highly recommended to enable Z_SAFE_HOMING also!
|
||||||
|
*
|
||||||
|
* - 3POINT
|
||||||
|
* Probe 3 arbitrary points on the bed (that aren't collinear)
|
||||||
|
* You specify the XY coordinates of all 3 points.
|
||||||
|
* The result is a single tilted plane. Best for a flat bed.
|
||||||
|
*
|
||||||
|
* - LINEAR
|
||||||
|
* Probe several points in a grid.
|
||||||
|
* You specify the rectangle and the density of sample points.
|
||||||
|
* The result is a single tilted plane. Best for a flat bed.
|
||||||
|
*
|
||||||
|
* - BILINEAR
|
||||||
|
* Probe several points in a grid.
|
||||||
|
* You specify the rectangle and the density of sample points.
|
||||||
|
* The result is a mesh, best for large or uneven beds.
|
||||||
|
*/
|
||||||
|
//#define AUTO_BED_LEVELING_3POINT
|
||||||
|
//#define AUTO_BED_LEVELING_LINEAR
|
||||||
|
//#define AUTO_BED_LEVELING_BILINEAR
|
||||||
|
|
||||||
// Enable this feature to get detailed logging of G28, G29, M48, etc.
|
/**
|
||||||
// Logging is off by default. Enable this logging feature with 'M111 S32'.
|
* Enable detailed logging of G28, G29, M48, etc.
|
||||||
// NOTE: Requires a huge amount of PROGMEM.
|
* Turn on with the command 'M111 S32'.
|
||||||
|
* NOTE: Requires a lot of PROGMEM!
|
||||||
|
*/
|
||||||
//#define DEBUG_LEVELING_FEATURE
|
//#define DEBUG_LEVELING_FEATURE
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
|
#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
|
||||||
|
|
||||||
// There are 2 different ways to specify probing locations:
|
// Set the number of grid points per dimension.
|
||||||
//
|
#define ABL_GRID_POINTS_X 3
|
||||||
// - "grid" mode
|
#define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
|
||||||
// Probe several points in a rectangular grid.
|
|
||||||
// You specify the rectangle and the density of sample points.
|
|
||||||
// This mode is preferred because there are more measurements.
|
|
||||||
//
|
|
||||||
// - "3-point" mode
|
|
||||||
// Probe 3 arbitrary points on the bed (that aren't collinear)
|
|
||||||
// You specify the XY coordinates of all 3 points.
|
|
||||||
|
|
||||||
// Enable this to sample the bed in a grid (least squares solution).
|
// Set the boundaries for probing (where the probe can reach).
|
||||||
// Note: this feature generates 10KB extra code size.
|
#define LEFT_PROBE_BED_POSITION 15
|
||||||
#define AUTO_BED_LEVELING_GRID
|
#define RIGHT_PROBE_BED_POSITION 170
|
||||||
|
#define FRONT_PROBE_BED_POSITION 20
|
||||||
|
#define BACK_PROBE_BED_POSITION 170
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_GRID)
|
// The Z probe minimum outer margin (to validate G29 parameters).
|
||||||
|
#define MIN_PROBE_EDGE 10
|
||||||
|
|
||||||
#define LEFT_PROBE_BED_POSITION 15
|
#elif ENABLED(AUTO_BED_LEVELING_3POINT)
|
||||||
#define RIGHT_PROBE_BED_POSITION 170
|
|
||||||
#define FRONT_PROBE_BED_POSITION 20
|
|
||||||
#define BACK_PROBE_BED_POSITION 170
|
|
||||||
|
|
||||||
#define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this.
|
// 3 arbitrary points to probe.
|
||||||
|
// 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_Y 180
|
||||||
|
#define ABL_PROBE_PT_2_X 15
|
||||||
|
#define ABL_PROBE_PT_2_Y 20
|
||||||
|
#define ABL_PROBE_PT_3_X 170
|
||||||
|
#define ABL_PROBE_PT_3_Y 20
|
||||||
|
|
||||||
// Set the number of grid points per dimension.
|
#endif
|
||||||
// You probably don't need more than 3 (squared=9).
|
|
||||||
#define ABL_GRID_POINTS_X 3
|
|
||||||
#define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
|
|
||||||
|
|
||||||
#else // !AUTO_BED_LEVELING_GRID
|
/**
|
||||||
|
* Commands to execute at the end of G29 probing.
|
||||||
// Arbitrary points to probe.
|
* Useful to retract or move the Z probe out of the way.
|
||||||
// A simple cross-product is used to estimate the plane of the bed.
|
*/
|
||||||
#define ABL_PROBE_PT_1_X 15
|
//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"
|
||||||
#define ABL_PROBE_PT_1_Y 180
|
|
||||||
#define ABL_PROBE_PT_2_X 15
|
|
||||||
#define ABL_PROBE_PT_2_Y 20
|
|
||||||
#define ABL_PROBE_PT_3_X 170
|
|
||||||
#define ABL_PROBE_PT_3_Y 20
|
|
||||||
|
|
||||||
#endif // !AUTO_BED_LEVELING_GRID
|
|
||||||
|
|
||||||
//#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 Z probe.
|
|
||||||
|
|
||||||
// If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing,
|
|
||||||
// it is highly recommended you also enable Z_SAFE_HOMING below!
|
|
||||||
|
|
||||||
#endif // AUTO_BED_LEVELING_FEATURE
|
|
||||||
|
|
||||||
|
|
||||||
// @section homing
|
// @section homing
|
||||||
|
|
|
@ -491,7 +491,7 @@
|
||||||
// Probes are sensors/switches that are activated / deactivated before/after use.
|
// Probes are sensors/switches that are activated / deactivated before/after use.
|
||||||
//
|
//
|
||||||
// Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
|
// Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
|
||||||
// You must activate one of these to use AUTO_BED_LEVELING_FEATURE below.
|
// You must activate one of these to use Auto Bed Leveling below.
|
||||||
//
|
//
|
||||||
// Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
|
// Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
|
||||||
//
|
//
|
||||||
|
@ -713,69 +713,75 @@
|
||||||
#endif // MESH_BED_LEVELING
|
#endif // MESH_BED_LEVELING
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//============================ Bed Auto Leveling ============================
|
//============================ Auto Bed Leveling ============================
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
|
|
||||||
// @section bedlevel
|
// @section bedlevel
|
||||||
|
|
||||||
//#define AUTO_BED_LEVELING_FEATURE // Delete the comment to enable (remove // at the start of the line)
|
/**
|
||||||
|
* Select one form of Auto Bed Leveling below.
|
||||||
|
*
|
||||||
|
* If you're also using the Probe for Z Homing, it's
|
||||||
|
* highly recommended to enable Z_SAFE_HOMING also!
|
||||||
|
*
|
||||||
|
* - 3POINT
|
||||||
|
* Probe 3 arbitrary points on the bed (that aren't collinear)
|
||||||
|
* You specify the XY coordinates of all 3 points.
|
||||||
|
* The result is a single tilted plane. Best for a flat bed.
|
||||||
|
*
|
||||||
|
* - LINEAR
|
||||||
|
* Probe several points in a grid.
|
||||||
|
* You specify the rectangle and the density of sample points.
|
||||||
|
* The result is a single tilted plane. Best for a flat bed.
|
||||||
|
*
|
||||||
|
* - BILINEAR
|
||||||
|
* Probe several points in a grid.
|
||||||
|
* You specify the rectangle and the density of sample points.
|
||||||
|
* The result is a mesh, best for large or uneven beds.
|
||||||
|
*/
|
||||||
|
//#define AUTO_BED_LEVELING_3POINT
|
||||||
|
//#define AUTO_BED_LEVELING_LINEAR
|
||||||
|
//#define AUTO_BED_LEVELING_BILINEAR
|
||||||
|
|
||||||
// Enable this feature to get detailed logging of G28, G29, M48, etc.
|
/**
|
||||||
// Logging is off by default. Enable this logging feature with 'M111 S32'.
|
* Enable detailed logging of G28, G29, M48, etc.
|
||||||
// NOTE: Requires a huge amount of PROGMEM.
|
* Turn on with the command 'M111 S32'.
|
||||||
|
* NOTE: Requires a lot of PROGMEM!
|
||||||
|
*/
|
||||||
//#define DEBUG_LEVELING_FEATURE
|
//#define DEBUG_LEVELING_FEATURE
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
|
#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
|
||||||
|
|
||||||
// There are 2 different ways to specify probing locations:
|
// Set the number of grid points per dimension.
|
||||||
//
|
#define ABL_GRID_POINTS_X 3
|
||||||
// - "grid" mode
|
#define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
|
||||||
// Probe several points in a rectangular grid.
|
|
||||||
// You specify the rectangle and the density of sample points.
|
|
||||||
// This mode is preferred because there are more measurements.
|
|
||||||
//
|
|
||||||
// - "3-point" mode
|
|
||||||
// Probe 3 arbitrary points on the bed (that aren't collinear)
|
|
||||||
// You specify the XY coordinates of all 3 points.
|
|
||||||
|
|
||||||
// Enable this to sample the bed in a grid (least squares solution).
|
// Set the boundaries for probing (where the probe can reach).
|
||||||
// Note: this feature generates 10KB extra code size.
|
#define LEFT_PROBE_BED_POSITION 15
|
||||||
#define AUTO_BED_LEVELING_GRID
|
#define RIGHT_PROBE_BED_POSITION 170
|
||||||
|
#define FRONT_PROBE_BED_POSITION 20
|
||||||
|
#define BACK_PROBE_BED_POSITION 170
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_GRID)
|
// The Z probe minimum outer margin (to validate G29 parameters).
|
||||||
|
#define MIN_PROBE_EDGE 10
|
||||||
|
|
||||||
#define LEFT_PROBE_BED_POSITION 15
|
#elif ENABLED(AUTO_BED_LEVELING_3POINT)
|
||||||
#define RIGHT_PROBE_BED_POSITION 170
|
|
||||||
#define FRONT_PROBE_BED_POSITION 20
|
|
||||||
#define BACK_PROBE_BED_POSITION 170
|
|
||||||
|
|
||||||
#define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this.
|
// 3 arbitrary points to probe.
|
||||||
|
// 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_Y 180
|
||||||
|
#define ABL_PROBE_PT_2_X 15
|
||||||
|
#define ABL_PROBE_PT_2_Y 20
|
||||||
|
#define ABL_PROBE_PT_3_X 170
|
||||||
|
#define ABL_PROBE_PT_3_Y 20
|
||||||
|
|
||||||
// Set the number of grid points per dimension.
|
#endif
|
||||||
// You probably don't need more than 3 (squared=9).
|
|
||||||
#define ABL_GRID_POINTS_X 3
|
|
||||||
#define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
|
|
||||||
|
|
||||||
#else // !AUTO_BED_LEVELING_GRID
|
/**
|
||||||
|
* Commands to execute at the end of G29 probing.
|
||||||
// Arbitrary points to probe.
|
* Useful to retract or move the Z probe out of the way.
|
||||||
// A simple cross-product is used to estimate the plane of the bed.
|
*/
|
||||||
#define ABL_PROBE_PT_1_X 15
|
//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"
|
||||||
#define ABL_PROBE_PT_1_Y 180
|
|
||||||
#define ABL_PROBE_PT_2_X 15
|
|
||||||
#define ABL_PROBE_PT_2_Y 20
|
|
||||||
#define ABL_PROBE_PT_3_X 170
|
|
||||||
#define ABL_PROBE_PT_3_Y 20
|
|
||||||
|
|
||||||
#endif // !AUTO_BED_LEVELING_GRID
|
|
||||||
|
|
||||||
//#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 Z probe.
|
|
||||||
|
|
||||||
// If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing,
|
|
||||||
// it is highly recommended you also enable Z_SAFE_HOMING below!
|
|
||||||
|
|
||||||
#endif // AUTO_BED_LEVELING_FEATURE
|
|
||||||
|
|
||||||
|
|
||||||
// @section homing
|
// @section homing
|
||||||
|
|
|
@ -499,7 +499,7 @@
|
||||||
// Probes are sensors/switches that are activated / deactivated before/after use.
|
// Probes are sensors/switches that are activated / deactivated before/after use.
|
||||||
//
|
//
|
||||||
// Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
|
// Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
|
||||||
// You must activate one of these to use AUTO_BED_LEVELING_FEATURE below.
|
// You must activate one of these to use Auto Bed Leveling below.
|
||||||
//
|
//
|
||||||
// Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
|
// Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
|
||||||
//
|
//
|
||||||
|
@ -721,69 +721,75 @@
|
||||||
#endif // MESH_BED_LEVELING
|
#endif // MESH_BED_LEVELING
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//============================ Bed Auto Leveling ============================
|
//============================ Auto Bed Leveling ============================
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
|
|
||||||
// @section bedlevel
|
// @section bedlevel
|
||||||
|
|
||||||
//#define AUTO_BED_LEVELING_FEATURE // Delete the comment to enable (remove // at the start of the line)
|
/**
|
||||||
|
* Select one form of Auto Bed Leveling below.
|
||||||
|
*
|
||||||
|
* If you're also using the Probe for Z Homing, it's
|
||||||
|
* highly recommended to enable Z_SAFE_HOMING also!
|
||||||
|
*
|
||||||
|
* - 3POINT
|
||||||
|
* Probe 3 arbitrary points on the bed (that aren't collinear)
|
||||||
|
* You specify the XY coordinates of all 3 points.
|
||||||
|
* The result is a single tilted plane. Best for a flat bed.
|
||||||
|
*
|
||||||
|
* - LINEAR
|
||||||
|
* Probe several points in a grid.
|
||||||
|
* You specify the rectangle and the density of sample points.
|
||||||
|
* The result is a single tilted plane. Best for a flat bed.
|
||||||
|
*
|
||||||
|
* - BILINEAR
|
||||||
|
* Probe several points in a grid.
|
||||||
|
* You specify the rectangle and the density of sample points.
|
||||||
|
* The result is a mesh, best for large or uneven beds.
|
||||||
|
*/
|
||||||
|
//#define AUTO_BED_LEVELING_3POINT
|
||||||
|
//#define AUTO_BED_LEVELING_LINEAR
|
||||||
|
//#define AUTO_BED_LEVELING_BILINEAR
|
||||||
|
|
||||||
// Enable this feature to get detailed logging of G28, G29, M48, etc.
|
/**
|
||||||
// Logging is off by default. Enable this logging feature with 'M111 S32'.
|
* Enable detailed logging of G28, G29, M48, etc.
|
||||||
// NOTE: Requires a huge amount of PROGMEM.
|
* Turn on with the command 'M111 S32'.
|
||||||
|
* NOTE: Requires a lot of PROGMEM!
|
||||||
|
*/
|
||||||
//#define DEBUG_LEVELING_FEATURE
|
//#define DEBUG_LEVELING_FEATURE
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
|
#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
|
||||||
|
|
||||||
// There are 2 different ways to specify probing locations:
|
// Set the number of grid points per dimension.
|
||||||
//
|
#define ABL_GRID_POINTS_X 3
|
||||||
// - "grid" mode
|
#define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
|
||||||
// Probe several points in a rectangular grid.
|
|
||||||
// You specify the rectangle and the density of sample points.
|
|
||||||
// This mode is preferred because there are more measurements.
|
|
||||||
//
|
|
||||||
// - "3-point" mode
|
|
||||||
// Probe 3 arbitrary points on the bed (that aren't collinear)
|
|
||||||
// You specify the XY coordinates of all 3 points.
|
|
||||||
|
|
||||||
// Enable this to sample the bed in a grid (least squares solution).
|
// Set the boundaries for probing (where the probe can reach).
|
||||||
// Note: this feature generates 10KB extra code size.
|
#define LEFT_PROBE_BED_POSITION 15
|
||||||
#define AUTO_BED_LEVELING_GRID
|
#define RIGHT_PROBE_BED_POSITION 170
|
||||||
|
#define FRONT_PROBE_BED_POSITION 20
|
||||||
|
#define BACK_PROBE_BED_POSITION 170
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_GRID)
|
// The Z probe minimum outer margin (to validate G29 parameters).
|
||||||
|
#define MIN_PROBE_EDGE 10
|
||||||
|
|
||||||
#define LEFT_PROBE_BED_POSITION 15
|
#elif ENABLED(AUTO_BED_LEVELING_3POINT)
|
||||||
#define RIGHT_PROBE_BED_POSITION 170
|
|
||||||
#define FRONT_PROBE_BED_POSITION 20
|
|
||||||
#define BACK_PROBE_BED_POSITION 170
|
|
||||||
|
|
||||||
#define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this.
|
// 3 arbitrary points to probe.
|
||||||
|
// 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_Y 180
|
||||||
|
#define ABL_PROBE_PT_2_X 15
|
||||||
|
#define ABL_PROBE_PT_2_Y 20
|
||||||
|
#define ABL_PROBE_PT_3_X 170
|
||||||
|
#define ABL_PROBE_PT_3_Y 20
|
||||||
|
|
||||||
// Set the number of grid points per dimension.
|
#endif
|
||||||
// You probably don't need more than 3 (squared=9).
|
|
||||||
#define ABL_GRID_POINTS_X 3
|
|
||||||
#define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
|
|
||||||
|
|
||||||
#else // !AUTO_BED_LEVELING_GRID
|
/**
|
||||||
|
* Commands to execute at the end of G29 probing.
|
||||||
// Arbitrary points to probe.
|
* Useful to retract or move the Z probe out of the way.
|
||||||
// A simple cross-product is used to estimate the plane of the bed.
|
*/
|
||||||
#define ABL_PROBE_PT_1_X 15
|
//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"
|
||||||
#define ABL_PROBE_PT_1_Y 180
|
|
||||||
#define ABL_PROBE_PT_2_X 15
|
|
||||||
#define ABL_PROBE_PT_2_Y 20
|
|
||||||
#define ABL_PROBE_PT_3_X 170
|
|
||||||
#define ABL_PROBE_PT_3_Y 20
|
|
||||||
|
|
||||||
#endif // !AUTO_BED_LEVELING_GRID
|
|
||||||
|
|
||||||
//#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 Z probe.
|
|
||||||
|
|
||||||
// If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing,
|
|
||||||
// it is highly recommended you also enable Z_SAFE_HOMING below!
|
|
||||||
|
|
||||||
#endif // AUTO_BED_LEVELING_FEATURE
|
|
||||||
|
|
||||||
|
|
||||||
// @section homing
|
// @section homing
|
||||||
|
|
|
@ -542,7 +542,7 @@
|
||||||
// Probes are sensors/switches that are activated / deactivated before/after use.
|
// Probes are sensors/switches that are activated / deactivated before/after use.
|
||||||
//
|
//
|
||||||
// Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
|
// Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
|
||||||
// You must activate one of these to use AUTO_BED_LEVELING_FEATURE below.
|
// You must activate one of these to use Auto Bed Leveling below.
|
||||||
//
|
//
|
||||||
// Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
|
// Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
|
||||||
//
|
//
|
||||||
|
@ -811,73 +811,77 @@
|
||||||
#endif // MESH_BED_LEVELING
|
#endif // MESH_BED_LEVELING
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//============================ Bed Auto Leveling ============================
|
//============================ Auto Bed Leveling ============================
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
|
|
||||||
// @section bedlevel
|
// @section bedlevel
|
||||||
|
|
||||||
//#define AUTO_BED_LEVELING_FEATURE // Delete the comment to enable (remove // at the start of the line)
|
/**
|
||||||
|
* Select one form of Auto Bed Leveling below.
|
||||||
|
*
|
||||||
|
* If you're also using the Probe for Z Homing, it's
|
||||||
|
* highly recommended to enable Z_SAFE_HOMING also!
|
||||||
|
*
|
||||||
|
* - 3POINT
|
||||||
|
* Probe 3 arbitrary points on the bed (that aren't collinear)
|
||||||
|
* You specify the XY coordinates of all 3 points.
|
||||||
|
* The result is a single tilted plane. Best for a flat bed.
|
||||||
|
*
|
||||||
|
* - LINEAR
|
||||||
|
* Probe several points in a grid.
|
||||||
|
* You specify the rectangle and the density of sample points.
|
||||||
|
* The result is a single tilted plane. Best for a flat bed.
|
||||||
|
*
|
||||||
|
* - BILINEAR
|
||||||
|
* Probe several points in a grid.
|
||||||
|
* You specify the rectangle and the density of sample points.
|
||||||
|
* The result is a mesh, best for large or uneven beds.
|
||||||
|
*/
|
||||||
|
//#define AUTO_BED_LEVELING_3POINT
|
||||||
|
//#define AUTO_BED_LEVELING_LINEAR
|
||||||
|
//#define AUTO_BED_LEVELING_BILINEAR
|
||||||
|
|
||||||
// Enable this feature to get detailed logging of G28, G29, M48, etc.
|
/**
|
||||||
// Logging is off by default. Enable this logging feature with 'M111 S32'.
|
* Enable detailed logging of G28, G29, M48, etc.
|
||||||
// NOTE: Requires a huge amount of PROGMEM.
|
* Turn on with the command 'M111 S32'.
|
||||||
|
* NOTE: Requires a lot of PROGMEM!
|
||||||
|
*/
|
||||||
//#define DEBUG_LEVELING_FEATURE
|
//#define DEBUG_LEVELING_FEATURE
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
|
#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
|
||||||
|
|
||||||
// There are 2 different ways to specify probing locations:
|
// Set the number of grid points per dimension.
|
||||||
//
|
// Works best with 5 or more points in each dimension.
|
||||||
// - "grid" mode
|
#define ABL_GRID_POINTS_X 9
|
||||||
// Probe several points in a rectangular grid.
|
#define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
|
||||||
// You specify the rectangle and the density of sample points.
|
|
||||||
// This mode is preferred because there are more measurements.
|
|
||||||
//
|
|
||||||
// - "3-point" mode
|
|
||||||
// Probe 3 arbitrary points on the bed (that aren't collinear)
|
|
||||||
// You specify the XY coordinates of all 3 points.
|
|
||||||
|
|
||||||
// Enable this to sample the bed in a grid (least squares solution).
|
// Set the boundaries for probing (where the probe can reach).
|
||||||
// Note: this feature generates 10KB extra code size.
|
#define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10)
|
||||||
#define AUTO_BED_LEVELING_GRID // Deltas only support grid mode.
|
#define LEFT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS)
|
||||||
|
#define RIGHT_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS
|
||||||
|
#define FRONT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS)
|
||||||
|
#define BACK_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_GRID)
|
// The Z probe minimum outer margin (to validate G29 parameters).
|
||||||
|
#define MIN_PROBE_EDGE 10
|
||||||
|
|
||||||
// Set the rectangle in which to probe.
|
#elif ENABLED(AUTO_BED_LEVELING_3POINT)
|
||||||
#define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10)
|
|
||||||
#define LEFT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS)
|
|
||||||
#define RIGHT_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS
|
|
||||||
#define FRONT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS)
|
|
||||||
#define BACK_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS
|
|
||||||
|
|
||||||
#define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this.
|
// 3 arbitrary points to probe.
|
||||||
|
// 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_Y 180
|
||||||
|
#define ABL_PROBE_PT_2_X 15
|
||||||
|
#define ABL_PROBE_PT_2_Y 20
|
||||||
|
#define ABL_PROBE_PT_3_X 170
|
||||||
|
#define ABL_PROBE_PT_3_Y 20
|
||||||
|
|
||||||
// Non-linear bed leveling will be used.
|
#endif
|
||||||
// Compensate by interpolating between the nearest four Z probe values for each point.
|
|
||||||
// Useful for deltas where the print surface may appear like a bowl or dome shape.
|
|
||||||
// Works best with 5 or more points in each dimension.
|
|
||||||
#define ABL_GRID_POINTS_X 9
|
|
||||||
#define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
|
|
||||||
|
|
||||||
#else // !AUTO_BED_LEVELING_GRID
|
/**
|
||||||
|
* Commands to execute at the end of G29 probing.
|
||||||
// Arbitrary points to probe.
|
* Useful to retract or move the Z probe out of the way.
|
||||||
// A simple cross-product is used to estimate the plane of the bed.
|
*/
|
||||||
#define ABL_PROBE_PT_1_X 15
|
//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"
|
||||||
#define ABL_PROBE_PT_1_Y 180
|
|
||||||
#define ABL_PROBE_PT_2_X 15
|
|
||||||
#define ABL_PROBE_PT_2_Y 20
|
|
||||||
#define ABL_PROBE_PT_3_X 170
|
|
||||||
#define ABL_PROBE_PT_3_Y 20
|
|
||||||
|
|
||||||
#endif // !AUTO_BED_LEVELING_GRID
|
|
||||||
|
|
||||||
//#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 Z probe.
|
|
||||||
|
|
||||||
// If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing,
|
|
||||||
// it is highly recommended you also enable Z_SAFE_HOMING below!
|
|
||||||
|
|
||||||
#endif // AUTO_BED_LEVELING_FEATURE
|
|
||||||
|
|
||||||
|
|
||||||
// @section homing
|
// @section homing
|
||||||
|
|
|
@ -542,7 +542,7 @@
|
||||||
// Probes are sensors/switches that are activated / deactivated before/after use.
|
// Probes are sensors/switches that are activated / deactivated before/after use.
|
||||||
//
|
//
|
||||||
// Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
|
// Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
|
||||||
// You must activate one of these to use AUTO_BED_LEVELING_FEATURE below.
|
// You must activate one of these to use Auto Bed Leveling below.
|
||||||
//
|
//
|
||||||
// Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
|
// Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
|
||||||
//
|
//
|
||||||
|
@ -805,73 +805,77 @@
|
||||||
#endif // MESH_BED_LEVELING
|
#endif // MESH_BED_LEVELING
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//============================ Bed Auto Leveling ============================
|
//============================ Auto Bed Leveling ============================
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
|
|
||||||
// @section bedlevel
|
// @section bedlevel
|
||||||
|
|
||||||
//#define AUTO_BED_LEVELING_FEATURE // Delete the comment to enable (remove // at the start of the line)
|
/**
|
||||||
|
* Select one form of Auto Bed Leveling below.
|
||||||
|
*
|
||||||
|
* If you're also using the Probe for Z Homing, it's
|
||||||
|
* highly recommended to enable Z_SAFE_HOMING also!
|
||||||
|
*
|
||||||
|
* - 3POINT
|
||||||
|
* Probe 3 arbitrary points on the bed (that aren't collinear)
|
||||||
|
* You specify the XY coordinates of all 3 points.
|
||||||
|
* The result is a single tilted plane. Best for a flat bed.
|
||||||
|
*
|
||||||
|
* - LINEAR
|
||||||
|
* Probe several points in a grid.
|
||||||
|
* You specify the rectangle and the density of sample points.
|
||||||
|
* The result is a single tilted plane. Best for a flat bed.
|
||||||
|
*
|
||||||
|
* - BILINEAR
|
||||||
|
* Probe several points in a grid.
|
||||||
|
* You specify the rectangle and the density of sample points.
|
||||||
|
* The result is a mesh, best for large or uneven beds.
|
||||||
|
*/
|
||||||
|
//#define AUTO_BED_LEVELING_3POINT
|
||||||
|
//#define AUTO_BED_LEVELING_LINEAR
|
||||||
|
//#define AUTO_BED_LEVELING_BILINEAR
|
||||||
|
|
||||||
// Enable this feature to get detailed logging of G28, G29, M48, etc.
|
/**
|
||||||
// Logging is off by default. Enable this logging feature with 'M111 S32'.
|
* Enable detailed logging of G28, G29, M48, etc.
|
||||||
// NOTE: Requires a huge amount of PROGMEM.
|
* Turn on with the command 'M111 S32'.
|
||||||
|
* NOTE: Requires a lot of PROGMEM!
|
||||||
|
*/
|
||||||
//#define DEBUG_LEVELING_FEATURE
|
//#define DEBUG_LEVELING_FEATURE
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
|
#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
|
||||||
|
|
||||||
// There are 2 different ways to specify probing locations:
|
// Set the number of grid points per dimension.
|
||||||
//
|
// Works best with 5 or more points in each dimension.
|
||||||
// - "grid" mode
|
#define ABL_GRID_POINTS_X 9
|
||||||
// Probe several points in a rectangular grid.
|
#define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
|
||||||
// You specify the rectangle and the density of sample points.
|
|
||||||
// This mode is preferred because there are more measurements.
|
|
||||||
//
|
|
||||||
// - "3-point" mode
|
|
||||||
// Probe 3 arbitrary points on the bed (that aren't collinear)
|
|
||||||
// You specify the XY coordinates of all 3 points.
|
|
||||||
|
|
||||||
// Enable this to sample the bed in a grid (least squares solution).
|
// Set the boundaries for probing (where the probe can reach).
|
||||||
// Note: this feature generates 10KB extra code size.
|
#define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10)
|
||||||
#define AUTO_BED_LEVELING_GRID // Deltas only support grid mode.
|
#define LEFT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS)
|
||||||
|
#define RIGHT_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS
|
||||||
|
#define FRONT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS)
|
||||||
|
#define BACK_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_GRID)
|
// The Z probe minimum outer margin (to validate G29 parameters).
|
||||||
|
#define MIN_PROBE_EDGE 10
|
||||||
|
|
||||||
// Set the rectangle in which to probe
|
#elif ENABLED(AUTO_BED_LEVELING_3POINT)
|
||||||
#define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10)
|
|
||||||
#define LEFT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS)
|
|
||||||
#define RIGHT_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS
|
|
||||||
#define FRONT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS)
|
|
||||||
#define BACK_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS
|
|
||||||
|
|
||||||
#define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this.
|
// 3 arbitrary points to probe.
|
||||||
|
// 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_Y 180
|
||||||
|
#define ABL_PROBE_PT_2_X 15
|
||||||
|
#define ABL_PROBE_PT_2_Y 20
|
||||||
|
#define ABL_PROBE_PT_3_X 170
|
||||||
|
#define ABL_PROBE_PT_3_Y 20
|
||||||
|
|
||||||
// Non-linear bed leveling will be used.
|
#endif
|
||||||
// Compensate by interpolating between the nearest four Z probe values for each point.
|
|
||||||
// Useful for deltas where the print surface may appear like a bowl or dome shape.
|
|
||||||
// Works best with 5 or more points in each dimension.
|
|
||||||
#define ABL_GRID_POINTS_X 9
|
|
||||||
#define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
|
|
||||||
|
|
||||||
#else // !AUTO_BED_LEVELING_GRID
|
/**
|
||||||
|
* Commands to execute at the end of G29 probing.
|
||||||
// Arbitrary points to probe.
|
* Useful to retract or move the Z probe out of the way.
|
||||||
// A simple cross-product is used to estimate the plane of the bed.
|
*/
|
||||||
#define ABL_PROBE_PT_1_X 15
|
//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"
|
||||||
#define ABL_PROBE_PT_1_Y 180
|
|
||||||
#define ABL_PROBE_PT_2_X 15
|
|
||||||
#define ABL_PROBE_PT_2_Y 20
|
|
||||||
#define ABL_PROBE_PT_3_X 170
|
|
||||||
#define ABL_PROBE_PT_3_Y 20
|
|
||||||
|
|
||||||
#endif // !AUTO_BED_LEVELING_GRID
|
|
||||||
|
|
||||||
//#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 Z probe.
|
|
||||||
|
|
||||||
// If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing,
|
|
||||||
// it is highly recommended you also enable Z_SAFE_HOMING below!
|
|
||||||
|
|
||||||
#endif // AUTO_BED_LEVELING_FEATURE
|
|
||||||
|
|
||||||
|
|
||||||
// @section homing
|
// @section homing
|
||||||
|
|
|
@ -542,7 +542,7 @@
|
||||||
// Probes are sensors/switches that are activated / deactivated before/after use.
|
// Probes are sensors/switches that are activated / deactivated before/after use.
|
||||||
//
|
//
|
||||||
// Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
|
// Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
|
||||||
// You must activate one of these to use AUTO_BED_LEVELING_FEATURE below.
|
// You must activate one of these to use Auto Bed Leveling below.
|
||||||
//
|
//
|
||||||
// Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
|
// Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
|
||||||
//
|
//
|
||||||
|
@ -808,73 +808,77 @@
|
||||||
#endif // MESH_BED_LEVELING
|
#endif // MESH_BED_LEVELING
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//============================ Bed Auto Leveling ============================
|
//============================ Auto Bed Leveling ============================
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
|
|
||||||
// @section bedlevel
|
// @section bedlevel
|
||||||
|
|
||||||
//#define AUTO_BED_LEVELING_FEATURE // Delete the comment to enable (remove // at the start of the line)
|
/**
|
||||||
|
* Select one form of Auto Bed Leveling below.
|
||||||
|
*
|
||||||
|
* If you're also using the Probe for Z Homing, it's
|
||||||
|
* highly recommended to enable Z_SAFE_HOMING also!
|
||||||
|
*
|
||||||
|
* - 3POINT
|
||||||
|
* Probe 3 arbitrary points on the bed (that aren't collinear)
|
||||||
|
* You specify the XY coordinates of all 3 points.
|
||||||
|
* The result is a single tilted plane. Best for a flat bed.
|
||||||
|
*
|
||||||
|
* - LINEAR
|
||||||
|
* Probe several points in a grid.
|
||||||
|
* You specify the rectangle and the density of sample points.
|
||||||
|
* The result is a single tilted plane. Best for a flat bed.
|
||||||
|
*
|
||||||
|
* - BILINEAR
|
||||||
|
* Probe several points in a grid.
|
||||||
|
* You specify the rectangle and the density of sample points.
|
||||||
|
* The result is a mesh, best for large or uneven beds.
|
||||||
|
*/
|
||||||
|
//#define AUTO_BED_LEVELING_3POINT
|
||||||
|
//#define AUTO_BED_LEVELING_LINEAR
|
||||||
|
//#define AUTO_BED_LEVELING_BILINEAR
|
||||||
|
|
||||||
// Enable this feature to get detailed logging of G28, G29, M48, etc.
|
/**
|
||||||
// Logging is off by default. Enable this logging feature with 'M111 S32'.
|
* Enable detailed logging of G28, G29, M48, etc.
|
||||||
// NOTE: Requires a huge amount of PROGMEM.
|
* Turn on with the command 'M111 S32'.
|
||||||
|
* NOTE: Requires a lot of PROGMEM!
|
||||||
|
*/
|
||||||
//#define DEBUG_LEVELING_FEATURE
|
//#define DEBUG_LEVELING_FEATURE
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
|
#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
|
||||||
|
|
||||||
// There are 2 different ways to specify probing locations:
|
// Set the number of grid points per dimension.
|
||||||
//
|
// Works best with 5 or more points in each dimension.
|
||||||
// - "grid" mode
|
#define ABL_GRID_POINTS_X 9
|
||||||
// Probe several points in a rectangular grid.
|
#define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
|
||||||
// You specify the rectangle and the density of sample points.
|
|
||||||
// This mode is preferred because there are more measurements.
|
|
||||||
//
|
|
||||||
// - "3-point" mode
|
|
||||||
// Probe 3 arbitrary points on the bed (that aren't collinear)
|
|
||||||
// You specify the XY coordinates of all 3 points.
|
|
||||||
|
|
||||||
// Enable this to sample the bed in a grid (least squares solution).
|
// Set the boundaries for probing (where the probe can reach).
|
||||||
// Note: this feature generates 10KB extra code size.
|
#define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10)
|
||||||
#define AUTO_BED_LEVELING_GRID // Deltas only support grid mode.
|
#define LEFT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS)
|
||||||
|
#define RIGHT_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS
|
||||||
|
#define FRONT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS)
|
||||||
|
#define BACK_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_GRID)
|
// The Z probe minimum outer margin (to validate G29 parameters).
|
||||||
|
#define MIN_PROBE_EDGE 10
|
||||||
|
|
||||||
// Set the rectangle in which to probe
|
#elif ENABLED(AUTO_BED_LEVELING_3POINT)
|
||||||
#define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10)
|
|
||||||
#define LEFT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS)
|
|
||||||
#define RIGHT_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS
|
|
||||||
#define FRONT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS)
|
|
||||||
#define BACK_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS
|
|
||||||
|
|
||||||
#define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this.
|
// 3 arbitrary points to probe.
|
||||||
|
// 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_Y 180
|
||||||
|
#define ABL_PROBE_PT_2_X 15
|
||||||
|
#define ABL_PROBE_PT_2_Y 20
|
||||||
|
#define ABL_PROBE_PT_3_X 170
|
||||||
|
#define ABL_PROBE_PT_3_Y 20
|
||||||
|
|
||||||
// Non-linear bed leveling will be used.
|
#endif
|
||||||
// Compensate by interpolating between the nearest four Z probe values for each point.
|
|
||||||
// Useful for deltas where the print surface may appear like a bowl or dome shape.
|
|
||||||
// Works best with 5 or more points in each dimension.
|
|
||||||
#define ABL_GRID_POINTS_X 9
|
|
||||||
#define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
|
|
||||||
|
|
||||||
#else // !AUTO_BED_LEVELING_GRID
|
/**
|
||||||
|
* Commands to execute at the end of G29 probing.
|
||||||
// Arbitrary points to probe.
|
* Useful to retract or move the Z probe out of the way.
|
||||||
// A simple cross-product is used to estimate the plane of the bed.
|
*/
|
||||||
#define ABL_PROBE_PT_1_X 15
|
//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"
|
||||||
#define ABL_PROBE_PT_1_Y 180
|
|
||||||
#define ABL_PROBE_PT_2_X 15
|
|
||||||
#define ABL_PROBE_PT_2_Y 20
|
|
||||||
#define ABL_PROBE_PT_3_X 170
|
|
||||||
#define ABL_PROBE_PT_3_Y 20
|
|
||||||
|
|
||||||
#endif // !AUTO_BED_LEVELING_GRID
|
|
||||||
|
|
||||||
//#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 Z probe.
|
|
||||||
|
|
||||||
// If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing,
|
|
||||||
// it is highly recommended you also enable Z_SAFE_HOMING below!
|
|
||||||
|
|
||||||
#endif // AUTO_BED_LEVELING_FEATURE
|
|
||||||
|
|
||||||
|
|
||||||
// @section homing
|
// @section homing
|
||||||
|
|
|
@ -538,7 +538,7 @@
|
||||||
// Probes are sensors/switches that are activated / deactivated before/after use.
|
// Probes are sensors/switches that are activated / deactivated before/after use.
|
||||||
//
|
//
|
||||||
// Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
|
// Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
|
||||||
// You must activate one of these to use AUTO_BED_LEVELING_FEATURE below.
|
// You must activate one of these to use Auto Bed Leveling below.
|
||||||
//
|
//
|
||||||
// Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
|
// Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
|
||||||
//
|
//
|
||||||
|
@ -809,73 +809,77 @@
|
||||||
#endif // MESH_BED_LEVELING
|
#endif // MESH_BED_LEVELING
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//============================ Bed Auto Leveling ============================
|
//============================ Auto Bed Leveling ============================
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
|
|
||||||
// @section bedlevel
|
// @section bedlevel
|
||||||
|
|
||||||
#define AUTO_BED_LEVELING_FEATURE // Delete the comment to enable (remove // at the start of the line)
|
/**
|
||||||
|
* Select one form of Auto Bed Leveling below.
|
||||||
|
*
|
||||||
|
* If you're also using the Probe for Z Homing, it's
|
||||||
|
* highly recommended to enable Z_SAFE_HOMING also!
|
||||||
|
*
|
||||||
|
* - 3POINT
|
||||||
|
* Probe 3 arbitrary points on the bed (that aren't collinear)
|
||||||
|
* You specify the XY coordinates of all 3 points.
|
||||||
|
* The result is a single tilted plane. Best for a flat bed.
|
||||||
|
*
|
||||||
|
* - LINEAR
|
||||||
|
* Probe several points in a grid.
|
||||||
|
* You specify the rectangle and the density of sample points.
|
||||||
|
* The result is a single tilted plane. Best for a flat bed.
|
||||||
|
*
|
||||||
|
* - BILINEAR
|
||||||
|
* Probe several points in a grid.
|
||||||
|
* You specify the rectangle and the density of sample points.
|
||||||
|
* The result is a mesh, best for large or uneven beds.
|
||||||
|
*/
|
||||||
|
//#define AUTO_BED_LEVELING_3POINT
|
||||||
|
//#define AUTO_BED_LEVELING_LINEAR
|
||||||
|
#define AUTO_BED_LEVELING_BILINEAR
|
||||||
|
|
||||||
// Enable this feature to get detailed logging of G28, G29, M48, etc.
|
/**
|
||||||
// Logging is off by default. Enable this logging feature with 'M111 S32'.
|
* Enable detailed logging of G28, G29, M48, etc.
|
||||||
// NOTE: Requires a huge amount of PROGMEM.
|
* Turn on with the command 'M111 S32'.
|
||||||
|
* NOTE: Requires a lot of PROGMEM!
|
||||||
|
*/
|
||||||
//#define DEBUG_LEVELING_FEATURE
|
//#define DEBUG_LEVELING_FEATURE
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
|
#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
|
||||||
|
|
||||||
// There are 2 different ways to specify probing locations:
|
// Set the number of grid points per dimension.
|
||||||
//
|
// Works best with 5 or more points in each dimension.
|
||||||
// - "grid" mode
|
#define ABL_GRID_POINTS_X 7
|
||||||
// Probe several points in a rectangular grid.
|
#define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
|
||||||
// You specify the rectangle and the density of sample points.
|
|
||||||
// This mode is preferred because there are more measurements.
|
|
||||||
//
|
|
||||||
// - "3-point" mode
|
|
||||||
// Probe 3 arbitrary points on the bed (that aren't collinear)
|
|
||||||
// You specify the XY coordinates of all 3 points.
|
|
||||||
|
|
||||||
// Enable this to sample the bed in a grid (least squares solution).
|
// Set the boundaries for probing (where the probe can reach).
|
||||||
// Note: this feature generates 10KB extra code size.
|
#define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS-25)
|
||||||
#define AUTO_BED_LEVELING_GRID // Deltas only support grid mode.
|
#define LEFT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS)
|
||||||
|
#define RIGHT_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS
|
||||||
|
#define FRONT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS)
|
||||||
|
#define BACK_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_GRID)
|
// The Z probe minimum outer margin (to validate G29 parameters).
|
||||||
|
#define MIN_PROBE_EDGE 10
|
||||||
|
|
||||||
// Set the rectangle in which to probe
|
#elif ENABLED(AUTO_BED_LEVELING_3POINT)
|
||||||
#define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS-25)
|
|
||||||
#define LEFT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS)
|
|
||||||
#define RIGHT_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS
|
|
||||||
#define FRONT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS)
|
|
||||||
#define BACK_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS
|
|
||||||
|
|
||||||
#define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this.
|
// 3 arbitrary points to probe.
|
||||||
|
// 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_Y 180
|
||||||
|
#define ABL_PROBE_PT_2_X 15
|
||||||
|
#define ABL_PROBE_PT_2_Y 20
|
||||||
|
#define ABL_PROBE_PT_3_X 170
|
||||||
|
#define ABL_PROBE_PT_3_Y 20
|
||||||
|
|
||||||
// Non-linear bed leveling will be used.
|
#endif
|
||||||
// Compensate by interpolating between the nearest four Z probe values for each point.
|
|
||||||
// Useful for deltas where the print surface may appear like a bowl or dome shape.
|
|
||||||
// Works best with 5 or more points in each dimension.
|
|
||||||
#define ABL_GRID_POINTS_X 7
|
|
||||||
#define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
|
|
||||||
|
|
||||||
#else // !AUTO_BED_LEVELING_GRID
|
/**
|
||||||
|
* Commands to execute at the end of G29 probing.
|
||||||
// Arbitrary points to probe.
|
* Useful to retract or move the Z probe out of the way.
|
||||||
// A simple cross-product is used to estimate the plane of the bed.
|
*/
|
||||||
#define ABL_PROBE_PT_1_X 15
|
//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"
|
||||||
#define ABL_PROBE_PT_1_Y 180
|
|
||||||
#define ABL_PROBE_PT_2_X 15
|
|
||||||
#define ABL_PROBE_PT_2_Y 20
|
|
||||||
#define ABL_PROBE_PT_3_X 170
|
|
||||||
#define ABL_PROBE_PT_3_Y 20
|
|
||||||
|
|
||||||
#endif // !AUTO_BED_LEVELING_GRID
|
|
||||||
|
|
||||||
//#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 Z probe.
|
|
||||||
|
|
||||||
// If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing,
|
|
||||||
// it is highly recommended you also enable Z_SAFE_HOMING below!
|
|
||||||
|
|
||||||
#endif // AUTO_BED_LEVELING_FEATURE
|
|
||||||
|
|
||||||
|
|
||||||
// @section homing
|
// @section homing
|
||||||
|
|
|
@ -548,7 +548,7 @@
|
||||||
// Probes are sensors/switches that are activated / deactivated before/after use.
|
// Probes are sensors/switches that are activated / deactivated before/after use.
|
||||||
//
|
//
|
||||||
// Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
|
// Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
|
||||||
// You must activate one of these to use AUTO_BED_LEVELING_FEATURE below.
|
// You must activate one of these to use Auto Bed Leveling below.
|
||||||
//
|
//
|
||||||
// Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
|
// Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
|
||||||
//
|
//
|
||||||
|
@ -811,73 +811,77 @@
|
||||||
#endif // MESH_BED_LEVELING
|
#endif // MESH_BED_LEVELING
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//============================ Bed Auto Leveling ============================
|
//============================ Auto Bed Leveling ============================
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
|
|
||||||
// @section bedlevel
|
// @section bedlevel
|
||||||
|
|
||||||
#define AUTO_BED_LEVELING_FEATURE // Delete the comment to enable (remove // at the start of the line)
|
/**
|
||||||
|
* Select one form of Auto Bed Leveling below.
|
||||||
|
*
|
||||||
|
* If you're also using the Probe for Z Homing, it's
|
||||||
|
* highly recommended to enable Z_SAFE_HOMING also!
|
||||||
|
*
|
||||||
|
* - 3POINT
|
||||||
|
* Probe 3 arbitrary points on the bed (that aren't collinear)
|
||||||
|
* You specify the XY coordinates of all 3 points.
|
||||||
|
* The result is a single tilted plane. Best for a flat bed.
|
||||||
|
*
|
||||||
|
* - LINEAR
|
||||||
|
* Probe several points in a grid.
|
||||||
|
* You specify the rectangle and the density of sample points.
|
||||||
|
* The result is a single tilted plane. Best for a flat bed.
|
||||||
|
*
|
||||||
|
* - BILINEAR
|
||||||
|
* Probe several points in a grid.
|
||||||
|
* You specify the rectangle and the density of sample points.
|
||||||
|
* The result is a mesh, best for large or uneven beds.
|
||||||
|
*/
|
||||||
|
//#define AUTO_BED_LEVELING_3POINT
|
||||||
|
//#define AUTO_BED_LEVELING_LINEAR
|
||||||
|
#define AUTO_BED_LEVELING_BILINEAR
|
||||||
|
|
||||||
// Enable this feature to get detailed logging of G28, G29, M48, etc.
|
/**
|
||||||
// Logging is off by default. Enable this logging feature with 'M111 S32'.
|
* Enable detailed logging of G28, G29, M48, etc.
|
||||||
// NOTE: Requires a huge amount of PROGMEM.
|
* Turn on with the command 'M111 S32'.
|
||||||
|
* NOTE: Requires a lot of PROGMEM!
|
||||||
|
*/
|
||||||
//#define DEBUG_LEVELING_FEATURE
|
//#define DEBUG_LEVELING_FEATURE
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
|
#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
|
||||||
|
|
||||||
// There are 2 different ways to specify probing locations:
|
// Set the number of grid points per dimension.
|
||||||
//
|
// Works best with 5 or more points in each dimension.
|
||||||
// - "grid" mode
|
#define ABL_GRID_POINTS_X 5
|
||||||
// Probe several points in a rectangular grid.
|
#define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
|
||||||
// You specify the rectangle and the density of sample points.
|
|
||||||
// This mode is preferred because there are more measurements.
|
|
||||||
//
|
|
||||||
// - "3-point" mode
|
|
||||||
// Probe 3 arbitrary points on the bed (that aren't collinear)
|
|
||||||
// You specify the XY coordinates of all 3 points.
|
|
||||||
|
|
||||||
// Enable this to sample the bed in a grid (least squares solution).
|
// Set the boundaries for probing (where the probe can reach).
|
||||||
// Note: this feature generates 10KB extra code size.
|
#define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10)
|
||||||
#define AUTO_BED_LEVELING_GRID // Deltas only support grid mode.
|
#define LEFT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS)
|
||||||
|
#define RIGHT_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS
|
||||||
|
#define FRONT_PROBE_BED_POSITION - (DELTA_PROBEABLE_RADIUS - 20)
|
||||||
|
#define BACK_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS - 40
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_GRID)
|
// The Z probe minimum outer margin (to validate G29 parameters).
|
||||||
|
#define MIN_PROBE_EDGE 10
|
||||||
|
|
||||||
// Set the rectangle in which to probe
|
#elif ENABLED(AUTO_BED_LEVELING_3POINT)
|
||||||
#define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10)
|
|
||||||
#define LEFT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS)
|
|
||||||
#define RIGHT_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS
|
|
||||||
#define FRONT_PROBE_BED_POSITION - (DELTA_PROBEABLE_RADIUS - 20)
|
|
||||||
#define BACK_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS - 40
|
|
||||||
|
|
||||||
#define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this.
|
// 3 arbitrary points to probe.
|
||||||
|
// 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_Y 180
|
||||||
|
#define ABL_PROBE_PT_2_X 15
|
||||||
|
#define ABL_PROBE_PT_2_Y 20
|
||||||
|
#define ABL_PROBE_PT_3_X 170
|
||||||
|
#define ABL_PROBE_PT_3_Y 20
|
||||||
|
|
||||||
// Non-linear bed leveling will be used.
|
#endif
|
||||||
// Compensate by interpolating between the nearest four Z probe values for each point.
|
|
||||||
// Useful for deltas where the print surface may appear like a bowl or dome shape.
|
|
||||||
// Works best with 5 or more points in each dimension.
|
|
||||||
#define ABL_GRID_POINTS_X 5
|
|
||||||
#define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
|
|
||||||
|
|
||||||
#else // !AUTO_BED_LEVELING_GRID
|
/**
|
||||||
|
* Commands to execute at the end of G29 probing.
|
||||||
// Arbitrary points to probe.
|
* Useful to retract or move the Z probe out of the way.
|
||||||
// A simple cross-product is used to estimate the plane of the bed.
|
*/
|
||||||
#define ABL_PROBE_PT_1_X 15
|
//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"
|
||||||
#define ABL_PROBE_PT_1_Y 180
|
|
||||||
#define ABL_PROBE_PT_2_X 15
|
|
||||||
#define ABL_PROBE_PT_2_Y 20
|
|
||||||
#define ABL_PROBE_PT_3_X 170
|
|
||||||
#define ABL_PROBE_PT_3_Y 20
|
|
||||||
|
|
||||||
#endif // !AUTO_BED_LEVELING_GRID
|
|
||||||
|
|
||||||
//#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 Z probe.
|
|
||||||
|
|
||||||
// If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing,
|
|
||||||
// it is highly recommended you also enable Z_SAFE_HOMING below!
|
|
||||||
|
|
||||||
#endif // AUTO_BED_LEVELING_FEATURE
|
|
||||||
|
|
||||||
|
|
||||||
// @section homing
|
// @section homing
|
||||||
|
|
|
@ -502,7 +502,7 @@
|
||||||
// Probes are sensors/switches that are activated / deactivated before/after use.
|
// Probes are sensors/switches that are activated / deactivated before/after use.
|
||||||
//
|
//
|
||||||
// Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
|
// Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
|
||||||
// You must activate one of these to use AUTO_BED_LEVELING_FEATURE below.
|
// You must activate one of these to use Auto Bed Leveling below.
|
||||||
//
|
//
|
||||||
// Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
|
// Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
|
||||||
//
|
//
|
||||||
|
@ -724,69 +724,75 @@
|
||||||
#endif // MESH_BED_LEVELING
|
#endif // MESH_BED_LEVELING
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//============================ Bed Auto Leveling ============================
|
//============================ Auto Bed Leveling ============================
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
|
|
||||||
// @section bedlevel
|
// @section bedlevel
|
||||||
|
|
||||||
//#define AUTO_BED_LEVELING_FEATURE // Delete the comment to enable (remove // at the start of the line)
|
/**
|
||||||
|
* Select one form of Auto Bed Leveling below.
|
||||||
|
*
|
||||||
|
* If you're also using the Probe for Z Homing, it's
|
||||||
|
* highly recommended to enable Z_SAFE_HOMING also!
|
||||||
|
*
|
||||||
|
* - 3POINT
|
||||||
|
* Probe 3 arbitrary points on the bed (that aren't collinear)
|
||||||
|
* You specify the XY coordinates of all 3 points.
|
||||||
|
* The result is a single tilted plane. Best for a flat bed.
|
||||||
|
*
|
||||||
|
* - LINEAR
|
||||||
|
* Probe several points in a grid.
|
||||||
|
* You specify the rectangle and the density of sample points.
|
||||||
|
* The result is a single tilted plane. Best for a flat bed.
|
||||||
|
*
|
||||||
|
* - BILINEAR
|
||||||
|
* Probe several points in a grid.
|
||||||
|
* You specify the rectangle and the density of sample points.
|
||||||
|
* The result is a mesh, best for large or uneven beds.
|
||||||
|
*/
|
||||||
|
//#define AUTO_BED_LEVELING_3POINT
|
||||||
|
//#define AUTO_BED_LEVELING_LINEAR
|
||||||
|
//#define AUTO_BED_LEVELING_BILINEAR
|
||||||
|
|
||||||
// Enable this feature to get detailed logging of G28, G29, M48, etc.
|
/**
|
||||||
// Logging is off by default. Enable this logging feature with 'M111 S32'.
|
* Enable detailed logging of G28, G29, M48, etc.
|
||||||
// NOTE: Requires a huge amount of PROGMEM.
|
* Turn on with the command 'M111 S32'.
|
||||||
|
* NOTE: Requires a lot of PROGMEM!
|
||||||
|
*/
|
||||||
//#define DEBUG_LEVELING_FEATURE
|
//#define DEBUG_LEVELING_FEATURE
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
|
#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
|
||||||
|
|
||||||
// There are 2 different ways to specify probing locations:
|
// Set the number of grid points per dimension.
|
||||||
//
|
#define ABL_GRID_POINTS_X 3
|
||||||
// - "grid" mode
|
#define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
|
||||||
// Probe several points in a rectangular grid.
|
|
||||||
// You specify the rectangle and the density of sample points.
|
|
||||||
// This mode is preferred because there are more measurements.
|
|
||||||
//
|
|
||||||
// - "3-point" mode
|
|
||||||
// Probe 3 arbitrary points on the bed (that aren't collinear)
|
|
||||||
// You specify the XY coordinates of all 3 points.
|
|
||||||
|
|
||||||
// Enable this to sample the bed in a grid (least squares solution).
|
// Set the boundaries for probing (where the probe can reach).
|
||||||
// Note: this feature generates 10KB extra code size.
|
#define LEFT_PROBE_BED_POSITION 15
|
||||||
#define AUTO_BED_LEVELING_GRID
|
#define RIGHT_PROBE_BED_POSITION 170
|
||||||
|
#define FRONT_PROBE_BED_POSITION 20
|
||||||
|
#define BACK_PROBE_BED_POSITION 170
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_GRID)
|
// The Z probe minimum outer margin (to validate G29 parameters).
|
||||||
|
#define MIN_PROBE_EDGE 10
|
||||||
|
|
||||||
#define LEFT_PROBE_BED_POSITION 15
|
#elif ENABLED(AUTO_BED_LEVELING_3POINT)
|
||||||
#define RIGHT_PROBE_BED_POSITION 170
|
|
||||||
#define FRONT_PROBE_BED_POSITION 20
|
|
||||||
#define BACK_PROBE_BED_POSITION 170
|
|
||||||
|
|
||||||
#define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this.
|
// 3 arbitrary points to probe.
|
||||||
|
// 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_Y 180
|
||||||
|
#define ABL_PROBE_PT_2_X 15
|
||||||
|
#define ABL_PROBE_PT_2_Y 20
|
||||||
|
#define ABL_PROBE_PT_3_X 170
|
||||||
|
#define ABL_PROBE_PT_3_Y 20
|
||||||
|
|
||||||
// Set the number of grid points per dimension.
|
#endif
|
||||||
// You probably don't need more than 3 (squared=9).
|
|
||||||
#define ABL_GRID_POINTS_X 3
|
|
||||||
#define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
|
|
||||||
|
|
||||||
#else // !AUTO_BED_LEVELING_GRID
|
/**
|
||||||
|
* Commands to execute at the end of G29 probing.
|
||||||
// Arbitrary points to probe.
|
* Useful to retract or move the Z probe out of the way.
|
||||||
// A simple cross-product is used to estimate the plane of the bed.
|
*/
|
||||||
#define ABL_PROBE_PT_1_X 15
|
//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"
|
||||||
#define ABL_PROBE_PT_1_Y 180
|
|
||||||
#define ABL_PROBE_PT_2_X 15
|
|
||||||
#define ABL_PROBE_PT_2_Y 20
|
|
||||||
#define ABL_PROBE_PT_3_X 170
|
|
||||||
#define ABL_PROBE_PT_3_Y 20
|
|
||||||
|
|
||||||
#endif // !AUTO_BED_LEVELING_GRID
|
|
||||||
|
|
||||||
//#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 Z probe.
|
|
||||||
|
|
||||||
// If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing,
|
|
||||||
// it is highly recommended you also enable Z_SAFE_HOMING below!
|
|
||||||
|
|
||||||
#endif // AUTO_BED_LEVELING_FEATURE
|
|
||||||
|
|
||||||
|
|
||||||
// @section homing
|
// @section homing
|
||||||
|
|
|
@ -495,7 +495,7 @@
|
||||||
// Probes are sensors/switches that are activated / deactivated before/after use.
|
// Probes are sensors/switches that are activated / deactivated before/after use.
|
||||||
//
|
//
|
||||||
// Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
|
// Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
|
||||||
// You must activate one of these to use AUTO_BED_LEVELING_FEATURE below.
|
// You must activate one of these to use Auto Bed Leveling below.
|
||||||
//
|
//
|
||||||
// Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
|
// Use M851 to set the Z probe vertical offset from the nozzle. Store with M500.
|
||||||
//
|
//
|
||||||
|
@ -717,69 +717,75 @@
|
||||||
#endif // MESH_BED_LEVELING
|
#endif // MESH_BED_LEVELING
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//============================ Bed Auto Leveling ============================
|
//============================ Auto Bed Leveling ============================
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
|
|
||||||
// @section bedlevel
|
// @section bedlevel
|
||||||
|
|
||||||
//#define AUTO_BED_LEVELING_FEATURE // Delete the comment to enable (remove // at the start of the line)
|
/**
|
||||||
|
* Select one form of Auto Bed Leveling below.
|
||||||
|
*
|
||||||
|
* If you're also using the Probe for Z Homing, it's
|
||||||
|
* highly recommended to enable Z_SAFE_HOMING also!
|
||||||
|
*
|
||||||
|
* - 3POINT
|
||||||
|
* Probe 3 arbitrary points on the bed (that aren't collinear)
|
||||||
|
* You specify the XY coordinates of all 3 points.
|
||||||
|
* The result is a single tilted plane. Best for a flat bed.
|
||||||
|
*
|
||||||
|
* - LINEAR
|
||||||
|
* Probe several points in a grid.
|
||||||
|
* You specify the rectangle and the density of sample points.
|
||||||
|
* The result is a single tilted plane. Best for a flat bed.
|
||||||
|
*
|
||||||
|
* - BILINEAR
|
||||||
|
* Probe several points in a grid.
|
||||||
|
* You specify the rectangle and the density of sample points.
|
||||||
|
* The result is a mesh, best for large or uneven beds.
|
||||||
|
*/
|
||||||
|
//#define AUTO_BED_LEVELING_3POINT
|
||||||
|
//#define AUTO_BED_LEVELING_LINEAR
|
||||||
|
//#define AUTO_BED_LEVELING_BILINEAR
|
||||||
|
|
||||||
// Enable this feature to get detailed logging of G28, G29, M48, etc.
|
/**
|
||||||
// Logging is off by default. Enable this logging feature with 'M111 S32'.
|
* Enable detailed logging of G28, G29, M48, etc.
|
||||||
// NOTE: Requires a huge amount of PROGMEM.
|
* Turn on with the command 'M111 S32'.
|
||||||
|
* NOTE: Requires a lot of PROGMEM!
|
||||||
|
*/
|
||||||
//#define DEBUG_LEVELING_FEATURE
|
//#define DEBUG_LEVELING_FEATURE
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
|
#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
|
||||||
|
|
||||||
// There are 2 different ways to specify probing locations:
|
// Set the number of grid points per dimension.
|
||||||
//
|
#define ABL_GRID_POINTS_X 3
|
||||||
// - "grid" mode
|
#define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
|
||||||
// Probe several points in a rectangular grid.
|
|
||||||
// You specify the rectangle and the density of sample points.
|
|
||||||
// This mode is preferred because there are more measurements.
|
|
||||||
//
|
|
||||||
// - "3-point" mode
|
|
||||||
// Probe 3 arbitrary points on the bed (that aren't collinear)
|
|
||||||
// You specify the XY coordinates of all 3 points.
|
|
||||||
|
|
||||||
// Enable this to sample the bed in a grid (least squares solution).
|
// Set the boundaries for probing (where the probe can reach).
|
||||||
// Note: this feature generates 10KB extra code size.
|
#define LEFT_PROBE_BED_POSITION 15
|
||||||
#define AUTO_BED_LEVELING_GRID
|
#define RIGHT_PROBE_BED_POSITION 170
|
||||||
|
#define FRONT_PROBE_BED_POSITION 20
|
||||||
|
#define BACK_PROBE_BED_POSITION 170
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_GRID)
|
// The Z probe minimum outer margin (to validate G29 parameters).
|
||||||
|
#define MIN_PROBE_EDGE 10
|
||||||
|
|
||||||
#define LEFT_PROBE_BED_POSITION 15
|
#elif ENABLED(AUTO_BED_LEVELING_3POINT)
|
||||||
#define RIGHT_PROBE_BED_POSITION 170
|
|
||||||
#define FRONT_PROBE_BED_POSITION 20
|
|
||||||
#define BACK_PROBE_BED_POSITION 170
|
|
||||||
|
|
||||||
#define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this.
|
// 3 arbitrary points to probe.
|
||||||
|
// 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_Y 180
|
||||||
|
#define ABL_PROBE_PT_2_X 15
|
||||||
|
#define ABL_PROBE_PT_2_Y 20
|
||||||
|
#define ABL_PROBE_PT_3_X 170
|
||||||
|
#define ABL_PROBE_PT_3_Y 20
|
||||||
|
|
||||||
// Set the number of grid points per dimension.
|
#endif
|
||||||
// You probably don't need more than 3 (squared=9).
|
|
||||||
#define ABL_GRID_POINTS_X 3
|
|
||||||
#define ABL_GRID_POINTS_Y ABL_GRID_POINTS_X
|
|
||||||
|
|
||||||
#else // !AUTO_BED_LEVELING_GRID
|
/**
|
||||||
|
* Commands to execute at the end of G29 probing.
|
||||||
// Arbitrary points to probe.
|
* Useful to retract or move the Z probe out of the way.
|
||||||
// A simple cross-product is used to estimate the plane of the bed.
|
*/
|
||||||
#define ABL_PROBE_PT_1_X 15
|
//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"
|
||||||
#define ABL_PROBE_PT_1_Y 180
|
|
||||||
#define ABL_PROBE_PT_2_X 15
|
|
||||||
#define ABL_PROBE_PT_2_Y 20
|
|
||||||
#define ABL_PROBE_PT_3_X 170
|
|
||||||
#define ABL_PROBE_PT_3_Y 20
|
|
||||||
|
|
||||||
#endif // !AUTO_BED_LEVELING_GRID
|
|
||||||
|
|
||||||
//#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 Z probe.
|
|
||||||
|
|
||||||
// If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing,
|
|
||||||
// it is highly recommended you also enable Z_SAFE_HOMING below!
|
|
||||||
|
|
||||||
#endif // AUTO_BED_LEVELING_FEATURE
|
|
||||||
|
|
||||||
|
|
||||||
// @section homing
|
// @section homing
|
||||||
|
|
|
@ -98,11 +98,11 @@ float Planner::min_feedrate_mm_s,
|
||||||
Planner::max_e_jerk,
|
Planner::max_e_jerk,
|
||||||
Planner::min_travel_feedrate_mm_s;
|
Planner::min_travel_feedrate_mm_s;
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
|
#if HAS_ABL
|
||||||
bool Planner::abl_enabled = false; // Flag that auto bed leveling is enabled
|
bool Planner::abl_enabled = false; // Flag that auto bed leveling is enabled
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_LINEAR)
|
#if ABL_PLANAR
|
||||||
matrix_3x3 Planner::bed_level_matrix; // Transform to compensate for bed level
|
matrix_3x3 Planner::bed_level_matrix; // Transform to compensate for bed level
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -142,7 +142,7 @@ void Planner::init() {
|
||||||
memset(position, 0, sizeof(position));
|
memset(position, 0, sizeof(position));
|
||||||
memset(previous_speed, 0, sizeof(previous_speed));
|
memset(previous_speed, 0, sizeof(previous_speed));
|
||||||
previous_nominal_speed = 0.0;
|
previous_nominal_speed = 0.0;
|
||||||
#if ENABLED(AUTO_BED_LEVELING_LINEAR)
|
#if ABL_PLANAR
|
||||||
bed_level_matrix.set_to_identity();
|
bed_level_matrix.set_to_identity();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -529,7 +529,7 @@ void Planner::check_axes_activity() {
|
||||||
|
|
||||||
void Planner::apply_leveling(float &lx, float &ly, float &lz) {
|
void Planner::apply_leveling(float &lx, float &ly, float &lz) {
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
|
#if HAS_ABL
|
||||||
if (!abl_enabled) return;
|
if (!abl_enabled) return;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -538,7 +538,7 @@ void Planner::check_axes_activity() {
|
||||||
if (mbl.active())
|
if (mbl.active())
|
||||||
lz += mbl.get_z(RAW_X_POSITION(lx), RAW_Y_POSITION(ly));
|
lz += mbl.get_z(RAW_X_POSITION(lx), RAW_Y_POSITION(ly));
|
||||||
|
|
||||||
#elif ENABLED(AUTO_BED_LEVELING_LINEAR)
|
#elif ABL_PLANAR
|
||||||
|
|
||||||
float dx = RAW_X_POSITION(lx) - (X_TILT_FULCRUM),
|
float dx = RAW_X_POSITION(lx) - (X_TILT_FULCRUM),
|
||||||
dy = RAW_Y_POSITION(ly) - (Y_TILT_FULCRUM),
|
dy = RAW_Y_POSITION(ly) - (Y_TILT_FULCRUM),
|
||||||
|
@ -550,20 +550,20 @@ void Planner::check_axes_activity() {
|
||||||
ly = LOGICAL_Y_POSITION(dy + Y_TILT_FULCRUM);
|
ly = LOGICAL_Y_POSITION(dy + Y_TILT_FULCRUM);
|
||||||
lz = LOGICAL_Z_POSITION(dz);
|
lz = LOGICAL_Z_POSITION(dz);
|
||||||
|
|
||||||
#elif ENABLED(AUTO_BED_LEVELING_NONLINEAR)
|
#elif ENABLED(AUTO_BED_LEVELING_BILINEAR)
|
||||||
|
|
||||||
float tmp[XYZ] = { lx, ly, 0 };
|
float tmp[XYZ] = { lx, ly, 0 };
|
||||||
|
|
||||||
#if ENABLED(DELTA)
|
#if ENABLED(DELTA)
|
||||||
|
|
||||||
float offset = nonlinear_z_offset(tmp);
|
float offset = bilinear_z_offset(tmp);
|
||||||
lx += offset;
|
lx += offset;
|
||||||
ly += offset;
|
ly += offset;
|
||||||
lz += offset;
|
lz += offset;
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
lz += nonlinear_z_offset(tmp);
|
lz += bilinear_z_offset(tmp);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -572,7 +572,7 @@ void Planner::check_axes_activity() {
|
||||||
|
|
||||||
void Planner::unapply_leveling(float logical[XYZ]) {
|
void Planner::unapply_leveling(float logical[XYZ]) {
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
|
#if HAS_ABL
|
||||||
if (!abl_enabled) return;
|
if (!abl_enabled) return;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -581,7 +581,7 @@ void Planner::check_axes_activity() {
|
||||||
if (mbl.active())
|
if (mbl.active())
|
||||||
logical[Z_AXIS] -= mbl.get_z(RAW_X_POSITION(logical[X_AXIS]), RAW_Y_POSITION(logical[Y_AXIS]));
|
logical[Z_AXIS] -= mbl.get_z(RAW_X_POSITION(logical[X_AXIS]), RAW_Y_POSITION(logical[Y_AXIS]));
|
||||||
|
|
||||||
#elif ENABLED(AUTO_BED_LEVELING_LINEAR)
|
#elif ABL_PLANAR
|
||||||
|
|
||||||
matrix_3x3 inverse = matrix_3x3::transpose(bed_level_matrix);
|
matrix_3x3 inverse = matrix_3x3::transpose(bed_level_matrix);
|
||||||
|
|
||||||
|
@ -595,9 +595,9 @@ void Planner::check_axes_activity() {
|
||||||
logical[Y_AXIS] = LOGICAL_Y_POSITION(dy + Y_TILT_FULCRUM);
|
logical[Y_AXIS] = LOGICAL_Y_POSITION(dy + Y_TILT_FULCRUM);
|
||||||
logical[Z_AXIS] = LOGICAL_Z_POSITION(dz);
|
logical[Z_AXIS] = LOGICAL_Z_POSITION(dz);
|
||||||
|
|
||||||
#elif ENABLED(AUTO_BED_LEVELING_NONLINEAR)
|
#elif ENABLED(AUTO_BED_LEVELING_BILINEAR)
|
||||||
|
|
||||||
logical[Z_AXIS] -= nonlinear_z_offset(logical);
|
logical[Z_AXIS] -= bilinear_z_offset(logical);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,7 +35,7 @@
|
||||||
#include "types.h"
|
#include "types.h"
|
||||||
#include "MarlinConfig.h"
|
#include "MarlinConfig.h"
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
|
#if HAS_ABL
|
||||||
#include "vector_3.h"
|
#include "vector_3.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -136,7 +136,7 @@ class Planner {
|
||||||
static float max_e_jerk;
|
static float max_e_jerk;
|
||||||
static float min_travel_feedrate_mm_s;
|
static float min_travel_feedrate_mm_s;
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
|
#if HAS_ABL
|
||||||
static bool abl_enabled; // Flag that bed leveling is enabled
|
static bool abl_enabled; // Flag that bed leveling is enabled
|
||||||
static matrix_3x3 bed_level_matrix; // Transform to compensate for bed level
|
static matrix_3x3 bed_level_matrix; // Transform to compensate for bed level
|
||||||
#endif
|
#endif
|
||||||
|
@ -202,7 +202,7 @@ class Planner {
|
||||||
|
|
||||||
static bool is_full() { return (block_buffer_tail == BLOCK_MOD(block_buffer_head + 1)); }
|
static bool is_full() { return (block_buffer_tail == BLOCK_MOD(block_buffer_head + 1)); }
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_FEATURE) || ENABLED(MESH_BED_LEVELING)
|
#if HAS_ABL || ENABLED(MESH_BED_LEVELING)
|
||||||
#define ARG_X float lx
|
#define ARG_X float lx
|
||||||
#define ARG_Y float ly
|
#define ARG_Y float ly
|
||||||
#define ARG_Z float lz
|
#define ARG_Z float lz
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
|
|
||||||
#include "qr_solve.h"
|
#include "qr_solve.h"
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_LINEAR_GRID)
|
#if ENABLED(AUTO_BED_LEVELING_LINEAR)
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
|
|
||||||
#include "MarlinConfig.h"
|
#include "MarlinConfig.h"
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_GRID)
|
#if ENABLED(AUTO_BED_LEVELING_LINEAR)
|
||||||
|
|
||||||
void daxpy(int n, float da, float dx[], int incx, float dy[], int incy);
|
void daxpy(int n, float da, float dx[], int incx, float dy[], int incy);
|
||||||
float ddot(int n, float dx[], int incx, float dy[], int incy);
|
float ddot(int n, float dx[], int incx, float dy[], int incy);
|
||||||
|
|
|
@ -1212,7 +1212,7 @@ void kill_screen(const char* lcd_msg) {
|
||||||
//
|
//
|
||||||
// Level Bed
|
// Level Bed
|
||||||
//
|
//
|
||||||
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
|
#if HAS_ABL
|
||||||
MENU_ITEM(gcode, MSG_LEVEL_BED,
|
MENU_ITEM(gcode, MSG_LEVEL_BED,
|
||||||
axis_homed[X_AXIS] && axis_homed[Y_AXIS] ? PSTR("G29") : PSTR("G28\nG29")
|
axis_homed[X_AXIS] && axis_homed[Y_AXIS] ? PSTR("G29") : PSTR("G28\nG29")
|
||||||
);
|
);
|
||||||
|
|
|
@ -41,7 +41,7 @@
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include "Marlin.h"
|
#include "Marlin.h"
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
|
#if HAS_ABL
|
||||||
#include "vector_3.h"
|
#include "vector_3.h"
|
||||||
|
|
||||||
vector_3::vector_3() : x(0), y(0), z(0) { }
|
vector_3::vector_3() : x(0), y(0), z(0) { }
|
||||||
|
@ -156,5 +156,5 @@ void matrix_3x3::debug(const char title[]) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // AUTO_BED_LEVELING_FEATURE
|
#endif // HAS_ABL
|
||||||
|
|
||||||
|
|
|
@ -41,7 +41,7 @@
|
||||||
#ifndef VECTOR_3_H
|
#ifndef VECTOR_3_H
|
||||||
#define VECTOR_3_H
|
#define VECTOR_3_H
|
||||||
|
|
||||||
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
|
#if HAS_ABL
|
||||||
class matrix_3x3;
|
class matrix_3x3;
|
||||||
|
|
||||||
struct vector_3 {
|
struct vector_3 {
|
||||||
|
@ -77,6 +77,6 @@ struct matrix_3x3 {
|
||||||
|
|
||||||
|
|
||||||
void apply_rotation_xyz(matrix_3x3 rotationMatrix, float& x, float& y, float& z);
|
void apply_rotation_xyz(matrix_3x3 rotationMatrix, float& x, float& y, float& z);
|
||||||
#endif // AUTO_BED_LEVELING_FEATURE
|
#endif // HAS_ABL
|
||||||
|
|
||||||
#endif // VECTOR_3_H
|
#endif // VECTOR_3_H
|
||||||
|
|
Reference in a new issue