Spurious heater faults and how to avoid them
-
This information has been moved to wiki page https://duet3d.com/wiki/Spurious_heater_faults_and_how_to_avoid_them.
-
Put this on the Wiki. Hope that's okay.
-
I use Dyze design thermistor (500°C) which we discussed some time ago. It gives heater errors even when idel and the nozzle inactive. Yes, the input is noisy, it has very low resolution at room temp so it jumps up and down 5+°C. I was previously using heater fault inhibition in Marlin for a couple of seconds when heating. By 60°C, it gets smooth enough to read noise free, so the inhibition was not adding significant risk. Right now the board is unusable for me since I cannot even get it to stay at room temp without going in fault. Would there be a wayof inhibiting the check when heater peower is zero an then waiting a couple of seconds on heatup?
Thanks in advance,
Regards,
-
dcaron, have you looked in the Console page of DuetWebControl or PanelDue to see the cause of the heater fault?
There is no check for stable temperature error when the heater is off, or when the temperature reading is 45C or lower. If you are getting heater faults with the setpoint temperature at room temperature or below, then I think the noise on the thermistor reading must be so great that either you occasionally get readings above 45C, or you occasionally get readings so low that the thermistor registers as disconnected. Does either of those sound likely? There would need to be about 10 such readings in a row to trigger a fault.
If you have a T0 command in your config.g file, try removing it. Then the heater will be off, and a fault will only be registered if the thermistor appears to be disconnected. You can send a T0 command immediately before or after setting the hot end temperature in your start gcode instead.
If you still get heater faults with the heater off, then it must be registering a disconnected thermistor. A possible workaround is to connect a resistor of several hundred Kohms in parallel with the thermistor. This will increase the reading at low temperatures.
After you select a higher setpoint temperature, there is no check on heating rate until twice the heater dead time has expired. So this should get you to 60C without faulting.
Another possibility is to use a thermocouple or PT100 instead of the thermistor. These devices cover a wide temperature range without sacrificing resolution at the ends.
HTH David
-
dc42, thanks for the reply. I just did some quick calculations. Since the resistance is so high at room temp (4500+ kOhm) it would probably appear to be read an input of 3.297 vdc which is 99,9+% of the full ADC value. If i added a 500 kOhm resitor in parallel. What would be the magic number value of the resistor to make sure I don't get a disconnected thermistor at romm temp? Probably a 680 kOhm would work fine, it would get in the 3.27 vdc range. Am I doing the calculations right?
Regards,
David -
That isn't really a great solution, messing about with adding resistors like that. You'd introduce error to the rest of the table.
The 500C thermistors just don't have very good resolution, nor low temperature accuracy. Why not upgrade to a thermocouple or PT100?
-
dcaron, I agree that you would probably need around 470K or 680K. The maximum value that will work depends on how much noise you have in the temperature reading.
As Tim says, adding a parallel resistor will introduce a temperature reading error, although the error at printing temperatures should be small. The over-reading at low temperatures might also adversely affect the heater tuning model and hence the heating fault detection. I agree with him that a thermocouple or PT100 is a better solution than a thermistor for covering a wide temperature range, because it provides consistent resolution and much better absolute accuracy.
-
David
I'm running a volcano Type hot end rated at 24V with a 24V DC supply controlled by the Duet Wifi
M303 H1 P0.5 S250 failed - high temp reached too quickly
M303 H1 P0.25 S250 produced a warning message that the heater is overpowered and if left would reach 797C !
A Volcano hot end is of course designed to produce large volume high speed extrusion.
The M307 H1 showed that the results of the auto tune were:-
Gain 777 Time constant 265 Dead time 9.2 !
I am trying these in an M307 H1 B0 command line with an S factor of 0.8 as suggested in the notes,
and things initially look ok.
I am concerned that during a long print I am still going to fall foul of a heater shutdown even in 1.15d
Would you suggest any better M303 and M307 args for this special case?
Thanks
Maurice -
Hi Maurice, those auto tune results look reasonable to me. It's up to you whether you use S=0.8 or 1.0. If you think you will need the full power to extrude at maximum rate, use S1.0.
Here are a couple of tests you might like to do:
1. Heat the nozzle to operating temperature, place it close to the bed, then turn the print cooling fan full on and check how much the temperature drops before recovering. Then turn the fan off and see how much the temperature overshoots before recovering.
2. Heat the nozzle to operating temperature, then extrude plastic continuously at the maximum rate possible, and see how much the temperature drops before recovering. Then stop extruding and see how much the temperature overshoots before recovering.
You are looking for the temperature drop and overshoot to be well under 10C in both cases. I am working on a new firmware release in which this figure of 10C is configurable.
-
What's the resistance of your heater?
-
David,
I will try the tests you suggest.
But in any case I have insulated the hot end with heat resistant material so that it should not be affected by the print cooling fan.
Elmoret,
Resistance is 15.7 Ohm, which I calculate at 24V is 36.7W
Heat up is pretty fast.
Maurice -
I guess the higher than usual gain is due to your insulation then.
-
Test Results @ S0.8
- Fan Test
220 C down to 214.4C then up to 225.8C
i.e. -5.6 + 5.8C - PLA Extrusion Test
22C down to 216.3C then up to 223.5
i.e. -3.7 + 3.5C
Results look pretty good to me.
N.B tried with S1.0 but hot end could not reach 220C in acceptable time, slower enough to 216.1C ?
- Fan Test
-
Looking good!
-
dcaron, have you looked in the Console page of DuetWebControl or PanelDue to see the cause of the heater fault?
If you still get heater faults with the heater off, then it must be registering a disconnected thermistor. A possible workaround is to connect a resistor of several hundred Kohms in parallel with the thermistor. This will increase the reading at low temperatures.
After you select a higher setpoint temperature, there is no check on heating rate until twice the heater dead time has expired. So this should get you to 60C without faulting.
Another possibility is to use a thermocouple or PT100 instead of the thermistor. These devices cover a wide temperature range without sacrificing resolution at the ends.
HTH David
Thanks for all your answers.
I did install a parallel resistance and now it's registering a temperature which is obviously off. I don't mind at the moment and I should get the right setting by trial and error.
I do agree it will be better with a pt100 or thermocouple. I now realize I should have gotten the pt100 daughter board with my preorder along with a mini IR probe. Unfortunately, the themocouple connection on a Dyzend is threaded (which is good) but is not compatible with other standard pt100. They do have an adapter for an Ultimaker style pt100. I don't know where I could get a compatible rtd at a decent cost.Now to get printing…
-
In the Web inrterface 'Paused' the printer and set Heater 1 to 0 deg C. while i was out.
On 'Resume' rest Heater 1 temp but forgot to turn down printer Fan so caused a heater 'error'
"heater temp rising to slowly"!
So tried to reset heater with M562 H1 as per the notes - no apparent result.
So checked RepRap Wiki on g-codes which gave syntax as Pn not Hn
So tried M562 P1 - still no apparent result.
but then noticed in Web interface that Heater 1 was 'inactive'
So tried T0 and then all was well.
Whatever the M562 correct syntax is it looks like Hot End then has to be re-selected!? -
Yes the heater is turned off when a heater fault occurs so you will need to send a command that turns it on again after resetting it with M562 P1.
I plan to do the hot end heater tuning with the fan both off and on at some point.
-
This stuff will help a lot:
Costs next to nothing but will save you all the headaches especially when layer fans turn on.
I'd advise it on a volcano style block.
-
I've been having faults during prints. Its all sporadic, but the time I saw the error it was an excursion error that said the temp changed by more than 10C. I just changed my config.g file to allow up to 20c change and I wrapped my heater block in kapton (I have no other forms of insulation).
I was using an E3D hotend in my Kraken for a while and I recently switched to one of my volcanoes. I'm still not sure why, but I had 0 issues with the E3D. Some differences I noticed are the silicone sock I made for the E3D block, and theres a recent issue with my water cooling setup leaking, but I changed the tubes this morning and it still had the problem. I'm hoping its just an issue with when the AC in my apartment kicks on and that this kapton will fix it (I also added 1/3 of a chamber on the side of my printer to try to eliminate some drafts). I'll post whether this appears to fix my issues or not.
-
Turns out it was just a wiring issue, one of the crimps wasn't properly done.