Problem with M208 minimums on y axis
jrsphoto last edited by
I'm stumped. Maybe I've just been looking at it too long. Maybe someone here can see something stupid I'm not seeing.
My system: Ender 3 pro with a Duet 2 Wifi running 3.01-RC2
I have some endstop offsets set for X & Y axis that moves the extruder a few mm away from the edges of the glass plate and the clips that hold it down:
; Axis Limits M208 X-3 Y-3 Z0 S1 ; set axis minimums M208 X200 Y215 Z200 S0 ; set axis maxima
If I issue G0 X0 Y0, I am able to manually jog to X-3 and Y-3. I thought that G0 X0 & Y0 positions would be limits and that I shouldn't be able to move beyond them? What am I missing?
Danal last edited by
Your axis limits, where the firmware will allow you to move the head, are specified in M208. It says -3, and indeed, that is where you can move. This number is ALSO the assumed coordinate when the endstop is triggered during homing.
If you want limit to be different than endstop, one way is to change them when homing. Example in homex.g:
Add this line before any homing moves:
M208 X-3 S1
Do all the normal homing stuff that is in the file now
be sure the last actual move is:
G0 X0 Fwhatever feedrate you want
Then add this line
M208 X0 S1
And do a symmetric thing in Homey.g
jrsphoto last edited by
That did it Danal. Thanks much. I would not have figured that out myself.
Why do you not want to be able to jog to X-3 and Y-3 ?
@jrsphoto The ability to set negative numbers with M208 allows the firmware to know exactly how far off the bed the carriages can move. This is important if you have an offset probe, because you may need to probe a point close to the edge, which causes the nozzle (which is usually the reference point) to be off the bed. The firmware will know if it's possible for the probe to reach that point, because of the M208 settings. Perhaps it's best to think of M208 as showing the 'bounds' of the machine, while the numbers show where the bed actually is relative to the homing positions.
When printing, it's the job of the slicer to generate code that keeps the printer within the boundaries of the bed. There are some exceptions (eg delta printers have a 'print radius' in config.g), so setting up the slicer correctly also helps. There's also M564 S0, which will allow movement outside the boundaries set by M208.
Also, the machine can't know that it's not supposed to go beyond 0. Many people have (including myself, and everyone who uses a Delta printer) have the origin (X0 Y0) at the centre of the bed.