Merge pull request #6031 from thinkyhead/rc_mbl_z_unhack
MBL: Disable sw endstops instead of altering Z
This commit is contained in:
commit
d15f25539b
|
@ -369,4 +369,6 @@
|
||||||
#undef Z_MIN_PROBE_ENDSTOP
|
#undef Z_MIN_PROBE_ENDSTOP
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define HAS_SOFTWARE_ENDSTOPS (ENABLED(MIN_SOFTWARE_ENDSTOPS) || ENABLED(MAX_SOFTWARE_ENDSTOPS))
|
||||||
|
|
||||||
#endif //CONDITIONALS_LCD_H
|
#endif //CONDITIONALS_LCD_H
|
||||||
|
|
|
@ -709,6 +709,11 @@
|
||||||
#ifndef Z_CLEARANCE_BETWEEN_PROBES
|
#ifndef Z_CLEARANCE_BETWEEN_PROBES
|
||||||
#define Z_CLEARANCE_BETWEEN_PROBES Z_HOMING_HEIGHT
|
#define Z_CLEARANCE_BETWEEN_PROBES Z_HOMING_HEIGHT
|
||||||
#endif
|
#endif
|
||||||
|
#if Z_CLEARANCE_BETWEEN_PROBES > Z_HOMING_HEIGHT
|
||||||
|
#define MANUAL_PROBE_HEIGHT Z_CLEARANCE_BETWEEN_PROBES
|
||||||
|
#else
|
||||||
|
#define MANUAL_PROBE_HEIGHT Z_HOMING_HEIGHT
|
||||||
|
#endif
|
||||||
|
|
||||||
#if IS_KINEMATIC
|
#if IS_KINEMATIC
|
||||||
// Check for this in the code instead
|
// Check for this in the code instead
|
||||||
|
|
|
@ -705,16 +705,12 @@
|
||||||
//#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
|
//#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
|
||||||
// Be sure you have this distance over your Z_MAX_POS in case.
|
// Be sure you have this distance over your Z_MAX_POS in case.
|
||||||
|
|
||||||
// ENDSTOP SETTINGS:
|
// Direction of endstops when homing; 1=MAX, -1=MIN
|
||||||
// Sets direction of endstops when homing; 1=MAX, -1=MIN
|
// :[-1,1]
|
||||||
// :[-1, 1]
|
|
||||||
#define X_HOME_DIR -1
|
#define X_HOME_DIR -1
|
||||||
#define Y_HOME_DIR -1
|
#define Y_HOME_DIR -1
|
||||||
#define Z_HOME_DIR -1
|
#define Z_HOME_DIR -1
|
||||||
|
|
||||||
#define min_software_endstops true // If true, axis won't move to coordinates less than HOME_POS.
|
|
||||||
#define max_software_endstops true // If true, axis won't move to coordinates greater than the defined lengths below.
|
|
||||||
|
|
||||||
// @section machine
|
// @section machine
|
||||||
|
|
||||||
// Travel limits after homing (units are in mm)
|
// Travel limits after homing (units are in mm)
|
||||||
|
@ -725,6 +721,11 @@
|
||||||
#define Y_MAX_POS 200
|
#define Y_MAX_POS 200
|
||||||
#define Z_MAX_POS 200
|
#define Z_MAX_POS 200
|
||||||
|
|
||||||
|
// If enabled, axes won't move below MIN_POS in response to movement commands.
|
||||||
|
#define MIN_SOFTWARE_ENDSTOPS
|
||||||
|
// If enabled, axes won't move above MAX_POS in response to movement commands.
|
||||||
|
#define MAX_SOFTWARE_ENDSTOPS
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Filament Runout Sensor
|
* Filament Runout Sensor
|
||||||
* A mechanical or opto endstop is used to check for the presence of filament.
|
* A mechanical or opto endstop is used to check for the presence of filament.
|
||||||
|
@ -750,9 +751,9 @@
|
||||||
#define MESH_INSET 10 // Mesh inset margin on print area
|
#define MESH_INSET 10 // Mesh inset margin on print area
|
||||||
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
|
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
|
||||||
#define MESH_NUM_Y_POINTS 3
|
#define MESH_NUM_Y_POINTS 3
|
||||||
#define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0.
|
#define MANUAL_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
|
||||||
|
|
||||||
//#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest at origin [0,0,0]
|
//#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS
|
||||||
|
|
||||||
//#define MANUAL_BED_LEVELING // Add display menu option for bed leveling.
|
//#define MANUAL_BED_LEVELING // Add display menu option for bed leveling.
|
||||||
|
|
||||||
|
|
|
@ -304,7 +304,7 @@ extern float current_position[NUM_AXIS];
|
||||||
extern float soft_endstop_min[XYZ];
|
extern float soft_endstop_min[XYZ];
|
||||||
extern float soft_endstop_max[XYZ];
|
extern float soft_endstop_max[XYZ];
|
||||||
|
|
||||||
#if ENABLED(min_software_endstops) || ENABLED(max_software_endstops)
|
#if HAS_SOFTWARE_ENDSTOPS
|
||||||
extern bool soft_endstops_enabled;
|
extern bool soft_endstops_enabled;
|
||||||
void clamp_to_software_endstops(float target[XYZ]);
|
void clamp_to_software_endstops(float target[XYZ]);
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -414,7 +414,7 @@ float filament_size[EXTRUDERS] = ARRAY_BY_EXTRUDERS1(DEFAULT_NOMINAL_FILAMENT_DI
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Software Endstops are based on the configured limits.
|
// Software Endstops are based on the configured limits.
|
||||||
#if ENABLED(min_software_endstops) || ENABLED(max_software_endstops)
|
#if HAS_SOFTWARE_ENDSTOPS
|
||||||
bool soft_endstops_enabled = true;
|
bool soft_endstops_enabled = true;
|
||||||
#endif
|
#endif
|
||||||
float soft_endstop_min[XYZ] = { X_MIN_POS, Y_MIN_POS, Z_MIN_POS },
|
float soft_endstop_min[XYZ] = { X_MIN_POS, Y_MIN_POS, Z_MIN_POS },
|
||||||
|
@ -3450,7 +3450,7 @@ inline void gcode_G28() {
|
||||||
stepper.synchronize();
|
stepper.synchronize();
|
||||||
|
|
||||||
// Disable the leveling matrix before homing
|
// Disable the leveling matrix before homing
|
||||||
#if PLANNER_LEVELING
|
#if PLANNER_LEVELING || ENABLED(MESH_BED_LEVELING)
|
||||||
set_bed_leveling_enabled(false);
|
set_bed_leveling_enabled(false);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -3464,31 +3464,6 @@ inline void gcode_G28() {
|
||||||
extruder_duplication_enabled = false;
|
extruder_duplication_enabled = false;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
|
||||||
* For mesh bed leveling deactivate the mesh calculations, will be turned
|
|
||||||
* on again when homing all axis
|
|
||||||
*/
|
|
||||||
#if ENABLED(MESH_BED_LEVELING)
|
|
||||||
float pre_home_z = MESH_HOME_SEARCH_Z;
|
|
||||||
if (mbl.active()) {
|
|
||||||
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
|
||||||
if (DEBUGGING(LEVELING)) SERIAL_ECHOLNPGM("MBL was active");
|
|
||||||
#endif
|
|
||||||
// Use known Z position if already homed
|
|
||||||
if (axis_homed[X_AXIS] && axis_homed[Y_AXIS] && axis_homed[Z_AXIS]) {
|
|
||||||
set_bed_leveling_enabled(false);
|
|
||||||
pre_home_z = current_position[Z_AXIS];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
mbl.set_active(false);
|
|
||||||
current_position[Z_AXIS] = pre_home_z;
|
|
||||||
}
|
|
||||||
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
|
||||||
if (DEBUGGING(LEVELING)) DEBUG_POS("Set Z to pre_home_z", current_position);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
setup_for_endstop_or_probe_move();
|
setup_for_endstop_or_probe_move();
|
||||||
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
||||||
if (DEBUGGING(LEVELING)) SERIAL_ECHOLNPGM("> endstops.enable(true)");
|
if (DEBUGGING(LEVELING)) SERIAL_ECHOLNPGM("> endstops.enable(true)");
|
||||||
|
@ -3620,43 +3595,14 @@ inline void gcode_G28() {
|
||||||
|
|
||||||
// Enable mesh leveling again
|
// Enable mesh leveling again
|
||||||
#if ENABLED(MESH_BED_LEVELING)
|
#if ENABLED(MESH_BED_LEVELING)
|
||||||
if (mbl.has_mesh()) {
|
if (mbl.reactivate()) {
|
||||||
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
set_bed_leveling_enabled(true);
|
||||||
if (DEBUGGING(LEVELING)) SERIAL_ECHOLNPGM("MBL has mesh");
|
|
||||||
#endif
|
|
||||||
if (home_all_axis || (axis_homed[X_AXIS] && axis_homed[Y_AXIS] && homeZ)) {
|
if (home_all_axis || (axis_homed[X_AXIS] && axis_homed[Y_AXIS] && homeZ)) {
|
||||||
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
|
||||||
if (DEBUGGING(LEVELING)) SERIAL_ECHOLNPGM("MBL Z homing");
|
|
||||||
#endif
|
|
||||||
current_position[Z_AXIS] = MESH_HOME_SEARCH_Z
|
|
||||||
#if Z_HOME_DIR > 0
|
|
||||||
+ Z_MAX_POS
|
|
||||||
#endif
|
|
||||||
;
|
|
||||||
SYNC_PLAN_POSITION_KINEMATIC();
|
|
||||||
mbl.set_active(true);
|
|
||||||
#if ENABLED(MESH_G28_REST_ORIGIN)
|
#if ENABLED(MESH_G28_REST_ORIGIN)
|
||||||
current_position[Z_AXIS] = 0.0;
|
current_position[Z_AXIS] = LOGICAL_Z_POSITION(Z_MIN_POS);
|
||||||
set_destination_to_current();
|
set_destination_to_current();
|
||||||
line_to_destination(homing_feedrate_mm_s[Z_AXIS]);
|
line_to_destination(homing_feedrate_mm_s[Z_AXIS]);
|
||||||
stepper.synchronize();
|
stepper.synchronize();
|
||||||
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
|
||||||
if (DEBUGGING(LEVELING)) DEBUG_POS("MBL Rest Origin", current_position);
|
|
||||||
#endif
|
|
||||||
#else
|
|
||||||
planner.unapply_leveling(current_position);
|
|
||||||
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
|
||||||
if (DEBUGGING(LEVELING)) DEBUG_POS("MBL adjusted MESH_HOME_SEARCH_Z", current_position);
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
else if ((axis_homed[X_AXIS] && axis_homed[Y_AXIS] && axis_homed[Z_AXIS]) && (homeX || homeY)) {
|
|
||||||
current_position[Z_AXIS] = pre_home_z;
|
|
||||||
SYNC_PLAN_POSITION_KINEMATIC();
|
|
||||||
mbl.set_active(true);
|
|
||||||
planner.unapply_leveling(current_position);
|
|
||||||
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
|
||||||
if (DEBUGGING(LEVELING)) DEBUG_POS("MBL Home X or Y", current_position);
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3664,16 +3610,16 @@ inline void gcode_G28() {
|
||||||
|
|
||||||
clean_up_after_endstop_or_probe_move();
|
clean_up_after_endstop_or_probe_move();
|
||||||
|
|
||||||
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
|
||||||
if (DEBUGGING(LEVELING)) SERIAL_ECHOLNPGM("<<< gcode_G28");
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Restore the active tool after homing
|
// Restore the active tool after homing
|
||||||
#if HOTENDS > 1
|
#if HOTENDS > 1
|
||||||
tool_change(old_tool_index, 0, true);
|
tool_change(old_tool_index, 0, true);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
report_current_position();
|
report_current_position();
|
||||||
|
|
||||||
|
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
||||||
|
if (DEBUGGING(LEVELING)) SERIAL_ECHOLNPGM("<<< gcode_G28");
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#if HAS_PROBING_PROCEDURE
|
#if HAS_PROBING_PROCEDURE
|
||||||
|
@ -3690,25 +3636,21 @@ inline void gcode_G28() {
|
||||||
|
|
||||||
inline void _mbl_goto_xy(const float &x, const float &y) {
|
inline void _mbl_goto_xy(const float &x, const float &y) {
|
||||||
const float old_feedrate_mm_s = feedrate_mm_s;
|
const float old_feedrate_mm_s = feedrate_mm_s;
|
||||||
feedrate_mm_s = homing_feedrate_mm_s[Z_AXIS];
|
|
||||||
|
|
||||||
current_position[Z_AXIS] = MESH_HOME_SEARCH_Z
|
#if MANUAL_PROBE_HEIGHT > 0
|
||||||
#if Z_CLEARANCE_BETWEEN_PROBES > Z_HOMING_HEIGHT
|
feedrate_mm_s = homing_feedrate_mm_s[Z_AXIS];
|
||||||
+ Z_CLEARANCE_BETWEEN_PROBES
|
current_position[Z_AXIS] = LOGICAL_Z_POSITION(Z_MIN_POS) + MANUAL_PROBE_HEIGHT;
|
||||||
#elif Z_HOMING_HEIGHT > 0
|
line_to_current_position();
|
||||||
+ Z_HOMING_HEIGHT
|
#endif
|
||||||
#endif
|
|
||||||
;
|
|
||||||
line_to_current_position();
|
|
||||||
|
|
||||||
feedrate_mm_s = MMM_TO_MMS(XY_PROBE_SPEED);
|
feedrate_mm_s = MMM_TO_MMS(XY_PROBE_SPEED);
|
||||||
current_position[X_AXIS] = LOGICAL_X_POSITION(x);
|
current_position[X_AXIS] = LOGICAL_X_POSITION(x);
|
||||||
current_position[Y_AXIS] = LOGICAL_Y_POSITION(y);
|
current_position[Y_AXIS] = LOGICAL_Y_POSITION(y);
|
||||||
line_to_current_position();
|
line_to_current_position();
|
||||||
|
|
||||||
#if Z_CLEARANCE_BETWEEN_PROBES > 0 || Z_HOMING_HEIGHT > 0
|
#if MANUAL_PROBE_HEIGHT > 0
|
||||||
feedrate_mm_s = homing_feedrate_mm_s[Z_AXIS];
|
feedrate_mm_s = homing_feedrate_mm_s[Z_AXIS];
|
||||||
current_position[Z_AXIS] = LOGICAL_Z_POSITION(MESH_HOME_SEARCH_Z);
|
current_position[Z_AXIS] = LOGICAL_Z_POSITION(Z_MIN_POS) + 0.2; // just slightly over the bed
|
||||||
line_to_current_position();
|
line_to_current_position();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -3721,7 +3663,6 @@ inline void gcode_G28() {
|
||||||
|
|
||||||
void mbl_mesh_report() {
|
void mbl_mesh_report() {
|
||||||
SERIAL_PROTOCOLLNPGM("Num X,Y: " STRINGIFY(MESH_NUM_X_POINTS) "," STRINGIFY(MESH_NUM_Y_POINTS));
|
SERIAL_PROTOCOLLNPGM("Num X,Y: " STRINGIFY(MESH_NUM_X_POINTS) "," STRINGIFY(MESH_NUM_Y_POINTS));
|
||||||
SERIAL_PROTOCOLLNPGM("Z search height: " STRINGIFY(MESH_HOME_SEARCH_Z));
|
|
||||||
SERIAL_PROTOCOLPGM("Z offset: "); SERIAL_PROTOCOL_F(mbl.z_offset, 5);
|
SERIAL_PROTOCOLPGM("Z offset: "); SERIAL_PROTOCOL_F(mbl.z_offset, 5);
|
||||||
SERIAL_PROTOCOLLNPGM("\nMeasured points:");
|
SERIAL_PROTOCOLLNPGM("\nMeasured points:");
|
||||||
for (uint8_t py = 0; py < MESH_NUM_Y_POINTS; py++) {
|
for (uint8_t py = 0; py < MESH_NUM_Y_POINTS; py++) {
|
||||||
|
@ -3757,6 +3698,10 @@ inline void gcode_G28() {
|
||||||
inline void gcode_G29() {
|
inline void gcode_G29() {
|
||||||
|
|
||||||
static int probe_index = -1;
|
static int probe_index = -1;
|
||||||
|
#if HAS_SOFTWARE_ENDSTOPS
|
||||||
|
static bool enable_soft_endstops;
|
||||||
|
#endif
|
||||||
|
|
||||||
const MeshLevelingState state = code_seen('S') ? (MeshLevelingState)code_value_byte() : MeshReport;
|
const MeshLevelingState state = code_seen('S') ? (MeshLevelingState)code_value_byte() : MeshReport;
|
||||||
if (state < 0 || state > 5) {
|
if (state < 0 || state > 5) {
|
||||||
SERIAL_PROTOCOLLNPGM("S out of range (0-5).");
|
SERIAL_PROTOCOLLNPGM("S out of range (0-5).");
|
||||||
|
@ -3788,33 +3733,34 @@ inline void gcode_G28() {
|
||||||
}
|
}
|
||||||
// For each G29 S2...
|
// For each G29 S2...
|
||||||
if (probe_index == 0) {
|
if (probe_index == 0) {
|
||||||
// For the initial G29 S2 make Z a positive value (e.g., 4.0)
|
#if HAS_SOFTWARE_ENDSTOPS
|
||||||
current_position[Z_AXIS] = MESH_HOME_SEARCH_Z
|
// For the initial G29 S2 save software endstop state
|
||||||
#if Z_HOME_DIR > 0
|
enable_soft_endstops = soft_endstops_enabled;
|
||||||
+ Z_MAX_POS
|
#endif
|
||||||
#endif
|
|
||||||
;
|
|
||||||
SYNC_PLAN_POSITION_KINEMATIC();
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// For G29 S2 after adjusting Z.
|
// For G29 S2 after adjusting Z.
|
||||||
mbl.set_zigzag_z(probe_index - 1, current_position[Z_AXIS]);
|
mbl.set_zigzag_z(probe_index - 1, current_position[Z_AXIS]);
|
||||||
|
#if HAS_SOFTWARE_ENDSTOPS
|
||||||
|
soft_endstops_enabled = enable_soft_endstops;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
// If there's another point to sample, move there with optional lift.
|
// If there's another point to sample, move there with optional lift.
|
||||||
if (probe_index < (MESH_NUM_X_POINTS) * (MESH_NUM_Y_POINTS)) {
|
if (probe_index < (MESH_NUM_X_POINTS) * (MESH_NUM_Y_POINTS)) {
|
||||||
mbl.zigzag(probe_index, px, py);
|
mbl.zigzag(probe_index, px, py);
|
||||||
_mbl_goto_xy(mbl.get_probe_x(px), mbl.get_probe_y(py));
|
_mbl_goto_xy(mbl.get_probe_x(px), mbl.get_probe_y(py));
|
||||||
|
|
||||||
|
#if HAS_SOFTWARE_ENDSTOPS
|
||||||
|
// Disable software endstops to allow manual adjustment
|
||||||
|
// If G29 is not completed, they will not be re-enabled
|
||||||
|
soft_endstops_enabled = false;
|
||||||
|
#endif
|
||||||
|
|
||||||
probe_index++;
|
probe_index++;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// One last "return to the bed" (as originally coded) at completion
|
// One last "return to the bed" (as originally coded) at completion
|
||||||
current_position[Z_AXIS] = MESH_HOME_SEARCH_Z
|
current_position[Z_AXIS] = LOGICAL_Z_POSITION(Z_MIN_POS) + MANUAL_PROBE_HEIGHT;
|
||||||
#if Z_CLEARANCE_BETWEEN_PROBES > Z_HOMING_HEIGHT
|
|
||||||
+ Z_CLEARANCE_BETWEEN_PROBES
|
|
||||||
#elif Z_HOMING_HEIGHT > 0
|
|
||||||
+ Z_HOMING_HEIGHT
|
|
||||||
#endif
|
|
||||||
;
|
|
||||||
line_to_current_position();
|
line_to_current_position();
|
||||||
stepper.synchronize();
|
stepper.synchronize();
|
||||||
|
|
||||||
|
@ -3822,7 +3768,12 @@ inline void gcode_G28() {
|
||||||
SERIAL_PROTOCOLLNPGM("Mesh probing done.");
|
SERIAL_PROTOCOLLNPGM("Mesh probing done.");
|
||||||
probe_index = -1;
|
probe_index = -1;
|
||||||
mbl.set_has_mesh(true);
|
mbl.set_has_mesh(true);
|
||||||
|
mbl.set_reactivate(true);
|
||||||
enqueue_and_echo_commands_P(PSTR("G28"));
|
enqueue_and_echo_commands_P(PSTR("G28"));
|
||||||
|
#if HAS_BUZZER
|
||||||
|
lcd_buzz(200, 659);
|
||||||
|
lcd_buzz(200, 698);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -3871,14 +3822,8 @@ inline void gcode_G28() {
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MeshReset:
|
case MeshReset:
|
||||||
if (mbl.active()) {
|
reset_bed_level();
|
||||||
current_position[Z_AXIS] -= MESH_HOME_SEARCH_Z;
|
break;
|
||||||
planner.apply_leveling(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS]);
|
|
||||||
mbl.reset();
|
|
||||||
SYNC_PLAN_POSITION_KINEMATIC();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
mbl.reset();
|
|
||||||
|
|
||||||
} // switch(state)
|
} // switch(state)
|
||||||
|
|
||||||
|
@ -6427,10 +6372,8 @@ inline void gcode_M205() {
|
||||||
*/
|
*/
|
||||||
inline void gcode_M211() {
|
inline void gcode_M211() {
|
||||||
SERIAL_ECHO_START;
|
SERIAL_ECHO_START;
|
||||||
#if ENABLED(min_software_endstops) || ENABLED(max_software_endstops)
|
#if HAS_SOFTWARE_ENDSTOPS
|
||||||
if (code_seen('S')) soft_endstops_enabled = code_value_bool();
|
if (code_seen('S')) soft_endstops_enabled = code_value_bool();
|
||||||
#endif
|
|
||||||
#if ENABLED(min_software_endstops) || ENABLED(max_software_endstops)
|
|
||||||
SERIAL_ECHOPGM(MSG_SOFT_ENDSTOPS);
|
SERIAL_ECHOPGM(MSG_SOFT_ENDSTOPS);
|
||||||
serialprintPGM(soft_endstops_enabled ? PSTR(MSG_ON) : PSTR(MSG_OFF));
|
serialprintPGM(soft_endstops_enabled ? PSTR(MSG_ON) : PSTR(MSG_OFF));
|
||||||
#else
|
#else
|
||||||
|
@ -7946,7 +7889,7 @@ void tool_change(const uint8_t tmp_extruder, const float fr_mm_s/*=0.0*/, bool n
|
||||||
&& (delayed_move_time || current_position[X_AXIS] != xhome)
|
&& (delayed_move_time || current_position[X_AXIS] != xhome)
|
||||||
) {
|
) {
|
||||||
float raised_z = current_position[Z_AXIS] + TOOLCHANGE_PARK_ZLIFT;
|
float raised_z = current_position[Z_AXIS] + TOOLCHANGE_PARK_ZLIFT;
|
||||||
#if ENABLED(max_software_endstops)
|
#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
|
||||||
NOMORE(raised_z, soft_endstop_max[Z_AXIS]);
|
NOMORE(raised_z, soft_endstop_max[Z_AXIS]);
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
||||||
|
@ -7997,7 +7940,7 @@ void tool_change(const uint8_t tmp_extruder, const float fr_mm_s/*=0.0*/, bool n
|
||||||
// record raised toolhead position for use by unpark
|
// record raised toolhead position for use by unpark
|
||||||
COPY(raised_parked_position, current_position);
|
COPY(raised_parked_position, current_position);
|
||||||
raised_parked_position[Z_AXIS] += TOOLCHANGE_UNPARK_ZLIFT;
|
raised_parked_position[Z_AXIS] += TOOLCHANGE_UNPARK_ZLIFT;
|
||||||
#if ENABLED(max_software_endstops)
|
#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
|
||||||
NOMORE(raised_parked_position[Z_AXIS], soft_endstop_max[Z_AXIS]);
|
NOMORE(raised_parked_position[Z_AXIS], soft_endstop_max[Z_AXIS]);
|
||||||
#endif
|
#endif
|
||||||
active_extruder_parked = true;
|
active_extruder_parked = true;
|
||||||
|
@ -9033,18 +8976,19 @@ void ok_to_send() {
|
||||||
SERIAL_EOL;
|
SERIAL_EOL;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if ENABLED(min_software_endstops) || ENABLED(max_software_endstops)
|
#if HAS_SOFTWARE_ENDSTOPS
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constrain the given coordinates to the software endstops.
|
* Constrain the given coordinates to the software endstops.
|
||||||
*/
|
*/
|
||||||
void clamp_to_software_endstops(float target[XYZ]) {
|
void clamp_to_software_endstops(float target[XYZ]) {
|
||||||
#if ENABLED(min_software_endstops)
|
if (!soft_endstops_enabled) return;
|
||||||
|
#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
|
||||||
NOLESS(target[X_AXIS], soft_endstop_min[X_AXIS]);
|
NOLESS(target[X_AXIS], soft_endstop_min[X_AXIS]);
|
||||||
NOLESS(target[Y_AXIS], soft_endstop_min[Y_AXIS]);
|
NOLESS(target[Y_AXIS], soft_endstop_min[Y_AXIS]);
|
||||||
NOLESS(target[Z_AXIS], soft_endstop_min[Z_AXIS]);
|
NOLESS(target[Z_AXIS], soft_endstop_min[Z_AXIS]);
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(max_software_endstops)
|
#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
|
||||||
NOMORE(target[X_AXIS], soft_endstop_max[X_AXIS]);
|
NOMORE(target[X_AXIS], soft_endstop_max[X_AXIS]);
|
||||||
NOMORE(target[Y_AXIS], soft_endstop_max[Y_AXIS]);
|
NOMORE(target[Y_AXIS], soft_endstop_max[Y_AXIS]);
|
||||||
NOMORE(target[Z_AXIS], soft_endstop_max[Z_AXIS]);
|
NOMORE(target[Z_AXIS], soft_endstop_max[Z_AXIS]);
|
||||||
|
|
|
@ -130,6 +130,8 @@
|
||||||
#error "Z_RAISE_PROBE_DEPLOY_STOW and Z_RAISE_BETWEEN_PROBINGS are now Z_CLEARANCE_DEPLOY_PROBE and Z_CLEARANCE_BETWEEN_PROBES. Please update your configuration."
|
#error "Z_RAISE_PROBE_DEPLOY_STOW and Z_RAISE_BETWEEN_PROBINGS are now Z_CLEARANCE_DEPLOY_PROBE and Z_CLEARANCE_BETWEEN_PROBES. Please update your configuration."
|
||||||
#elif defined(Z_PROBE_DEPLOY_HEIGHT) || defined(Z_PROBE_TRAVEL_HEIGHT)
|
#elif defined(Z_PROBE_DEPLOY_HEIGHT) || defined(Z_PROBE_TRAVEL_HEIGHT)
|
||||||
#error "Z_PROBE_DEPLOY_HEIGHT and Z_PROBE_TRAVEL_HEIGHT are now Z_CLEARANCE_DEPLOY_PROBE and Z_CLEARANCE_BETWEEN_PROBES. Please update your configuration."
|
#error "Z_PROBE_DEPLOY_HEIGHT and Z_PROBE_TRAVEL_HEIGHT are now Z_CLEARANCE_DEPLOY_PROBE and Z_CLEARANCE_BETWEEN_PROBES. Please update your configuration."
|
||||||
|
#elif defined(MESH_HOME_SEARCH_Z)
|
||||||
|
#error "MESH_HOME_SEARCH_Z is now MANUAL_PROBE_Z_RANGE. Please update your configuration."
|
||||||
#elif !defined(MIN_STEPS_PER_SEGMENT)
|
#elif !defined(MIN_STEPS_PER_SEGMENT)
|
||||||
#error Please replace "const int dropsegments" with "#define MIN_STEPS_PER_SEGMENT" (and increase by 1) in Configuration_adv.h.
|
#error Please replace "const int dropsegments" with "#define MIN_STEPS_PER_SEGMENT" (and increase by 1) in Configuration_adv.h.
|
||||||
#elif defined(PREVENT_DANGEROUS_EXTRUDE)
|
#elif defined(PREVENT_DANGEROUS_EXTRUDE)
|
||||||
|
@ -156,6 +158,8 @@
|
||||||
#error "LCD_PIN_RESET is now LCD_RESET_PIN. Please update your pins definitions."
|
#error "LCD_PIN_RESET is now LCD_RESET_PIN. Please update your pins definitions."
|
||||||
#elif defined(EXTRUDER_0_AUTO_FAN_PIN) || defined(EXTRUDER_1_AUTO_FAN_PIN) || defined(EXTRUDER_2_AUTO_FAN_PIN) || defined(EXTRUDER_3_AUTO_FAN_PIN)
|
#elif defined(EXTRUDER_0_AUTO_FAN_PIN) || defined(EXTRUDER_1_AUTO_FAN_PIN) || defined(EXTRUDER_2_AUTO_FAN_PIN) || defined(EXTRUDER_3_AUTO_FAN_PIN)
|
||||||
#error "EXTRUDER_[0123]_AUTO_FAN_PIN is now E[0123]_AUTO_FAN_PIN. Please update your Configuration_adv.h."
|
#error "EXTRUDER_[0123]_AUTO_FAN_PIN is now E[0123]_AUTO_FAN_PIN. Please update your Configuration_adv.h."
|
||||||
|
#elif defined(min_software_endstops) || defined(max_software_endstops)
|
||||||
|
#error "(min|max)_software_endstops are now (MIN|MAX)_SOFTWARE_ENDSTOPS. Please update your configuration."
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -164,20 +164,13 @@ enum TempState {
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if ENABLED(MESH_BED_LEVELING)
|
#if ENABLED(PROBE_MANUALLY)
|
||||||
enum MeshLevelingState {
|
enum ABLState {
|
||||||
MeshReport,
|
ABLReport,
|
||||||
MeshStart,
|
ABLStart,
|
||||||
MeshNext,
|
ABLNext,
|
||||||
MeshSet,
|
ABLSet,
|
||||||
MeshSetZOffset,
|
ABLReset
|
||||||
MeshReset
|
|
||||||
};
|
|
||||||
|
|
||||||
enum MBLStatus {
|
|
||||||
MBL_STATUS_NONE = 0,
|
|
||||||
MBL_STATUS_HAS_MESH_BIT = 0,
|
|
||||||
MBL_STATUS_ACTIVE_BIT = 1
|
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -705,16 +705,12 @@
|
||||||
//#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
|
//#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
|
||||||
// Be sure you have this distance over your Z_MAX_POS in case.
|
// Be sure you have this distance over your Z_MAX_POS in case.
|
||||||
|
|
||||||
// ENDSTOP SETTINGS:
|
// Direction of endstops when homing; 1=MAX, -1=MIN
|
||||||
// Sets direction of endstops when homing; 1=MAX, -1=MIN
|
// :[-1,1]
|
||||||
// :[-1, 1]
|
|
||||||
#define X_HOME_DIR -1
|
#define X_HOME_DIR -1
|
||||||
#define Y_HOME_DIR -1
|
#define Y_HOME_DIR -1
|
||||||
#define Z_HOME_DIR -1
|
#define Z_HOME_DIR -1
|
||||||
|
|
||||||
#define min_software_endstops true // If true, axis won't move to coordinates less than HOME_POS.
|
|
||||||
#define max_software_endstops true // If true, axis won't move to coordinates greater than the defined lengths below.
|
|
||||||
|
|
||||||
// @section machine
|
// @section machine
|
||||||
|
|
||||||
// Travel limits after homing (units are in mm)
|
// Travel limits after homing (units are in mm)
|
||||||
|
@ -725,6 +721,11 @@
|
||||||
#define Y_MAX_POS 270
|
#define Y_MAX_POS 270
|
||||||
#define Z_MAX_POS 400
|
#define Z_MAX_POS 400
|
||||||
|
|
||||||
|
// If enabled, axes won't move below MIN_POS in response to movement commands.
|
||||||
|
#define MIN_SOFTWARE_ENDSTOPS
|
||||||
|
// If enabled, axes won't move above MAX_POS in response to movement commands.
|
||||||
|
#define MAX_SOFTWARE_ENDSTOPS
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Filament Runout Sensor
|
* Filament Runout Sensor
|
||||||
* A mechanical or opto endstop is used to check for the presence of filament.
|
* A mechanical or opto endstop is used to check for the presence of filament.
|
||||||
|
@ -750,9 +751,9 @@
|
||||||
#define MESH_INSET 10 // Mesh inset margin on print area
|
#define MESH_INSET 10 // Mesh inset margin on print area
|
||||||
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
|
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
|
||||||
#define MESH_NUM_Y_POINTS 3
|
#define MESH_NUM_Y_POINTS 3
|
||||||
#define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0.
|
#define MANUAL_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
|
||||||
|
|
||||||
//#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest at origin [0,0,0]
|
//#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS
|
||||||
|
|
||||||
//#define MANUAL_BED_LEVELING // Add display menu option for bed leveling.
|
//#define MANUAL_BED_LEVELING // Add display menu option for bed leveling.
|
||||||
|
|
||||||
|
|
|
@ -688,16 +688,12 @@
|
||||||
//#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
|
//#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
|
||||||
// Be sure you have this distance over your Z_MAX_POS in case.
|
// Be sure you have this distance over your Z_MAX_POS in case.
|
||||||
|
|
||||||
// ENDSTOP SETTINGS:
|
// Direction of endstops when homing; 1=MAX, -1=MIN
|
||||||
// Sets direction of endstops when homing; 1=MAX, -1=MIN
|
|
||||||
// :[-1, 1]
|
// :[-1, 1]
|
||||||
#define X_HOME_DIR -1
|
#define X_HOME_DIR -1
|
||||||
#define Y_HOME_DIR -1
|
#define Y_HOME_DIR -1
|
||||||
#define Z_HOME_DIR -1
|
#define Z_HOME_DIR -1
|
||||||
|
|
||||||
#define min_software_endstops true // If true, axis won't move to coordinates less than HOME_POS.
|
|
||||||
#define max_software_endstops true // If true, axis won't move to coordinates greater than the defined lengths below.
|
|
||||||
|
|
||||||
// @section machine
|
// @section machine
|
||||||
|
|
||||||
// Travel limits after homing (units are in mm)
|
// Travel limits after homing (units are in mm)
|
||||||
|
@ -708,6 +704,11 @@
|
||||||
#define Y_MAX_POS 205
|
#define Y_MAX_POS 205
|
||||||
#define Z_MAX_POS 235
|
#define Z_MAX_POS 235
|
||||||
|
|
||||||
|
// If enabled, axes won't move below MIN_POS in response to movement commands.
|
||||||
|
#define MIN_SOFTWARE_ENDSTOPS
|
||||||
|
// If enabled, axes won't move above MAX_POS in response to movement commands.
|
||||||
|
#define MAX_SOFTWARE_ENDSTOPS
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Filament Runout Sensor
|
* Filament Runout Sensor
|
||||||
* A mechanical or opto endstop is used to check for the presence of filament.
|
* A mechanical or opto endstop is used to check for the presence of filament.
|
||||||
|
@ -733,9 +734,9 @@
|
||||||
#define MESH_INSET 10 // Mesh inset margin on print area
|
#define MESH_INSET 10 // Mesh inset margin on print area
|
||||||
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
|
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
|
||||||
#define MESH_NUM_Y_POINTS 3
|
#define MESH_NUM_Y_POINTS 3
|
||||||
#define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0.
|
#define MANUAL_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
|
||||||
|
|
||||||
//#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest at origin [0,0,0]
|
//#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS
|
||||||
|
|
||||||
//#define MANUAL_BED_LEVELING // Add display menu option for bed leveling.
|
//#define MANUAL_BED_LEVELING // Add display menu option for bed leveling.
|
||||||
|
|
||||||
|
|
|
@ -688,16 +688,12 @@
|
||||||
//#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
|
//#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
|
||||||
// Be sure you have this distance over your Z_MAX_POS in case.
|
// Be sure you have this distance over your Z_MAX_POS in case.
|
||||||
|
|
||||||
// ENDSTOP SETTINGS:
|
// Direction of endstops when homing; 1=MAX, -1=MIN
|
||||||
// Sets direction of endstops when homing; 1=MAX, -1=MIN
|
// :[-1,1]
|
||||||
// :[-1, 1]
|
|
||||||
#define X_HOME_DIR -1
|
#define X_HOME_DIR -1
|
||||||
#define Y_HOME_DIR -1
|
#define Y_HOME_DIR -1
|
||||||
#define Z_HOME_DIR -1
|
#define Z_HOME_DIR -1
|
||||||
|
|
||||||
#define min_software_endstops true // If true, axis won't move to coordinates less than HOME_POS.
|
|
||||||
#define max_software_endstops true // If true, axis won't move to coordinates greater than the defined lengths below.
|
|
||||||
|
|
||||||
// @section machine
|
// @section machine
|
||||||
|
|
||||||
// Travel limits after homing (units are in mm)
|
// Travel limits after homing (units are in mm)
|
||||||
|
@ -708,6 +704,11 @@
|
||||||
#define Y_MAX_POS 205
|
#define Y_MAX_POS 205
|
||||||
#define Z_MAX_POS 235
|
#define Z_MAX_POS 235
|
||||||
|
|
||||||
|
// If enabled, axes won't move below MIN_POS in response to movement commands.
|
||||||
|
#define MIN_SOFTWARE_ENDSTOPS
|
||||||
|
// If enabled, axes won't move above MAX_POS in response to movement commands.
|
||||||
|
#define MAX_SOFTWARE_ENDSTOPS
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Filament Runout Sensor
|
* Filament Runout Sensor
|
||||||
* A mechanical or opto endstop is used to check for the presence of filament.
|
* A mechanical or opto endstop is used to check for the presence of filament.
|
||||||
|
@ -733,9 +734,9 @@
|
||||||
#define MESH_INSET 10 // Mesh inset margin on print area
|
#define MESH_INSET 10 // Mesh inset margin on print area
|
||||||
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
|
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
|
||||||
#define MESH_NUM_Y_POINTS 3
|
#define MESH_NUM_Y_POINTS 3
|
||||||
#define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0.
|
#define MANUAL_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
|
||||||
|
|
||||||
//#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest at origin [0,0,0]
|
//#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS
|
||||||
|
|
||||||
//#define MANUAL_BED_LEVELING // Add display menu option for bed leveling.
|
//#define MANUAL_BED_LEVELING // Add display menu option for bed leveling.
|
||||||
|
|
||||||
|
|
|
@ -697,16 +697,12 @@
|
||||||
//#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
|
//#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
|
||||||
// Be sure you have this distance over your Z_MAX_POS in case.
|
// Be sure you have this distance over your Z_MAX_POS in case.
|
||||||
|
|
||||||
// ENDSTOP SETTINGS:
|
// Direction of endstops when homing; 1=MAX, -1=MIN
|
||||||
// Sets direction of endstops when homing; 1=MAX, -1=MIN
|
// :[-1,1]
|
||||||
// :[-1, 1]
|
|
||||||
#define X_HOME_DIR -1
|
#define X_HOME_DIR -1
|
||||||
#define Y_HOME_DIR -1
|
#define Y_HOME_DIR -1
|
||||||
#define Z_HOME_DIR -1
|
#define Z_HOME_DIR -1
|
||||||
|
|
||||||
#define min_software_endstops true // If true, axis won't move to coordinates less than HOME_POS.
|
|
||||||
#define max_software_endstops true // If true, axis won't move to coordinates greater than the defined lengths below.
|
|
||||||
|
|
||||||
// @section machine
|
// @section machine
|
||||||
|
|
||||||
// Travel limits after homing (units are in mm)
|
// Travel limits after homing (units are in mm)
|
||||||
|
@ -717,6 +713,11 @@
|
||||||
#define Y_MAX_POS 210
|
#define Y_MAX_POS 210
|
||||||
#define Z_MAX_POS 180
|
#define Z_MAX_POS 180
|
||||||
|
|
||||||
|
// If enabled, axes won't move below MIN_POS in response to movement commands.
|
||||||
|
#define MIN_SOFTWARE_ENDSTOPS
|
||||||
|
// If enabled, axes won't move above MAX_POS in response to movement commands.
|
||||||
|
#define MAX_SOFTWARE_ENDSTOPS
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Filament Runout Sensor
|
* Filament Runout Sensor
|
||||||
* A mechanical or opto endstop is used to check for the presence of filament.
|
* A mechanical or opto endstop is used to check for the presence of filament.
|
||||||
|
@ -742,9 +743,9 @@
|
||||||
#define MESH_INSET 10 // Mesh inset margin on print area
|
#define MESH_INSET 10 // Mesh inset margin on print area
|
||||||
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
|
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
|
||||||
#define MESH_NUM_Y_POINTS 3
|
#define MESH_NUM_Y_POINTS 3
|
||||||
#define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0.
|
#define MANUAL_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
|
||||||
|
|
||||||
//#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest at origin [0,0,0]
|
//#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS
|
||||||
|
|
||||||
//#define MANUAL_BED_LEVELING // Add display menu option for bed leveling.
|
//#define MANUAL_BED_LEVELING // Add display menu option for bed leveling.
|
||||||
|
|
||||||
|
|
|
@ -699,16 +699,12 @@
|
||||||
#define Z_HOMING_HEIGHT 5 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
|
#define Z_HOMING_HEIGHT 5 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
|
||||||
// Be sure you have this distance over your Z_MAX_POS in case.
|
// Be sure you have this distance over your Z_MAX_POS in case.
|
||||||
|
|
||||||
// ENDSTOP SETTINGS:
|
// Direction of endstops when homing; 1=MAX, -1=MIN
|
||||||
// Sets direction of endstops when homing; 1=MAX, -1=MIN
|
// :[-1,1]
|
||||||
// :[-1, 1]
|
|
||||||
#define X_HOME_DIR -1
|
#define X_HOME_DIR -1
|
||||||
#define Y_HOME_DIR -1
|
#define Y_HOME_DIR -1
|
||||||
#define Z_HOME_DIR -1
|
#define Z_HOME_DIR -1
|
||||||
|
|
||||||
#define min_software_endstops true // If true, axis won't move to coordinates less than HOME_POS.
|
|
||||||
#define max_software_endstops true // If true, axis won't move to coordinates greater than the defined lengths below.
|
|
||||||
|
|
||||||
// @section machine
|
// @section machine
|
||||||
|
|
||||||
// Travel limits after homing (units are in mm)
|
// Travel limits after homing (units are in mm)
|
||||||
|
@ -719,6 +715,11 @@
|
||||||
#define Y_MAX_POS 297
|
#define Y_MAX_POS 297
|
||||||
#define Z_MAX_POS 210
|
#define Z_MAX_POS 210
|
||||||
|
|
||||||
|
// If enabled, axes won't move below MIN_POS in response to movement commands.
|
||||||
|
#define MIN_SOFTWARE_ENDSTOPS
|
||||||
|
// If enabled, axes won't move above MAX_POS in response to movement commands.
|
||||||
|
#define MAX_SOFTWARE_ENDSTOPS
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Filament Runout Sensor
|
* Filament Runout Sensor
|
||||||
* A mechanical or opto endstop is used to check for the presence of filament.
|
* A mechanical or opto endstop is used to check for the presence of filament.
|
||||||
|
@ -744,9 +745,9 @@
|
||||||
#define MESH_INSET 10 // Mesh inset margin on print area
|
#define MESH_INSET 10 // Mesh inset margin on print area
|
||||||
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
|
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
|
||||||
#define MESH_NUM_Y_POINTS 3
|
#define MESH_NUM_Y_POINTS 3
|
||||||
#define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0.
|
#define MANUAL_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
|
||||||
|
|
||||||
//#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest at origin [0,0,0]
|
//#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS
|
||||||
|
|
||||||
//#define MANUAL_BED_LEVELING // Add display menu option for bed leveling.
|
//#define MANUAL_BED_LEVELING // Add display menu option for bed leveling.
|
||||||
|
|
||||||
|
|
|
@ -734,16 +734,12 @@
|
||||||
#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
|
#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
|
||||||
// Be sure you have this distance over your Z_MAX_POS in case.
|
// Be sure you have this distance over your Z_MAX_POS in case.
|
||||||
|
|
||||||
// ENDSTOP SETTINGS:
|
// Direction of endstops when homing; 1=MAX, -1=MIN
|
||||||
// Sets direction of endstops when homing; 1=MAX, -1=MIN
|
// :[-1,1]
|
||||||
// :[-1, 1]
|
|
||||||
#define X_HOME_DIR -1
|
#define X_HOME_DIR -1
|
||||||
#define Y_HOME_DIR -1
|
#define Y_HOME_DIR -1
|
||||||
#define Z_HOME_DIR -1
|
#define Z_HOME_DIR -1
|
||||||
|
|
||||||
#define min_software_endstops true // If true, axis won't move to coordinates less than HOME_POS.
|
|
||||||
#define max_software_endstops true // If true, axis won't move to coordinates greater than the defined lengths below.
|
|
||||||
|
|
||||||
// @section machine
|
// @section machine
|
||||||
|
|
||||||
// Travel limits after homing (units are in mm)
|
// Travel limits after homing (units are in mm)
|
||||||
|
@ -754,6 +750,11 @@
|
||||||
#define Y_MAX_POS 200
|
#define Y_MAX_POS 200
|
||||||
#define Z_MAX_POS 200
|
#define Z_MAX_POS 200
|
||||||
|
|
||||||
|
// If enabled, axes won't move below MIN_POS in response to movement commands.
|
||||||
|
#define MIN_SOFTWARE_ENDSTOPS
|
||||||
|
// If enabled, axes won't move above MAX_POS in response to movement commands.
|
||||||
|
#define MAX_SOFTWARE_ENDSTOPS
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Filament Runout Sensor
|
* Filament Runout Sensor
|
||||||
* A mechanical or opto endstop is used to check for the presence of filament.
|
* A mechanical or opto endstop is used to check for the presence of filament.
|
||||||
|
@ -779,9 +780,9 @@
|
||||||
#define MESH_INSET 10 // Mesh inset margin on print area
|
#define MESH_INSET 10 // Mesh inset margin on print area
|
||||||
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
|
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
|
||||||
#define MESH_NUM_Y_POINTS 3
|
#define MESH_NUM_Y_POINTS 3
|
||||||
#define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0.
|
#define MANUAL_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
|
||||||
|
|
||||||
//#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest at origin [0,0,0]
|
//#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS
|
||||||
|
|
||||||
//#define MANUAL_BED_LEVELING // Add display menu option for bed leveling.
|
//#define MANUAL_BED_LEVELING // Add display menu option for bed leveling.
|
||||||
|
|
||||||
|
|
|
@ -705,16 +705,12 @@
|
||||||
//#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
|
//#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
|
||||||
// Be sure you have this distance over your Z_MAX_POS in case.
|
// Be sure you have this distance over your Z_MAX_POS in case.
|
||||||
|
|
||||||
// ENDSTOP SETTINGS:
|
// Direction of endstops when homing; 1=MAX, -1=MIN
|
||||||
// Sets direction of endstops when homing; 1=MAX, -1=MIN
|
// :[-1,1]
|
||||||
// :[-1, 1]
|
|
||||||
#define X_HOME_DIR -1
|
#define X_HOME_DIR -1
|
||||||
#define Y_HOME_DIR -1
|
#define Y_HOME_DIR -1
|
||||||
#define Z_HOME_DIR -1
|
#define Z_HOME_DIR -1
|
||||||
|
|
||||||
#define min_software_endstops true // If true, axis won't move to coordinates less than HOME_POS.
|
|
||||||
#define max_software_endstops true // If true, axis won't move to coordinates greater than the defined lengths below.
|
|
||||||
|
|
||||||
// @section machine
|
// @section machine
|
||||||
|
|
||||||
// Travel limits after homing (units are in mm)
|
// Travel limits after homing (units are in mm)
|
||||||
|
@ -725,6 +721,11 @@
|
||||||
#define Y_MAX_POS 200
|
#define Y_MAX_POS 200
|
||||||
#define Z_MAX_POS 190
|
#define Z_MAX_POS 190
|
||||||
|
|
||||||
|
// If enabled, axes won't move below MIN_POS in response to movement commands.
|
||||||
|
#define MIN_SOFTWARE_ENDSTOPS
|
||||||
|
// If enabled, axes won't move above MAX_POS in response to movement commands.
|
||||||
|
#define MAX_SOFTWARE_ENDSTOPS
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Filament Runout Sensor
|
* Filament Runout Sensor
|
||||||
* A mechanical or opto endstop is used to check for the presence of filament.
|
* A mechanical or opto endstop is used to check for the presence of filament.
|
||||||
|
@ -750,9 +751,9 @@
|
||||||
#define MESH_INSET 10 // Mesh inset margin on print area
|
#define MESH_INSET 10 // Mesh inset margin on print area
|
||||||
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
|
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
|
||||||
#define MESH_NUM_Y_POINTS 3
|
#define MESH_NUM_Y_POINTS 3
|
||||||
#define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0.
|
#define MANUAL_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
|
||||||
|
|
||||||
//#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest at origin [0,0,0]
|
//#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS
|
||||||
|
|
||||||
//#define MANUAL_BED_LEVELING // Add display menu option for bed leveling.
|
//#define MANUAL_BED_LEVELING // Add display menu option for bed leveling.
|
||||||
|
|
||||||
|
|
|
@ -705,16 +705,12 @@
|
||||||
//#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
|
//#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
|
||||||
// Be sure you have this distance over your Z_MAX_POS in case.
|
// Be sure you have this distance over your Z_MAX_POS in case.
|
||||||
|
|
||||||
// ENDSTOP SETTINGS:
|
// Direction of endstops when homing; 1=MAX, -1=MIN
|
||||||
// Sets direction of endstops when homing; 1=MAX, -1=MIN
|
// :[-1,1]
|
||||||
// :[-1, 1]
|
|
||||||
#define X_HOME_DIR -1
|
#define X_HOME_DIR -1
|
||||||
#define Y_HOME_DIR -1
|
#define Y_HOME_DIR -1
|
||||||
#define Z_HOME_DIR -1
|
#define Z_HOME_DIR -1
|
||||||
|
|
||||||
#define min_software_endstops true // If true, axis won't move to coordinates less than HOME_POS.
|
|
||||||
#define max_software_endstops true // If true, axis won't move to coordinates greater than the defined lengths below.
|
|
||||||
|
|
||||||
// @section machine
|
// @section machine
|
||||||
|
|
||||||
// Travel limits after homing (units are in mm)
|
// Travel limits after homing (units are in mm)
|
||||||
|
@ -725,6 +721,11 @@
|
||||||
#define Y_MAX_POS 200
|
#define Y_MAX_POS 200
|
||||||
#define Z_MAX_POS 190
|
#define Z_MAX_POS 190
|
||||||
|
|
||||||
|
// If enabled, axes won't move below MIN_POS in response to movement commands.
|
||||||
|
#define MIN_SOFTWARE_ENDSTOPS
|
||||||
|
// If enabled, axes won't move above MAX_POS in response to movement commands.
|
||||||
|
#define MAX_SOFTWARE_ENDSTOPS
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Filament Runout Sensor
|
* Filament Runout Sensor
|
||||||
* A mechanical or opto endstop is used to check for the presence of filament.
|
* A mechanical or opto endstop is used to check for the presence of filament.
|
||||||
|
@ -750,9 +751,9 @@
|
||||||
#define MESH_INSET 10 // Mesh inset margin on print area
|
#define MESH_INSET 10 // Mesh inset margin on print area
|
||||||
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
|
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
|
||||||
#define MESH_NUM_Y_POINTS 3
|
#define MESH_NUM_Y_POINTS 3
|
||||||
#define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0.
|
#define MANUAL_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
|
||||||
|
|
||||||
//#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest at origin [0,0,0]
|
//#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS
|
||||||
|
|
||||||
//#define MANUAL_BED_LEVELING // Add display menu option for bed leveling.
|
//#define MANUAL_BED_LEVELING // Add display menu option for bed leveling.
|
||||||
|
|
||||||
|
|
|
@ -705,16 +705,12 @@
|
||||||
//#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
|
//#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
|
||||||
// Be sure you have this distance over your Z_MAX_POS in case.
|
// Be sure you have this distance over your Z_MAX_POS in case.
|
||||||
|
|
||||||
// ENDSTOP SETTINGS:
|
// Direction of endstops when homing; 1=MAX, -1=MIN
|
||||||
// Sets direction of endstops when homing; 1=MAX, -1=MIN
|
// :[-1,1]
|
||||||
// :[-1, 1]
|
|
||||||
#define X_HOME_DIR -1
|
#define X_HOME_DIR -1
|
||||||
#define Y_HOME_DIR -1
|
#define Y_HOME_DIR -1
|
||||||
#define Z_HOME_DIR -1
|
#define Z_HOME_DIR -1
|
||||||
|
|
||||||
#define min_software_endstops true // If true, axis won't move to coordinates less than HOME_POS.
|
|
||||||
#define max_software_endstops true // If true, axis won't move to coordinates greater than the defined lengths below.
|
|
||||||
|
|
||||||
// @section machine
|
// @section machine
|
||||||
|
|
||||||
// Travel limits after homing (units are in mm)
|
// Travel limits after homing (units are in mm)
|
||||||
|
@ -725,6 +721,11 @@
|
||||||
#define Y_MAX_POS 200
|
#define Y_MAX_POS 200
|
||||||
#define Z_MAX_POS 200
|
#define Z_MAX_POS 200
|
||||||
|
|
||||||
|
// If enabled, axes won't move below MIN_POS in response to movement commands.
|
||||||
|
#define MIN_SOFTWARE_ENDSTOPS
|
||||||
|
// If enabled, axes won't move above MAX_POS in response to movement commands.
|
||||||
|
#define MAX_SOFTWARE_ENDSTOPS
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Filament Runout Sensor
|
* Filament Runout Sensor
|
||||||
* A mechanical or opto endstop is used to check for the presence of filament.
|
* A mechanical or opto endstop is used to check for the presence of filament.
|
||||||
|
@ -750,9 +751,9 @@
|
||||||
#define MESH_INSET 10 // Mesh inset margin on print area
|
#define MESH_INSET 10 // Mesh inset margin on print area
|
||||||
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
|
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
|
||||||
#define MESH_NUM_Y_POINTS 3
|
#define MESH_NUM_Y_POINTS 3
|
||||||
#define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0.
|
#define MANUAL_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
|
||||||
|
|
||||||
//#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest at origin [0,0,0]
|
//#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS
|
||||||
|
|
||||||
//#define MANUAL_BED_LEVELING // Add display menu option for bed leveling.
|
//#define MANUAL_BED_LEVELING // Add display menu option for bed leveling.
|
||||||
|
|
||||||
|
|
|
@ -704,16 +704,12 @@
|
||||||
//#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
|
//#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
|
||||||
// Be sure you have this distance over your Z_MAX_POS in case.
|
// Be sure you have this distance over your Z_MAX_POS in case.
|
||||||
|
|
||||||
// ENDSTOP SETTINGS:
|
// Direction of endstops when homing; 1=MAX, -1=MIN
|
||||||
// Sets direction of endstops when homing; 1=MAX, -1=MIN
|
// :[-1,1]
|
||||||
// :[-1, 1]
|
|
||||||
#define X_HOME_DIR -1
|
#define X_HOME_DIR -1
|
||||||
#define Y_HOME_DIR -1
|
#define Y_HOME_DIR -1
|
||||||
#define Z_HOME_DIR -1
|
#define Z_HOME_DIR -1
|
||||||
|
|
||||||
#define min_software_endstops true // If true, axis won't move to coordinates less than HOME_POS.
|
|
||||||
#define max_software_endstops true // If true, axis won't move to coordinates greater than the defined lengths below.
|
|
||||||
|
|
||||||
// @section machine
|
// @section machine
|
||||||
|
|
||||||
// Travel limits after homing (units are in mm)
|
// Travel limits after homing (units are in mm)
|
||||||
|
@ -724,6 +720,11 @@
|
||||||
#define Y_MAX_POS 248 // RigidBot regular is 248mm, RigitBot Big is 304mm
|
#define Y_MAX_POS 248 // RigidBot regular is 248mm, RigitBot Big is 304mm
|
||||||
#define Z_MAX_POS 254 // RigidBot regular and Big are 254mm
|
#define Z_MAX_POS 254 // RigidBot regular and Big are 254mm
|
||||||
|
|
||||||
|
// If enabled, axes won't move below MIN_POS in response to movement commands.
|
||||||
|
#define MIN_SOFTWARE_ENDSTOPS
|
||||||
|
// If enabled, axes won't move above MAX_POS in response to movement commands.
|
||||||
|
#define MAX_SOFTWARE_ENDSTOPS
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Filament Runout Sensor
|
* Filament Runout Sensor
|
||||||
* A mechanical or opto endstop is used to check for the presence of filament.
|
* A mechanical or opto endstop is used to check for the presence of filament.
|
||||||
|
@ -749,9 +750,9 @@
|
||||||
#define MESH_INSET 10 // Mesh inset margin on print area
|
#define MESH_INSET 10 // Mesh inset margin on print area
|
||||||
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
|
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
|
||||||
#define MESH_NUM_Y_POINTS 3
|
#define MESH_NUM_Y_POINTS 3
|
||||||
#define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0.
|
#define MANUAL_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
|
||||||
|
|
||||||
//#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest at origin [0,0,0]
|
//#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS
|
||||||
|
|
||||||
//#define MANUAL_BED_LEVELING // Add display menu option for bed leveling.
|
//#define MANUAL_BED_LEVELING // Add display menu option for bed leveling.
|
||||||
|
|
||||||
|
|
|
@ -720,16 +720,12 @@
|
||||||
//#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
|
//#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
|
||||||
// Be sure you have this distance over your Z_MAX_POS in case.
|
// Be sure you have this distance over your Z_MAX_POS in case.
|
||||||
|
|
||||||
// ENDSTOP SETTINGS:
|
// Direction of endstops when homing; 1=MAX, -1=MIN
|
||||||
// Sets direction of endstops when homing; 1=MAX, -1=MIN
|
// :[-1,1]
|
||||||
// :[-1, 1]
|
|
||||||
#define X_HOME_DIR 1
|
#define X_HOME_DIR 1
|
||||||
#define Y_HOME_DIR 1
|
#define Y_HOME_DIR 1
|
||||||
#define Z_HOME_DIR -1
|
#define Z_HOME_DIR -1
|
||||||
|
|
||||||
#define min_software_endstops true // If true, axis won't move to coordinates less than HOME_POS.
|
|
||||||
#define max_software_endstops true // If true, axis won't move to coordinates greater than the defined lengths below.
|
|
||||||
|
|
||||||
// @section machine
|
// @section machine
|
||||||
|
|
||||||
// Travel limits after homing (units are in mm)
|
// Travel limits after homing (units are in mm)
|
||||||
|
@ -740,6 +736,11 @@
|
||||||
#define Y_MAX_POS 200
|
#define Y_MAX_POS 200
|
||||||
#define Z_MAX_POS 225
|
#define Z_MAX_POS 225
|
||||||
|
|
||||||
|
// If enabled, axes won't move below MIN_POS in response to movement commands.
|
||||||
|
#define MIN_SOFTWARE_ENDSTOPS
|
||||||
|
// If enabled, axes won't move above MAX_POS in response to movement commands.
|
||||||
|
#define MAX_SOFTWARE_ENDSTOPS
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Filament Runout Sensor
|
* Filament Runout Sensor
|
||||||
* A mechanical or opto endstop is used to check for the presence of filament.
|
* A mechanical or opto endstop is used to check for the presence of filament.
|
||||||
|
@ -765,9 +766,9 @@
|
||||||
#define MESH_INSET 10 // Mesh inset margin on print area
|
#define MESH_INSET 10 // Mesh inset margin on print area
|
||||||
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
|
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
|
||||||
#define MESH_NUM_Y_POINTS 3
|
#define MESH_NUM_Y_POINTS 3
|
||||||
#define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0.
|
#define MANUAL_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
|
||||||
|
|
||||||
//#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest at origin [0,0,0]
|
//#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS
|
||||||
|
|
||||||
//#define MANUAL_BED_LEVELING // Add display menu option for bed leveling.
|
//#define MANUAL_BED_LEVELING // Add display menu option for bed leveling.
|
||||||
|
|
||||||
|
|
|
@ -726,16 +726,12 @@
|
||||||
//#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
|
//#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
|
||||||
// Be sure you have this distance over your Z_MAX_POS in case.
|
// Be sure you have this distance over your Z_MAX_POS in case.
|
||||||
|
|
||||||
// ENDSTOP SETTINGS:
|
// Direction of endstops when homing; 1=MAX, -1=MIN
|
||||||
// Sets direction of endstops when homing; 1=MAX, -1=MIN
|
// :[-1,1]
|
||||||
// :[-1, 1]
|
|
||||||
#define X_HOME_DIR -1
|
#define X_HOME_DIR -1
|
||||||
#define Y_HOME_DIR -1
|
#define Y_HOME_DIR -1
|
||||||
#define Z_HOME_DIR -1
|
#define Z_HOME_DIR -1
|
||||||
|
|
||||||
#define min_software_endstops true // If true, axis won't move to coordinates less than HOME_POS.
|
|
||||||
#define max_software_endstops true // If true, axis won't move to coordinates greater than the defined lengths below.
|
|
||||||
|
|
||||||
// @section machine
|
// @section machine
|
||||||
|
|
||||||
// Travel limits after homing (units are in mm)
|
// Travel limits after homing (units are in mm)
|
||||||
|
@ -746,6 +742,11 @@
|
||||||
#define Y_MAX_POS 275
|
#define Y_MAX_POS 275
|
||||||
#define Z_MAX_POS 250
|
#define Z_MAX_POS 250
|
||||||
|
|
||||||
|
// If enabled, axes won't move below MIN_POS in response to movement commands.
|
||||||
|
#define MIN_SOFTWARE_ENDSTOPS
|
||||||
|
// If enabled, axes won't move above MAX_POS in response to movement commands.
|
||||||
|
#define MAX_SOFTWARE_ENDSTOPS
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Filament Runout Sensor
|
* Filament Runout Sensor
|
||||||
* A mechanical or opto endstop is used to check for the presence of filament.
|
* A mechanical or opto endstop is used to check for the presence of filament.
|
||||||
|
@ -771,9 +772,9 @@
|
||||||
#define MESH_INSET 10 // Mesh inset margin on print area
|
#define MESH_INSET 10 // Mesh inset margin on print area
|
||||||
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
|
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
|
||||||
#define MESH_NUM_Y_POINTS 3
|
#define MESH_NUM_Y_POINTS 3
|
||||||
#define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0.
|
#define MANUAL_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
|
||||||
|
|
||||||
//#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest at origin [0,0,0]
|
//#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS
|
||||||
|
|
||||||
//#define MANUAL_BED_LEVELING // Add display menu option for bed leveling.
|
//#define MANUAL_BED_LEVELING // Add display menu option for bed leveling.
|
||||||
|
|
||||||
|
|
|
@ -697,16 +697,12 @@
|
||||||
//#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
|
//#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
|
||||||
// Be sure you have this distance over your Z_MAX_POS in case.
|
// Be sure you have this distance over your Z_MAX_POS in case.
|
||||||
|
|
||||||
// ENDSTOP SETTINGS:
|
// Direction of endstops when homing; 1=MAX, -1=MIN
|
||||||
// Sets direction of endstops when homing; 1=MAX, -1=MIN
|
// :[-1,1]
|
||||||
// :[-1, 1]
|
|
||||||
#define X_HOME_DIR 1
|
#define X_HOME_DIR 1
|
||||||
#define Y_HOME_DIR 1
|
#define Y_HOME_DIR 1
|
||||||
#define Z_HOME_DIR -1
|
#define Z_HOME_DIR -1
|
||||||
|
|
||||||
#define min_software_endstops true // If true, axis won't move to coordinates less than HOME_POS.
|
|
||||||
#define max_software_endstops true // If true, axis won't move to coordinates greater than the defined lengths below.
|
|
||||||
|
|
||||||
// @section machine
|
// @section machine
|
||||||
|
|
||||||
// Travel limits after homing (units are in mm)
|
// Travel limits after homing (units are in mm)
|
||||||
|
@ -717,6 +713,11 @@
|
||||||
#define Y_MAX_POS 210
|
#define Y_MAX_POS 210
|
||||||
#define Z_MAX_POS 200
|
#define Z_MAX_POS 200
|
||||||
|
|
||||||
|
// If enabled, axes won't move below MIN_POS in response to movement commands.
|
||||||
|
#define MIN_SOFTWARE_ENDSTOPS
|
||||||
|
// If enabled, axes won't move above MAX_POS in response to movement commands.
|
||||||
|
#define MAX_SOFTWARE_ENDSTOPS
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Filament Runout Sensor
|
* Filament Runout Sensor
|
||||||
* A mechanical or opto endstop is used to check for the presence of filament.
|
* A mechanical or opto endstop is used to check for the presence of filament.
|
||||||
|
@ -742,9 +743,9 @@
|
||||||
#define MESH_INSET 10 // Mesh inset margin on print area
|
#define MESH_INSET 10 // Mesh inset margin on print area
|
||||||
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
|
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
|
||||||
#define MESH_NUM_Y_POINTS 3
|
#define MESH_NUM_Y_POINTS 3
|
||||||
#define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0.
|
#define MANUAL_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
|
||||||
|
|
||||||
//#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest at origin [0,0,0]
|
//#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS
|
||||||
|
|
||||||
//#define MANUAL_BED_LEVELING // Add display menu option for bed leveling.
|
//#define MANUAL_BED_LEVELING // Add display menu option for bed leveling.
|
||||||
|
|
||||||
|
|
|
@ -705,16 +705,12 @@
|
||||||
//#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
|
//#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
|
||||||
// Be sure you have this distance over your Z_MAX_POS in case.
|
// Be sure you have this distance over your Z_MAX_POS in case.
|
||||||
|
|
||||||
// ENDSTOP SETTINGS:
|
// Direction of endstops when homing; 1=MAX, -1=MIN
|
||||||
// Sets direction of endstops when homing; 1=MAX, -1=MIN
|
// :[-1,1]
|
||||||
// :[-1, 1]
|
|
||||||
#define X_HOME_DIR -1
|
#define X_HOME_DIR -1
|
||||||
#define Y_HOME_DIR -1
|
#define Y_HOME_DIR -1
|
||||||
#define Z_HOME_DIR -1
|
#define Z_HOME_DIR -1
|
||||||
|
|
||||||
#define min_software_endstops true // If true, axis won't move to coordinates less than HOME_POS.
|
|
||||||
#define max_software_endstops true // If true, axis won't move to coordinates greater than the defined lengths below.
|
|
||||||
|
|
||||||
// @section machine
|
// @section machine
|
||||||
|
|
||||||
// Travel limits after homing (units are in mm)
|
// Travel limits after homing (units are in mm)
|
||||||
|
@ -725,6 +721,11 @@
|
||||||
#define Y_MAX_POS 200
|
#define Y_MAX_POS 200
|
||||||
#define Z_MAX_POS 200
|
#define Z_MAX_POS 200
|
||||||
|
|
||||||
|
// If enabled, axes won't move below MIN_POS in response to movement commands.
|
||||||
|
#define MIN_SOFTWARE_ENDSTOPS
|
||||||
|
// If enabled, axes won't move above MAX_POS in response to movement commands.
|
||||||
|
#define MAX_SOFTWARE_ENDSTOPS
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Filament Runout Sensor
|
* Filament Runout Sensor
|
||||||
* A mechanical or opto endstop is used to check for the presence of filament.
|
* A mechanical or opto endstop is used to check for the presence of filament.
|
||||||
|
@ -750,9 +751,9 @@
|
||||||
#define MESH_INSET 10 // Mesh inset margin on print area
|
#define MESH_INSET 10 // Mesh inset margin on print area
|
||||||
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
|
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
|
||||||
#define MESH_NUM_Y_POINTS 3
|
#define MESH_NUM_Y_POINTS 3
|
||||||
#define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0.
|
#define MANUAL_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
|
||||||
|
|
||||||
//#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest at origin [0,0,0]
|
//#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS
|
||||||
|
|
||||||
//#define MANUAL_BED_LEVELING // Add display menu option for bed leveling.
|
//#define MANUAL_BED_LEVELING // Add display menu option for bed leveling.
|
||||||
|
|
||||||
|
|
|
@ -807,16 +807,12 @@
|
||||||
#define Z_HOMING_HEIGHT 15 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
|
#define Z_HOMING_HEIGHT 15 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
|
||||||
// Be sure you have this distance over your Z_MAX_POS in case.
|
// Be sure you have this distance over your Z_MAX_POS in case.
|
||||||
|
|
||||||
// ENDSTOP SETTINGS:
|
// Direction of endstops when homing; 1=MAX, -1=MIN
|
||||||
// Sets direction of endstops when homing; 1=MAX, -1=MIN
|
// :[-1,1]
|
||||||
// :[-1, 1]
|
|
||||||
#define X_HOME_DIR 1 // deltas always home to max
|
#define X_HOME_DIR 1 // deltas always home to max
|
||||||
#define Y_HOME_DIR 1
|
#define Y_HOME_DIR 1
|
||||||
#define Z_HOME_DIR 1
|
#define Z_HOME_DIR 1
|
||||||
|
|
||||||
#define min_software_endstops true // If true, axis won't move to coordinates less than HOME_POS.
|
|
||||||
#define max_software_endstops true // If true, axis won't move to coordinates greater than the defined lengths below.
|
|
||||||
|
|
||||||
// @section machine
|
// @section machine
|
||||||
|
|
||||||
// Travel limits after homing (units are in mm)
|
// Travel limits after homing (units are in mm)
|
||||||
|
@ -827,6 +823,11 @@
|
||||||
#define Y_MAX_POS DELTA_PRINTABLE_RADIUS
|
#define Y_MAX_POS DELTA_PRINTABLE_RADIUS
|
||||||
#define Z_MAX_POS MANUAL_Z_HOME_POS
|
#define Z_MAX_POS MANUAL_Z_HOME_POS
|
||||||
|
|
||||||
|
// If enabled, axes won't move below MIN_POS in response to movement commands.
|
||||||
|
#define MIN_SOFTWARE_ENDSTOPS
|
||||||
|
// If enabled, axes won't move above MAX_POS in response to movement commands.
|
||||||
|
#define MAX_SOFTWARE_ENDSTOPS
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Filament Runout Sensor
|
* Filament Runout Sensor
|
||||||
* A mechanical or opto endstop is used to check for the presence of filament.
|
* A mechanical or opto endstop is used to check for the presence of filament.
|
||||||
|
@ -853,9 +854,9 @@
|
||||||
#define MESH_INSET 10 // Mesh inset margin on print area
|
#define MESH_INSET 10 // Mesh inset margin on print area
|
||||||
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
|
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
|
||||||
#define MESH_NUM_Y_POINTS 3
|
#define MESH_NUM_Y_POINTS 3
|
||||||
#define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0.
|
#define MANUAL_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
|
||||||
|
|
||||||
//#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest at origin [0,0,0]
|
//#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS
|
||||||
|
|
||||||
//#define MANUAL_BED_LEVELING // Add display menu option for bed leveling.
|
//#define MANUAL_BED_LEVELING // Add display menu option for bed leveling.
|
||||||
|
|
||||||
|
|
|
@ -791,16 +791,12 @@
|
||||||
//#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
|
//#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
|
||||||
// Be sure you have this distance over your Z_MAX_POS in case.
|
// Be sure you have this distance over your Z_MAX_POS in case.
|
||||||
|
|
||||||
// ENDSTOP SETTINGS:
|
// Direction of endstops when homing; 1=MAX, -1=MIN
|
||||||
// Sets direction of endstops when homing; 1=MAX, -1=MIN
|
// :[-1,1]
|
||||||
// :[-1, 1]
|
|
||||||
#define X_HOME_DIR 1 // deltas always home to max
|
#define X_HOME_DIR 1 // deltas always home to max
|
||||||
#define Y_HOME_DIR 1
|
#define Y_HOME_DIR 1
|
||||||
#define Z_HOME_DIR 1
|
#define Z_HOME_DIR 1
|
||||||
|
|
||||||
#define min_software_endstops true // If true, axis won't move to coordinates less than HOME_POS.
|
|
||||||
#define max_software_endstops true // If true, axis won't move to coordinates greater than the defined lengths below.
|
|
||||||
|
|
||||||
// @section machine
|
// @section machine
|
||||||
|
|
||||||
// Travel limits after homing (units are in mm)
|
// Travel limits after homing (units are in mm)
|
||||||
|
@ -811,6 +807,11 @@
|
||||||
#define Y_MAX_POS DELTA_PRINTABLE_RADIUS
|
#define Y_MAX_POS DELTA_PRINTABLE_RADIUS
|
||||||
#define Z_MAX_POS MANUAL_Z_HOME_POS
|
#define Z_MAX_POS MANUAL_Z_HOME_POS
|
||||||
|
|
||||||
|
// If enabled, axes won't move below MIN_POS in response to movement commands.
|
||||||
|
#define MIN_SOFTWARE_ENDSTOPS
|
||||||
|
// If enabled, axes won't move above MAX_POS in response to movement commands.
|
||||||
|
#define MAX_SOFTWARE_ENDSTOPS
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Filament Runout Sensor
|
* Filament Runout Sensor
|
||||||
* A mechanical or opto endstop is used to check for the presence of filament.
|
* A mechanical or opto endstop is used to check for the presence of filament.
|
||||||
|
@ -836,9 +837,9 @@
|
||||||
#define MESH_INSET 10 // Mesh inset margin on print area
|
#define MESH_INSET 10 // Mesh inset margin on print area
|
||||||
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
|
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
|
||||||
#define MESH_NUM_Y_POINTS 3
|
#define MESH_NUM_Y_POINTS 3
|
||||||
#define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0.
|
#define MANUAL_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
|
||||||
|
|
||||||
//#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest at origin [0,0,0]
|
//#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS
|
||||||
|
|
||||||
//#define MANUAL_BED_LEVELING // Add display menu option for bed leveling.
|
//#define MANUAL_BED_LEVELING // Add display menu option for bed leveling.
|
||||||
|
|
||||||
|
|
|
@ -794,16 +794,12 @@
|
||||||
//#define Z_HOMING_HEIGHT 15 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
|
//#define Z_HOMING_HEIGHT 15 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
|
||||||
// Be sure you have this distance over your Z_MAX_POS in case.
|
// Be sure you have this distance over your Z_MAX_POS in case.
|
||||||
|
|
||||||
// ENDSTOP SETTINGS:
|
// Direction of endstops when homing; 1=MAX, -1=MIN
|
||||||
// Sets direction of endstops when homing; 1=MAX, -1=MIN
|
// :[-1,1]
|
||||||
// :[-1, 1]
|
|
||||||
#define X_HOME_DIR 1 // deltas always home to max
|
#define X_HOME_DIR 1 // deltas always home to max
|
||||||
#define Y_HOME_DIR 1
|
#define Y_HOME_DIR 1
|
||||||
#define Z_HOME_DIR 1
|
#define Z_HOME_DIR 1
|
||||||
|
|
||||||
#define min_software_endstops true // If true, axis won't move to coordinates less than HOME_POS.
|
|
||||||
#define max_software_endstops true // If true, axis won't move to coordinates greater than the defined lengths below.
|
|
||||||
|
|
||||||
// @section machine
|
// @section machine
|
||||||
|
|
||||||
// Travel limits after homing (units are in mm)
|
// Travel limits after homing (units are in mm)
|
||||||
|
@ -814,6 +810,11 @@
|
||||||
#define Y_MAX_POS DELTA_PRINTABLE_RADIUS
|
#define Y_MAX_POS DELTA_PRINTABLE_RADIUS
|
||||||
#define Z_MAX_POS MANUAL_Z_HOME_POS
|
#define Z_MAX_POS MANUAL_Z_HOME_POS
|
||||||
|
|
||||||
|
// If enabled, axes won't move below MIN_POS in response to movement commands.
|
||||||
|
#define MIN_SOFTWARE_ENDSTOPS
|
||||||
|
// If enabled, axes won't move above MAX_POS in response to movement commands.
|
||||||
|
#define MAX_SOFTWARE_ENDSTOPS
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Filament Runout Sensor
|
* Filament Runout Sensor
|
||||||
* A mechanical or opto endstop is used to check for the presence of filament.
|
* A mechanical or opto endstop is used to check for the presence of filament.
|
||||||
|
@ -839,9 +840,9 @@
|
||||||
#define MESH_INSET 10 // Mesh inset margin on print area
|
#define MESH_INSET 10 // Mesh inset margin on print area
|
||||||
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
|
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
|
||||||
#define MESH_NUM_Y_POINTS 3
|
#define MESH_NUM_Y_POINTS 3
|
||||||
#define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0.
|
#define MANUAL_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
|
||||||
|
|
||||||
//#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest at origin [0,0,0]
|
//#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS
|
||||||
|
|
||||||
//#define MANUAL_BED_LEVELING // Add display menu option for bed leveling.
|
//#define MANUAL_BED_LEVELING // Add display menu option for bed leveling.
|
||||||
|
|
||||||
|
|
|
@ -793,16 +793,12 @@
|
||||||
//#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
|
//#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
|
||||||
// Be sure you have this distance over your Z_MAX_POS in case.
|
// Be sure you have this distance over your Z_MAX_POS in case.
|
||||||
|
|
||||||
// ENDSTOP SETTINGS:
|
// Direction of endstops when homing; 1=MAX, -1=MIN
|
||||||
// Sets direction of endstops when homing; 1=MAX, -1=MIN
|
// :[-1,1]
|
||||||
// :[-1, 1]
|
|
||||||
#define X_HOME_DIR 1 // deltas always home to max
|
#define X_HOME_DIR 1 // deltas always home to max
|
||||||
#define Y_HOME_DIR 1
|
#define Y_HOME_DIR 1
|
||||||
#define Z_HOME_DIR 1
|
#define Z_HOME_DIR 1
|
||||||
|
|
||||||
#define min_software_endstops true // If true, axis won't move to coordinates less than HOME_POS.
|
|
||||||
#define max_software_endstops true // If true, axis won't move to coordinates greater than the defined lengths below.
|
|
||||||
|
|
||||||
// @section machine
|
// @section machine
|
||||||
|
|
||||||
// Travel limits after homing (units are in mm)
|
// Travel limits after homing (units are in mm)
|
||||||
|
@ -813,6 +809,11 @@
|
||||||
#define Y_MAX_POS DELTA_PRINTABLE_RADIUS
|
#define Y_MAX_POS DELTA_PRINTABLE_RADIUS
|
||||||
#define Z_MAX_POS MANUAL_Z_HOME_POS
|
#define Z_MAX_POS MANUAL_Z_HOME_POS
|
||||||
|
|
||||||
|
// If enabled, axes won't move below MIN_POS in response to movement commands.
|
||||||
|
#define MIN_SOFTWARE_ENDSTOPS
|
||||||
|
// If enabled, axes won't move above MAX_POS in response to movement commands.
|
||||||
|
#define MAX_SOFTWARE_ENDSTOPS
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Filament Runout Sensor
|
* Filament Runout Sensor
|
||||||
* A mechanical or opto endstop is used to check for the presence of filament.
|
* A mechanical or opto endstop is used to check for the presence of filament.
|
||||||
|
@ -838,9 +839,9 @@
|
||||||
#define MESH_INSET 10 // Mesh inset margin on print area
|
#define MESH_INSET 10 // Mesh inset margin on print area
|
||||||
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
|
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
|
||||||
#define MESH_NUM_Y_POINTS 3
|
#define MESH_NUM_Y_POINTS 3
|
||||||
#define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0.
|
#define MANUAL_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
|
||||||
|
|
||||||
//#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest at origin [0,0,0]
|
//#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS
|
||||||
|
|
||||||
//#define MANUAL_BED_LEVELING // Add display menu option for bed leveling.
|
//#define MANUAL_BED_LEVELING // Add display menu option for bed leveling.
|
||||||
|
|
||||||
|
|
|
@ -797,16 +797,12 @@
|
||||||
//#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
|
//#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
|
||||||
// Be sure you have this distance over your Z_MAX_POS in case.
|
// Be sure you have this distance over your Z_MAX_POS in case.
|
||||||
|
|
||||||
// ENDSTOP SETTINGS:
|
// Direction of endstops when homing; 1=MAX, -1=MIN
|
||||||
// Sets direction of endstops when homing; 1=MAX, -1=MIN
|
// :[-1,1]
|
||||||
// :[-1, 1]
|
|
||||||
#define X_HOME_DIR 1 // deltas always home to max
|
#define X_HOME_DIR 1 // deltas always home to max
|
||||||
#define Y_HOME_DIR 1
|
#define Y_HOME_DIR 1
|
||||||
#define Z_HOME_DIR 1
|
#define Z_HOME_DIR 1
|
||||||
|
|
||||||
#define min_software_endstops false // If true, axis won't move to coordinates less than HOME_POS.
|
|
||||||
#define max_software_endstops true // If true, axis won't move to coordinates greater than the defined lengths below.
|
|
||||||
|
|
||||||
// @section machine
|
// @section machine
|
||||||
|
|
||||||
// Travel limits after homing (units are in mm)
|
// Travel limits after homing (units are in mm)
|
||||||
|
@ -817,6 +813,11 @@
|
||||||
#define Y_MAX_POS DELTA_PRINTABLE_RADIUS
|
#define Y_MAX_POS DELTA_PRINTABLE_RADIUS
|
||||||
#define Z_MAX_POS MANUAL_Z_HOME_POS
|
#define Z_MAX_POS MANUAL_Z_HOME_POS
|
||||||
|
|
||||||
|
// If enabled, axes won't move below MIN_POS in response to movement commands.
|
||||||
|
//#define MIN_SOFTWARE_ENDSTOPS
|
||||||
|
// If enabled, axes won't move above MAX_POS in response to movement commands.
|
||||||
|
#define MAX_SOFTWARE_ENDSTOPS
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Filament Runout Sensor
|
* Filament Runout Sensor
|
||||||
* A mechanical or opto endstop is used to check for the presence of filament.
|
* A mechanical or opto endstop is used to check for the presence of filament.
|
||||||
|
@ -842,9 +843,9 @@
|
||||||
#define MESH_INSET 10 // Mesh inset margin on print area
|
#define MESH_INSET 10 // Mesh inset margin on print area
|
||||||
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
|
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
|
||||||
#define MESH_NUM_Y_POINTS 3
|
#define MESH_NUM_Y_POINTS 3
|
||||||
#define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0.
|
#define MANUAL_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
|
||||||
|
|
||||||
//#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest at origin [0,0,0]
|
//#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS
|
||||||
|
|
||||||
//#define MANUAL_BED_LEVELING // Add display menu option for bed leveling.
|
//#define MANUAL_BED_LEVELING // Add display menu option for bed leveling.
|
||||||
|
|
||||||
|
|
|
@ -708,16 +708,12 @@
|
||||||
//#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
|
//#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
|
||||||
// Be sure you have this distance over your Z_MAX_POS in case.
|
// Be sure you have this distance over your Z_MAX_POS in case.
|
||||||
|
|
||||||
// ENDSTOP SETTINGS:
|
// Direction of endstops when homing; 1=MAX, -1=MIN
|
||||||
// Sets direction of endstops when homing; 1=MAX, -1=MIN
|
// :[-1,1]
|
||||||
// :[-1, 1]
|
|
||||||
#define X_HOME_DIR -1
|
#define X_HOME_DIR -1
|
||||||
#define Y_HOME_DIR -1
|
#define Y_HOME_DIR -1
|
||||||
#define Z_HOME_DIR -1
|
#define Z_HOME_DIR -1
|
||||||
|
|
||||||
#define min_software_endstops true // If true, axis won't move to coordinates less than HOME_POS.
|
|
||||||
#define max_software_endstops true // If true, axis won't move to coordinates greater than the defined lengths below.
|
|
||||||
|
|
||||||
// @section machine
|
// @section machine
|
||||||
|
|
||||||
// Travel limits after homing (units are in mm)
|
// Travel limits after homing (units are in mm)
|
||||||
|
@ -728,6 +724,11 @@
|
||||||
#define Y_MAX_POS 150
|
#define Y_MAX_POS 150
|
||||||
#define Z_MAX_POS 86
|
#define Z_MAX_POS 86
|
||||||
|
|
||||||
|
// If enabled, axes won't move below MIN_POS in response to movement commands.
|
||||||
|
#define MIN_SOFTWARE_ENDSTOPS
|
||||||
|
// If enabled, axes won't move above MAX_POS in response to movement commands.
|
||||||
|
#define MAX_SOFTWARE_ENDSTOPS
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Filament Runout Sensor
|
* Filament Runout Sensor
|
||||||
* A mechanical or opto endstop is used to check for the presence of filament.
|
* A mechanical or opto endstop is used to check for the presence of filament.
|
||||||
|
@ -753,9 +754,9 @@
|
||||||
#define MESH_INSET 10 // Mesh inset margin on print area
|
#define MESH_INSET 10 // Mesh inset margin on print area
|
||||||
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
|
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
|
||||||
#define MESH_NUM_Y_POINTS 3
|
#define MESH_NUM_Y_POINTS 3
|
||||||
#define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0.
|
#define MANUAL_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
|
||||||
|
|
||||||
//#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest at origin [0,0,0]
|
//#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS
|
||||||
|
|
||||||
//#define MANUAL_BED_LEVELING // Add display menu option for bed leveling.
|
//#define MANUAL_BED_LEVELING // Add display menu option for bed leveling.
|
||||||
|
|
||||||
|
|
|
@ -701,16 +701,12 @@
|
||||||
//#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
|
//#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
|
||||||
// Be sure you have this distance over your Z_MAX_POS in case.
|
// Be sure you have this distance over your Z_MAX_POS in case.
|
||||||
|
|
||||||
// ENDSTOP SETTINGS:
|
// Direction of endstops when homing; 1=MAX, -1=MIN
|
||||||
// Sets direction of endstops when homing; 1=MAX, -1=MIN
|
// :[-1,1]
|
||||||
// :[-1, 1]
|
|
||||||
#define X_HOME_DIR -1
|
#define X_HOME_DIR -1
|
||||||
#define Y_HOME_DIR -1
|
#define Y_HOME_DIR -1
|
||||||
#define Z_HOME_DIR -1
|
#define Z_HOME_DIR -1
|
||||||
|
|
||||||
#define min_software_endstops true // If true, axis won't move to coordinates less than HOME_POS.
|
|
||||||
#define max_software_endstops true // If true, axis won't move to coordinates greater than the defined lengths below.
|
|
||||||
|
|
||||||
// @section machine
|
// @section machine
|
||||||
|
|
||||||
// Travel limits after homing (units are in mm)
|
// Travel limits after homing (units are in mm)
|
||||||
|
@ -721,6 +717,11 @@
|
||||||
#define Y_MAX_POS 205
|
#define Y_MAX_POS 205
|
||||||
#define Z_MAX_POS 120
|
#define Z_MAX_POS 120
|
||||||
|
|
||||||
|
// If enabled, axes won't move below MIN_POS in response to movement commands.
|
||||||
|
#define MIN_SOFTWARE_ENDSTOPS
|
||||||
|
// If enabled, axes won't move above MAX_POS in response to movement commands.
|
||||||
|
#define MAX_SOFTWARE_ENDSTOPS
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Filament Runout Sensor
|
* Filament Runout Sensor
|
||||||
* A mechanical or opto endstop is used to check for the presence of filament.
|
* A mechanical or opto endstop is used to check for the presence of filament.
|
||||||
|
@ -746,9 +747,9 @@
|
||||||
#define MESH_INSET 10 // Mesh inset margin on print area
|
#define MESH_INSET 10 // Mesh inset margin on print area
|
||||||
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
|
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited.
|
||||||
#define MESH_NUM_Y_POINTS 3
|
#define MESH_NUM_Y_POINTS 3
|
||||||
#define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0.
|
#define MANUAL_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
|
||||||
|
|
||||||
//#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest at origin [0,0,0]
|
//#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS
|
||||||
|
|
||||||
//#define MANUAL_BED_LEVELING // Add display menu option for bed leveling.
|
//#define MANUAL_BED_LEVELING // Add display menu option for bed leveling.
|
||||||
|
|
||||||
|
|
|
@ -23,6 +23,23 @@
|
||||||
#include "Marlin.h"
|
#include "Marlin.h"
|
||||||
|
|
||||||
#if ENABLED(MESH_BED_LEVELING)
|
#if ENABLED(MESH_BED_LEVELING)
|
||||||
|
|
||||||
|
enum MeshLevelingState {
|
||||||
|
MeshReport,
|
||||||
|
MeshStart,
|
||||||
|
MeshNext,
|
||||||
|
MeshSet,
|
||||||
|
MeshSetZOffset,
|
||||||
|
MeshReset
|
||||||
|
};
|
||||||
|
|
||||||
|
enum MBLStatus {
|
||||||
|
MBL_STATUS_NONE = 0,
|
||||||
|
MBL_STATUS_HAS_MESH_BIT = 0,
|
||||||
|
MBL_STATUS_ACTIVE_BIT = 1,
|
||||||
|
MBL_STATUS_REACTIVATE_BIT = 2
|
||||||
|
};
|
||||||
|
|
||||||
#define MESH_X_DIST ((MESH_MAX_X - (MESH_MIN_X))/(MESH_NUM_X_POINTS - 1))
|
#define MESH_X_DIST ((MESH_MAX_X - (MESH_MIN_X))/(MESH_NUM_X_POINTS - 1))
|
||||||
#define MESH_Y_DIST ((MESH_MAX_Y - (MESH_MIN_Y))/(MESH_NUM_Y_POINTS - 1))
|
#define MESH_Y_DIST ((MESH_MAX_Y - (MESH_MIN_Y))/(MESH_NUM_Y_POINTS - 1))
|
||||||
|
|
||||||
|
@ -44,6 +61,8 @@
|
||||||
void set_active(const bool onOff) { onOff ? SBI(status, MBL_STATUS_ACTIVE_BIT) : CBI(status, MBL_STATUS_ACTIVE_BIT); }
|
void set_active(const bool onOff) { onOff ? SBI(status, MBL_STATUS_ACTIVE_BIT) : CBI(status, MBL_STATUS_ACTIVE_BIT); }
|
||||||
bool has_mesh() const { return TEST(status, MBL_STATUS_HAS_MESH_BIT); }
|
bool has_mesh() const { return TEST(status, MBL_STATUS_HAS_MESH_BIT); }
|
||||||
void set_has_mesh(const bool onOff) { onOff ? SBI(status, MBL_STATUS_HAS_MESH_BIT) : CBI(status, MBL_STATUS_HAS_MESH_BIT); }
|
void set_has_mesh(const bool onOff) { onOff ? SBI(status, MBL_STATUS_HAS_MESH_BIT) : CBI(status, MBL_STATUS_HAS_MESH_BIT); }
|
||||||
|
bool reactivate() { bool b = TEST(status, MBL_STATUS_REACTIVATE_BIT); CBI(status, MBL_STATUS_REACTIVATE_BIT); return b; }
|
||||||
|
void set_reactivate(const bool onOff) { onOff ? SBI(status, MBL_STATUS_REACTIVATE_BIT) : CBI(status, MBL_STATUS_REACTIVATE_BIT); }
|
||||||
|
|
||||||
inline void zigzag(const int8_t index, int8_t &px, int8_t &py) const {
|
inline void zigzag(const int8_t index, int8_t &px, int8_t &py) const {
|
||||||
px = index % (MESH_NUM_X_POINTS);
|
px = index % (MESH_NUM_X_POINTS);
|
||||||
|
|
|
@ -1220,21 +1220,20 @@ void kill_screen(const char* lcd_msg) {
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static uint8_t _lcd_level_bed_position;
|
static uint8_t manual_probe_index;
|
||||||
|
|
||||||
// Utility to go to the next mesh point
|
// Utility to go to the next mesh point
|
||||||
// A raise is added between points if Z_HOMING_HEIGHT is in use
|
inline void _manual_probe_xy(float x, float y) {
|
||||||
// Note: During Manual Bed Leveling the homed Z position is MESH_HOME_SEARCH_Z
|
|
||||||
// Z position will be restored with the final action, a G28
|
|
||||||
inline void _mbl_goto_xy(float x, float y) {
|
|
||||||
if (no_reentrance) return;
|
if (no_reentrance) return;
|
||||||
current_position[Z_AXIS] = LOGICAL_Z_POSITION(MESH_HOME_SEARCH_Z + Z_HOMING_HEIGHT);
|
#if MANUAL_PROBE_HEIGHT > 0
|
||||||
line_to_current(Z_AXIS);
|
current_position[Z_AXIS] = LOGICAL_Z_POSITION(Z_MIN_POS) + MANUAL_PROBE_HEIGHT;
|
||||||
|
line_to_current(Z_AXIS);
|
||||||
|
#endif
|
||||||
current_position[X_AXIS] = LOGICAL_X_POSITION(x);
|
current_position[X_AXIS] = LOGICAL_X_POSITION(x);
|
||||||
current_position[Y_AXIS] = LOGICAL_Y_POSITION(y);
|
current_position[Y_AXIS] = LOGICAL_Y_POSITION(y);
|
||||||
planner.buffer_line_kinematic(current_position, MMM_TO_MMS(XY_PROBE_SPEED), active_extruder);
|
planner.buffer_line_kinematic(current_position, MMM_TO_MMS(XY_PROBE_SPEED), active_extruder);
|
||||||
#if Z_HOMING_HEIGHT > 0
|
#if MANUAL_PROBE_HEIGHT > 0
|
||||||
current_position[Z_AXIS] = LOGICAL_Z_POSITION(MESH_HOME_SEARCH_Z);
|
current_position[Z_AXIS] = LOGICAL_Z_POSITION(Z_MIN_POS) + 0.2;
|
||||||
line_to_current(Z_AXIS);
|
line_to_current(Z_AXIS);
|
||||||
#endif
|
#endif
|
||||||
lcd_synchronize();
|
lcd_synchronize();
|
||||||
|
@ -1259,48 +1258,44 @@ void kill_screen(const char* lcd_msg) {
|
||||||
if (encoderPosition) {
|
if (encoderPosition) {
|
||||||
refresh_cmd_timeout();
|
refresh_cmd_timeout();
|
||||||
current_position[Z_AXIS] += float((int32_t)encoderPosition) * (MBL_Z_STEP);
|
current_position[Z_AXIS] += float((int32_t)encoderPosition) * (MBL_Z_STEP);
|
||||||
NOLESS(current_position[Z_AXIS], 0);
|
NOLESS(current_position[Z_AXIS], -(MANUAL_PROBE_Z_RANGE) * 0.5);
|
||||||
NOMORE(current_position[Z_AXIS], MESH_HOME_SEARCH_Z * 2);
|
NOMORE(current_position[Z_AXIS], (MANUAL_PROBE_Z_RANGE) * 0.5);
|
||||||
line_to_current(Z_AXIS);
|
line_to_current(Z_AXIS);
|
||||||
lcdDrawUpdate = LCDVIEW_KEEP_REDRAWING;
|
lcdDrawUpdate = LCDVIEW_KEEP_REDRAWING;
|
||||||
encoderPosition = 0;
|
encoderPosition = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool debounce_click = false;
|
|
||||||
if (lcd_clicked) {
|
if (lcd_clicked) {
|
||||||
if (!debounce_click) {
|
mbl.set_zigzag_z(manual_probe_index++, current_position[Z_AXIS]);
|
||||||
debounce_click = true; // ignore multiple "clicks" in a row
|
if (manual_probe_index == (MESH_NUM_X_POINTS) * (MESH_NUM_Y_POINTS)) {
|
||||||
mbl.set_zigzag_z(_lcd_level_bed_position++, current_position[Z_AXIS]);
|
lcd_goto_screen(_lcd_level_bed_done);
|
||||||
if (_lcd_level_bed_position == (MESH_NUM_X_POINTS) * (MESH_NUM_Y_POINTS)) {
|
|
||||||
lcd_goto_screen(_lcd_level_bed_done);
|
|
||||||
|
|
||||||
current_position[Z_AXIS] = MESH_HOME_SEARCH_Z + Z_HOMING_HEIGHT;
|
#if MANUAL_PROBE_HEIGHT > 0
|
||||||
|
current_position[Z_AXIS] = LOGICAL_Z_POSITION(Z_MIN_POS) + MANUAL_PROBE_HEIGHT;
|
||||||
line_to_current(Z_AXIS);
|
line_to_current(Z_AXIS);
|
||||||
lcd_synchronize();
|
lcd_synchronize();
|
||||||
|
#endif
|
||||||
|
|
||||||
mbl.set_has_mesh(true);
|
mbl.set_has_mesh(true);
|
||||||
enqueue_and_echo_commands_P(PSTR("G28"));
|
mbl.set_reactivate(true);
|
||||||
lcd_return_to_status();
|
enqueue_and_echo_commands_P(PSTR("G28"));
|
||||||
//LCD_MESSAGEPGM(MSG_LEVEL_BED_DONE);
|
lcd_return_to_status();
|
||||||
#if HAS_BUZZER
|
//LCD_MESSAGEPGM(MSG_LEVEL_BED_DONE);
|
||||||
lcd_buzz(200, 659);
|
#if HAS_BUZZER
|
||||||
lcd_buzz(200, 698);
|
lcd_buzz(200, 659);
|
||||||
#endif
|
lcd_buzz(200, 698);
|
||||||
}
|
#endif
|
||||||
else {
|
}
|
||||||
lcd_goto_screen(_lcd_level_goto_next_point);
|
else {
|
||||||
}
|
lcd_goto_screen(_lcd_level_goto_next_point);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else {
|
|
||||||
debounce_click = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
KeepDrawing:
|
KeepDrawing:
|
||||||
// Update on first display, then only on updates to Z position
|
// Update on first display, then only on updates to Z position
|
||||||
// Show message above on clicks instead
|
// Show message above on clicks instead
|
||||||
if (lcdDrawUpdate) {
|
if (lcdDrawUpdate) {
|
||||||
float v = current_position[Z_AXIS] - MESH_HOME_SEARCH_Z;
|
const float v = current_position[Z_AXIS];
|
||||||
lcd_implementation_drawedit(PSTR(MSG_MOVE_Z), ftostr43sign(v + (v < 0 ? -0.0001 : 0.0001), '+'));
|
lcd_implementation_drawedit(PSTR(MSG_MOVE_Z), ftostr43sign(v + (v < 0 ? -0.0001 : 0.0001), '+'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1312,7 +1307,7 @@ KeepDrawing:
|
||||||
void _lcd_level_bed_moving() {
|
void _lcd_level_bed_moving() {
|
||||||
if (lcdDrawUpdate) {
|
if (lcdDrawUpdate) {
|
||||||
char msg[10];
|
char msg[10];
|
||||||
sprintf_P(msg, PSTR("%i / %u"), (int)(_lcd_level_bed_position + 1), (MESH_NUM_X_POINTS) * (MESH_NUM_Y_POINTS));
|
sprintf_P(msg, PSTR("%i / %u"), (int)(manual_probe_index + 1), (MESH_NUM_X_POINTS) * (MESH_NUM_Y_POINTS));
|
||||||
lcd_implementation_drawedit(PSTR(MSG_LEVEL_BED_NEXT_POINT), msg);
|
lcd_implementation_drawedit(PSTR(MSG_LEVEL_BED_NEXT_POINT), msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1326,10 +1321,10 @@ KeepDrawing:
|
||||||
// Set the menu to display ahead of blocking call
|
// Set the menu to display ahead of blocking call
|
||||||
lcd_goto_screen(_lcd_level_bed_moving);
|
lcd_goto_screen(_lcd_level_bed_moving);
|
||||||
|
|
||||||
// _mbl_goto_xy runs the menu loop until the move is done
|
// _manual_probe_xy runs the menu loop until the move is done
|
||||||
int8_t px, py;
|
int8_t px, py;
|
||||||
mbl.zigzag(_lcd_level_bed_position, px, py);
|
mbl.zigzag(manual_probe_index, px, py);
|
||||||
_mbl_goto_xy(mbl.get_probe_x(px), mbl.get_probe_y(py));
|
_manual_probe_xy(mbl.get_probe_x(px), mbl.get_probe_y(py));
|
||||||
|
|
||||||
// After the blocking function returns, change menus
|
// After the blocking function returns, change menus
|
||||||
lcd_goto_screen(_lcd_level_bed_get_z);
|
lcd_goto_screen(_lcd_level_bed_get_z);
|
||||||
|
@ -1342,13 +1337,7 @@ KeepDrawing:
|
||||||
void _lcd_level_bed_homing_done() {
|
void _lcd_level_bed_homing_done() {
|
||||||
if (lcdDrawUpdate) lcd_implementation_drawedit(PSTR(MSG_LEVEL_BED_WAITING));
|
if (lcdDrawUpdate) lcd_implementation_drawedit(PSTR(MSG_LEVEL_BED_WAITING));
|
||||||
if (lcd_clicked) {
|
if (lcd_clicked) {
|
||||||
_lcd_level_bed_position = 0;
|
manual_probe_index = 0;
|
||||||
current_position[Z_AXIS] = MESH_HOME_SEARCH_Z
|
|
||||||
#if Z_HOME_DIR > 0
|
|
||||||
+ Z_MAX_POS
|
|
||||||
#endif
|
|
||||||
;
|
|
||||||
planner.set_position_mm(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
|
|
||||||
lcd_goto_screen(_lcd_level_goto_next_point);
|
lcd_goto_screen(_lcd_level_goto_next_point);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1607,9 +1596,20 @@ KeepDrawing:
|
||||||
if (encoderPosition) {
|
if (encoderPosition) {
|
||||||
refresh_cmd_timeout();
|
refresh_cmd_timeout();
|
||||||
|
|
||||||
// Limit to software endstops, if enabled
|
float min = current_position[axis] - 1000,
|
||||||
float min = (soft_endstops_enabled && min_software_endstops) ? soft_endstop_min[axis] : current_position[axis] - 1000,
|
max = current_position[axis] + 1000;
|
||||||
max = (soft_endstops_enabled && max_software_endstops) ? soft_endstop_max[axis] : current_position[axis] + 1000;
|
|
||||||
|
#if HAS_SOFTWARE_ENDSTOPS
|
||||||
|
// Limit to software endstops, if enabled
|
||||||
|
if (soft_endstops_enabled) {
|
||||||
|
#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
|
||||||
|
min = soft_endstop_min[axis];
|
||||||
|
#endif
|
||||||
|
#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
|
||||||
|
max = soft_endstop_max[axis];
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
// Get the new position
|
// Get the new position
|
||||||
current_position[axis] += float((int32_t)encoderPosition) * move_menu_scale;
|
current_position[axis] += float((int32_t)encoderPosition) * move_menu_scale;
|
||||||
|
|
Loading…
Reference in a new issue