Second/additional heat break fan

Hello Sovol Zero experts!
I’m new here. I want to add a 2nd fan to the heat break, possibly not by cutting the wires of the existing fan but by exploiting the existing fan2 connector (that currently doesn’t give any sign of life):

The question is, how do I control the extruder mcu’s fan2 output pin? I can clearly see a MOSFET is there, so the hardware fully supports fan2, but I don’t know which MPU controls it.

Probably I can then enable it in printer.cfg but I don’t know what is the right pin, nor if I can specify two of them here (e.g. adding a comma after PA6 and then another pin name):

[heater_fan hotend_fan]
pin: extruder_mcu:PA6
max_power: 1.0
cycle_time: 0.015
kick_start_time: 0.5
heater: extruder
heater_temp: 45
tachometer_pin: extruder_mcu:PA1
tachometer_ppr: 1
tachometer_poll_interval: 0.0013

@sovol3d ?

Thank you!
BoDe

1 Like


This image from Sovol’s github repository shows the pin ID’s for the entire board.

I beleive adding the following:

[heater_fan hotend_fan2]
pin: extruder_mcu:PA7 #Fan 2 on the toolhead board
max_power: 1.0
cycle_time: 0.015
kick_start_time: 0.5
heater: extruder
heater_temp: 45
tachometer_pin: extruder_mcu:PA2 #Fan2 on the toolhead board
tachometer_ppr: 1
tachometer_poll_interval: 0.0013

Would cause Klipper to turn on the second fan at 45 °C and run it at 100% continuously

2 Likes

I stumbled across this
https://www.aliexpress.us/item/3256808910300984.html?spm=a2g0o.productlist.main.9.237d1862YqtQbG&algo_pvid=303d23d6-1de8-4f10-917c-b953d04c0cfc&algo_exp_id=303d23d6-1de8-4f10-917c-b953d04c0cfc-8&pdp_ext_f={"order"%3A"-1"%2C"eval"%3A"1"}&pdp_npi=4%40dis!USD!24.07!24.07!!!24.07!24.07!%402103247417506931185527146ecce9!12000048231468878!sea!US!3884106183!X&curPageLogUid=Okck0Hb6hpHY&utparam-url=scene%3Asearch|query_from%3A
If anyone is looking fpr a 25x15 fan to mount as a puller on their Zero (or SV08)

It worked, thank you very much. I installed the fan to continue the direction of air flow, i.e. from the right to the left.

Surprisingly, this fan is considerably more noisy than the already installed one, although both come from Sovol (one was in the printer, the one was purchased from their site) and both are running at 17k RPM. However, although considerably more noisy, in the end the other printer’s fans, motors, etc… are so noisy that this additional little but noisy fan doesn’t make much of a practical difference, when printing.

There was no thread on that side of the heat break block, but the fan gets positioned, firmly enough, by the hot end heater wires and other wires. Those have to be positioned in a certain way, though, to let also the head’s plastic cover mount correctly.

I will report temperature differences, that is the most important thing, after some tests I’m doing.

1 Like

Pictures please.

2 Likes

PS: by the way, I believe there’s an error in the image above from Sovol documentation on Git, i.e. “model fan” should be PB0, without FG / tachometer pin available.

If you have a M2.5 tap it would be simple to tap the holes the rest of the way through. I’d work from the side that already had threads to ensure the tap starts square.

Part of your noise may be the fan body vibrating against the heat sink.

2 Likes

I will follow up shortly with the temperature differences I measured.

By the way, does anybody know where the reported “Toolhead Temp” is measured, exactly?

“Mcu Temp” is the tool head MCU, or the mainboard one?

And where is “Host temp” measured, exactly?

Thanks!

Here we go, every effort has been made to make the two tests identical, with the only difference being the 2nd fan mounted or not. However, although my efforts and a previous print in both cases to “warm up consistently” everything, I still got 1C of difference in chamber temperature, and this has to be factored in.

Anyhow, temperatures taken at the end of the print:

Original configuration:
Chamber temp = 40.0C
Host Temp = 60.5C
MCU Temp = 53.3C
ToolHead Temp = 53.6C (max 60.2C)

With the 2nd toolhead fan installed:
Chamber temp = 41.0C
Host Temp = 61.0C
MCU Temp = 54.0C
ToolHead Temp = 51.5 (max 57.0C)

So, we have 2.1C less temperature but, if we take into account also chamber temperature (that is the temperature of the air used to cool down the toolhead) then the difference is 3.1C. Max temperature difference was 3.2C, quite consistent.

All tests were made with the lid removed and the door completely open. I believe that in case of closed chamber, i.e. with temperatures much higher, the difference will be higher.

So, it’s probably worth it. More tests will make it clearer.

2 Likes

Probaly from turbulence. I don’t think there is a way for them to be in sync.

1 Like

This:

[temperature_sensor mcu_temp]         
sensor_type: temperature_mcu
min_temp: 0
max_temp: 100

[temperature_sensor Host_temp]     
sensor_type: temperature_host
min_temp: 0
max_temp: 100

[temperature_sensor Toolhead_Temp]
sensor_type: temperature_mcu
sensor_mcu: extruder_mcu

plus

The atsam, atsamd, stm32 and rp2040 micro-controllers contain an internal temperature sensor. One can use the "temperature_mcu" sensor to monitor these temperatures.


sensor_type: temperature_mcu
#sensor_mcu: mcu
#   The micro-controller to read from. The default is "mcu".
#sensor_temperature1:
#sensor_adc1:
#   Specify the above two parameters (a temperature in Celsius and an
#   ADC value as a float between 0.0 and 1.0) to calibrate the
#   micro-controller temperature. This may improve the reported
#   temperature accuracy on some chips. A typical way to obtain this
#   calibration information is to completely remove power from the
#   printer for a few hours (to ensure it is at the ambient
#   temperature), then power it up and use the QUERY_ADC command to
#   obtain an ADC measurement. Use some other temperature sensor on
#   the printer to find the corresponding ambient temperature. The
#   default is to use the factory calibration data on the
#   micro-controller (if applicable) or the nominal values from the
#   micro-controller specification.
#sensor_temperature2:
#sensor_adc2:
#   If sensor_temperature1/sensor_adc1 is specified then one may also
#   specify sensor_temperature2/sensor_adc2 calibration data. Doing so
#   may provide calibrated "temperature slope" information. The
#   default is to use the factory calibration data on the
#   micro-controller (if applicable) or the nominal values from the
#   micro-controller specification.
Host temperature sensor¶
Temperature from the machine (eg Raspberry Pi) running the host software.


sensor_type: temperature_host
#sensor_path:
#   The path to temperature system file. The default is
#   "/sys/class/thermal/thermal_zone0/temp" which is the temperature
#   system file on a Raspberry Pi computer.

Tell me all 3 are temperatures INSIDE the chips which with the processors running will be higher than the “ambient” temperature nearby.

Ok, I should have remembered that last night I woke up all sweated with the idea of using my thermal camera pointed directly to the heat break. But I forgot, probably because the following dream was more interesting indeed, but of a completely different kind. :laughing: Anyhow, I will test more in the following days and I will definitely use my thermal camera.:love_you_gesture: