x-axis Motor Only One Direction Movement

Hi Everyone,

Thanks for all the information that has been provided. This has been a fun journey. Much of this is very new to me and I’m trying to learn as much as I can. I’ve searched the forums as best I could, but still have the following issue:

MPCNC is built and I’m setting up the wiring, ramps and arduino boards. I did not get it from the shop, flashed arduino with marlin build 7, installed jumpers on ramps board, installed drivers, installed a 100k ohm resistor.

When testing out the motors using an LCD screen, I can get Y and Z to move both directions, but the X axis only will move in one direction. Different motors on the x axis do the same thing. I swapped out the Y driver to the X driver spot and the x axis still only moves one direction. At this point am I looking at a bad board?

Thanks again!

Using my firmware? Sounds like either you have endstops or didn’t disable them in your firmware. They are disabled in mine.

Vicious1, thanks so much for all you have done!

I am using your firmware - Marlin RC7 w/LCD. I haven’t messed with any of the settings (not really even sure how I would at this point). I did look at the endstop pins to see if I could identify any problems, but don’t seem to see anything.

Hmmmmm, maybe put up some pics and i will have a look in the morning.

X End stop settings ? If your board thinks an end stop is engaged, it will stop movement in that direction. If you have it wired as NC but in the firmware it is set to NO or vice-versa, it will think the end stop is on.

You will have to excuse my ignorance. Do NO and NC endstops only apply to mechanical switches?

I do not have anything connected to my endstop pins and I haven’t changed anything from the firmware Marlin RC7 w/ LCD.

I have attached an image of my ramps board.

Take a look at your configuration.h file in Arduino and make sure the end stops are disabled. I presume you are not using them.

P3DCNC, I’ve tried to find out exactly how to make sure the endstops are disabled and considering this is all new to me, I can’t quite seem to locate the exact location in configuration.h. What line of code should I look for specifically?

I did run gcode M119 in repetier and it does show all of my endstops OPEN…if that helps.

I don’t have it in front of me (at work), just step through the file until you see the section with endstops listed. The comments should be pretty good at explaining what they should be set to. Copy and paste them here if you want and we can confirm if that’s right for your setup. Since you are having an issue in only one direction of X, then it may be one of the X endstops is misconfigured. Or it may be something else completely, but best rule this out first.

You could swap your X and Y cables at the RAMPS and see if the problem transfers to your Y steppers…

The Endstop section of my configuration.h file is listed below. I have swapped the x and y cables and the problem happens to the Y stepper also when I do it. I have also swapped out the X and Y drivers on the Ramps boards and it is still happening only on the X location.

//===========================================================================
//============================== Endstop Settings ===========================
//===========================================================================

// @section homing

// Specify here all the endstop connectors that are connected to any endstop or probe.
// Almost all printers will be using one per axis. Probes will use one or more of the
// extra connectors. Leave undefined any used for non-endstop and non-probe purposes.
#define USE_XMIN_PLUG
#define USE_YMIN_PLUG
#define USE_ZMIN_PLUG
//#define USE_XMAX_PLUG
//#define USE_YMAX_PLUG
//#define USE_ZMAX_PLUG

// coarse Endstop Settings
#define ENDSTOPPULLUPS // Comment this out (using // at the start of the line) to disable the endstop pullup resistors

#if DISABLED(ENDSTOPPULLUPS)
// fine endstop settings: Individual pullups. will be ignored if ENDSTOPPULLUPS is defined
//#define ENDSTOPPULLUP_XMAX
//#define ENDSTOPPULLUP_YMAX
//#define ENDSTOPPULLUP_ZMAX
//#define ENDSTOPPULLUP_XMIN
//#define ENDSTOPPULLUP_YMIN
//#define ENDSTOPPULLUP_ZMIN
//#define ENDSTOPPULLUP_ZMIN_PROBE
#endif

// Mechanical endstop with COM to ground and NC to Signal uses “false” here (most common setup).
#define X_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop. MPCNC
#define Y_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop. MPCNC
#define Z_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop. MPCNC
#define X_MAX_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop. MPCNC
#define Y_MAX_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop. MPCNC
#define Z_MAX_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop. MPCNC
#define Z_MIN_PROBE_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.

It looks fine to me, and from what you describe, looks like something else is happening.

Try redownloading RC7 and upload that to the RAMPS.

Try commenting out these 2 lines although I don’t see how that could fix anything:
//#define USE_XMIN_PLUG
//#define USE_YMIN_PLUG

Reseat all the components on the board, including removing the RAMPS from the MEGA and put them back together? Sounds like an issue with the RAMPS possibly.

I tried to comment out the #define USE_XMIN_PLUG and I get the following when trying to upload it; #error “You must enable USE_XMIN_PLUG or USE_XMAX_PLUG”

I have reseated all components including RAMPS and MEGA, drivers, jumpers and lcd components.

I have downloaded RC7 again and uploaded the firmware again

Same exact issue.

So my firmware is declaring the endstops as NO (normally open), if your board has a problem you can just change it to NC (normally closed) withno issues.

You will just be changing the the logic from true to false or false to true. No need to mess with anything else.

So, just double checking. These are the lines you are talking about changing from false to true or true to false?

#define X_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop. MPCNC
#define Y_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop. MPCNC
#define Z_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop. MPCNC
#define X_MAX_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop. MPCNC
#define Y_MAX_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop. MPCNC
#define Z_MAX_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop. MPCNC
#define Z_MIN_PROBE_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.

yes just the MIN

Sorry I haven’t been much help but I am finally ready to put the LowRider bundle up in the shop and I just need to get it done. 5 packed and ready to ship!!!

Current Update:

I’ve changed the logic to false on the MIN values, reuploaded the changes and repetier now says “TRIGGERED” when I use M119. I connected to the motors…same exact outcome. I even jumpered the endstop to make it “OPEN” and same results.

Is there anyway to completely disable the X endstop? I couldn’t comment out the USE_XMIN_PLUG.

It doesn’t work? Triggered should be fine.

The problem is for some reason your endstops are NC, meaning triggered.

Well, I’m all out of ideas. Just for documentation, when my endstops are “TRIGGERED” and I was using Repetier to manually control the motors, my positives moves would add to the position recorded in Repetier, ie; Y + 1mm, but negative moves wouldn’t (which makes sense to me if the endstops are triggered). But, when I had the endstops open, my problem X axis would report positive and negatives moves…but just would move the one direction.

Also, don’t know if this is related at all. When I have the LCD connected, anytime I try to move the X axis in the direction is wasn’t going…the LCD would dim itself. The moment I try the other direction, it would be resume it’s normal brightness.

Thanks for your help troubleshooting!

No, something else is wrong, it is not just the endstops you ramps stack is faulty somewhere.