If you look into printer.h
static INLINE void startZStep() {
#if MULTI_ZENDSTOP_HOMING
if(Printer::multiZHomeFlags & 1) {
WRITE(Z_STEP_PIN, START_STEP_WITH_HIGH);
}
#if FEATURE_TWO_ZSTEPPER
if(Printer::multiZHomeFlags & 2) {
WRITE(Z2_STEP_PIN, START_STEP_WITH_HIGH);
}
#endif
You see normal motor is linked to 1 and second motor to 2.
In checkEndstops you see
#if MULTI_ZENDSTOP_HOMING
{
if(Printer::isHoming()) {
if(isZNegativeMove()) {
if(Endstops::zMin())
Printer::multiZHomeFlags &= 1;
if(Endstops::z2MinMax())
Printer::multiZHomeFlags &= 2;
if(Printer::multiZHomeFlags == 0)
setZMoveFinished();
} else if(isZPositiveMove()) {
if(Endstops::zMax())
Printer::multiZHomeFlags &= 1;
if(Endstops::z2MinMax())
Printer::multiZHomeFlags &= 2;
if(Printer::multiZHomeFlags == 0) {
#if MAX_HARDWARE_ENDSTOP_Z
Printer::stepsRemainingAtZHit = stepsRemaining;
#endif
setZMoveFinished();
}
}You see z2minmax is linked to 2, so I wonder that you needed to cross the endstops. I really do not see this in the code. Can you double check that you did not just use wrong sockets (flipped) so you just mimic wrong hardware connection.In any case I'm glad it is now working.