Homing at different corners

I need a sanity check here. I’m configuring marlin to home to the upper right corner of my workspace.

If I manually trigger the endstop switches (prematurely), things work well. But when I use the 3d printed stops, the motors go crazy (they are stepping indefinately). This is what I have for the config:

#define X_HOME_DIR 1
#define Y_HOME_DIR 1
#define Z_HOME_DIR -1

// @section machine
// The size of the printable area
#define X_BED_SIZE 440 // 200
#define Y_BED_SIZE 290 // 200

// Travel limits (mm) after homing, corresponding to endstop positions.
#define X_MIN_POS -X_BED_SIZE
#define Y_MIN_POS -Y_BED_SIZE
#define Z_MIN_POS 0
#define X_MAX_POS 0
#define Y_MAX_POS 0
#define Z_MAX_POS 200

I have a feeling the travel limits are not defined correctly. Thanks for any help.

I fixed the position values.

I think I have a completely different issue that I’ll make a new post for. This topic can be deleted.

I don’t think you want to change this. The lower left should still be 0,0.

Why do you want to home to the upper right? There may be an easier way to accomplish what you want.

When I homed before, it put the gantry lower left corner. I found it got in the way of my work plate and set up. I figured if it went to the upper right when homed, i could get clear access to set up my parts.

You could add a custom menu to home and then travel to the far right corner. Something like this:

G28
G0 Z5
G0 X440 Y290

This should be possible. So don’t give up if you don’t want to. It is just very uncommon with dual endstops, so I am not sure which exact configs and wiring needs to change.

I would have left the min/max pos alone, switched the dir and set the bed size. I would have also thought I needed to change the endstop chosen for X2 and Y2.

1 Like

Solved this: The issue was that my x1/x2 and y1/y2 endstops were swapped. Here’s what the config files should be:

Front Left (Default. X and Y are both min)
(configuration.h)
#define X_HOME_DIR -1
#define Y_HOME_DIR -1

(configuration_adv.h)
#define X2_USE_ENDSTOP XMAX
#define Y2_USE_ENDSTOP YMAX

(endstop wiring)
X1: xmin
X2 : xmax
Y1 : ymin
Y2 : ymax

Back Left (X is min Y is max)
(configuration.h)
#define X_HOME_DIR -1
#define Y_HOME_DIR 1

(configuration_adv.h)
#define X2_USE_ENDSTOP XMAX
#define Y2_USE_ENDSTOP YMIN

(endstop wiring)
X1: xmin
X2 : xmax
Y1 : ymax
Y2 : ymin

Front Right (X is max Y is min)
(configuration.h)
#define X_HOME_DIR 1
#define Y_HOME_DIR -1

(configuration_adv.h)
#define X2_USE_ENDSTOP XMIN
#define Y2_USE_ENDSTOP YMAX

(endstop wiring)
X1: xmax
X2 : xmin
Y1 : ymin
Y2 : ymax

Back Right (X and Y are both max)
(configuration.h)
#define X_HOME_DIR 1
#define Y_HOME_DIR 1

(configuration_adv.h)
#define X2_USE_ENDSTOP XMIN
#define Y2_USE_ENDSTOP YMIN

(endstop wiring)
X1: xmax
X2 : xmin
Y1 : ymax
Y2 : ymin

2 Likes

2 Likes

I like this orientation because it allows me to home and get the gantry out of the way to load up my material

4 Likes