Heater timeout
-
Even in a change filament macro the user could get interrupted and forget about the printer.
A new mode to M291 with a blocking timeout or a more generic idle.g file could be used for this and other functions, pending conditional g-code.
-
@dc42 Any thoughts on the possibility of implementing an optional heater time out?
On a semi-related note, is there a way of calling restoring the print temp when resuming a print? For example, if the temp was set to something else during a pause, then resuming would restore the printing temp. Essentially, is there any way to call the previous printing temp?
-
@deckingman said in Heater timeout:
Edit. What is the usage case where one of your end users could turn on a heater without printing? I can only think of loading filament, which is best done with a macro that would turn the heaters off at the end.
For example, to change or clean the nozzle. Turning heaters on can be done directly in the UI and there is no enforcement that it's done in a macro.
-
@jckray said in Heater timeout:
@dc42 Any thoughts on the possibility of implementing an optional heater time out?
I will add this to the firmware wishlist. Perhaps it should be a global timeout that turns the whole printer off?
On a semi-related note, is there a way of calling restoring the print temp when resuming a print? For example, if the temp was set to something else during a pause, then resuming would restore the printing temp. Essentially, is there any way to call the previous printing temp?
You could set up a standby temperature for the tool (or for all tools), then you can use T-1 in pause.g to deselect the tool (although that would be inconvenient if you want to do any extrusion or filament loading while it is paused). Then do T R1 in resume.g to restore the active tool at the time of the pause.
-
@dc42 Has this been implemented, and if so how. My company is also using duets in our in-house built machines. We do R&D research for multiple customers and are often changing the configuration of our machines to perform specific tasks. So it is not feasible to war game out every single user error case that can occur, therefore having generic safe guards in place such as enabling a heater to time out when the machine is idle would be beneficial.
Global time out could be an option but im not a fan of that because shutting off the power would also kill power to my cooling systems, which would be a problem if the machine was in a hot state.
-
Can you use the daemon.g file to do this?
-
@dc42 I would also be interested in such a feature for safety reasons for our customers.
-
@dc42 We are very interested to have this feature as well . This is not only a security feature but also reduce chances for people to have their hotend clogging, avoid some part like shroud deforming because there is no airflow or simply reduce energy consumption. Even for an advanced user there will always be a day where you forgot about it.
If not possible, could you give us a little bit more details on how to implement this with daemon.g?
-
Perhaps you could use the idle hold timer (M84 Sxxc) in conjunction with daemon.g
So if there was no movement for specified time, turn off heaters.So something like this in daemon.g
If {(move.axes[0].current < "YourIdleThreshold") && (heat.heaters[1].state ="active")} Code to turn off heater(s)
-
@owend thanks for your help. Any reason why you want to get the current instead of machine position like with
move.axes[].machinePosition
? -
@gregsaun
I wasn't actually looking at the position, but at the current that the motor is set at.
However it may actually be that you would look at move.axes[0].percentCurrent
After the timeout set in M84, your motor(s) will be set to a lower current.
I just tried to check on this, but the object model doesn't change for either move.axes[0].percentCurrent or move.axes[0].current after M84 is issued despite the axis being marked as unhomed.
Perhaps @dc42 can comment. -
@owend Sorry for my late answer, thanks I better understand now
-
Hi, did anybody actually get this working with daemon.g or other means?