cd ~
git clone https://github.com/pedrolamas/klipper-virtual-pins.git
./klipper-virtual-pins/install.sh
[virtual_pins]
[fan]
pin: virtual_pin: fake_fan
Change multifan in tool config to fan_generic
and change it's name to PartFan_T0
for tool 0 and PartFan_T1
for tool 1 etc.
[multi_fan T0_partfan] #change to [fan_generic PartFan_T0]
pin: et0:PA0
[tool T0]
tool_number: 0
extruder: extruder
params_type: 'rods_mini_hookon'
#Delete line under from all tools config
fan: multi_fan T0_partfan
gcode_x_offset: 0
gcode_y_offset: 0
gcode_z_offset: 0
params_park_x: 0.0
params_park_y: -7.7
params_park_z: 349.5
[gcode_macro M106]
rename_existing: M106.1
gcode:
{% set target = params.S|default(255)|int %}
SET_GCODE_VARIABLE MACRO=_TOOLGLOBALVARIABLES VARIABLE=fanspeed VALUE={target}
{% if printer.toolchanger.tool_number == -1 %}
SET_FAN_SPEED FAN=PartFan_T0 SPEED={target/255}
{% else %}
SET_FAN_SPEED FAN=PartFan_T{printer.toolchanger.tool_number} SPEED={target/255}
{% endif %}
M106.1 S{target}
[gcode_macro _TOOLGLOBALVARIABLES]
variable_fanspeed: 0
gcode:
{action_respond_info("This is only variables macro")}
[toolchanger]
...
before_change_gcode:
{% set tn = "T"+(tool.tool_number|string) %}
{% if printer["gcode_macro " + tn ] %}
SET_GCODE_VARIABLE MACRO={tn} VARIABLE=color VALUE="''"
#Add the line under this
SET_FAN_SPEED FAN=PartFan_T{tool.tool_number} SPEED=0
{% endif %}
after_change_gcode:
{% set tn = "T"+(tool.tool_number|string) %}
{% if printer["gcode_macro " + tn ] %}
SET_GCODE_VARIABLE MACRO={tn} VARIABLE=color VALUE="'c44'"
#Add the line under this
M106 S{printer["gcode_macro _TOOLGLOBALVARIABLES"].fanspeed}
{% endif %}
...