Starting the nozzle fan when nozzle is heated above 50°C

Basic Information:

Printer Model: Ender-3 Pro Custom
MCU / Printerboard: Creality 2.2 Silent Board

Hey guys,

I finally switched from Marlin to Klipper on Octoprint… the most things are working fine so far.
Today I found this pinout for my board (which I searched for a long time)…

Creality 2.2 Silent Board Pinout


thanks to jamonterrell

My nozzle fan is connected to the H1 PH4 pins. In Marlin I managed to start it when the H0 is active (nozzle_heater) and the nozzle temp is above 50°C. I’m struggeling a bit to get this working again in Klipper - any ideas how to accomplish that?

Is there a function for printer.cfg like an if clause to make it start automatically when nozzle has more then 50°C - that would be nice! otherwise I have to add it to my PRINT_START routine and let it run until PRINT_END routine starts.

any ideas on that highly appreciated :wink:

thanks
Dan

Edit: Ok, I found this:

temperature_fan

[temperature_fan nozzle_cooler]
pin: PH4
max_power: 1.0
#shutdown_speed:
#cycle_time:
#hardware_pwm:
#kick_start_time:
#off_below:
#tachometer_pin:
#tachometer_ppr:
#tachometer_poll_interval:
#enable_pin:
#   See the "fan" section for a description of the above parameters.
#sensor_type:
#sensor_pin:
#control:
#max_delta:
#min_temp:
#max_temp:
#   See the "extruder" section for a description of the above parameters.
#pid_Kp:
#pid_Ki:
#pid_Kd:
#   The proportional (pid_Kp), integral (pid_Ki), and derivative
#   (pid_Kd) settings for the PID feedback control system. Klipper
#   evaluates the PID settings with the following general formula:
#     fan_pwm = max_power - (Kp*e + Ki*integral(e) - Kd*derivative(e)) / 255
#   Where "e" is "target_temperature - measured_temperature" and
#   "fan_pwm" is the requested fan rate with 0.0 being full off and
#   1.0 being full on. The pid_Kp, pid_Ki, and pid_Kd parameters must
#   be provided when the PID control algorithm is enabled.
#pid_deriv_time: 2.0
#   A time value (in seconds) over which temperature measurements will
#   be smoothed when using the PID control algorithm. This may reduce
#   the impact of measurement noise. The default is 2 seconds.
#target_temp: 40.0
#   A temperature (in Celsius) that will be the target temperature.
#   The default is 40 degrees.
#max_speed: 1.0
#   The fan speed (expressed as a value from 0.0 to 1.0) that the fan
#   will be set to when the sensor temperature exceeds the set value.
#   The default is 1.0.
#min_speed: 0.3
#   The minimum fan speed (expressed as a value from 0.0 to 1.0) that
#   the fan will be set to for PID temperature fans.
#   The default is 0.3.
#gcode_id:
#   If set, the temperature will be reported in M105 queries using the
#   given id. The default is to not report the temperature via M105.

Can anyone help me configure this?

See heater_fan
This works a bit different to Marlin:

  • The fan is turned ON as soon as the heater gets active → Which makes sense, since you want to avoid any heat built-up
  • heater_temp dictates when the fan will turn OFF again, e.g. below 50°C
1 Like

Ok [temperature_fan] isnt working, because I couldn’t assign the temperature sensor of the nozzle twice…

but here’s my solution:

[heater_fan heatbreak_cooling_fan]
pin: PH4
max_power: 1.0
shutdown_speed: 0.0
off_below: 0.3
#enable_pin: PB4
heater: extruder
heater_temp: 40.0
fan_speed: 1.0

Edit: thanx anyway Sineos! …found the solution by myself :wink: I wrote this while you were replying…

1 Like

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