limited stepper movement

I’m building a Dual endstop LowRider (DELR) and the X axis only moves in the (+) direction. On top of that, the Y and Z axis steppers are unresponsive with the exception of the coils squeeling as I activate and attempt to move them via LCD or Repetier.

Connecting the Y and Z steppers to the X drivers resulted in only moving in the (+) direction just as X did. Tried both “endstop” firmware branches in Github:

MPCNC_Ramps_T8_16T_LCD_32STEP_DualEndstop and MPCNC_T8_16T_Ramps_LCD_32STEP_DualEndstop

Modifications in configuration_adv.h:



Modifications in configuration.h:

USE_ZMAX_PLUG - Uncomment

Note: Tuning axis motion with the endstop firmware but doing it before endstop installation… could that be the problem?

Bonus: Where do you mount the Al angle mount/bracket?

Did you have a working Low Rider before trying the dual endstops? (I just want to eliminate a lot of machine spinup issues)

Do you get the right results from the M116 command? (Make sure your endstops are wired the right way, and doing the right thing)

Did you wire up a Y endstop? The firmware is expecting that.

The firmware will restrict movement in the negative X and negative Y dimensions, so as not to crush your endstops. Maybe that’s explaining the x in only one direction?

There’s also a setting for which end the Z endstops will be. I’m assuming your Z endstops are at Z-Max, so you’ll need that too.

None of the endstops are wired up. I’ll try the non-endstop firmware for verification that the system works without them.

What about the bonus???( Y-shaped Al angle mount location)

You can’t use it without endstops as they are set to NC, so without them it assumes they are all triggered and will only move away from them.

Installed the endstops and used M119 to check the endstop states. I inverted the logic of the endstops in the configuration.h file and now auto-squaring works! Thanks!

It is more safe to use them wired NC so if you get the chance you should switch them.

Awesome that you got it going though, lets see some precision projects!

My lowrider XY endstops are consistently working but my Z endstops seems to be reversed. While homing Z (moving gantry up) triggering either of the endstops do not stop the Z axis from rising. Untriggered, the Z axis can be controlled to go up and down. One Z endstop triggered will allow the Z axis to move up but not down. the Z endstops are mounted to the inline carriage with a mount on the bottom of the Z axis SS tube that goes up and clicks the endstop. Repetier shows correct endstop status for open/triggered. My Marlin version is the T8 ramps dual endstop from 12/2018.

By default the Z should be set up for normally open, as typically it is used with a touchplate. How do you have it wired?

I was going to suggest looking at M119. Can you paste the response to that? If things are incorrectly configured, it should say Z: and Z2, not Zmin/Zmax.

x_min: open
x2_min: open
y_min: open
y_max: open
z2_max: open

Ok, Zmin and Zmax should never be triggered at the same time. You don’t have a z_min, do you? Does Z2_max get triggered on the other side?

I manually triggered the endstops on the Z-axis for endstop identification. The image shows the endstop names and physical location on my table. Endstops on the Z-axis are only triggered when the gantry is fully raised. On the Ramps endstop pinout, where does Z2_max get connected (replaces z_min?).


There are two layers of abstraction here. One is the name of the pins, and one is the function.

Your Marlin thinks that the function Zmin is triggered, but the function Z2 isn’t. When you carriage is all the way to the top, or you manually trigger those two endstops, you should see:

x_min: open
x2_min: open
y_min: open
y_max: open
z_min: open

This is just a little confusing, because of the dual max endstops instead of the dual min endstops. Here what I would try next:

  • Change the Z2_USE_ENDSTOP in Configuration_adv.h to YMAX and reprogram the controller.
  • Connect the endstop that’s currently connected to the Zmin pin to the Ymax pin.

If that results in the M119 result above, then you just need to make sure that the Z1 motor is associated with the Z1 endstop, and not the Z2 endstop.

I don’t see a way to disable the Zmin function, so I think you need to leave the Zmin pin alone. On the plus side, if this works, maybe you can still do Zmin homing in the future to do touch plate stuff.

My file shows “Z2_USE_ENDSTOP XMAX”. Shouldn’t that be ZMAX?



I think zmax is being used by z1max, which is why I suggested ymax.

That worked. Both of the Z endstops work but when either Z endstop is triggered then both motors stop. They are not independent like the X1/X2 min endstops.

Interesting. When you push only one, does the M119 show only one triggered (try both)? Is the goofy when you move or when you home?

whoop there it is! It works as intended with Auto Z and Auto All. Thanks