Odd homing issues with X axis motor during S91 relative motion phase

My X motor is having odd behavior during the homing process. The motor would move to the top, but would not reverse direction to move down -5mm during the G91 relative motion phase of the homing process. At first, I thought it was a bad motor connection or endstop, but the connections are fine. The motor moves fine after the settings go back to the absolute positioning with the G90 command. Sending the M119 command shows the correct end stop positions. I am using optical stops and have made the resistor mods for the 3.3V settings. I removed the 10k pullup resistor and changed the LED driver resistor to a lower value.

Just to be sure, I swapped the motor and endstop connections with my Y axis motors and now the problem is on the Y axis motor. Looking at the circuit board, I can see the Y and Z axis LED turn on during the process of lowering the motor -5 mm, but the X axis motor LED is off. I can see the X motor led turn on when its raising up the carriage to the home position. It stops once the endstop has been reached.

I can use the system as is for now, but I can tell the home position on the X carriage is off a few mm.

I looked at the LEDs again and it looks like the X motor LED does turn on when lowering, but the light is very dim to the point where it looks like its off. It looks like the controller is struggling to move it down. All the other motors move fine. The Y motor does turn off for a brief moment when it reaches the bottom.

Its a 3D printed part in black. Its opaque as you can get. Its been working fine for years. The problem is with the controller based on swapping the endstop and motor and the problem moves to another axis. I'm on a delta printer.

The question is whether the problem is with the DuetWifi control card, config.g setting or the the firmware. If there is any problem with endstop, motor or wiring, the problem would not move to another axis by switching the cables. I verified the cable is wired correctly also. All the pins are fully inserted and no loose connections. I'm using the latest firmware revision.

I looked at the LEDs again and it looks like the X motor LED does turn on when lowering, but the light is very dim to the point where it looks like its off. It looks like the controller is struggling to move it down. All the other motors move fine. The Y motor does turn off for a brief moment when it reaches the bottom.

Sounds like that endstop isn't sinking enough current. Did you forget to modify that one, or use the wrong value LED driver resistor? A bad connection in the 3.3V feed to that endstop might also be to blame.

They have all been modified correctly. The reason I don't think its the endstop is I switched cables to a different endstop on my other axis and the problem switched to the other axis. I switched the motor and the endstop cables on the control board side.

I just switched over to the Z axis motor and the endstop and the problem moved to that axis. Its definitely on the control board side. You would think if its sinking too much current, then all of the endstop would be affected.

I think I just figured it out.. I used the web based configuration tool and the homing routine was missing the S2 parameter when moving down a few mm. I added that parameter and it works fine now. Whoever updates that configuration tool should add that parameter to the homedelta.g file.

I have no idea what that S2 parameter does exactly on the G1 command, but adding the parameter definitely fixed the problem.
Its working great now.

–--------------------------------
Snnn Flag to check if an endstop was hit (S1 to check, S0 to ignore, S2 see note, default is S0)1

1Some firmwares allow for the RepRap to enable or disable the "sensing" of endstops during a move. Please check with whatever firmware you are using to see if they support the S parameter in this way, as damage may occur if you assume incorrectly. In RepRapFirmware, using the S1 or S2 parameter on a delta printer causes the XYZ parameters to refer to the individual tower motor positions instead of the head position, and to enable endstop detection as well if the parameter is S1.