Temperature jumps when the fan is turned on
-
@donstauffer Its M303 TX SXXX with T being the tool number (e.g. 0) and S being the temperature you want to tune to
-
@vladimir_u I've checked the code. The only situations in which the heater power is adjusted are:
-
When a M106 command with an S parameter but no P parameter is used to adjust the speed of the print cooling fan for the current tool. In this case the feedforward correction is used, controlled by the second K parameter n the M307 command for that tool heater. No correction is applied if that second K term is zero.
-
If the VIN voltage measured by the Duet drops, then the tool heater power is corrected to allow for that voltage drop.
There is no path for a thermostatic fan turning on to cause a change in heater power, unless that fan draws such a large current that the power voltage drops - which would be unusual for a fan.
-
-
@dc42 Yes, I can't repeat this bug right now. I tried to start the fan with different options. there were no jumps. But I am sure for sure that it was synchronized with the inclusion of the cooling fan of the board. Later I will run this code that had this effect. Could you tell me by what value the voltage should change in order for the correction to work?
-
It looks like I found what was the reason for the hotend temperature fluctuations. It's all about the slicer settings. The fact is that when printing bridges, the slicer increases cooling. But the bridges were so small that the actual speed of the coolers did not have time to change. But the firmware already included heating compensation. And for this reason there were temperature jumps. This affects the quality of the model wall. I should have written about it here. Perhaps someone else will encounter a similar effect.
-
@dc42 have you considered adding some time delay to the firmware to enable compensation. Or activation of compensation by double analysis of changes in fan rotation speed with an interval of several seconds. Perhaps this would help to avoid such an effect.
-
@vladimir_u great detective work.
-
@phaedrux the desire to understand this did not give me peace
-
@vladimir_u in the tests we did using a E3D V6 hot end, the compensation needed to act instantly, because the additional heater power took a small number of seconds to reach the nozzle, whereas the fan took less than a second to reach the new speed. So the fan speed increased faster than the heat reached the nozzle. As a result, the best compensation we could achieve still resulted in a slight dip in indicated temperature when the fan speed increased; but this dip was smaller than without heater feedforward, also the recovery to the set temperature was faster.
I am surprised that in your graph, the temperature is rising so much because of heater feedforward. Have you tested whether the heater feedforward is compensating correctly when you change the fan speed and leave it at the new value for several seconds? It may be that the feedforward constant (the second K parameter in the M307 command) is not appropriate for your hot end.
What type of hot end do you have, and what type of print cooling fan?
-
The E3D V6 and similar hotends with heater cartridges react slow.
There are newer hotends like the E3D Revo or the Rapido which don't have a "classic" heater cartridge. The heating unit is cylindrical and they draw less power the higher the temperature gets:
They also heat up much fast and the reaction time is lower.
Workaround for me (with the Rapido hotend) at the moment is to do the PID tuning without the fan (H parameter instead of T) so the temperature stays somewhat stable when the fan is turned on. -
@dc42 My printer uses a hotend other than e3dv6. the thermistor there is located closer to the heater. Perhaps for this reason he is more sensitive. However. As a result of several experiments, with the implementation of the M303 with different blowing power, I stopped at the option when calibration occurs with a blowout of 35 percent. Fluctuations when switching within 3 degrees. The best with this configuration can not be achieved, I think.