tpostx macro on Duet tool changer
-
I am trying to sort out an issue I have with my tpost#.g macro. The relevant portion of the macro is:
G53 G1 X-3 Y339 F6000 ; Move to the pickup position with tool-0.
M98 P"/macros/tool_lock.g" ; Lock the tool
G1 R2 Z0 ; Restore prior Z position before tool change was initiated.
G1 R0 Y0 ; Retract tool by restoring Y position next now accounting for new tool offset.
G1 R0 X0 ; Restore X position now accounting for new tool offset.
M106 R2 ; restore print cooling fan speedTo put that into words, we go to the tool pickup position, lock the tool and then remove the tool from it's storage position.
The issue is that when the slicer (SuperSlicer) issues the 'T0' command, temperatures have not been set. This is done right after the tool has been activated but the tool activation automatically calls for removing the tool from it's park position.
After the tool has been removed from the parking position it will stop and heat up. At that time it will drool but the drool wiper is at the storage position. The result is that the tool is retrieved, heats up and drools onto the build plate and then proceeds to print without wiping the tool.
I would like to hear what people have done to fix that issue.
What have you done in the custom print start g codes, the custom filament start gcodes, the tpost#.g codes and possibly other macros in order to make sure that the tool doesn't stop after it is retrieved from the parking position but instead goes straight to printing.
How do you make sure that any temperature changes for tool changes have completed prior to the new tool being removed from it's parking position.I hope this makes sense .....
-
@jens55 set an active and standby temperature for each tool in your start gcode. Then have M116 Pn (where n is the tool number) to wait for the temperature to stabilise for that tool, before moving out.
Btw I think it's safer to have explicit positions to move out of the dock, before restoring the XY position, but that's just me..
-
@T3P3Tony, of course the next issue is how do I figure out what tools a model uses and what temperatures will be called for. I suppose one could write some sort of post processor that somehow scans the entire print file before the gcode starts but holy cow ......
I think that the existing macro, in a roundabout way, use explicit positions - it uses the position from tpre#.g which is explicitly assigned and a known safe position. The problem I see though is that to prevent crashes, the tool has to be moved to a safe position after it is selected and the move to the safe position is always part of a tool being selected. One would have to issue the set temperature and the M116 before even calling for the tool change.
Hmmmmm .... I wonder if this somehow points to the answer - stick the temperature command in one of the slicer custom g codes ... interesting .... I will need to contemplate this ..... thanks! -
@jens55 said in tpostx macro on Duet tool changer:
how do I figure out what tools a model uses and what temperatures will be called for
It looks like prusa slicer has some ability t use its macros and placeholders in the "custom gcode" box to achieve this:
https://forum.prusa3d.com/forum/prusaslicer/starting-gcode-for-multiple-extruders/I must admit I have not tried that and just set the temperature I want for the tool in use before starting the print.
-
@T3P3Tony, thanks! ..... funny enough, it hadn't occurred to me that I could manually set the temperatures before the print (yes, seriously). I need to investigate this option some more because my one fully self designed two colour print had the 'sitting over the build plate and drooling' issue for every tool change. It is possible that I am missing a strategic M116 someplace. It is of course also possible that this trick doesn't work unless the standby temperature is the same as the active temperature (which I also hadn't considered and a 10 degree differential between the two might not actually make any difference).
I am curious how many people just use one temperature and enjoy the lack of drooling over the build plate and the substantial speed improvements this would bring.