Is adding multiple part cooling fans possible?

So i have a toolchaning corexy with 3 hotends, everything works fine but i can’t figure out how to add more part cooling fans and assign them to a hotend.
If anyone knows how I would really appreciate it.

my config down below if it’s of any interest.

# This file contains common pin mappings for the BigTreeTech Octopus.
# To use this config, the firmware should be compiled for the
# STM32F446 with a "32KiB bootloader" and a "12MHz crystal" clock reference.

# See docs/Config_Reference.md for a description of parameters.

# Driver0
[stepper_x]
step_pin: PF13
dir_pin: PF12
enable_pin: !PF14
microsteps: 16
rotation_distance: 40
endstop_pin: tmc2209_stepper_x:virtual_endstop
position_endstop: 0
position_max: 410
homing_speed: 50
homing_retract_dist: 0


# Driver1
[stepper_y]
step_pin: PG0
dir_pin: PG1
enable_pin: !PF15
microsteps: 16
rotation_distance: 40
endstop_pin: tmc2209_stepper_y:virtual_endstop
position_endstop: 0
position_max: 355
homing_speed: 50
homing_retract_dist: 0


# Driver2
[stepper_z]
step_pin: PF11
dir_pin: !PG3
enable_pin: !PG5
microsteps: 16
rotation_distance: 4
endstop_pin: probe:z_virtual_endstop
position_max: 350
position_min: -30

[stepper_z1]
step_pin: PG4
dir_pin: !PC1
enable_pin: !PA0
microsteps: 16
rotation_distance: 4

# Driver4
[stepper_z2]
step_pin: PF9
dir_pin: !PF10
enable_pin: !PG2
microsteps: 16
rotation_distance: 4

#[filament_switch_sensor material_0]
#switch_pin: PG12

# Driver5
[extruder]
max_extrude_only_distance: 200
step_pin: PC13
dir_pin: PF0
enable_pin: !PF1
microsteps: 16
rotation_distance: 4.63
full_steps_per_rotation: 200
filament_diameter: 1.750
max_extrude_only_velocity: 60
nozzle_diameter: 0.400
heater_pin: PA2 # HE0
sensor_pin:  PF4 # T0
sensor_type: EPCOS 100K B57560G104F
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 250


# Driver6
[extruder1]
step_pin: PE2
dir_pin: PE3
enable_pin: !PD4
microsteps: 16
gear_ratio: 50:17
rotation_distance: 22.598
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PA3 # HE0
sensor_pin:  PF5 # T0
sensor_type: NTC 100K beta 3950
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 250

#[filament_switch_sensor material_2]
#switch_pin: PG14

# Driver7
#[extruder2]
#step_pin: PE6
#dir_pin: PA14
#enable_pin: !PE0
#microsteps: 16
#rotation_distance: 33.500
#nozzle_diameter: 0.400
#filament_diameter: 1.750
#heater_pin: PB10 # HE0
#sensor_pin:  PF6 # T0
#sensor_type: NTC 100K beta 3950
#control: pid
#pid_Kp: 22.2
#pid_Ki: 1.08
#pid_Kd: 114
#min_temp: 0
#max_temp: 250
#[filament_switch_sensor material_3]
#switch_pin: PG15

[heater_bed]
heater_pin: PA1
sensor_pin: PF3 # TB
sensor_type: ATC Semitec 104GT-2
control: watermark
min_temp: 0
max_temp: 130



[heater_fan fan1]
pin: PA8
heater: extruder
heater_temp: 50.0
fan_speed: 1.0

[heater_fan fan2]
pin: PE5
heater: extruder1
heater_temp: 50.0
fan_speed: 1.0

#[heater_fan fan3]
#pin: PD13

#[heater_fan fan4]
#pin: PD14

#[controller_fan fan5]
#pin: PD15

[mcu]
serial: /dev/serial/by-id/usb-Klipper_stm32f446xx_3C0031001950534841313020-if00
# CAN bus is also available on this board

