Fan ON when steppers are ON, OFF when steppers are OFF
-
Is there a way to have a fan turn on whenever the steppers are turned on but turn off whenever the steppers are turned off?
I've just put my Duet in a case with a fan on the back side, my printer stays on permanently but most of the time it's idling and so doesn't need the fan running. I'm just wondering whether there's a way to automate switching it off and on?
Idris
-
i just configured another fan to turn on when the hotend it above 45. this is usually when the steppers are moving.
-
@moriquendi For my Duet cooling, I stuck a thermistor to the top of one of the driver chips (the a X axis driver that runs most) with small dab of epoxy. Then I monitor that temperature and run the fan thermostatically. I use the Duex5 for that but you could use spare temperature inputs and fans on the Duet if you don't have an expansion board. So in my case I have:
M305 P103 X2 S"Driver Chip" T100000 B4725 R4700
and then
M106 P2 S255 I0 F250 H103 T40 which turns the fan on if the driver chip is above 40deg C and off when it is below.Edit. My observation of reported MCU temperature and driver chip temperature as measured by the above means, shows that driver chips are always hotter than the MCU once the motors are energised.
-
That's one option, I guess I was looking for something a bit more elegant. I'll look at the thermistor on the driver idea.
Idris
-
You can also configure a fan to monitor the MCU temperature and the driver overheat warning - that's what I did on my delta:
M106 P2 H100:101 T45:55 L0.3 ; electronics cooling fan
-
There still is an open Pull Request from me that would allow for exactly that.
@deckingman said:
For my Duet cooling, I stuck a thermistor to the top of one of the driver chips (the a X axis driver that runs most)
Counter-intuitively the drivers that have the most movement will be the coolest whereas those with least movement (usually Z) get hottest. The reason behind this is that as soon as the driver is energized the same amount of current is running through them all the time. But a driver that is moving a stepper will constantly redistribute this current among its internal MOSFETs whereas a stepper that is held at a position will have the MOSFETs kept powered with the same current distribution all the time while holding the position. And some positions (I don't remember which but I think it's half-way of the microstepping between full steps) is worst of all of them.
-
@wilriker said in Fan ON when steppers are ON, OFF when steppers are OFF:
There still is an open Pull Request from me that would allow for exactly that.
@deckingman said:
For my Duet cooling, I stuck a thermistor to the top of one of the driver chips (the a X axis driver that runs most)
Counter-intuitively the drivers that have the most movement will be the coolest whereas those with least movement (usually Z) get hottest. The reason behind this is that as soon as the driver is energized the same amount of current is running through them all the time. But a driver that is moving a stepper will constantly redistribute this current among its internal MOSFETs whereas a stepper that is held at a position will have the MOSFETs kept powered with the same current distribution all the time while holding the position. And some positions (I don't remember which but I think it's half-way of the microstepping between full steps) is worst of all of them.
I bow to your superior knowledge o wise one.
Although, wouldn't the total power for a chip be the same whether that total power is distributed through all the MOSFETS or just one or two?
Also, what about reduction to holding current? Does that work on a per motor basis or does it require all motors to be inactive before it kicks in? If it's the former, then the Z axis would reduce to the lower holding current whilst the X and Y motors are still using full operation current (providing the layer time is greater than the idle hold time).
Edit - for M906, the wiki state "This is the percentage of normal that the motor currents should be reduced to when the printer becomes idle but the motors have not been switched off". My take on that is that all motors have to be idle for the idle time out period so it's the latter case.
-
@deckingman said in Fan ON when steppers are ON, OFF when steppers are OFF:
Although, wouldn't the total power for a chip be the same whether that total power is distributed through all the MOSFETS or just one or two?
Basically yes, but when they see varying amounts of current the indiviual MOSFETs have time to cool down a little bit when the current is a bit lower while a MOSFET seeing a large-ish current over a prolonged period of time (a full layer can be very long) it has the chance to heat up to its maximum working temperature.
In the end mind that I used relative terms "coolest" and "hottest". They won't differ in huge amounts but they will differ slightly.
Also, what about reduction to holding current? Does that work on a per motor basis or does it require all motors to be inactive before it kicks in? If it's the former, then the Z axis would reduce to the lower holding current whilst the X and Y motors are still using full operation current (providing the layer time is greater than the idle hold time).
Edit - for M906, the wiki state "This is the percentage of normal that the motor currents should be reduced to when the printer becomes idle but the motors have not been switched off". My take on that is that all motors have to be idle for the idle time out period so it's the latter case.
Your take on idle current reduction is correct. This only kicks in when all motors are idle.
There are two other solutions though: one would be a software-side hold-current reduction (Trinamic even recommends that) but David already stated that this is very hard to implement reliably in regards that motors see full current again once they start moving.
The other iscoolStep
which is integrated into the TMC2660's. This will reduce current to a configurable amount once the motors see less load. But that requiresstallGuard
to be tune very precisely to work effectively. And currently this is a rather tedious manual action that has to be performed per stepper individually. -
@dc42 said in Fan ON when steppers are ON, OFF when steppers are OFF:
You can also configure a fan to monitor the MCU temperature and the driver overheat warning - that's what I did on my delta:
M106 P2 H100:101 T45:55 L0.3 ; electronics cooling fan
@Moriquendi If you go this route, don't forget to calibrate the cpu temp. https://duet3d.dozuki.com/Wiki/Calibrating_the_CPU_temperature