Mirrored x axis

Hi guys. Testing of the lowrider is coming along swimmingly, but I have run into one issue. I am getting a mirrored cut along my x-axis. Text is flipped as if it was being viewed in the mirror. I did some searching on here where some people just had to flip the wire for their x-axis, but I’m using end stops and my x-axis is homing to the negative side so it does believe it’s going in the right direction. Is there a setting I might be able to change?

Primarily using aspire and cncjs if that makes a difference

It is tricky to home to the positive direction. You should be able to find a place to stand where +X goes to the right, +Y goes away and +Z goes up. You can swap X and Y or reverse X or Y to make that true.

Yes sir I agree. I’m not looking to change the direction I home to. I’m having a problem with a mirrored x. I’m wondering how to get rid of that :slight_smile:

Well, one way or another, you either need to reprogram your CAM to mirror image the output code (Difficult, and makes all kinds of other things difficult too) or you can alter your machine so that the CAM works.

You need to reverse either the X or Y axis, in order for the CAM to make sense.

Once that’s done, you need to either change the home switch positions, or tell the machine that it’s homing to a different location.

We usually want the machine to home to the X=0, Y=0 location, because we usually start our CAM there, and want to be able to move to the location X0=, Y=0 on the work stock quickly, and not have to jog the machine over 4’

Basically, you are getting a mirror image because your CAM is not agreeing with your machine. In this case, it is 99.99% probably that your machine is wrong.

The CAM software will assume that if you are standing at the end of the table, Increasing X will move the gantry towards your right hand side. Increasing Y will move the gantry away from you, and increasing Z will raise it away from the table. For the LowRider, we assume that X is the axis that has the rails and the single motor on the platform. Increasing that should move it away from the home position. If you are standing at the end of the table with the machine spanning the table in front of you, it should home to your left hand side, and move to the right.

Y should probably home towards you. When you increase the Y position, it should move away from you.

If either one of these things is not the case, you will get a mirror image of whatever you try to cut.

Note that a mirrored Y will result in a piece that looks exactly like a mirrored X. It does not matter which axis is backwards.

Let’s say, for argument’s sake that your X working area is 4’ (1220mm)

You can swap the X motor plug the other way, and it will now work, but it will crash the sled into the wrong side when you try to home it, because the switch is on the other side.

You need to tell the firmware that X homes to the high side. There is a section in Marlin’s configuration.h file that looks like this:

// Direction of endstops when homing; 1=MAX, -1=MIN
// :[-1,1]
#define X_HOME_DIR -1
#define Y_HOME_DIR -1

In this case, we would change that to:

// Direction of endstops when homing; 1=MAX, -1=MIN
// :[-1,1]
#define X_HOME_DIR 1
#define Y_HOME_DIR -1

This will tell the firmware that we want to go to the maximum position when we home the machine.

Then we should tell the firmware how big the “bed” is, so that it knows where the machine sero is. Again, in configuration.h:

// @section machine

// The size of the print bed
#define X_BED_SIZE 1220
#define Y_BED_SIZE 2440

will tell Marlin that we have a full sheet size machine.

By doing this, when you home your machine, it will then display X=1220, Y=0, but when you print, it will no longer be mirror imaged.

Personally, I don’t recommend this. Having the machine home so far away from the reasonable start of your work will be bothersome while you wait for it to truck on back to the other side of the bed. It would bother ME anyway.

An alternate solution: Flip your axes.

This is the only way to solve the problem and keep the machine homing to the same corner you have it in now.

In this scenario, we don’t change the corner that you home to, we change what the axes are called. This will mean that instead of having 1 drive for X and 2 drives for Y, you will have 2 drives (and endstops) for X, and one drive for Y. We now change our apparent standing position from the end of the table with the machine spanning from left to right to standing beside the table with the machine spanning from near us to opposite us.

This also requires changes to the firmware, to define the second drive as a second X drive instead of a second Y drive. There will be many changes required, in configuration_adv.h as sell as configuration.h and a lot of testing. You will need to have a fairly good understanding of the firmware to make this go. I know other people have done this. I haven’t, and while I probably could, I don’t know that I’d be comfortable with someone else being the guinea pig for my suggested changes, particularly when I don’t know what mainboard you’re using, your working table dimensions, or other details of the machine, actually including what version firmware you’re starting from. Better off finding out from someone who’s done it themselves, I think.

If it were my machine, I’d reverse the connector on the X motor, move the X endstop to the other side of the machine, and call it a day. Much less trouble, and solves the problem.

If I really wanted the X to home on that side… I might reverse the connectors on both Y motors, and move both endstops to the other end of the table.

1 Like

I took your advice and switched the x-axis cable and the homing side and everything appears to be working great. Thank you again for your help

1 Like

:+1:

But you have to write everything else out to show how much work the other ways are. Thank you.

2 Likes