Heater temperature overshoot with new algorithm 3.2
-
thanks @deckingman @dc42
Tried that but it didn't affect the overshoot or the time it takes to settle.
I did a test with the old M307 and I had overshoot.
It appears that I didn't notice the overshoot before.Recently I installed a BigTreeTech hotend, so I am wondering what the spec of the thermistor is, how do I find out?
Or could it be something else? -
@appjaws Is it one of those 2 in 1 out jobbies? I had a quick look and noticed that they claim it's good for up to 350 deg C. That being the case, maybe it's just got a powerful heater. The hot end block doesn't look to be overly large so if they decided simply to bung a higher wattage heater in it, then it might just be too powerful for amount of aluminium surrounding it. That
would certainlymight lead to overshoot. Do you happen to have a (say) 30watt heater that you could fit? -
@deckingman No its a single BigTreeTech 1 to 1, although I do have a 1 in 3 out version which I haven't tried yet.
I don't think I have a 30W heater but I do have 40W ones I could try.
Would tuning using a lower P value say 0.8 instead of 1, in M303 and M307 help do you think?
-
@appjaws said in Heater temperature overshoot with new algorithm 3.2:
Would tuning using a lower P value say 0.8 instead of 1, in M303 and M307 help do you think?
Yes, I would have thought that should help.
-
-
Please post your complete config.g and config-override.g files.
-
What was the exact command that you user to tune the heater?
-
-
@dc42 I do not use config-override, the tuning command was M303 H1 P1 S205
config.g:-
; CoreXYUV config file for Duet firmware 3
; Network
M550 P"appjawsCoreXY" ; Machine name (can be anything you like)
M551 P"reprap" ; Machine password (used for FTP connections)
M552 S1 P192.168.1.69 ; IP address and Turn network on
M554 P192.168.1.1 ; Gateway
M553 P255.255.255.0 ; Netmask; Machine configuration
M111 S0 ; Debugging off
G21 ; Work in millimetres
G90 ; Send absolute coordinates...
M83 ; Set relative extruder moves
M555 P2 ; Set firmware compatibility to Marlin
M669 K8 ; set CoreXYUV mode
M564 H0 ; allow axis movement before homing;Drives
;M584 X0:3 Y1:4 Z7:8:9 U10 V11 E2:5:6:10:11 ; Assign motors to axes
;M584 X0:3 Y1:4 Z7:8:9 U10 V11 E2:5:6 ; Assign motors to axes
M584 X0 Y1 U3 V4 Z7:8:9 U10 V11 E2:5:6 ; Assign motors to axes
M569 P0 S1 ; Drive 0 goes forwards X motor
M569 P1 S1 ; Drive 1 goes backwards Y motor
M569 P2 S0 ; Drive 2 goes backwards E1 extruder
M569 P3 S1 ; Drive 3 goes forwards U motor
M569 P4 S1 ; Drive 4 goes backwards V motor
M569 P5 S0 ; Drive 5 goes backwards E2 extruder
M569 P6 S0 ; Drive 6 goes backwards E3 extruder
M569 P7 S1 ; Drive 7 goes forwards Z1 motor left
M569 P8 S1 ; Drive 8 goes forwards Z2 motor rear
M569 P9 S1 ; Drive 9 goes forwards Z3 motor right
;M569 P10 S0 T4 ; Drive 10 goes backwards E4 extruder
;M569 P11 S0 T4 ; Drive 11 goes backwards E5 extrude;Endstops
M574 X1 S1 P"xstop" ; configure active-high endstop for low end on X via pin xstop
M574 Y1 S1 P"ystop" ; configure active-high endstop for low end on Y via pin ystop
M574 U1 S1 P"e0stop" ; configure active-high endstop for low end on U via pin ustop
M574 V1 S1 P"e1stop" ; configure active-high endstop for low end on V via pin vstop
M574 Z1 S1 P"zstop" ; configure Z-probe endstop for low end on ZM581 P"zstop" T2 R0 ; Set Z stop as fail safe for Z zeroing and run /sys/trigger2.g
M671 X-42:150:344 Y96:337:101 S3 ; Lead screw positions
M350 X16 Y16 U16 V16 Z16 E16 I1 ; Set XYUVZE 16 micro stepping with interpolation
M92 X80 Y80 U80 V80 Z3200 E415:415 ; Set axis steps/mm (XYUVZE=16)
M566 X1500 Y1500 U1500 V1500 Z30 E300 ; Maximum jerk speeds mm/minute
M203 X10000 Y10000 U10000 V10000 Z100 E3000 ; Maximum speeds (mm/min)
M201 X2000 Y2000 U2000 V2000 Z30 E1000 ; Accelerations (mm/s^2)
M906 X1100 Y1100 U1100 V1100 Z1000 E1000 ; Set motor currents (mA);axis limits
M208 X350 Y327 U350 V327 Z240 ; set axis maxima (adjust to suit your machine)
M208 X0 Y0 U0 V0 Z0 S1 ; set axis minima (adjust so X=0 and Y=0 the edges of the bed); Thermistors and heaters
M308 S0 P"bed_temp" Y"thermistor" T100000 B3950 H3 ; configure sensor 0 as thermistor on pin bedtemp
M950 H0 C"bed_heat" T0 ; create bed heater output on bedheat and map it to sensor 0
M143 H0 S85 ; set temperature limit for heater 0 to 70C
M307 H0 R0.326 C233.6 D3.57 S1.00 V24.5 ; RRF3.2 Auto tune PID for bed heaterM308 S1 P"e0_temp" Y"thermistor" B4388 H25 ; configure sensor 1 as thermistor on pin e0temp
M950 H1 C"e0_heat" T1 ; create nozzle heater output on e0heat and map it to sensor 1
M140 H0
M143 H1 S240 ; set temperature limit for heater 1 to 230C
;M307 H1 A273.7 C130.4 D6.0 S1.00 V24.6 B0 ; Auto tune PID for extruder 0 (BigTreeTech single) overshoot 8.1
M307 H1 R3.486 C148.6 D6.0 S1.00 V24.6 ; RRF3.2 Auto tune PID for extruder 0 (BigTreeTech single)M308 S10 Y"mcu-temp" A"CPU" ; CPU temp sensor
M308 S11 Y"drivers" A"Duet_drv" ; drivers temp sensor; Tool definition********** Single nozzle settings **********
M563 P0 D0 H1 F0 ; Define tool 0
G10 P0 S0 R0 ; Set tool 0 operating and standby temperatures; Fan settings
M950 F0 C"Fan0" Q500 ; create fan 0 on pin fan0 and set its frequency
M106 P0 H-1 C"Cooling" ; set Tool fan. Thermostatic control is off
M950 F1 C"Fan1" Q500 ; create Extruder on pin fan1 and set its frequency
M106 P1 H1 T45 C"Extruder" ; set Extruder Fan. Thermostatic control is turned on
M950 F2 C"Fan2" Q500 ; create System fan on pin fan2 and set its frequency
M106 P2 H10:11 T35:50 L45 C"System" ; set System fan. Thermostatic electronics cooling; LED Lighting
M950 F3 C"duex.fan3" Q500 ; create fan 3 on pin duex.fan3 and set its frequency for LED Red
M106 P3 C"RGB Red" ; set RGB Red PWM
M950 F4 C"duex.fan4" Q500 ; create fan 4 on pin duex.fan4 and set its frequency for LED Green
M106 P4 C"RGB Green" ; set RGB Green PWM
M950 F5 C"duex.fan5" Q500 ; create fan 5 on pin duex.fan5 and set its frequency for LED Blue
M106 P5 C"RGB Blue" ; set RGB Blue PWM; Custom settings
; Manual bed levelling assistant
;M671 X-8:308:308:-8 Y-8:-8:212:212 P0.1 ; rear (-8,-8)(308,-8), front(308,212)(-8,212), pitch 0.05mm
M557 X20:280 Y20:190 S170 ; define mesh grid
;M572 D1 S0.05 ; pressure advance D= Extruder, S= advance amount 0.1 - 0.2
M558 P1 C"zprobe.in+zprobe.mod" H5 F120 T6000 ; set Z probe type to unmodulated and dive height + speeds
G31 P500 X-30 Y8 Z0.48 ; set Z probe trigger value, offset and trigger height-BigTreeTech-single
M556 S100 X-0.65 Y-0.0 Z-0.0 ; axis compensation
T0 ; select first hot end; ********** Diamond nozzle settings **********
;M201 X1000 Y1000 U1000 V1000 Z30 E2000:E2000:E2000 ; Accelerations (mm/s^2)
;M203 X15000 Y15000 U15000 V15000 Z200 E4000:4000:4000 ; Maximum speeds (mm/min)
;M566 X1000 Y1000 U1000 V1000 Z30 E100100 ; Maximum jerk speeds mm/minute
;M572 D1:D2:D3 S0.03 ; pressure advance Dnnn Extruder num,Snnn advance amount(sec) 0.1 - 0.2
;M563 P0 D0 H1 ; Define tool 0 extruder 0
;M563 P1 D1 H1 ; Define tool 1 extruder 1
;M563 P2 D2 H1 ; Define tool 2 extruder 2
;M563 P0 D0:1:2 H1 ; Define tool 0 extruder 0
;M563 P1 D0:1:2 H1 ; Define tool 1 extruder 1
;M563 P2 D0:1:2 H1 ; Define tool 2 extruder 2
;M567 P0 E1.0:0.0:0.0 ; single colour - extruder 0
;M567 P1 E0.0:1.0:0.0 ; single colour - extruder 1
;M567 P2 E0.0:0.0:1.0 ; single colour - extruder 2
;M92 E430:430:430 ; Set extruder steps/mm (multiple nozzles)
;M568 P0 S1 ; turn on mixing Tool 0
;M568 P1 S1 ; turn on mixing Tool 0
;M568 P2 S1 ; turn on mixing Tool 0
;M207 S5.0 F2400 ; retract all extruders; Z probe diamond hot end
;M558 P3 X0 Y0 Z1 ; Analog Z probe, also used for homing the Z axis
;G31 X-20 Y10 Z0.9 P500 ; Set the probe height and threshold; -
Just done anther tuning using P0.8
M307 H1 R3.409 C168.6 D10.80 S0.80 V24.6 -
@appjaws said in Heater temperature overshoot with new algorithm 3.2:
@dc42 I do not use config-override, the tuning command was M303 H1 P1 S205
Please tune using M303 T0 S205 instead so that the tuning takes account of the print cooling fan.
-
@dc42 Thank you for the reply, this is the result
M307 H1 R3.525 C171.7:136.5 D10.05 S0.70 V24.6 ;Auto tune with M303 T0 S205This is a lot better so I now have an overshoot of 5.8 but it still takes a long time to settle.
I could cope with that by carrying on manually waiting to start a print.Is there a parameter that I could use to ascertain when the temperature is settled?
-
I seem to remember that @deckingman had trouble with the Diamond hot end heater being over-powered too.
You could try increasing the R parameter a little (e.g. by 10%), or increasing D by about 30%.
You can use conditional GCode to compare the actual temperature with the target temperature.
-
@dc42 said in Heater temperature overshoot with new algorithm 3.2:
I seem to remember that @deckingman has trouble with the Diamond hot end heater being over-powered too.
That was certainly the case with the 5 colour Diamond which by default, comes with an 80 Watt heater. I fixed that by changing to a more conventional 40 watt heater - hence my recommendation to @appjaws that he try a smaller heater - maybe 30 watt or less.
As an aside. I suspect the reason why RepRap.me thought that an 80 watt heater was a good idea is because of the heat creep issue that the 5 colour has. I guess the 80 watt heater melted everything - including the the filament that is in what should be the cold side of the heat breaks
(I found that using a bigger heat sink fan worked somewhat better ). -
@dc42 thankyou, I tried the changes for R and D but it made little difference.
Eventually the temperature does stabilise so I need to have a check prior to the print start
With my limited skills I have tried to have a condition to check the heat.heaters[1].current
but I end up in a loop or it is ignored.Could you suggest a suitable test please