Thermostatic controlled fan coming on at 50%
-
@richardmckenna The other thing that doesn't make sense to me is why changing the PWM frequency would make any difference. My understanding is that the PWM value determines the on-off (or mark-space) ratio and that either setting it to 1 (in the range 0 to 1) or 255 (in the range 0 to 255) means that the on period is 100% of the time and the off period is 0 % of the time. So why would it matter what the frequency (which is the time period) is? Or to put it another way, if the PWM value is 100% so it it never switches off, why does it matter how quickly or slowly it never switches off?
-
@deckingman changing the frequency (Q value) didn’t make any difference in my case. Only adding the L1 made the fan come on at 100%.
-
@richardmckenna I was just being curious as to why people were recommending that you change the Q value (PWM frequency), in case my understanding of how PWM works is incorrect.
-
@deckingman Intel's specification for 4-wire PWM fans specified a nominal pwm frequency of 25kHz with an acceptable operational range 21 kHz to 28 kHz. Many fans simply won't behave correctly with a PWM frequency outside that range. It's the duty cycle of that pulse train that controls the speed of the fan.
Oh... For 3 or 2 wire fans, it's the actual motor driving current that's modulated to control speed. The frequency can also play a part there as well.
-
On that note I’ve just found this https://noctua.at/media/wysiwyg/Noctua_PWM_specifications_white_paper.pdf page 6
-
@gtj0 Yes, I appreciate that but the bit that I can't get my head around is that, in this case, the OP doesn't want to vary the speed. He wants the fan to run at full speed. Which means that PWM will always be high and never switch to low doesn't it? In which case, why does it matter what frequency that never switching to low occurs at?
-
@deckingman it doesn’t I think @gtj0 was just letting me know that my original Q value was quite low for a PWM fan.
-
Ok now I am confused!
So I set Q back to 500 just to rule out any other changes. I set S255
M106 P1 S255 H1 T45 C"Hemera"
Under 45ºC i get
Fan 1 (Hemera), speed: 100%, min: 10%, max: 100%, blip: 0.10, temperature: 45.0:45.0C, sensors: 1, current speed: 0%:
Over 45ºC i get
Fan 1 (Hemera), speed: 100%, min: 10%, max: 100%, blip: 0.10, temperature: 45.0:45.0C, sensors: 1, current speed: 100%:
So all good In order to verify this I set it back to S1, let the printer cool below 45ºC and restarted the printer
M106 P1 S1 H1 T45 C"Hemera"
Under 45ºC I now get
Fan 1 (Hemera), speed: 100%, min: 10%, max: 100%, blip: 0.10, temperature: 45.0:45.0C, sensors: 1, current speed: 0%:
instead of what I was originally getting
Fan 1 (Hemera), speed: 0%, min: 10%, max: 100%, blip: 0.10, temperature: 45.0:45.0C, sensors: 1, current speed: 50%:
And over I get
Fan 1 (Hemera), speed: 100%, min: 10%, max: 100%, blip: 0.10, temperature: 45.0:45.0C, sensors: 1, current speed: 100%:
Why am I now seeing different results when changing S back to 1 as in my original settings?
Board: Duet 3 MB6HC
Firmware: RepRapFirmware for Duet 3 MB6HC v0.6 or 1.0 3.01-RC2 (2020-02-18b1)
Running in standalone mode. -
@richardmckenna said in Thermostatic controlled fan coming on at 50%:
Why am I now seeing different results when changing S back to 1 as in my original settings?
My guess is that there was an error in your original line so that instead of S1 you had Sl (lowercase L instead of 1) or S<space>1 or S<invisible character>1. In each case it would have been treated as S0; however the firmware enforces a minimum 50% PWM for thermostatic fans.
-
@dc42 hmmm that may be it just strange as that line was from the original output from the configuration tool I just added the name parameter to the end.
Anyway, at least it is behaving now
-
@dc42 ok nope. turned the printer on this evening this is the fan config I have at the moment, copy and pasted from the DWC editor, so there definitely isn't a lower case L
M950 F1 C"!out4" Q500 M106 P1 S1 H1 T45 C"Hemera"
and the fan came on at 50%
Fan 1 (Hemera), speed: 0%, min: 10%, max: 100%, blip: 0.10, temperature: 45.0:45.0C, sensors: 1, current speed: 50%:
-
Can you test S255 instead of S1?
-
@richardmckenna, I think you have a M106 P1 S0 command somewhere, or possibly you have a F1 parameter in one of your M563 commands and a M107 command in the file you are printing.
-
@Phaedrux same with S255
@dc42 ok I have an interesting development.
I don't have any M106 P1 S0 commands anywhere I do have M106 P0 S0 in my slicer start and end gcode. I'm using Simplify3D
I do have M563 P0 S"Hemera" D0 H1 F1 for my tool definition but no M107 commands anywhere.
So I have it set with this at the moment
M950 F1 C"!out4" Q500 M106 P1 S255 H1 T45 C"Hemera"
If I increase the temperature it comes on at 100%
If I let it cool then start a print, when it gets to temperature it starts at 50%. If I then cancel the print the fan then goes to 100% without me doing anything.
-
I think there is something in your print file that is causing it. Please post the first 50 lines or so, not counting the comments at the start.
-
@dc42 right, getting somewhere Where is that first M106 S0 coming from? There must be some extra settings in Simplify3D somewhere.
G90 M83 M106 S0 M140 S70 M190 S70 M104 S230 T0 M109 S230 T0 ; My start gcode M106 P0 S0 ; Turn part fan off G28 ; Home all ;G32 ; True Bed Levelling G0 X0 Y0 F9000 ; Go to front G0 Z0.15 ; Drop to bed G92 E0 ; zero the extruded length G1 X200 E25 F500 ; Extrude 25mm of filament in a 4cm line G92 E0 ; zero the extruded length G1 E-1 F500 ; Retract a little G1 X220 F4000 ; Quickly wipe away from the filament line G1 Z0.3 ; Raise and begin printing. ; process Process1 ; layer 1, Z = 0.450 T0 G1 E-1.0000 F1800 ; feature skirt ; tool H0.450 W0.480 G1 Z0.450 F1002 G1 X93.300 Y88.189 F7200 G1 E1.0000 F1800 G1 X98.689 Y82.800 E0.6844 F600 G1 X191.311 Y82.800 E8.3176 G1 X196.700 Y88.189 E0.6844 G1 X196.700 Y102.431 E1.2789 G1 X196.686 Y102.792 E0.0324 G1 X196.566 Y104.310 E0.1368
-
@dc42 ok figured it out.
I had to create a custom firmware config in Simplify3D which had custom gcode for turning the fan on/off.
Then use that firmware config in my process. Never needed to do that before so didn't realise.
Thank you and everyone else for all your help.
-
@richardmckenna That's still not making sense because M106 P0 refers to the part cooling fan not the hot end fan. To set the speed of the hot end fan it would need to be M106 P1. An M106 generated by the slicer with an S parameter but no P parameter will still control the part cooling fan(s) and not the hot end fan. To set the speed of the hot end fan, there needs to be an explicit P1 in the M106 command. Or alternatively and as DC said, if fan 1 gets mapped to a tool with an M563 P1.
-
@deckingman I'm not sure then as changing the slicer to set that first M106 S0 to M106 P0 S$ has fixed the issue.
GCode
G90 M83 M106 P0 S0 M140 S70 M190 S70 M104 S230 T0 M109 S230 T0 ; My start gcode M106 P0 S0 ; Turn part fan off G28 ; Home all ;G32 ; True Bed Levelling G0 X0 Y0 F9000 ; Go to front G0 Z0.15 ; Drop to bed G92 E0 ; zero the extruded length G1 X200 E25 F500 ; Extrude 25mm of filament in a 4cm line G92 E0 ; zero the extruded length G1 E-1 F500 ; Retract a little G1 X220 F4000 ; Quickly wipe away from the filament line G1 Z0.3 ; Raise and begin printing. ; process Process1 ; layer 1, Z = 0.450 T0 G1 E-1.0000 F1800 ; feature skirt ; tool H0.450 W0.480 G1 Z0.450 F1002 G1 X61.184 Y78.054 F7200 G1 E1.0000 F1800 G1 X61.811 Y77.602 E0.0694 F600 G1 X64.932 Y75.731 E0.3268 G1 X65.496 Y75.444 E0.0568 G1 X67.621 Y74.540 E0.2074
When starting a print, it gets up to temperature and starts the fan at 100%
-
In RRF3 does M106 without P default to P0 like it does in RRF2?