|
@ -2256,12 +2256,20 @@ static void homeaxis(AxisEnum axis) { |
|
|
if (axis == Z_AXIS) stepper.set_homing_flag(true); |
|
|
if (axis == Z_AXIS) stepper.set_homing_flag(true); |
|
|
#endif |
|
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
// When homing Z with probe respect probe clearance
|
|
|
|
|
|
const float bump = axis_home_dir * ( |
|
|
|
|
|
#if HOMING_Z_WITH_PROBE |
|
|
|
|
|
(axis == Z_AXIS) ? max(Z_CLEARANCE_BETWEEN_PROBES, home_bump_mm(Z_AXIS)) : |
|
|
|
|
|
#endif |
|
|
|
|
|
home_bump_mm(axis) |
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
// 1. Fast move towards endstop until triggered
|
|
|
// 1. Fast move towards endstop until triggered
|
|
|
// 2. Move away from the endstop by the axis HOME_BUMP_MM
|
|
|
// 2. Move away from the endstop by the axis HOME_BUMP_MM
|
|
|
// 3. Slow move towards endstop until triggered
|
|
|
// 3. Slow move towards endstop until triggered
|
|
|
do_homing_move(axis, 1.5 * max_length(axis) * axis_home_dir); |
|
|
do_homing_move(axis, 1.5 * max_length(axis) * axis_home_dir); |
|
|
do_homing_move(axis, -home_bump_mm(axis) * axis_home_dir); |
|
|
do_homing_move(axis, -bump); |
|
|
do_homing_move(axis, 2 * home_bump_mm(axis) * axis_home_dir, get_homing_bump_feedrate(axis)); |
|
|
do_homing_move(axis, 2 * bump, get_homing_bump_feedrate(axis)); |
|
|
|
|
|
|
|
|
#if ENABLED(Z_DUAL_ENDSTOPS) |
|
|
#if ENABLED(Z_DUAL_ENDSTOPS) |
|
|
if (axis == Z_AXIS) { |
|
|
if (axis == Z_AXIS) { |
|
|