During homing, line_to_axis_pos will make a path which moves across the
endstop trigger point. The move is stopped at endstop, so current_position should also be adjusted to reflect this! Caused error in subsequent call in endstop adjustment, since the movement would assume a wrong starting position.
This commit is contained in:
parent
f575e92f2e
commit
fe059f1221
@ -2414,6 +2414,10 @@ static void homeaxis(AxisEnum axis) {
|
|||||||
// Move slowly towards the endstop until triggered
|
// Move slowly towards the endstop until triggered
|
||||||
line_to_axis_pos(axis, 2 * home_bump_mm(axis) * axis_home_dir, get_homing_bump_feedrate(axis));
|
line_to_axis_pos(axis, 2 * home_bump_mm(axis) * axis_home_dir, get_homing_bump_feedrate(axis));
|
||||||
|
|
||||||
|
// reset current_position to 0 to reflect hitting endpoint
|
||||||
|
current_position[axis] = 0;
|
||||||
|
sync_plan_position();
|
||||||
|
|
||||||
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
||||||
if (DEBUGGING(LEVELING)) DEBUG_POS("> TRIGGER ENDSTOP", current_position);
|
if (DEBUGGING(LEVELING)) DEBUG_POS("> TRIGGER ENDSTOP", current_position);
|
||||||
#endif
|
#endif
|
||||||
@ -2430,7 +2434,6 @@ static void homeaxis(AxisEnum axis) {
|
|||||||
lockZ1 = (z_endstop_adj < 0);
|
lockZ1 = (z_endstop_adj < 0);
|
||||||
|
|
||||||
if (lockZ1) stepper.set_z_lock(true); else stepper.set_z2_lock(true);
|
if (lockZ1) stepper.set_z_lock(true); else stepper.set_z2_lock(true);
|
||||||
sync_plan_position();
|
|
||||||
|
|
||||||
// Move to the adjusted endstop height
|
// Move to the adjusted endstop height
|
||||||
line_to_axis_pos(axis, adj);
|
line_to_axis_pos(axis, adj);
|
||||||
@ -2443,7 +2446,6 @@ static void homeaxis(AxisEnum axis) {
|
|||||||
#if ENABLED(DELTA)
|
#if ENABLED(DELTA)
|
||||||
// retrace by the amount specified in endstop_adj
|
// retrace by the amount specified in endstop_adj
|
||||||
if (endstop_adj[axis] * axis_home_dir < 0) {
|
if (endstop_adj[axis] * axis_home_dir < 0) {
|
||||||
sync_plan_position();
|
|
||||||
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
||||||
if (DEBUGGING(LEVELING)) {
|
if (DEBUGGING(LEVELING)) {
|
||||||
SERIAL_ECHOPAIR("> endstop_adj = ", endstop_adj[axis]);
|
SERIAL_ECHOPAIR("> endstop_adj = ", endstop_adj[axis]);
|
||||||
|
Loading…
Reference in New Issue
Block a user