3.2 heater tuning issues
matt3o last edited by Phaedrux
I'm switching a printer from a duet2 wifi to a duet 3 and the bed thermistor is giving me a hard time.
I have a 400x400 bed, 1000W silicone heater connected directly to AC and a relay to drive it.
On the duet2wifi I use this and have no problem
M305 P0 S"Bed" T100000 B3950 R4700 M307 H0 A301.3 C836.5 D0.9 B1
on the duet3 I'm using
M308 S0 P"temp0" Y"thermistor" T100000 B3950 M950 H0 C"out1" T0 Q10
By default the reading is off at ambient temperature by about +20°C. I'm using "out1" which is rather overkill for the relay (I'm on 24v) but I guess it's okay.
The calibration of temp0 gave me H-8 L0.
I ran the the PID tuning on the duet3, it took almost an hour (which is weird since it was pretty fast on the duet 2) and ended with a warning (heater behaviour was not consistent during tuning).
If I try to heat the bed I get a "Heater 0 fault: temperature rising much more slowly".
Goes without saying it is working without issue on the duet2wifi.
did you save those reported values in the config?
are you already running 3.2 with the new tuning algorithm?
@Veti yes, I'm on the latest dev build
I actually tried both on the duet2 and it works as expected with any of the two.
ps: I'll try to change in and out for temp sensor and relay.
@Phaedrux thanks for the heads-up. I made an update a couple of days ago. I'm away from the printer so I can't check but I believe it was RC2. I'll try to upgrade to the final version if I don't have it already and try again.
okay, upgraded to Final 3.2.0. Repeated the whole process of calibration. After a hard reboot (a reset was not sufficient), the sensor is reading correct ambient temp (20°C, it's a bit chilly in the basement)... But I still get Heater 0 fault every time.
The only way to print is to preheat the bed, let it fail, reset and run the print. That way it is heating from about 40C to 60C and it doesn't fail.
On the duet2 (not upgraded to 3.x) it had no issues and it was really fast to warm up. The hotend too seems a little slower to be honest but that doesn't fail at least.
Ideas? I must say this duet3 is giving me real headache.
can you post your entire config?
and the new pid tuning values that you are using on the duet 3?
@matt3o Do you have the correct values for the thermistor? Have you taken note of the release notes https://github.com/Duet3D/RepRapFirmware/blob/v3-dev/WHATS_NEW_RRF3.md. Is there anything in there that you need to do?
@deckingman yes, everything's fine. I just contacted the manufacturer who confirmed the thermistor config.
I've read this lengthy thread https://forum.duet3d.com/topic/20763/how-to-use-the-new-heater-tuning-algorithm-on-3-2/16
I thought the problem was from duet2 to duet3, but it's probably because of the new firmware (sorry if I opened a new thread). I see others have my same issue especially with larger heatbeds... so at least I don't feel completely dumb.
I'm now waiting for it to completely cool-down and try another calibration and I'll post the tuning values together with the full config.
Thanks all for your help.
Don't know what else to do. Basically now I'm preheating to 45C and then I can run the print.
Auto tuning says
Auto tuning heater 0 completed after 10 idle and 25 tuning cycles in 3226 seconds. This heater needs the following M307 command: M307 H0 R0.730 C670.5 D4.05 S1.00 V24.1
My config (some values are still work in progress). Hope you can find something wrong
; _ _ ; ___ ___ ___ ___ ___ _| | |___ ; | _| . | _| -_|- _| | | | . | ; |___|___|_| |___|___|_|_|_|_|_| ; ; Duet 3 Configuration file ; ; General preferences ; -------------------------------------------------- G90 ; send absolute coordinates... M83 ; ... but relative extruder moves M550 P"corezilla" ; set printer name M669 K1 ; select CoreXY mode ; Drives ; -------------------------------------------------- M569 P0.0 S0 ; XY 1 M569 P0.1 S0 ; XY 2 M569 P0.2 S0 ; Z 1 M569 P0.3 S0 ; Z 2 M569 P0.4 S0 ; Z 3 M569 P20.0 S1 ; 1st Extruder on toolboard M584 X0.1 Y0.0 Z0.2:0.3:0.4 E20.0 ; set drive mapping M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation M92 X160.00 Y160.00 Z1600.00 E830.00 ; set steps per mm M906 X1400 Y1400 Z1200 E350 I60 ; set motor currents (mA) and motor idle factor M84 S30 ; Set idle timeout M566 X720.00 Y720.00 Z15.00 E120.00 ; set maximum instantaneous speed changes (jerk) (mm/min) M203 X11400.00 Y11400.00 Z600.00 E1200.00 ; set maximum speeds (mm/min) M201 X4800.00 Y4800.00 Z20.00 E200.00 ; set accelerations (mm/s^2) M593 F36 ; Dynamic Acceleration Adjustment ; Axis Limits ; -------------------------------------------------- M208 X0 Y0 Z0 S1 ; set axis minima M208 X410 Y410 Z370 S0 ; set axis maxima ; Leadscrews location M671 X-37.4:192.4:422.2 Y340.0:-34.1:340.0 S25 ; Endstops M574 X1 S3 ; configure sensorless endstop for low end on X M574 Y1 S3 ; configure sensorless endstop for low end on Y ; Z-Probe ; -------------------------------------------------- M558 P8 C"^20.io0.in" H20 F120 T6000 ; set Z probe type to switch and the dive height + speeds G31 P500 X0 Y0 Z22.85 ; set Z probe trigger value, offset and trigger height M557 X20:370 Y20:370 S50 ; define mesh grid ; Heaters ; -------------------------------------------------- ; bed M308 S0 P"temp0" Y"thermistor" T100000 B3950 ; configure sensor 0 as thermistor on pin temp0 M950 H0 C"out1" T0 Q10 ; create bed heater output on out1 and map it to sensor 0 M307 H0 B0 S1.00 ; disable bang-bang mode for the bed heater and set PWM limit M307 H0 R0.730 C670.5 D4.05 S1.00 ; PID tuning M140 H0 ; map heated bed to heater 0 M143 H0 S120 ; set temperature limit for bed heater ; 1st tool ;M308 S1 P"20.temp0" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 1 as thermistor on pin 1.temp0 (E3D) M308 S1 P"20.temp0" Y"thermistor" T500000 B4723 C1.196220e-7 R4700 H6 L0 ; configure sensor 1 as thermistor on pin 1.temp0 (Slice) M950 H1 C"20.out0" T1 ; create nozzle heater output on 1.out0 and map it to sensor 1 M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit M143 H1 S320 ; set temperature limit for hotend ; Fans ; -------------------------------------------------- M950 F0 C"20.out1" Q500 ; create fan 0 on toolboard out1 M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off M950 F1 C"20.out2" Q500 ; create fan 1 on toolboard out2 M106 P1 S1 H1 T45 ; set fan 1 value. Thermostatic control is turned on ; Tools ; -------------------------------------------------- M563 P0 S"mosquito" D0 H1 F0 ; define tool 0 G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C
Veti last edited by Veti
can increase the dead time by 10 seconds D14 and try heating
I'm a little confused. The tuning appears to have succeeded.
Did you save the results with M500? Have you then added M501 to the end of config.g to load the saved results at boot? Have you used that M307 command that it suggests?
Nevermind, I see you've copied the values to the config. In which case, are you sure that config-override.g isn't getting run and maybe overriding your values from config.g? If the file exists, and you're not using it, delete it.
If it still errors out when using that M307, increasing the dead time as Veti suggests may help.
It's a very large bed (400mm^2), but also a very large heater (1000w), so I'm not surprised it has a low dead time. So if the thermistor is directly in contact with the heater it will register the heat up quite quickly, but the large bed mass will still take a long time to saturate with heat.
Can you confirm with M115 that firmware 3.2 has been installed?
Can you send M98 P"config.g" and report any errors?
@Phaedrux yes, the tuning succeeded but still I get the error when printing (didn't happen with the duet2). I have no config-override.g.
M115 FIRMWARE_NAME: RepRapFirmware for Duet 3 MB6HC FIRMWARE_VERSION: 3.2 ELECTRONICS: Duet 3 MB6HC v1.01 or later FIRMWARE_DATE: 2021-01-05
M98 P"config.g" does not report any error.
I'll try increasing the dead time as @Veti suggests. Thanks!
If that doesn't help I'll see what DC42 suggests. The new algorithm is quite new afterall.
@Phaedrux I tried increasing the dead time (by 5 each time up to 20) but still "Error: Heater 0 fault: temperature rising much more slowly than the expected 0.4°C/sec". I'll try to put some crazy high value (100?), but I have to wait for the plate to reach ambient temp and it takes an hour every time
It's weird because I get the error always at around 50C. I guess it's very fast to go from 20 to 50 and being such a big bed it slows down dramatically from 50 to 60...
maybe I should do the calibration when the bed is already at around 45?
Edit: nope, it seems the calibration cycles between 50C and 60C 20+ times, so it can't be it. What I noticed is that each time I run the calibration the values for M307 are "substantially" different.
@matt3o I've have a bed very similar to yours (400x400mm). Mine is 10mm thick with 12mm semi-rigid insulation under it but has a slightly less powerful mains heater (800Watt IIRC). The temperature sensor is located in a deep 3mm dia hole in the side of the bed, as close to the top surface (and as far away from the heat pad) as possible.
Looking at my config.g, I last tuned that heater on 6th Auguest 2019 so that would have been with gen 3 but an older firmware. Here is what I have
M307 H0 A230.8 C2252.5 D20.3 S1.00 B0 V27.3 ; auto tune 06/08/2019
I've just "upgraded" to 3.2. I'll try tuning that heater later today and let you know how I get on and what values I end up with. (From what I've seen on these forums, I'm dreading what will happen............).
@deckingman you are the 6-input hotend guy. A heated bed can't scare you!
Dead time 50 finally worked (from the 4 suggested). Bed overshoots quite a bit but that's easily fixed by setting a lower temp.
I'll start lowering the value at each print until I find the optimal dead time. The auto calibration probably needs some work though
Bed overshoots quite a bit but that's easily fixed by setting a lower temp.
@deckingman you are the 6-input hotend guy. A heated bed can't scare you!
6 input hot end, 7 axes CoreXYUVAB, 13 steppers, one main Duet board and 3 expansion boards as well as a mains heated bed, none of which bother me in the slightest - but the new firmware (or what bugs, faults or foibles may be contained therein) terrifies me.
But actually, I've now completed the heated bed tuning, with the new algorithm and RRF 3.2. "stable (ish)", and can confirm that my prior misgivings were unfounded in this case. The process completed without any obvious signs of bad behaviour. I didn't take much note of the time but it took less than 2 hours overall (it takes about 13 minutes to get from ambient of around 20 to 90 deg C but much much longer to cool because if the insulation).
For info, the parameters I ended up with were as follows
M307 H0 R0.104 C2186.5 D28.16 S1.00 B0; auto tune 08/01/2021 using RRF 3.2.
Vin was 27.6 but that's irrelevant with a mains heated bed. I haven't tried an actual print yet.
@deckingman have you already tried to print? because the calibration completed correctly for me too.
wait until the bed is back to room temp, and try to heat it up to 60-90C.