After boot, M116 does not wait after G10
-
I use a duet 3 with toolboards, and I have the following issue. I do not know if this is normal or if it is a bug.
But after a board boot, if I run the following code:
M107 M190 S60 G10 P0 S220 R200 G10 P1 S240 R200 M116 G28
M116 will not wait, and G28 will run immediately.
-
which firmware version=?
-
RepRapFirmware for Duet 3 MB6HC version 3.2-RC2 running on Duet 3 MB6HC v1.01 or later (SBC mode)
Heater are on toolboards
Duet TOOL1LC firmware version 3.2-RC2 (2020-12-24)
-
@kuon I'd have thought that's probably normal. If you think about it, your G10 commands set the active and standby temperatures for two tools - P0 and P1 and those temperatures are different for each tool. So which of those temperatures should the M116 wait for? The answer is - whichever tool is selected / active. But until you send a "Tn" command, neither tool is selected. So the firmware has no idea which temperature that has been set with the two G10 commands, that M116 should wait for and furthermore, neither tool is active so until a tool is selected, nothing is being heated.
Suggest you put a T(n) command (where n is either 0 or 1 depending on which tool you want to stat heating), somewhere before the M116.
-
Actually you are right, this is because my initial issue is that M116 does not wait in my tpost0.g, I tried to reproduce a simple case and ended removing the tool change. But the following does not wait either:
M107 M190 S60 G10 P0 S220 R200 G10 P1 S240 R200 T0 G28
; tpost0.g ; called after tool 0 has been selected M106 R2 ; restore print cooling fan M116 ; wait for temperatures M83 ; relative extrusion ; check that we are homed, this is to avoid error when we change tool while not homed if move.axes[0].homed && move.axes[1].homed && move.axes[2].homed && move.axes[3].homed G1 R2 Z1 X0 F12000 ; go above position at 5mm G1 R2 ; dive back ; workaround for M302 not working with remove extruder if heat.heaters[1].current > 190 G1 E10 F1000 ; extrude 10mm
-
Did you verify that the tpost0.g file was actually called?
Or you can put the M116 in the file that sets T0 active.
Frederick
-
Actually I just assumed tpost0.g would be called. Is there a reason why it wouldn't? I can do more tests just right now because I am printing.
If I put M116 just between T0 and G28, it waits, but my actual issue was that I'd like T0 to wait by itself as there is an M116 in tpost0.g
-
@kuon tpostx.g will always get called.
Pre before the tool is selected, post after the tool selected.
You can confirm using debugging -
@jay_s_uk said in After boot, M116 does not wait after G10:
@kuon tpostx.g will always get called.
Pre before the tool is selected, post after the tool selected.
You can confirm using debuggingThat's what I assumed. So
T0
should wait withM116
in it, right? -
it should do, yes.
Maybe change your M116 to expicitly name the tool to wait for, i.e. M116 P0 -
@kuon Well tpost happens after a tool has been used. That is to say, once a tool has been finished with and is no longer the active tool. Therefore, I would be surprised if M116 in tpost would wait (because the tool is finished with).
-
@kuon said in After boot, M116 does not wait after G10:
Actually I just assumed tpost0.g would be called.
Never assume - always verify.
In this case this may apply - from the docs:
If all axes have been homed, run macro tpost#.g where # is the number of the new tool.
Since you are following the T0 with G28 that suggests they axes may NOT be homed.
Frederick
-
@deckingman don't you mean tfree?
I think the definitions of the tool change files here are clear
https://duet3d.dozuki.com/Wiki/Macros#Section_Tool_change