M303 - 25 tries to calibrate a hot end
-
We had a heater fault with one of our hot ends and ran an M303 calibration run. This run posted the following to the console:
Warning: heater behaviour was not consistent during tuning Auto tuning heater 1 completed after 4 idle and 25 tuning cycles in 2446 seconds. This heater needs the following M307 command: M307 H1 R3.073 K0.413:0.000 D16.48 E1.35 S0.50 B0 V24.2 Edit the M307 H1 command in config.g to match this. Omit the V parameter if the heater is not powered from VIN.
After running the recommended M307 command and heating from ambient to 215, we observed almost no overshoot (maybe 1 degree) of the target temperature. It stayed at the target temperature for a couple of seconds (maybe less) then we had a heater fault that indicated the expected temperature rise was not observed.
We're suspecting that the heater or thermistor may me faulty and will swap those out as a diagnostic.
My question for the forum is with the algorithm for the M303. What causes it to run "extra" tuning cycles and does it "time out" after 25 tuning cycles? My assumption is that it runs multiple tuning cycles and looks for consistent results. If so, I'm wondering if the inconsistencies in the results might be diagnostic for us and if there's a way to get them?
-
-
@mikeabuilder According to https://docs.duet3d.com/User_manual/Connecting_hardware/Heaters_tuning#running-auto-tuning
When tuning, auto tuning will perform a number of phases (heating, settling, fan off, fan on), cycling between the target temperature and 5C below it. It measures the heating and cooling rates on the last 3C each cycle, and accumulates the mean and standard deviation. Typically it will cycle heating/cooling 8 times, but can be as many as 30, if the readings are not consistent (noisy thermistor, or a large thermal mass). You can use the Y parameter to alter the hysteresis.
It's worth looking at the temperature graph as tuning is happening. If the tuning cycles are 'inconsistent', it can point to a number of problems, beyond 'noisy thermistor, or a large thermal mass':
- A tuning cycle that speeds up could indicate inadequate cooling of the hot end cold side
- Poor thermistor contact can give variable readings
- thermistor very close to heater, so the local area heats up, but the rest of the hot end is still cold (common with silicone heaters with the thermistor embedded)
- draught on heater from cold side cooling
- inconsistent heater heating (poor wiring, failing heater)
- poor thermistor wiring, or interference, would generally show up as spiky readings.
There's probably plenty of other causes of inconsistency that one could imagine. I'm pretty sure this isn't a firmware issue!
Ian