Skip to content

Commit bf2548b

Browse files
authored
Merge pull request #6362 from tcm0116/babystepping
Only queue babysteps if axis is in a known position
2 parents bddd75a + 72a7fac commit bf2548b

File tree

1 file changed

+25
-23
lines changed

1 file changed

+25
-23
lines changed

Marlin/temperature.h

Lines changed: 25 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -431,31 +431,33 @@ class Temperature {
431431
#if ENABLED(BABYSTEPPING)
432432

433433
static void babystep_axis(const AxisEnum axis, const int distance) {
434-
#if IS_CORE
435-
#if ENABLED(BABYSTEP_XY)
436-
switch (axis) {
437-
case CORE_AXIS_1: // X on CoreXY and CoreXZ, Y on CoreYZ
438-
babystepsTodo[CORE_AXIS_1] += distance * 2;
439-
babystepsTodo[CORE_AXIS_2] += distance * 2;
440-
break;
441-
case CORE_AXIS_2: // Y on CoreXY, Z on CoreXZ and CoreYZ
442-
babystepsTodo[CORE_AXIS_1] += CORESIGN(distance * 2);
443-
babystepsTodo[CORE_AXIS_2] -= CORESIGN(distance * 2);
444-
break;
445-
case NORMAL_AXIS: // Z on CoreXY, Y on CoreXZ, X on CoreYZ
446-
babystepsTodo[NORMAL_AXIS] += distance;
447-
break;
448-
}
449-
#elif CORE_IS_XZ || CORE_IS_YZ
450-
// Only Z stepping needs to be handled here
451-
babystepsTodo[CORE_AXIS_1] += CORESIGN(distance * 2);
452-
babystepsTodo[CORE_AXIS_2] -= CORESIGN(distance * 2);
434+
if (axis_known_position[axis]) {
435+
#if IS_CORE
436+
#if ENABLED(BABYSTEP_XY)
437+
switch (axis) {
438+
case CORE_AXIS_1: // X on CoreXY and CoreXZ, Y on CoreYZ
439+
babystepsTodo[CORE_AXIS_1] += distance * 2;
440+
babystepsTodo[CORE_AXIS_2] += distance * 2;
441+
break;
442+
case CORE_AXIS_2: // Y on CoreXY, Z on CoreXZ and CoreYZ
443+
babystepsTodo[CORE_AXIS_1] += CORESIGN(distance * 2);
444+
babystepsTodo[CORE_AXIS_2] -= CORESIGN(distance * 2);
445+
break;
446+
case NORMAL_AXIS: // Z on CoreXY, Y on CoreXZ, X on CoreYZ
447+
babystepsTodo[NORMAL_AXIS] += distance;
448+
break;
449+
}
450+
#elif CORE_IS_XZ || CORE_IS_YZ
451+
// Only Z stepping needs to be handled here
452+
babystepsTodo[CORE_AXIS_1] += CORESIGN(distance * 2);
453+
babystepsTodo[CORE_AXIS_2] -= CORESIGN(distance * 2);
454+
#else
455+
babystepsTodo[Z_AXIS] += distance;
456+
#endif
453457
#else
454-
babystepsTodo[Z_AXIS] += distance;
458+
babystepsTodo[axis] += distance;
455459
#endif
456-
#else
457-
babystepsTodo[axis] += distance;
458-
#endif
460+
}
459461
}
460462

461463
#endif // BABYSTEPPING

0 commit comments

Comments
 (0)