# Is this a bug ? idle\_timeout / controller\_fan

**URL:** <https://klipper.discourse.group/t/is-this-a-bug-idle-timeout-controller-fan/5807>\
**Category:** General Discussion\
**Created:** [January 7, 2023, 7:01pm UTC](https://klipper.discourse.group/t/is-this-a-bug-idle-timeout-controller-fan/5807 "2023-01-07T19:01:26Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![adolfotregosa](https://avatars.discourse-cdn.com/v4/letter/a/53a042/32.png) [@adolfotregosa](https://klipper.discourse.group/u/adolfotregosa)\
**Post date:** [January 7, 2023, 7:01pm UTC](https://klipper.discourse.group/t/is-this-a-bug-idle-timeout-controller-fan/5807/1 "2023-01-07T19:01:26Z")

</div>

Hi. Sorry to bother you guys but can I have some help, please ?

in → [Configuration reference - Klipper documentation](https://www.klipper3d.org/Config_Reference.html?h=controller_fan#controller_fan)

```auto
#idle_timeout:
# The amount of time (in seconds) after a stepper driver or heater
# was active and the fan should be kept running. The default
# is 30 seconds.

```

idle\_timeout: is not working for me. Am I alone ?

```auto
[controller_fan controller_fan]
pin: PD12
kick_start_time: 0.3
heater: heater_bed
stepper: stepper_x,stepper_y,stepper_z
fan_speed: 0.07
cycle_time: 0.06
idle_timeout: 60
idle_speed: 0

```

Controller fan stops immediately, idle\_timeout:60 is not respected.

Thank you

---

<div class="post-metadata">

**Author:** ![Sineos](https://yyz2.discourse-cdn.com/free1/user_avatar/klipper.discourse.group/sineos/32/18_2.png) [@Sineos](https://klipper.discourse.group/u/Sineos)\
**Post date:** [January 8, 2023, 7:20am UTC](https://klipper.discourse.group/t/is-this-a-bug-idle-timeout-controller-fan/5807/2 "2023-01-08T07:20:17Z")

</div>

Works for me. Just tested it  
Please note that you have two conditions:

```auto
[idle_timeout]
timeout: 1

```

and

```auto
[controller_fan my_controller_fan]
pin: P1.26
stepper: stepper_x,stepper_y,stepper_z
fan_speed: 0.6
idle_timeout: 30
idle_speed: 0.4

```

- `[idle_timeout]` → `timeout: 1` here means that after 1 second of no activity the idle condition is reached.
- `[controller_fan my_controller_fan]` → `idle_speed: 0.4` means that **when** idle condition is reached, then set the fan speed to 40%
- `[controller_fan my_controller_fan]` → `idle_timeout: 30` means that 30 seconds **after** idle condition is reached the fan is turned off

---

<div class="post-metadata">

**Author:** ![adolfotregosa](https://avatars.discourse-cdn.com/v4/letter/a/53a042/32.png) [@adolfotregosa](https://klipper.discourse.group/u/adolfotregosa)\
**Post date:** [January 8, 2023, 10:32am UTC](https://klipper.discourse.group/t/is-this-a-bug-idle-timeout-controller-fan/5807/3 "2023-01-08T10:32:48Z")

</div>

Of course, thank you for explaining. Now that I know about the global timeout I understand the logic. Documentation threw me off and could alert about the two timeouts. I interpreted that when all of the triggers where off, in my case:

```auto
heater: heater_bed
stepper: stepper_x,stepper_y,stepper_z

```

The controller fan idle\_timeout would kick in. With all steppers in M84 was turning on and off bed heater and fans always stopped immediately when I pressed cooldown.

I’ll make idle\_timeout:0 and idle\_speed:0 so the controller fans also stop when the global timeout kicks in. They are annoying 😐 to be around when on.

Thank you

---

<div class="post-metadata">

**Author:** ![adolfotregosa](https://avatars.discourse-cdn.com/v4/letter/a/53a042/32.png) [@adolfotregosa](https://klipper.discourse.group/u/adolfotregosa)\
**Post date:** [January 8, 2023, 10:55am UTC](https://klipper.discourse.group/t/is-this-a-bug-idle-timeout-controller-fan/5807/4 "2023-01-08T10:55:59Z")

</div>

Is there available an “out\_of\_idle” option somewhere ? e.g global timeout could turn lights off, “out\_of\_idle” would have gcode to turn them back on ?

---

<div class="post-metadata">

**Author:** ![Sineos](https://yyz2.discourse-cdn.com/free1/user_avatar/klipper.discourse.group/sineos/32/18_2.png) [@Sineos](https://klipper.discourse.group/u/Sineos)\
**Post date:** [January 8, 2023, 11:41am UTC](https://klipper.discourse.group/t/is-this-a-bug-idle-timeout-controller-fan/5807/5 "2023-01-08T11:41:07Z")

</div>

The global idle status is reflected in the printer variable `printer.idle_timeout.state`  
You could use this to construct a macro to do whatever you want. See [Macro Creation Tutorial](https://klipper.discourse.group/t/macro-creation-tutorial/30/) for more information

---

<div class="post-metadata">

**Author:** ![EddyMI3D](https://yyz2.discourse-cdn.com/free1/user_avatar/klipper.discourse.group/eddymi3d/32/1981_2.png) [@EddyMI3D](https://klipper.discourse.group/u/EddyMI3D)\
**Post date:** [June 18, 2024, 1:40pm UTC](https://klipper.discourse.group/t/is-this-a-bug-idle-timeout-controller-fan/5807/6 "2024-06-18T13:40:49Z")

</div>


