M106 for cooling board with a fan
-
@dc42 : Could you point me to that code i.e. which file?
-
@mwinterm said in M106 for cooling board with a fan:
@dc42 : Could you point me to that code i.e. which file?
It's the block of code starting around line 1566 in Platform.cpp. It relies on Fan::Check being called before this at line 1538, after the driver warning status has been fetched. Also see line 315 of Fan.cpp.
-
Dumb question: if your controller needs to be cooled with a fan to prevent overheating, why not just connect the fan to the power supply and be done with it? I know DC42 writes great code, but if the board has a problem for any reason (component failure, maybe overheat?), "protection" schemes that depend on the controller working properly may not "protect" anything. ' An ounce of prevention is worth a pound of cure.'
I know a fan makes a little bit of noise, and we all want silent printers, but you don't need a lot of air movement to keep the board cool. If you have a 12V power supply you can connect a 24V fan and it will turn slowly and quietly. You can always use a cheap (about $1) DC-DC converter to run a 12V or 24V fan at lower-than-rated voltage. My printer has a 5", 230VAC fan connected to the switched 117V power input and I cannot hear it running, even in a silent room. Yes, it does run, and yes it moves air.
-
@mrehorstdmd said in M106 for cooling board with a fan:
Dumb question: if your controller needs to be cooled with a fan to prevent overheating, why not just connect the fan to the power supply and be done with it?
My thoughts exactly, and it's simpler, too. I use a 40mm Noctua 12V fan run off a cheapo buck converter from my 24V supply. Whisper quiet and holds the board at about 25C all day long.
Heat kills electronics, and I don't want my $180 board going through cool-warm-cool-warm cycles. The fan runs constantly any time the printer is on, keeping the board at a constant temperature.
-
@plasticmetal @mrehorstdmd My main reason for not wanting the fan to run all the time is dust. When the printer is sitting idle, there's no need to actively cool the electronics. In most cases the board itself is perfectly fine running passively cooled anyway.
-
Both good points. Ironically, running a fan can cause dust to build up and act as an insulator, thereby increasing the heat, thereby needing a fan. Kind of a "chicken before the egg" scenario.
-
Years ago I saw an article in Electronic Design magazine about fan controllers. The traditional method was to do what you're trying to do- measure the temperature and when it gets to some point, switch on the fan. The article described a different approach- switch on the fan based on current drain. Current is instantaneous and current is what leads to heating. If you wait for something to heat up before you turn on the fan it may already be too late.
-
Agreed with all of you, and I could as well use one of the two always on fans. I just like it to be quite. Especially at the moment where I'm still optimizing the set-up and the firmware my duet is constantly switched on even though nothing is machining.
Btw does anyone know what the TMC2660 do when they overheat. Do they switch themselves off at a certain point or do they go on and die heroically?
-
@mwinterm said in M106 for cooling board with a fan:
Btw does anyone know what the TMC2660 do when they overheat. Do they switch themselves off at a certain point or do they go on and die heroically?
They report over-temperature warning at about 100C. If the temperature rises further to about 130C, they go into shutdown and turn the output mosfets off. RRF doesn't provide a facility to reset them via SPI, so to reset them you would need to remove and re-apply VIN power.
-
@dc42 : Thanks a lot for the info!