Solved Heater fault despite tuning.
-
So, I have a delta with a 310mm buildplate, 10mm milled aluminum with a 400W AC heater. The SSR is a genuine brand name far as I know. (Purchased from reputable dealer in Sweden (ELFA))
After PID tuning to 70C I end up with the following in config-override
M307 H0 R0.631 K0.296:0.000 D7.54 E1.35 S1.00 B0
I do have M501 in config.g
The bed heats up as expected initially, but as it approaches the target temperature I do notice the rate of increase dropping, I assume this is expected as the PID would be backing of the power. (If I set the bed to BangBang it shoots past the target without looking back, so I say that the heater has enough power)
Then I get the "Temp rising to low. Expected 0.4C/s, Observed 0.02C/s" message (Not word for word, as I am quoting from memory)
I have redone the tune a few time, making sure that I go from ambient (yes, I have let the bed 'rest' overnight before each attempt)
Looking in the forum, it seem the main advice is "Select a proper frequency for your SSR" and I believe that 10Hz should be reasonable. I have also tried both 2Hz, 50Hz and 1000Hz. Yes, I know how AC and SSR works, yes 1000Hz was a typo as I was aiming to try 100Hz )
If I just reset the heater fault and resume, it operates as expected.
What could I do to fix this issue?
My heaters are defined like this.
; Heaters M308 S0 P"bedtemp" Y"thermistor" T100000 B4400 R4700 ; Orignal was 3950, but curve did not match, actual temp was too low. configure sensor 0 as thermistor on pin bedtemp M950 H0 C"bedheat" T0 Q10 ; create bed heater output on bedheat and map it to sensor 0 M307 H0 B0 S1.00 ; disable bang-bang mode for the bed heater and set PWM limit M140 H0 ; map heated bed to heater 0 M143 H0 S120 ; set temperature limit for heater 0 to 120C ;M308 S1 P"e0temp" Y"thermistor" C7.060000e-8 B4725 ; configure sensor 1 as thermistor on pin e0temp (E6Extruder) M308 S1 P"e0temp" Y"thermistor" T100000 B4680 C6.455513e-8 ; configure sensor 1 as thermistor on pin e0temp M950 H1 C"e0heat" T1 ; create nozzle heater output on e0heat and map it to sensor 1 M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit M308 S2 Y"drivers" A"DRIVERS" ; configure sensor 2 as temperature warning and overheat flags on the TMC2660 on Duet M308 S3 Y"mcu-temp" A"MCU" ; configure sensor 3 MCU Temp
-
@janjoh See https://docs.duet3d.com/en/User_manual/Connecting_hardware/Heaters_tuning#manual-adjustments-to-the-heater-model-parameters
Most likely, the auto tune algorithm hasn't quite got the tuning correct, usually because the heating rate is a bit different between initial heat up and staying at temperature. So you may need to manually adjust the settings. Most likely:
If during initial heating the temperature undershoots the target:
- RRF 3.3 and later: reduce the R parameter by 5% or 10%
You haven't posted the config-override.g, so I don't know the setting you are actually using.Open config-override.g, copy the M307 line for the heated bed, paste it into the console, adjust the R parameter, press return to send the Gcode, then send M500 to save this new setting to config-override.g, then test to see if there is an improvement.Ian
-
@janjoh what firmware version are you running?
-
@jay_s_uk Ah, sorry for missing that bit.
Same behaviour in 3.5.3 and 3.6.0-beta.1
-
@janjoh See https://docs.duet3d.com/en/User_manual/Connecting_hardware/Heaters_tuning#manual-adjustments-to-the-heater-model-parameters
Most likely, the auto tune algorithm hasn't quite got the tuning correct, usually because the heating rate is a bit different between initial heat up and staying at temperature. So you may need to manually adjust the settings. Most likely:
If during initial heating the temperature undershoots the target:
- RRF 3.3 and later: reduce the R parameter by 5% or 10%
You haven't posted the config-override.g, so I don't know the setting you are actually using.Open config-override.g, copy the M307 line for the heated bed, paste it into the console, adjust the R parameter, press return to send the Gcode, then send M500 to save this new setting to config-override.g, then test to see if there is an improvement.Ian
-
@droftarts My config override line is in my orginal post?
But here is the full file
; config-override.g file generated in response to M500 at 2024-10-27 16:11 ; This is a system-generated file - do not edit ; Delta parameters M665 L360.200:360.200:360.200 R179.731 H452.215 B150.0 X-0.440 Y-0.372 Z0.000 M666 X-1.338 Y-0.148 Z1.486 A0.60 B0.18 ; Heater model parameters M307 H0 R0.631 K0.296:0.000 D7.54 E1.35 S1.00 B0 M307 H1 R2.825 K0.402:0.000 D7.27 E1.35 S1.00 B0 V24.2 ; Workplace coordinates G10 L2 P1 X0.00 Y0.00 Z0.00 G10 L2 P2 X0.00 Y0.00 Z0.00 G10 L2 P3 X0.00 Y0.00 Z0.00 G10 L2 P4 X0.00 Y0.00 Z0.00 G10 L2 P5 X0.00 Y0.00 Z0.00 G10 L2 P6 X0.00 Y0.00 Z0.00 G10 L2 P7 X0.00 Y0.00 Z0.00 G10 L2 P8 X0.00 Y0.00 Z0.00 G10 L2 P9 X0.00 Y0.00 Z0.00
-
@janjoh said in Heater fault despite tuning.:
My config override line is in my orginal post?
Oh, sorry, yes it is! Try:
M307 H0 R0.6 K0.296:0.000 D7.54 E1.35 S1.00 B0
(R has reduced by 5% from 0.631 to 0.6)
Ian
-
@droftarts Thank you. Will try after current printing batch.
Also, from where is that advice to reduce by 5-10%? I honesrtly thought that I had done my homework.
-
@janjoh said in Heater fault despite tuning.:
Also, from where is that advice to reduce by 5-10%? I honesrtly thought that I had done my homework.
See the link in my earlier post.
Ian
-
@droftarts Thank you. Not sure how I managed to NOT see that one.
-
-
@droftarts even a 10% diff lands me with
Heater 0 fault: temperature rising too slowly: expected 0.39°C/sec measured 0.09°C/sec
-
-
@janjoh Can you reset the board, then send
M307 H0
from the console to show what the firmware thinks the heater PID is?Did it get closer to the target temperature before faulting? If possibly, can you post a screenshot from DWC of the heater curve as it heats from cold until it faults?
Ian
-
@droftarts A tad closer I'd say (with 10% reduction)
Here is the M307
M307 H0 Heater 0: heating rate 0.570, cooling rate 0.296, dead time 7.54, max PWM 1.00, mode PID Predicted max temperature rise 162°C PID parameters: heating P41.5 I0.783 D219.2, steady P41.5 I1.821 D219.2
If I set the bed to heat from cold to (95C) is happily rockets past 70. So, it does seem to be something with the parameters.
After having read the doc you linked, I did do a significant bump of firmware a while back. When 3.5 was released, I did go from 3.2 -> 3.5
So, whatever changed in 3.2 - 3.4, I have not experienced.
-
@droftarts Dropping R down to 480 allows me (so far) reliable initial heating, with only about 0.8C overshoot on the initial run to 70C. That is fully acceptable for me.
So, thank you for pointing me into the proper direction.
-