I think I would like a variation on M208
-
@fcwilt I see what you are saying. I have a range of different tool sizes in my tool changer and the pickup head without a tool fitted is what I set my axis limits with (because I home without a tool picked up). With a tool picked up I cannot reach the limits without crashing.
On your machine would the tool specifically limits always be inside the machine limits?
-
@T3P3Tony I would adjust the M208 limits in the tool change macros but I can see how that's fraught to errors if a tool change fails or tool change with
P0
is required. -
@oliof yes it not ideal. For some situations the idea of a per tool keepout zone can work.
-
@T3P3Tony said in I think I would like a variation on M208:
On your machine would the tool specifically limits always be inside the machine limits?
The printer has enough extra travel that the tools, even with a +37 Y offset (the X is 0) can reach the entire printable area without any issues with hitting other bits.
What I have resorted to is a routine, called set_axis_limits, which accepts one or two parameters, that I call at appropriate times, to modify the M208 limits.
The routine does the math based on values from the object model and the only constants were the values needed to allow reaching the tool mounts when changing tools.
They were not hard to determine, The only "risk" is being sure to call the routine at the right times with the right parameters.
It may be the only practical way given the issues accompanying a tool changing feature.
But I have a gut feeling there is a better way that would require some firmware features added, basically doing in firmware what I now do in code, but the firmware would always make the right adjustment at the right time.
Frederick
-
@oliof said in I think I would like a variation on M208:
@T3P3Tony I would adjust the M208 limits in the tool change macros but I can see how that's fraught to errors if a tool change fails or tool change with
P0
is required.That is what I am now doing but it is not perfect as it assumes, as of now, that everything works as it should.
Dealing with tool change failures is something I need to think more about.
Thanks.
Frederick
-
@fcwilt if all your tools are the same size then you should be able to adjust the M208 limits to define the available area that any one of the tools can reach, which will be smaller than the area that the probe can reach. If your tools have different sizes, then either you need to define the available print area in M208 to correspond to the print area that all tools can reach, or change the M208 limits in the tool change files as I do.
In theory we could add a command to specify for each tool the X and Y dimensions in excess of the standard values assumed by M208; but unless tool changers become a lot more popular then I think the existing method of adjusting M208 limits in the tool change files is satisfactory.
-
I agree that adjusting M208 is the most practical solution given the number of customers that would benefit from you spending time doing something in the firmware.
I have one routine that I can pass a tool number, a probe number or put/get flag and it adjusts M208 for each situation.
The code is not complicated, relies on axis and offset values from the object model to do most of the work.
The only hardcode values are those that "expand" M208 to allow safe access to the tool docks.
The only thing I haven't solved is a way to create a "barrier" around the Z axis hardware, which can be struck when doing put/get moves if the put/get code has a flaw.
I quite pleased with the result.
Frederick
-
@fcwilt can you use the keepout zone function to avoid the Z hardware?
-
@dc42 said in I think I would like a variation on M208:
@fcwilt can you use the keepout zone function to avoid the Z hardware?
I don't know if I can use it because I have never heard of it.
Where can I read about it?
Thank you.
Frederick
-
-
@dc42 said in I think I would like a variation on M208:
@fcwilt https://docs.duet3d.com/User_manual/Reference/Gcodes#m599-define-keepout-zone.
Thank you.
Frederick