Posts: 134
Joined: Wed Aug 02, 2017 1:24 am

Cooling Fan Speed Control

Sun Dec 03, 2017 11:11 am

Playing with the cooling fan speed control it seems to me that no matter
what settings I make at "increase fan speed for layers below..." the fan never will
go to full speed but only something around PWM 230 and not 255
And even that only in extreme cases, mostly it will stay around PWM 200.
As far as I could do the math S3D spreads the difference between the preadjusted value (say 60%)
which here would be 40% exactly between the minimum layer time and exactly zero layertime.
As such it works as desired and increases the fan speed but will never reach full speed PWM 255
for there never will be a layertime of zero, especially not if the layertime function in the speed-tab is used too.
I suggest for better usabiltity there should be the possibility to choose a 2nd minimum-layertime under which
maximum fan speed is set.
This basically could be solved with a post processing script, finding all the M106 commands and looking for all "S>210" e.g
and replace all those with "S255" which still would be some pain in the ass, at least for me programming....

Or am I entirely wrong and this already could be set but I am not seeing it.
Happy for all your suggestions....

Posts: 134
Joined: Wed Aug 02, 2017 1:24 am

Re: Cooling Fan Speed Control

Tue Dec 05, 2017 6:47 am

Bringing this up again.... :oops:

Is there no one out there using variable fan speed?

Are you just let it run at a given speed all your prints?
Or do you set your speeds depending on your very model?

I like the function for "automatic" speed control.
Just a reasonable threshold where it finally switches to full speed is what I feel is still of need for it to work perfect...

Posts: 134
Joined: Wed Aug 02, 2017 1:24 am

Re: Cooling Fan Speed Control

Wed Dec 06, 2017 12:29 pm

It seems that nobody is playing around with fan speeds.....

So I had to find a solution all myself.
And still it may be of use for one or the other...

Adding the lines
{REPLACE "M106 S21" "M106 S255 ; discard the remainder "}
{REPLACE "M106 S22" "M106 S255 ; discard the remainder "}
{REPLACE "M106 S23" "M106 S255 ; discard the remainder "}
{REPLACE "M106 S24" "M106 S255 ; discard the remainder "}
{REPLACE "M106 S25" "M106 S255 ; discard the remainder "}
into the post process script field,
all values above PWM 209 which is roughly 82% will be changed to fan full speed.

I know this truly is a crude and far from elegant solution but at least works as intended.
I would have liked it better if there could be some math done in the script fields like
"IF M106 ">" "GTR" "bigger" "greater" then ....
But as far as I could read about and know that unfortunatelly is not possible,yet.

With these lines the variable fan speed could be used now with low power for bigger prints and still
blowing full power when getting to small details with short layer time.
Certainly this counts not so much using PLA but could be of certain help with PETG
which likes it quite snuggly warm and still needs cooling at small details....

I at least just got me a quite perfect Marvin....

User avatar
Posts: 33
Joined: Sun Jun 24, 2018 7:33 pm
Location: Silicone Valley

Re: Cooling Fan Speed Control

Sun Jun 24, 2018 7:59 pm

I have a similar problem. I have a 24 volt machine but can't find a 24 volt fan. So I need the speed range for part cooling to be 0 to 60% to keep the motor healthy. What to do?
Scratch built CoreXY with Duet Maestro
Heavily modified Ender 3 with Duet Maestro
MPCNC work in progress with Duet WiFi

Posts: 933
Joined: Wed Jun 20, 2018 12:45 pm

Re: Cooling Fan Speed Control

Mon Sep 10, 2018 12:22 pm

You can use fan speed setpoints at or below 60% and you shouldn't have an issue. Other settings to check to make sure 60% is not exceeded would be bridging overrides and minimum layer time fan speed overrides.
"A bird does not sing because it has an answer. It sings because it has a song."

Posts: 173
Joined: Wed Jul 19, 2017 9:37 am

Re: Cooling Fan Speed Control

Wed Nov 28, 2018 10:57 am

On a related issue, it would be nice to have a "Minimum Fan Speed" setting under the Cooling tab. My printer (a MakerGear M2E) uses PWM to vary the speed of a 2 wire internal-controller fan. This works at higher speeds, but at some point, the pulses from the PWM are too short for the internal controller to respond, and the fan stops. In my case, the fan is OK above about 45% speed. At ~40%, it will run VERY slowly IF you give it a push (or use the "blip" feature to get it moving...). My understanding is that this approach to speed control is very common across a wide range of printers, and it's not just limited to the MakerGear line.

Here are the results of tests I ran on my machine a while back (commands in sequence):

M106 S255 ("100%") - Fan turns on full, howling like a small banshee...

M106 S127 ("50%") - Fan is still running fairly fast, but it's a good bit bit quieter.

M106 S100 ("39%") - Fan is definitely much slower

M106 S90 ("35%") - Fan stopped

M106 S95 ("37%") - Fan does not re-start

M106 S100 ("39%") - Fan is still stopped, but starts up if you blow on it.

M106 S95 ("37%") - Barely moving, and it's a bit rough & twitchy.

The problem is that telling this type of fan to run at lower speeds than it can handle can apparently cook the internal motor control circuitry and kill the fan. If you use the "minimum layer time fan speed override", S3D will try to throttle the fan down to very low speeds, potentially damaging things. ... cient-time

This could be avoided if there was a minimum fan speed limit. I doubt that the ~ 55% PWM range my fan operates over is very linear, but you would also get a more realistic fan speed control if the speed was calculated as a percentage of going from "full-on" down to "min-speed", rather than full-on to zero.

Return to “Feature Requests”