|
|
|
@ -2228,10 +2228,15 @@ static void do_homing_move(AxisEnum axis, float where, float fr_mm_s = 0.0) {
|
|
|
|
|
#define HOMEAXIS(LETTER) homeaxis(LETTER##_AXIS)
|
|
|
|
|
|
|
|
|
|
static void homeaxis(AxisEnum axis) {
|
|
|
|
|
#define CAN_HOME(A) \
|
|
|
|
|
(axis == A##_AXIS && ((A##_MIN_PIN > -1 && A##_HOME_DIR < 0) || (A##_MAX_PIN > -1 && A##_HOME_DIR > 0)))
|
|
|
|
|
|
|
|
|
|
if (!CAN_HOME(X) && !CAN_HOME(Y) && !CAN_HOME(Z)) return;
|
|
|
|
|
#if IS_SCARA
|
|
|
|
|
// Only Z homing (with probe) is permitted
|
|
|
|
|
if (axis != Z_AXIS) { BUZZ(100, 880); return; }
|
|
|
|
|
#else
|
|
|
|
|
#define CAN_HOME(A) \
|
|
|
|
|
(axis == A##_AXIS && ((A##_MIN_PIN > -1 && A##_HOME_DIR < 0) || (A##_MAX_PIN > -1 && A##_HOME_DIR > 0)))
|
|
|
|
|
if (!CAN_HOME(X) && !CAN_HOME(Y) && !CAN_HOME(Z)) return;
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
|
|
|
|
if (DEBUGGING(LEVELING)) {
|
|
|
|
@ -2294,10 +2299,16 @@ static void homeaxis(AxisEnum axis) {
|
|
|
|
|
} // Z_AXIS
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
// Delta has already moved all three towers up in G28
|
|
|
|
|
// so here it re-homes each tower in turn.
|
|
|
|
|
// Delta homing treats the axes as normal linear axes.
|
|
|
|
|
#if ENABLED(DELTA)
|
|
|
|
|
#if IS_SCARA
|
|
|
|
|
|
|
|
|
|
set_axis_is_at_home(axis);
|
|
|
|
|
SYNC_PLAN_POSITION_KINEMATIC();
|
|
|
|
|
|
|
|
|
|
#elif ENABLED(DELTA)
|
|
|
|
|
|
|
|
|
|
// Delta has already moved all three towers up in G28
|
|
|
|
|
// so here it re-homes each tower in turn.
|
|
|
|
|
// Delta homing treats the axes as normal linear axes.
|
|
|
|
|
|
|
|
|
|
// retrace by the amount specified in endstop_adj
|
|
|
|
|
if (endstop_adj[axis] * Z_HOME_DIR < 0) {
|
|
|
|
|