Y-axis motor moving in only one direction

I built my own CNC machine with Arduino Mega and it was working fine with Easel. Just installed Estlcam, changed the pin-outs and can get all axes to jog fine except Y-axis, which jogs in only one direction (X and Y go both directions correctly).

I tried reversing direction but that didn’t work. Any changes in Setup are being correctly sent to Arduino via ‘Program’. I swapped the Y-axis pins with the X-axis ones and then Y-axis motor works correctly but X-axis motor goes only in one direction.

Does this seem like a hardware issue or is there a setting/command I can change?

Correction: I meant to say “(X and Z go both directions correctly)”

Have you checked you plug connection for that motor, maybe you have a lead off?

If you attempt to jog backwards, does the stepper fail to move or move in the wrong direction?

If you swap stepper drivers between one that is working and one that is not working, does the issue stay the same or does it follow the stepper driver?

As a guess, there is an issue with the DIR pin going to that stepper driver. His the pinout for a A4988 stepper driver with the DIR pin highlighted:


I suppose you use marlin software and within, there is a setting if the end switch is not closed, one direction is not working so check the end switch. using ramps shield, put a jumper over the end switch pins of the Y axis. if it works, check the wiring to the switch and the switch itself

The Y motor works fine if I switch the wires to, say, the X pins so the wiring doesn’t seem to be the issue.

The stepper moves but always in the same direction (positive). Haven’t tried switching out the drivers-will give that a shot, thanks.

I’m using EstlCAM/GRBL. Does that have a similar switch like Marlin?

I do not have estlcam and grbl machine but I recognize the problem because it occurs sometimes when students of mine are building their 3D printer with marlin software and ramps boards. marlin is original derived from grbl and cnc must have some way to find out where the axis origin are.

I had this happen to me when using TB6600 stepper drivers. All four of them on a new build were doing the same as you describe. I changed over to TB6560 drivers with exactly the same wiring and all worked well.
See the thread here;

Closing the loop here: turns out it was a problem with the shield. I took it off and connected the wires directly to the Arduino and everything’s working fine now.

Thanks to everyone who took the time to reply and helped me troubleshoot!