IDEX Parts cooling fan turned off

Hi @SiC_FPV
Version 2 - for multiple extruders on one carriages
eg my printer … Test(2) - YouTube

Add to macro Txx

## add to T0 macro
#  
#  CARRIAGE_PRINT_FAN 
#
## add to T1 macro
# 
#  CARRIAGE_PRINT_FAN

HW config FANs

# X1 print cooling fan
# [fan_generic fan]
# pin: PC9
# cycle_time: 0.0100
# kick_start_time: 1.00

# X2 print cooling fan
# [fan_generic fan1]
# pin: PA8
# cycle_time: 0.0100
# kick_start_time: 1.000

# Other define FANs
# [fan_generic fan2]
# pin:
# [fan_generic fan3]
# pin:
# [fan_generic fan4]
# pin:
# [fan_generic fan5]
# pin:

Macros M160 / M107



##########################################################
# PRINTER FANS MANAGEMENT
# Redefine G-code command M106 and M107 
##########################################################

[gcode_macro M106]
description: Override "M106" to allow multiple extruders.
gcode:

    
    {% set raw_speed = params.S|default(255)|float %}
    {% set fan_speed = (raw_speed / 255.0)|round(2) %} 

    {% if (params.P) is defined %}  
      {% set target_fan = params.P|int %}     
      {% set default_fan = ('fan', 'fan1', 'fan2', 'fan3', 'fan4', 'fan5')[target_fan] %}  
       SET_FAN_SPEED FAN={default_fan} SPEED={fan_speed}
    {% else %}
        ### carriages print cooling FAN   
        CARRIAGE_PRINT_FAN SPEED={fan_speed}       
    {% endif %}

#=============================================================== 


[gcode_macro M107]
description: Override "M107" to allow multiple extruders.
gcode:

    {% if (params.P) is defined %} 
      M106 S0 P{params.P}
    {% else %}
      M106 S0
    {% endif %}

#===============================================================
 
[gcode_macro CARRIAGE_PRINT_FAN]
description: Set automatically the print fan speed for dual carriages modes 

#--- Carriages print cooling FANs ---
variable_fan: 'fan'    # carriage X1
variable_fan1: 'fan1'   # carriage X2

gcode:
     
    ### FAN speed  
    {% if params.SPEED is defined %}
        {% set fan_speed = params.SPEED|float %}
    {% else %}
        ### read print fan speed from active carriage/extruder        
        {% set fan_speed = printer["fan_generic " + fan].speed|float %}
        {% set fan1_speed = printer["fan_generic " + fan1].speed|float %}
        {% set fan_speed = [fan_speed, fan1_speed]|max %}
    {% endif %}


    ### Active FAN for carriage
    {% set active_toolhead =({'extruder':0,'extruder1':1,'extruder2':2,'extruder3':3})[printer['toolhead'].extruder] %}    
    
     {% if active_toolhead in [0,1] %}   
        ### FAN on carriage X1       
        SET_FAN_SPEED FAN={fan} SPEED={fan_speed}
        SET_FAN_SPEED FAN={fan1} SPEED=0

     {% elif active_toolhead in [2,3] %}   
        ### FAN on carriage X2        
        SET_FAN_SPEED FAN={fan} SPEED=0
        SET_FAN_SPEED FAN={fan1} SPEED={fan_speed}
    {% endif %}
    ```
4 Likes