[printer]
kinematics: corexy
max_velocity: 300
max_accel: 6500
max_z_velocity: 5
max_z_accel: 100

########################################
# TMC2209 configuration
########################################

[tmc2209 stepper_x]
uart_pin: PC4
diag_pin: PG6
driver_SGTHRS: 92
run_current: 0.800
hold_current: 0.500
stealthchop_threshold: 999999

[tmc2209 stepper_y]
uart_pin: PD11
diag_pin: PG9
driver_SGTHRS: 102
run_current: 0.800
hold_current: 0.500
stealthchop_threshold: 999999

[tmc2209 stepper_z]
uart_pin: PC6
##diag_pin: PG10
run_current: 0.800
hold_current: 0.500
stealthchop_threshold: 999999

[tmc2209 stepper_z1]
uart_pin: PC7
##diag_pin: PG11
run_current: 0.800
hold_current: 0.500
stealthchop_threshold: 999999

[tmc2209 stepper_z2]
uart_pin: PF2
run_current: 0.800
hold_current: 0.500
stealthchop_threshold: 999999

[tmc2209 extruder]
uart_pin: PE4
run_current: 0.420
hold_current: 0.350
stealthchop_threshold: 999999

[tmc2209 extruder1]
uart_pin: PE1
run_current: 0.800
hold_current: 0.500
stealthchop_threshold: 999999

#[tmc2209 extruder2]
#uart_pin: PD3
#run_current: 0.800
#hold_current: 0.500
#stealthchop_threshold: 999999


[board_pins]
aliases:
    # EXP1 header
    EXP1_1=PE8, EXP1_2=PE7,
    EXP1_3=PE9, EXP1_4=PE10,
    EXP1_5=PE12, EXP1_6=PE13,    # Slot in the socket on this side
    EXP1_7=PE14, EXP1_8=PE15,
    EXP1_9=<GND>, EXP1_10=<5V>,

    # EXP2 header
    EXP2_1=PA6, EXP2_2=PA5,
    EXP2_3=PB1, EXP2_4=PA4,
    EXP2_5=PB2, EXP2_6=PA7,      # Slot in the socket on this side
    EXP2_7=PC15, EXP2_8=<RST>,
    EXP2_9=<GND>, EXP2_10=PC5

# See the sample-lcd.cfg file for definitions of common LCD displays.

# A [probe] section can be defined instead with a pin: setting identical
# to the sensor_pin: for a bltouch
[bltouch]
sensor_pin: PB7
control_pin: PB6
z_offset: 2.2
x_offset: 0
y_offset: -46


#[neopixel my_neopixel]
#pin: PB0

[safe_z_home]
home_xy_position: 200,180 # Change coordinates to the center of your print bed
speed: 50
z_hop: 10                 # Move up 10mm
z_hop_speed: 5


[servo my_servo]
pin: PB2
#   PWM output pin controlling the servo. This parameter must be
#   provided.
maximum_servo_angle: 270
#   The maximum angle (in degrees) that this servo can be set to. The
#   default is 180 degrees.
minimum_pulse_width: 0.001
#   The minimum pulse width time (in seconds). This should correspond
#   with an angle of 0 degrees. The default is 0.001 seconds.
maximum_pulse_width: 0.002
#   The maximum pulse width time (in seconds). This should correspond
#   with an angle of maximum_servo_angle. The default is 0.002
#   seconds.
initial_angle: 0
#   Initial angle (in degrees) to set the servo to. The default is to
#   not send any signal at startup.
#initial_pulse_width:
#   Initial pulse width time (in seconds) to set the servo to. (This
#   is only valid if initial_angle is not set.) The default is to not
#   send any signal at startup.

[z_tilt]
z_positions: 360, 14
             40, 14
             200, 264
            

