M109 not waiting if temp higher?
-
Hi *,
I understood that M109 is waiting till the temp of the hotend has reached the target temp. I have seen that this doe not work if the temp is above the target temp. Like temp is at 250 and I use M109 S130 to go down to 130C. the firmware does not pause and wait till 130C has bean reached. That is a bit confusing to be honest...... I know that I can solve that with a loop but I think it would be nice if the M109 behaves from higher to lower temps as it does fro a low temp to a higher temp,
Cheers, Chriss
-
@Chriss You would need to use
M109 R130
for a wait for cooldown. The documentation at https://docs.duet3d.com/User_manual/Reference/Gcodes#m109-set-extruder-temperature-and-wait does explain this, but it's a bit terse (-: -
@oliof I see... thanks... but the tails goes
bit deeper here with M116.
Anyway, I think that the docu for M109 needs some more words.... -
-
@Chriss Thanks, I've updated M109 to say:
- Rnnn accurate target temperature, waits until within 2.5C of target if heating or cooling down
However, M109 is deprecated in RRF, though still functional and in wide use by slicers. As suggested in the notes, it would be better to use G10/M568 followed by M116. I believe M116 waits for temperature when either heating up or cooling, though it can be bypassed by using the P parameter.
Ian
-
@droftarts Cheers, I will have a look at that as soon as my stall detection problem is gone......
-
@droftarts
That is not true unfortunately.... Me tool was at 150°CM568 P0 S30 A2 ok M116 ok
M116 is not waiting till the temp went down. It does work for fine when the temp lower than the configured temp.
I guess that I would need a loop here.....
@dc42 : I have a feature request here: Could you please make M116 to wait for the temp also when the temp is higher than it should be, please? I understand that it may end up in a deadlock, like setting the temp to a value below the room temperature.
@oliof : M109 does also not wait till the temp is currently higher than that target temperature... and it is deprecated anyway.
Cheers, Chriss
-
@Chriss I'm pretty sure M116 does wait for temperatures to drop - that's the main reason I started using conditional gcode instead of M116 because I have a use case where I need to check if the temperature is at or above a set point and M116 always used to wait for the tool to cool.
However, something at the back of my mind tells me that there is a limit to how cold you can go because the ambient temperature could be higher than the set point so it could potentially wait forever. I couldn't find any reference to that for M116 but for M109 we do indeed have the following - quote.....
"Note: M109 will not wait for temperatures below 40c because in many cases they may never be reached due to ambient temps. So if you want to wait for a hotend to cool, use 41c or higher".
.... end of quote.
Given that M116 supersedes M109, I'd say it's a fair bet that the minimum temperature is also carried over. In your example you showed a set temperature of 30 degrees C which would explain why you are not seeing the expected behaviour.
If my assumption is correct then maybe @droftarts could amend the documentation for M116 to include the minimum temperature note.
-
@Chriss I think M116 does wait for temperature to drop to target temperature, but I'm checking with @dc42. If so, I'll rewrite the Gcode entry to make this clearer.
@deckingman The note about M116 not waiting for temperatures below 40C is in the Gcode dictionary (and I just checked the old Dozuki version, and it's there too, so it has been for a while), see the end of the entry for M116 https://docs.duet3d.com/User_manual/Reference/Gcodes#m116-wait-for-temperature-to-be-reached
Ian
-
@droftarts said in M109 not waiting if temp higher?:
@deckingman The note about M116 not waiting for temperatures below 40C is in the Gcode dictionary ................................
IanDon't know how I missed that - I feel a trip to Specsavers coming on........
-
To my future me:
This works:
M568 P0 S250 A2 M116 M568 P0 S150 A2 M116