How to pause during the night?

I have a general question about “pause”. Its not a problem on my machine, so no klippy or anything. I want to be prepared for when I need to pause it.

I live in a block of apartments and some prints are more noisy because of overhangs and such, and my cpap fan starts. When this happens at night, and the printer is not ready yet, I am thinking of pausing it till the morning.
But you have things like motors turning off and heaters switching off, so this is not a good solution for a longer period of time.

How can we pause the printer for several hours, leaving the motors on and the bed heater as well?

I looked here in the archives and cannot find anything that gives me an answer on the same issue.
I saw some post about overcoming this issue but it has gone cold and nobody answered one other reply sbout how to deal with his suggested solution.

So please, anybody who has any good ideas here?

One option would be to set idle_timeout sufficiently high and reduce the extruder temperature in a macro to some value that prevents cooking the filament. You can also set the timeout dynamically via the SET_IDLE_TIMEOUT command.

1 Like

Thank you for your answer, I did suspect something like this but better be sure. To that end I still have a question or two about this.

If I set my timeout permanently in the config (globally), what else will I affect by doing that?
Is idle timeout only used for this to switch off your printer when idle for set amount of time, as the name suggests, or is there something else that gleans this setting for other purposes?
I am asking for safety reasons, cannot think about anything else really.

If I set the HE temp in the pause macro to a non drool/non cooking amount, would that work? upon resume I take it there is the instruction to set the HE temp back up to print value so I think this should work??? I will check of course!

Last question (I think), how would it work with a dynamic SET_IDLE_TIMEOUT if you then follow with a manual PAUSE command? This would likely reset the previous command or is this not how it works?
Also, if it is dynamic, how would it reset to its previous vallue? With another command or with the resume (after pause) command?
Obviously a reset of the whole system would revert it, but in normal working conditions what else would?

Sorry for these, maybe I am overly worried about this idle timeout thing.

I’d say, you are overthinking it a bit. In the first place, refer to the documentation: Configuration reference - Klipper documentation

Then you can do something as simple as:

[gcode_macro PEACEFUL_NIGHT]
description: Rest in Pieces
gcode:
  SET_IDLE_TIMEOUT TIMEOUT=28800 # 8h
  SET_HEATER_TEMPERATURE HEATER=extruder TARGET=100
  PAUSE
  CLEAR_PAUSE

This probably is the most basic form that will do the job. Of course you can get a lot more fancy or use the partially built in functions of the Mainsail PAUSE macro. Refer to GitHub - mainsail-crew/mainsail-config: Mainsail klipper macros and settings

Yup, that is me.
Think 5 times about how I am going to land and then at the sixth I finally jump and slip at the take off.

Thank you Sineos, much appreciated again.

Ok so I got it to work somehow, but I am struggling with how to make it pick up the extruder temp and the fan speed from the original gcodefile.
I managed to RESUME, but the temperature has to be set manually before doing so, I guess the same with the M106.
Is there a way to make the Resume honor the original values and continue the print?

My macro slightly changed from your example.

[gcode_macro NIGHT_PAUSE]
description: pause through the night
gcode:
  SET_IDLE_TIMEOUT TIMEOUT=28800 # 8h
  SET_HEATER_TEMPERATURE HEATER=extruder TARGET=100
  M106 S0
  PAUSE

If you are using the Mainsail PAUSE macros then try adding:

[gcode_macro NIGHT_PAUSE]
description: pause through the night
gcode:
  SET_IDLE_TIMEOUT TIMEOUT=28800 # 8h
  SET_HEATER_TEMPERATURE HEATER=extruder TARGET=100
  M106 S0
  SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=idle_state VALUE=True
  PAUSE

If this does not work, you might have to save the relevant states states in your pausing macro and have a dedicated RESUME_FROM_NIGHT that restores these.

Also see GitHub - mainsail-crew/mainsail-config: Mainsail klipper macros and settings → “2nd update”

1 Like

That did not work, but the github page with the 2nd update does show promising noise so I will delve deeper into this and see if I can somehow make a new idle timeout section as it suggested.

Thanks.

I would prepare a custom PAUSE macro which keeps stuff warm, but not too much, and turns off the fans, then use Home Assistant to determine whether to call the PAUSE macro or not. For example, if the noise level in the room between x PM and y AM stays above x dB for 15 minutes, or the CPAP is above x% for 15 minutes, then call PAUSE and unpause at y AM.

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.