Safety Timer
-
"Hi everyone! I've been using 3D printers for a while now and I've always been concerned about leaving the printer unattended for long periods of time. I was wondering if anyone knows of any plans to implement a safety timer that would park, pause or even shut off a print if there is no movement for a given period of time. This would be a great feature to ensure that the printer doesn't continue to run if something goes wrong, and could potentially prevent accidents or even fires. If anyone has any information or thoughts on this, I'd love to hear them. Thanks!"
-
You can do this now with the daemon.g file and if you have a separate power supply that works with the PSON pin for the heaters and motors you could turn it off after idle for a while.
No printer should be left entirely unattended at any rate.
-
Hi there! I was hoping there might be a simple M command for implementing a safety timer, as it feels like safety hasn't been given enough attention in this regard. I had imagined something like:
M199 Idle Shutdown: This would trigger specific actions (e.g., call shutdown.g, shut down motors, heaters, etc.) if the printer remains idle for a specified duration.
-
Timeout duration (in seconds) - Specifies the idle time after which the shutdown should be triggered.
- Example: T500 (indicates a 500-second idle timeout)
-
Heaters - Option to turn off hotend(s) and heated bed.
- Example: H1 (1=turn off, 0=keep as-is)
-
Motors - Option to disable stepper motors.
- Example: M1 (1=disable, 0=keep as-is)
-
Fans - Option to turn off part cooling and hotend cooling fans.
- Example: F1 (1=turn off, 0=keep as-is)
-
Custom G-code file - Specifies a custom G-code file to be executed during the shutdown process.
- Example: G"shutdown.g"
M199 T500 H1 M1 F1 G"shutdown.g"
This command would trigger the idle shutdown after 500 seconds of inactivity, turning off heaters, disabling motors, turning off fans, and executing the "shutdown.g" file for any additional custom shutdown procedures.
Does anyone happen to have a sample daemon.g file that could help achieve this functionality? I would greatly appreciate any input on this matter. Thanks!
-
-
@jp RRF already uses the followings safety timers:
- The hardware watchdog timer in the MCU will reset it if the tick interrupt fails to be executed. This is meant to handle catastrophic firmware crashes, or spin loops that wait for hardware to be ready never finding the hardware ready.
- A software timer that resets the system if the Main task (the lowest priority task in the system, other than the Idle task) doesn't get executed for 20 seconds
- A software timer that resets the system if the task that manages heater temperatures doesn't get executed for a period of time. This is set to 20 seconds in RRF 3.4.x but is being reduced to 5 seconds in 3.5.
Are you looking for something else?