Having trouble compiling firmware for my printer -Movement bounds ([XY]_MIN_POS, [XY]_MAX_POS) are too narrow to contain

#1

Any help would be Appreciated, I have been looking for a solution for 2 days.

Here are my settings, Let me know If I need to include anything else. I have tried some suggestions from other sites but nothing works. Just different errors about bounds. I am obviously doing something wrong.

#define X_PROBE_OFFSET_FROM_EXTRUDER -16 // X offset: -left +right [of the nozzle]
#define Y_PROBE_OFFSET_FROM_EXTRUDER -48 // Y offset: -front +behind [the nozzle]
#define Z_PROBE_OFFSET_FROM_EXTRUDER 1 // Z offset: -below +above [the nozzle]

// The size of the print bed
#define X_BED_SIZE 220
#define Y_BED_SIZE 220

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

Thanks

0 Likes

#2

Hi Jeremy,

Welcome to Tom’s Forum. I THINK your trouble is with your y-settings, but let’s walk through all the lines you posted:

#define ?_PROBE_OFFSET_FROM_EXTRUDER - you are telling Marlin that your z-probe is 16 mm left of the nozzle, 48 mm in front of the nozzle, and BE CAREFUL WITH THIS ONE, 1 mm below the nozzle.

i3 printers with a z probe generally have it positioned to the right, behind, and above the nozzle.

#define ?_BED_SIZE 220 - ok, looks good.

#define X_MIN_POS 12 - you are telling Marlin to stop the print head 12 mm to the right of the left (X) endstop. Ok.

#define Y_MIN_POS -12 - this is the one I’m concerned about. You’ve told Marlin that the farthest that the print head may go is 12 mm in front of the (Y) endstop. Did you really want to do this?

Basically, if your Y_BED_SIZE is 220
and your Y_MIN_POS is -12
and your Y_MAX_POS is 220 (same as your Y_BED_SIZE)

the math will not work. 220 - (-12) = 232: bigger than your bed size.

Try setting your Y_MIN_POS to 0 or a positive number.

Let us know how it turns out!

-Stefan

0 Likes

#3

Hi Stephan,

I get the same error with 0 and a positive number. I am using a BLTouch and trying to use Bilinear Leveling. The Thing I know is that the furthest the BLTouch can probe back on he bed is 155mm. So when the bed is out furthest from the Y end stop, the nozzle is still on the bed. But the probe can’t get to the back of the bed. Is there a setting I’m missing to make this work?

// Travel limits (mm) after homing, corresponding to endstop positions.
#define X_MIN_POS 12
#define Y_MIN_POS 12 //I tried 0 also
#define Z_MIN_POS 0
#define X_MAX_POS X_BED_SIZE
#define Y_MAX_POS Y_BED_SIZE
#define Z_MAX_POS 240

Thanks again!
Jeremy

0 Likes

#4

Hi Jeremy,

Set both MIN_POS to 0. Apparently the Max-Min must exactly equal bed size.

We’ll get this compiling first, then figure out why the bed doesn’t travel the full distance.

-Stefan

0 Likes

#5

Interesting; I never messed with the margins. Does your x-axis properly travel across the bed? I’m wondering if there needs to be an adjustment to your steps/mm since you are having trouble going the full distance in y.

-Stefan

0 Likes

#6

Hi Stefan,

I tried that as well, and it still errors.

I think I may have figured out where I need to concentrate my efforts.

// Set the boundaries for probing (where the probe can reach).
/*(#define LEFT_PROBE_BED_POSITION MIN_PROBE_EDGE
#define RIGHT_PROBE_BED_POSITION (X_BED_SIZE - MIN_PROBE_EDGE)
#define FRONT_PROBE_BED_POSITION MIN_PROBE_EDGE
//#define BACK_PROBE_BED_POSITION (Y_BED_SIZE - MIN_PROBE_EDGE)
*/
#define LEFT_PROBE_BED_POSITION MIN_PROBE_EDGE
#define RIGHT_PROBE_BED_POSITION (X_BED_SIZE - 31)
#define FRONT_PROBE_BED_POSITION 73
#define BACK_PROBE_BED_POSITION (155)

Once I adjusted these settings, I was able to compile. I guess the default values will not work for my printer.
Hopefully this is the right path I am going down and am not going further into the weeds.

Thank you
Jeremy

0 Likes

#7

Hi Stefan,

Because the nozzle is always on the bed somewhere on the Y Axis, the probe cannot reach the entirety of the bed. Therefor I have to set the probe margins so that the auto leveling will work and the probe will keep in bounds of the bed when leveling. I was surprised I had to change these settings as well. This is my second 3D printer, and this one was custom built. So this really is a deep dive for me. This is what I think I have figured out, so hopefully there will be no more gotchas. Marlin compiles, so I will let you know how things work as soon as I get a replacement screw for my y axis.

Appreciate the help… and any further advice you might have.

Thanks,
Jeremy

0 Likes

#8

It Lives!

I see a few things I need to tweak off the bat, but I should be ready to run a print soon. :smiley:

0 Likes

#9

Looking good!

0 Likes