M206 to create inaccessible endstop buffer zone?
bot last edited by
I want to prevent the endstop switches from being within the axis limits. I want a 1 mm buffer created on every axis, so that the head will not be able to move closer than 1 mm to the switch. Would M206 in config.g be the best way to do that?
What would the behaviour be if I used M206 to offset the endstop positions slightly? Does the head instantly move to be within the axis limits, or is it just considered to be outside the limits as set with M206?
Would using a small 1 mm move away from the endstop switch followed by a G92 in the homing files be a better approach?
Here is a diagram of what I'm trying to achieve:
frank26080115 last edited by
small 1 mm move away from the endstop switch followed by a G92
I use this method, seems to be fine, firmware limits should handle the rest
You can also tell Cura about multiple "keep out" zones but that only applies to printing.
deckingman last edited by deckingman
@bot Not sure if his would help you but I too use a Metrol switch on my Z axis. But I have things designed such that the hot end (I use the nozzle for probing) is free to move in Z against a light spring. So in a worse case scenario, if the switch failed to trigger due to say a wiring fault, then the entire hot end including the switch, would get pushed up by the bed until it hits a secondary stop.
So in your case, perhaps you could design your switch mounts so that the switch can slide against a spring? In normal use, the spring inside the switch would do it's job but in the event of a mis - trigger, the entire switch would be able to move against a slightly heavier spring until the point where the gantry comes up against a hard stop (or a secondary switch).
Just a thought - I always prefer a mechanical solution if one is possible.
M206 does not change the limits, it just applies an offset. It is equivalent to setting the offsets of workplace coordinate system #1.
Another way to achieve what you want is to adjust your M208 limit by 1mm. Then in your homing files, temporarily extend the limit by 1mm to correspond to where the homing switch triggers. After all homing moves have been completed, move the head to be within the allowed area, then restore the original M208 limit.
bot last edited by bot
Thanks for the input and suggestions.
@deckingman I have already finalized the hardware setup and I don’t have a way to add a spring but that is an interesting idea. I’ll keep that one in my back pocket.
@dc42 I thought about adjusting the m208 limits in the homing files, but then I have to go around and adjust limits in all the homing files when I commission and determine the actual exact limits to keep the origin in the bed center. I guess that’s not the end of the world, but I was hoping for a “self-contained” solution, so that the homing flies were agnostic to the limits and other settings.
My Y homes at maxY. If I set M208 Y0:300 (as an example) then M206 Y1, when the y axis is homes it will immediately assume it is at Y301, right? And if in my homing file I send it 1 mm away from the end stop switch, I will be now at Y300, the maximum of the axis, right? Or is that not how any of that works? In the homing files, if I perform a 1 mm move away from the end stop switches immediately after the G1 S1 command, where does the firmware consider the homed point? The point that the switch was contacted or 1 mm away?
deckingman last edited by
@deckingman I have already finalized the hardware setup and I don’t have a way to add a spring but that is an interesting idea. I’ll keep that one in my back pocket. .........................
I thought it might be the case that the hardware was finalised. But take the "spring" out of your back pocket and replace it with "an end stop mount that as some elasticity". The "spring" was just one idea but a long somewhat flexible arm or some such, might serve the same purpose.
bot last edited by
@deckingman I do have the Z switch mounted on a long(ish) arm, but it's steel and won't flex enough to prevent any damage.
Any idea on if M206 works the way I think it does and at what exact point the axis is considered homed?