#   A list of X,Y coordinates (one per line; subsequent lines
#   indented) describing the location of each bed "pivot point". The
#   "pivot point" is the point where the bed attaches to the given Z
#   stepper. It is described using nozzle coordinates (the XY position
#   of the nozzle if it could move directly above the point). The
#   first entry corresponds to stepper_z, the second to stepper_z1,
#   the third to stepper_z2, etc. This parameter must be provided.
points: 360, 60
        40, 60
        200, 310
        
#   A list of X,Y coordinates (one per line; subsequent lines
#   indented) that should be probed during a Z_TILT_ADJUST command.
#   Specify coordinates of the nozzle and be sure the probe is above
#   the bed at the given nozzle coordinates. This parameter must be
#   provided.
speed: 50
#   The speed (in mm/s) of non-probing moves during the calibration.
#   The default is 50.
horizontal_move_z: 5
#   The height (in mm) that the head should be commanded to move to
#   just prior to starting a probe operation. The default is 5.
retries: 2
#   Number of times to retry if the probed points aren't within
#   tolerance.
retry_tolerance: 0.05
#   If retries are enabled then retry if largest and smallest probed
#   points differ more than retry_tolerance. Note the smallest unit of
#   change here would be a single step. However if you are probing
#   more points than steppers then you will likely have a fixed
#   minimum value for the range of probed points which you can learn
#   by observing command output.

[gcode_arcs]
resolution: 0.2

[save_variables]
filename:/home/pi/variables.cfg

[gcode_macro T0]
gcode:
    {% if not printer.toolhead.extruder == "extruder" %}
        unload{printer.toolhead.extruder}
        load
        ACTIVATE_EXTRUDER EXTRUDER=extruder
        SAVE_VARIABLE VARIABLE=currentextruder VALUE='"extruder"'
    {% endif %}
    SET_GCODE_OFFSET Z=0 X=0 Y=0
  
[gcode_macro T1]
gcode:
    {% if not printer.toolhead.extruder == "extruder1" %}
        unload{printer.toolhead.extruder}
        load1
        ACTIVATE_EXTRUDER EXTRUDER=extruder1
        SAVE_VARIABLE VARIABLE=currentextruder VALUE='"extruder1"'
    {% endif %}
    SET_GCODE_OFFSET Z=0 X=0 Y=0

[gcode_macro START_GCODE]
gcode:
  {% set svv = printer.save_variables.variables %}
  ACTIVATE_EXTRUDER extruder={svv.currentextruder}
  
[gcode_macro unloadExtruder]
gcode:
    G1 X54 F10000
    G1 Y326 F10000
    G1 Y342
    G4 P300
    SET_SERVO SERVO=my_servo ANGLE=90
    G4 P300
    G1 Y250 F10000

[gcode_macro load]
gcode:
    G1 X54 F10000
    G1 Y326 F10000
    G1 Y342
    G4 P300
    SET_SERVO SERVO=my_servo ANGLE=0
    G4 P600
    G1 Y250 F10000

[gcode_macro unloadExtruder1]
gcode:
    G1 X130 F10000
    G1 Y326 F10000
    G1 Y342
    G4 P300
    SET_SERVO SERVO=my_servo ANGLE=90
    G4 P300
    G1 Y250 F10000

[gcode_macro load1]
gcode:
    G1 X130 F10000
    G1 Y326 F10000
    G1 Y342
    G4 P300
    SET_SERVO SERVO=my_servo ANGLE=0
    G4 P600
    G1 Y250 F10000
    
[mcu rpi]
serial: /tmp/klipper_host_mcu

[adxl345]
cs_pin: rpi:None

[resonance_tester]
accel_chip: adxl345
probe_points:
    200,180,20 

[input_shaper]
shaper_freq_x: 60.4
shaper_type_x: ei
shaper_freq_y: 70.2
shaper_type_y: zv

FYI, I’m trying to merge fan: Support multiple printer fans by viesturz · Pull Request #6341 · Klipper3d/klipper · GitHub that does just this.