Auto cooling of stepper drivers

  • The enclosures I've designed for the Duet (and Duex5) take a shallow 80mm fan internally which blows cold air on to the back of the board and exhausts through the slats top and bottom. Now that the steppers are so quiet, the noise of the fans is more noticeable and it struck me that I could use a spare thermistor channel to switch the fans on and off depending on temperature, and I was thinking that the best way to do it would be to sense the temperature of the stepper drivers, rather than the more general enclosure temperature.

    So, would it be OK to stick a thermistor to the top of a driver IC? (either the X or Y as they do most of the work so should run hottest). If so, what would be a good way to stick it? Obviously it can't be allowed to fall off.


  • administrators

    I see no reason why you can't stick a bead thermistor on top of the chip with epoxy. However, a few firmware versions from now, you may not need to. The TMC2660 drivers provide two temperature status bits, one saying the chip is hot but not too hot yet, and the other saying it is too hot and has gone into thermal shutdown. I intend to provide two virtual temperature channels (one for the Duet, the other for the X5) to report these status bits back and allow you to turn fans on when the chip reports that it is hot. I'll also provide the CPU temperature as another channel.

  • That would pretty awesome David. Knowing how long your list is though, I might go the thermistor/epoxy route for now as it'll cost next to nothing to implement and I can easily change it back your more elegant solution when it gets implemented. Many thanks. Ian

  • If you get an ultra quiet fan like a Noctua, I doubt you would even hear it spinning compared to the 30mm fan on the hot end. The fans noise levels are 9 to 17.7 dB only. I have a 92 mm version and there is no way you can hear it spinning unless all the other fans are stopped and you are next to it.

  • Nice idea but I already have the fans and a bead thermistor will only cost a few pence and yes, it is only when the other fans are stopped that I'm thinking about. When the machine is running and the hot end is above 45deg C, the high flow rate 24V 40mm fan that sits atop the diamond hot end kicks in and it's seriously noisy. There is nothing I can do about that because I need the maximum flow rate possible. For info, the tiny 30mm fans are ony used for print cooling and rarely at that.

  • Noctua and Scythe makes 40mm fans with decent flow rate that are quiet. I'm stuck with 30mm fans on the E3D hot ends and those are extremely noisy. I thought the fan on the diamond hot end is 50mm in size. If you look around for low noise fans, you will be surprised at the quality of fans available. It will provide plenty of air flow for most 3D print heads.

  • As I said, it's a Diamond Hot End. Actually it's 50mm, not 40 mm and has to have a minimum of 18CFM. I'm currently using one that is 22 CFM. A quiet version with similar flow rate is not an option I've yet been able to source.

    By the way, you can already use the hot end temp sensor to control the fan in thermostatic mode. No need for a separate thermistor. That's what I do so at least it doesn't run when the machine is idle and the hot end is below the set temperature (in my case 45 degC). Use something like this in you config.g. M106 P1 S255 I0 F500 H1 T45. Where P1 is the hot end fan. S255 is the PWM speed (0 to 255), I0 means don't invert the signal, F500 is the PWM frequency, H1 is the heater you want to monitor, and T45 is the trigger temperature.

    Edit. Looks like you edited your post after I replied so some if the above may not make sense.

  • administrators

    David, is the CPU temperature that is now reported by RRF able to be used a s a virtual temp channel to control a fan thermostatically let?

  • Would it be enough to turn on the fans when the steppers are not idle? The steppers draw more or less a constant current, so shouldn't the drivers get hot in a quite predictable way? I guess using actual thermostatic control would let fans run only every so often even if the steppers had a tendency to overheat.

  • administrators

    I think for most uses just having the board cooling fan turn on while the printer was in use would be sufficient.

    On the Big Box there is a fan blowing on the board which I control in the start and end gcode, just thought it would be cool to have it only come on if required. Still its quieter than the 30mm hotend cooling fans, let alone the print cooling blowers so this is rather a low priority for me.

  • administrators


    David, is the CPU temperature that is now reported by RRF able to be used a s a virtual temp channel to control a fan thermostatically let?

    Not yet. I may be able to slip it into 1.17.

    The stepper driver temperature warning status is now reported by M122 along with the rest of the driver status. So at least you can monitor the status during a print, to see whether the stepper drivers would benefit from cooling.

  • For info and for those who can't wait for the firmware update, sticking a bead thermistor on to a stepper driver IC with epoxy works a treat. I created a couple of dummy tools so that I could see the temperatures on DWC. BTW, it'd be nice to be able to rename the heaters to something more meaningful than Heater 1, Heater 2 Heater 3 etc. Can it be done?

  • administrators

    If we just want to rename the tool within DWC this should be straightforward and I will ask ChrisH to have a look at this as part of the next DWC update.

  • Hi Tony,

    It's not really the tools but the temperature channels. Currently on the GUI we have Heater 1 then in brackets the tool(s) that are assigned to it, then Heater 2 (t(n)) etc and the last one is labelled Bed. It'd be good if we could assign our own labels to these heaters. In my case, I'd like to have "Hot End" instead of "Heater 1", "Duet board" or some such instead of "Heater 2" and so on. I'm sure other people will want to use their own labels. it's no big deal but if it can be done easily then it would help. Would this cause problems or confusion for people who use Panel Due though?


  • How about another parameter on the M305 line to add a Channel name to the Heater and this get read by DWC and PanelDue at boot time?

    Not sure how easy or difficult this would be just a thought?

Log in to reply