Skip to content

idle_timout and paused state #6071

Description

@Mimoja

Many times (e.g. #1522) it has been brought up that the idle_timeout and filament runout induced pause have caused longterm prints to fail.

The expectation for all those cheap, switchbased runout sensors found on the 200-ish euro printers is for them to save your print not ruin them, so the question is for me: how to ensure a safe default behaviour which I personally dont see given here.

A short github search reveals that a significant amount of people just set the idle_timout to large amounts anyways on a pause:
https://github.com/search?q=SET_IDLE_TIMEOUT+extension%3Acfg&type=Code&ref=advsearch&l=&l=
Adding more and hard to test complexity to my printer.cfg does also not seem to be a solution with a low entry bar.

The workarounds with custom idle scripts works but also requires manual knowledge of the issue realistically implying at least one occurency of a failed print.

As this is currently not implemented one way or another it is a breaking change from the current behaviour

This request can be implemented similiar to #4847 by checking the printers state.

I would like to extend the idle_timeout.py to also respect a new pause_timeout parameter which will be applied if the printer is paused.
However this means that the default config of a printer would not show the behaviour requested.
I see therefore two options:

  1. Choose the estimated (total?) time of the print + 20% as a default pause_timeout if none is provided (I personally find it reasonable to check on your print after some time)
  2. Ignore the paused state alltogether interpreting it as "the printer is not idle, it is printing, just slowly"

The later case would also allow for easy and extended heatsoaking experiments at the beginning of prints where people often manually want to resume the print.

Case 2 would also respect all the {% if printer.pause_resume.is_paused %} .., {% else %} ... scripts which would just never evaluate to true anymore while at the same time introducing a potential safety risk if people were to rely on the idle_timeout for safety. I personally can not come up with such scenario, but I am also a multi-spool print kinda person so maybe I lack the calibration?

One way or another: If I were to implement and test it would it be merged?

Metadata

Metadata

Assignees

No one assigned

    Labels

    not on githubNot a topic tracked on github

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions