Heater Overshoot
-
Hello, I built another printer with essentially the same parts as my other printers, and I've been having a lot of trouble tuning the PIDs. On my other printers the autotuning worked perfectly, but now I keep getting overshooting errors. I thought at first it might be because I was running 3.4.2rc3+, but after rolling back to 3.4.1, I'm still having the same issues.
Duet 3 6HC
(2) Toolboards 1LC V1.2
BMG-X2-M Extruder
(1) Mosquito Hotend
(1) Mosquito Mangum Hotend
Slice Engineering 300C Thermistors
Slice Engineering 50W Heater Cartridges
24V 15A Power SupplyI get this issue on both hotends, but this is an example:
Heater 1 fault: exceeded allowed temperature excursion: target 240.0°C actual 256.5°CI'm running M303 S240 T0 (or T1) to tune.
Also, I'll add that when I try to PID tune the bed (M303 H0 S80) I get the error: "Warning: heater behavior was not consistent during tuning. Auto tuning heater 0 completed after 3 idle and 25 tuning cycles in 4673 seconds. This heater needs the following M307 command: M307 H0 R0.252 K0.107:0.000 D2.30 E1.35 S1.00 B0."
My config file is attached here:
config.g -
@p8blr what thermistors are you using?
-
@jay_s_uk Oops, I forgot to mention that. I edited my original post, but it's these in the 300C version:
https://www.sliceengineering.com/products/thermistor-high-temperature -
; Configuration file for Duet 3 MB 6HC (firmware version 3.3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.3.12 on Tue Aug 30 2022 09:58:31 GMT-0500 (Central Daylight Time) ; General preferences M575 P1 S1 B57600 ; enable support for PanelDue G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"TXTADDMN01" ; set printer name M669 K1 ; select CoreXY mode ; Wait a moment for the CAN expansion boards to start G4 S2 ; Network M552 P0.0.0.0 S1 ; enable network and acquire dynamic address via DHCP M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet ; Drives M569 P0.0 S1 ; physical drive 0.0 goes forwards (Z) M569 P0.1 S1 ; physical drive 0.1 goes forwards (R motor) M569 P0.2 S1 ; physical drive 0.2 goes forwards (L motor) M569 P21.0 S1 ; physical drive 21.0 goes forwards M569 P22.0 S0 ; physical drive 22.0 goes forwards M584 X0.1 Y0.2 Z0.0 E21.0:22.0 ; set drive mapping M350 X16 Y16 Z16 E16:16 I1 ; configure microstepping with interpolation M92 X80.00 Y80.00 Z1600.00 E434.6:434.6 ; set steps per mm M566 X600.00 Y600.00 Z60.00 E120.00:120.00 ; set maximum instantaneous speed changes (mm/min) M203 X18000.00 Y18000.00 Z600.00 E1500.00:1500.00 ; set maximum speeds (mm/min) M201 X3000.00 Y3000.00 Z100.00 E1000.00:1000.00 ; set accelerations (mm/s^2) M906 X1200 Y1200 Z1200 E500:500 I30 ; set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout ; Axis Limits M208 X-15 Y0 Z0 S1 ; set axis minima M208 X240 Y290 Z300 S0 ; set axis maxima ; Endstops M574 X1 S1 P"21.io0.in" ; configure switch-type (e.g. microswitch) endstop for low end on X via pin 21.io0.in M574 Y1 S1 P"io3.in" ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin io3.in M574 Z1 S2 ; configure Z-probe endstop for low end on Z ; Z-Probe M950 S0 C"22.io0.out" ; create servo pin 0 for BLTouch M558 P9 C"22.io0.in" H2 F1000:200 T12000 ; set Z probe type to bltouch and the dive height + speeds G31 P500 X7.5 Y-22.6 Z4 ; set Z probe trigger value, offset and trigger height ; Heaters M308 S0 P"temp0" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 0 as thermistor on pin temp0 bed M950 H0 C"out0" T0 ; create bed heater output on out0 and map it to sensor 0 M307 H0 R0.257 K0.222:0.000 D2.30 E1.35 S1.00 B0 ; disable bang-bang mode for the bed heater and set PWM limit M140 H0 ; map heated bed to heater 0 M143 H0 S100 ; set temperature limit for heater 0 to 100C M308 S1 P"21.temp0" Y"thermistor" T100000 B4680 C6.455513e-8 ; configure sensor 1 as thermistor on pin 21.temp0 M950 H1 C"21.out0" T1 ; create nozzle heater output on 21.out0 and map it to sensor 1 M307 H1 R5.256 K0.444:0.226 D12.00 E1.35 S1.00 B0 V24.4 ; disable bang-bang mode for heater and set PWM limit M143 H1 S320 ; set temperature limit for heater 1 to 300C M308 S2 P"22.temp0" Y"thermistor" T100000 B4680 C6.455513e-8 ; configure sensor 2 as thermistor on pin 22.temp0 M950 H2 C"22.out0" T2 ; create nozzle heater output on 22.out0 and map it to sensor 2 M307 H2 R5.302 K0.379:0.097 D9.58 E1.35 S1.00 B0 V23.7 ; disable bang-bang mode for heater and set PWM limit M143 H2 S320 ; set temperature limit for heater 2 to 300C ; 3 point bed leveling ; front left (0,0) ; back middle (75,120) ; front right (150,0) ; thread pitch 0.7mm M671 X-8.1:247.5:122.5 Y267.4:267.4:0 P0.7 ; Fans M950 F0 C"22.out2" Q500 ; create fan 0 on pin 22.out2 and set its frequency M106 P0 S255 X127 H1:2 C"Heatsink Fan" ; set fan 0 value. Thermostatic control is turned on was T45 H1:2 M950 F1 C"22.out1" Q500 ; create fan 1 on pin 22.out1 and set its frequency M106 P1 S0 H-1 C"Part Cooling Fan" ; set fan 1 value. Thermostatic control is turned off ; Tools M563 P0 S"Left 0.4mm" D0 H1 F0:1 ; 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 M563 P1 S"Right 1.2mm" D1 H2 F0:1 ; define tool 1 G10 P1 X15 Y0 Z0 ; set tool 1 axis offsets G10 P1 R0 S0 ; set initial tool 1 active and standby temperatures to 0C ; Custom settings are not defined M280 P0 S90 ;Retract Probe
Config in easier to read format
-
@p8blr said in Heater Overshoot:
M308 S1 P"21.temp0" Y"thermistor" T100000 B4680 C6.455513e-8
How did you arrive at these settings for the thermistor?
-
@jay_s_uk Scroll about halfway down on this page to the Duet/ReprapFirmware section for the 300C Thermistor:
https://support.sliceengineering.com/portal/en/kb/articles/how-do-i-update-my-firmware-to-be-compatible-with-the-high-temperature-thermistor#300C_High_Temperature_ThermistorT1 = 25 R1 = 100000
T2 = 85 R2 = 9094
T3 = 300 R3 = 82.78Then using https://configtool.reprapfirmware.org/Heaters and a custom configuration using those values, gives this:
-
@p8blr hmmm i see.
You could try without the 3rd pair. So setting the 2nd value to 240 degrees (210.4), you would get
M308 S1 P"21.temp0" Y"thermistor" T100000 B4386
-
@jay_s_uk I tried commenting that out and still got this error:
Heater 1 fault: exceeded allowed temperature excursion: target 240.0°C actual 257.5°C
-
@p8blr not much else I can suggest then. Could be that thermistor is difficult to read due to how low the resistance goes when it gets warm.
-
@p8blr Does it tune OK? Is the heater cartridge over powered - i.e. might it be a 12V cartridge on a 24V system?
-
@deckingman OMG that's got to be it! I feel so stupid... I totally forgot that I changed from a 12V to 24V PSU... Thanks so much!
-
@p8blr said in Heater Overshoot:
@deckingman OMG that's got to be it! I feel so stupid... I totally forgot that I changed from a 12V to 24V PSU... Thanks so much!
Don' feel stupid - to err is human so we all make mistakes from time to time. Your 50W 12V heater will actually be 200W when you feed it 24V so that'll explain why it overshoots - I bet it reaches temperature pretty quickly though
Don't be tempted to try and tame it by reducing the PWM value. Whilst 25% PWM would mean that it's on for 25% of the time and off for 75%, it'll still be getting full power when it's on and if a Mosfet failed "On", things will get very hot, very quickly.