Setting origin and proper homing direction on CoreXY

edited September 2016 in Repetier-Firmware
Having difficulty getting this correct on my CoreXY machine.

X axis homes and moves correctly.
Y axis is reversed.

If I set INVERT_Y_DIR to 1, it doesn't change the Y direction since this is a CoreXY. Reversing the Y motor (or X motor) causes the Y and X axis motions to be interchanged.

How can I reverse the direction of the Y axis on a CoreXY? My X axis homing switch is on the left side, and Y homing switch is in the rear.

If I set Y_HOME_DIR to 1 (Max), Y will then home in the correct direction but it ignores the limit switch and will crash when it hits it.
Curiously, when Y_HOME_DIR is -1 (Min) the limit switch responds and the axis thinks it is homed if I press the switch by hand when it is homing (the wrong way).

Repetier seems to want to move Y forward to home - but my Y home switch and Y origin is in the back.
If I set either INVERT_X_DIR or INVERT_Y_DIR to 1, then the reversed homing direction problem moves to the X axis and the X-Y axes motions are swapped.

I think the issue (and solution) is that in a CoreXY machine both X-Y motors need to be reversed (from their normal opposed rotations) when trying to reverse the Y axis direction. The current behavior of INVERT_Y_DIR seems to be that it only reverses the designated "Y" motor.


  • Invert x/y dir inverts direction of motor 1 or 2 and is not bound to x/y direction in core xy, so don't get confused by the names.

    You can switch motor direction and drive system to get other directions. If nothing works swap x and y motor connectors and try again. That also mirrors a axis.
  • edited September 2016
    Thanks for the reply. Switching motor connections doesn't help, it just moves the problem to the X axis.
    The currently selected drive system is "1";  “z axis + H-gantry/core-XY (x_motor = x+y, y_motor = x-y)” which is the one that supposedly is correct for my C-Bot.
    I also tried "2";  "z axis + H-gantry/core-XY (x_motor = x+y, y_motor = y-x)", but that one appears to be wrong also.

    Origin location question... Does the X/Y origin (0,0) have to be at the front left corner of the printer as shown in the Config/Printer Settings/Printer Shape tab?
    My Y home switch is in the rear, which is why I'm trying to put my Y min origin (0) there.

    I suppose I could connect up my Y home switch as a Y max switch and then set Y_HOME_DIR 1 (max) and then set;
    min_software_endstop_y true

    Is that the way I need to do it to conform with the front left origin location?

    I believe this is basically the same problem that was asked about in -, except that on a CoreXY machine, it prevents 0,0 homing on one axis or the other if any home switch location is not in either the front or left.

  • Yes, set y max homing in your case to still get origin left front. No need to rotate just because a endstop is somewhere else.
    After homing you will then be at 0,ymax.
Sign In or Register to comment.