[delayed_gcode FAN_CONTROL_LOOP] gcode: FAN_CONTROL UPDATE_DELAYED_GCODE ID=FAN_CONTROL_LOOP DURATION=2 [gcode_macro FAN_CONTROL] gcode: # # TMC cooler # # This defaults to 100% if either x or y steppers are enabled and 0% otherwise. # {% if printer['stepper_enable'].steppers.stepper_x or printer['stepper_enable'].steppers.stepper_y %} # SET_FAN_SPEED FAN=tmcCooler SPEED=1 # {% else %} # SET_FAN_SPEED FAN=tmcCooler SPEED=0 # {% endif %} # idle m8p temp - 52 {% set mantaMinTemp = 55 %} {% set mantaMaxTemp = 80 %} # idle rpi temp - 54 {% set rpiMinTemp = 58 %} {% set rpiMaxTemp = 85 %} # idle printhead temp - 39 # base fans depend on the current microcontroller temperature, following a fan curve from a 'base' to 'max' temperature. # they are fixed at 20% or above when stepperx or y are enabled. # magic equation here: {% set baseFanSpeed = (printer['temperature_sensor Manta'].temperature-mantaMinTemp)/(mantaMaxTemp-mantaMinTemp) %} {% set baseFanSpeed = [(printer['temperature_sensor Rpi'].temperature-rpiMinTemp)/(rpiMaxTemp-rpiMinTemp),baseFanSpeed]|max %} {% if printer['print_stats'].state == "printing" %} {% set baseFanSpeed = [0.6, baseFanSpeed]|max %} {% endif %} {% set baseFanSpeed = [[baseFanSpeed, 1]|min, 0]|max %} # fix the value somewhere between zero and one SET_FAN_SPEED FAN=base_1 SPEED={baseFanSpeed} SET_FAN_SPEED FAN=base_2 SPEED={baseFanSpeed} # for now both exhaust and filter go to 60% when printing {% if printer['print_stats'].state == "printing" %} SET_FAN_SPEED FAN=filter SPEED=.5 SET_FAN_SPEED FAN=exhaust SPEED=.5 {% endif %} ## Fans [fan] # Print cooling fan pin: printHead:PA1 kick_start_time: 0.500 [heater_fan hotend_fan] # Hotend fan pin: printHead:PA0 kick_start_time: 0.500 heater: extruder heater_temp: 50.0 [fan_generic filter] pin: PF8 [fan_generic exhaust] pin: PF6 [fan_generic base_1] pin: PF9 [fan_generic base_2] pin: PF7 #fan_speed: .4 [controller_fan tmcCooler] pin: PA4 stepper: stepper_x, stepper_y ## Temperatures [temperature_sensor Manta] sensor_type: temperature_mcu sensor_mcu: mcu [temperature_sensor printHead] sensor_type: temperature_mcu sensor_mcu: printHead [temperature_sensor Rpi] sensor_type: temperature_host sensor_path: /sys/class/thermal/thermal_zone0/temp