What's new
VORON Design

Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members!

Logic for heater-based controller_fan activation?

Dave32

Well-known member
Quick question on the fan logic with a new LDO 2.4r2 build:

There is this section in Klipper's printer.cfg:
## Controller fan - FAN2
[controller_fan controller_fan]
pin: PD12
kick_start_time: 0.5
heater: heater_bed
fan_speed: 0.5

Which based on the Klipper config reference, "will be enabled when any of the given heaters/steppers are enabled", in this case, the heater "heated_bed".

When I power on the machine, these fans are off. However, when homing the machine, the fans will immediately turn on, and will then stay on forever.
But likewise, if I disable the steppers, then right on target 30 seconds later, the controller fans kick off.

So it seems like the controller fan is triggering in response to the steppers somehow - rather than the heated bed as expected.

Any thoughts on why this might be happening?
 
From the controller fan documentation:

A "controller fan" is a fan that will beenabled whenever its associated heater or its associated stepperdriver is active.

And from the documentation of the motor selection specifically:
the default stepper is all of them.
 
Ahh, ok, thanks.

So after thinking it through, I presume that the behavior then is as intended - the electronics compartment would be ventilated any time the heated bed OR any steppers are active. It would make sense to do that - and I'll keep that as-is.

Just for reference though, how would one specify "no steppers"? Would you just include the line:
with nothing after? And then the fact that you defined that line ("stepper:") is enough to override the default list?
 
I must admit, I've never actually tried to omit all. I suspect it's either what you said, or possibly :None
 
I tried it - fully expecting an error prompt - but it worked!
Just including "stepper:" alone on a line was enough to clear that default list, and then the fan was tied to only the bed heater.
I've since reverted that, but learned something new about Klipper today.
 
Ahh, ok, thanks.

So after thinking it through, I presume that the behavior then is as intended - the electronics compartment would be ventilated any time the heated bed OR any steppers are active. It would make sense to do that - and I'll keep that as-is.

Just for reference though, how would one specify "no steppers"? Would you just include the line:

with nothing after? And then the fact that you defined that line ("stepper:") is enough to override the default list?
The controller fan is intended to cool the MOSFETs on the MCU board. MOSFETs are used in the stepper drivers and in the fan driver. So it makes sense. My "controller fan" is mounted directly over the heat sink on the MCU controller board. It runs at about 32 to 34 C while printing.

How to make it ignore the stepper? Don't use [controler_fan...]. but just [fan....] or another fan type.

I am planning to one day epoxy a thermistor (or rather a serial-interfaced heat sensor connected to the Pi's GPIO) to the controller's heat sink and then make it a heat driven fan. But that is low on the to-do list. MCU fan is working well enough.
 
You can expose the internal temperature sensors on your MCUs in Klipper. I have these lines in my printer.cfg:
Code:
[temperature_sensor pi_4_mcu]
sensor_type: temperature_host
min_temp: 0
max_temp: 100
[temperature_sensor octopus_mcu]
sensor_type: temperature_mcu
min_temp: 0
max_temp: 100
I display the MCU temps on the web UI thermals chart, and control my electronics bay fans from the Pi MCU temperature.
 
Oh hey, I knew about the Pi, but didn't know that the Octopus also had that capability. Thanks!
 
Top