Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    Heater temperature overshoot with new algorithm 3.2

    Scheduled Pinned Locked Moved Unsolved
    Beta Firmware
    heaters overshoot tuning undershoot
    3
    18
    1.4k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • appjawsundefined
      appjaws
      last edited by Phaedrux

      After using the new way the heaters are tuned, my hotend overshoots by 10 degrees on first heating and then falls back and maintains a very stable value.
      Under the old system you could adjust the A parameter to compensate.

      I couldn't find this in the documentation.
      Which parameter should be adjusted to reduce over or under shoot?

      appjaws - Core XYUV Duet Ethernet Duex5
      firmware 3.5.0-rc.4 Web Interface 3.5.0-rc.4
      Ormerod 1-converted to laser engraver, Duet wifi
      OpenSCAD version 2024.03.18
      Simplify3D 5.1.2

      1 Reply Last reply Reply Quote 0
      • dc42undefined
        dc42 administrators
        last edited by dc42

        Changes in the R parameter will have the same effect as changes in the A parameter did.

        Duet WiFi hardware designer and firmware engineer
        Please do not ask me for Duet support via PM or email, use the forum
        http://www.escher3d.com, https://miscsolutions.wordpress.com

        1 Reply Last reply Reply Quote 0
        • appjawsundefined
          appjaws
          last edited by

          @dc42 Thank you for your reply.
          I have changed the R value in stages from 3.486 down to 0.2
          I still have overshoot as follows:

          target 205
          R=3.486 I have overshoot to 215.4 and then under to 203.2, it eventually it settles to 205 +/- 0.5
          R=0.2 overshoot 211.2 but only reduced to 206.3, never reaching 205 target

          M307 H1 R3.486 C148.6 D10.39 S1.00 V24.6 ; RRF3.2 Auto tune PID for extruder 0

          Any ideas of what else I could do to reduce this overshoot?

          appjaws - Core XYUV Duet Ethernet Duex5
          firmware 3.5.0-rc.4 Web Interface 3.5.0-rc.4
          Ormerod 1-converted to laser engraver, Duet wifi
          OpenSCAD version 2024.03.18
          Simplify3D 5.1.2

          dc42undefined 1 Reply Last reply Reply Quote 0
          • dc42undefined
            dc42 administrators @appjaws
            last edited by dc42

            @appjaws said in Heater temperature overshoot with new algorithm 3.2:

            I have changed the R value in stages from 3.486 down to 0.2

            You need to increase (not decrease) R (or A) to reduce overshoot.

            If you are using config-override.g, check that it doesn't contain a M307 H1 command.

            Duet WiFi hardware designer and firmware engineer
            Please do not ask me for Duet support via PM or email, use the forum
            http://www.escher3d.com, https://miscsolutions.wordpress.com

            1 Reply Last reply Reply Quote 0
            • appjawsundefined
              appjaws
              last edited by

              The duet3d.dozuki.com/wiki for M307
              If during initial heating the temperature undershoots the target, reduce the A parameter. If it overshoots the target, increase the A parameter. Try increasing/decreasing it by 5% or 10%.

              So I have made various adjustments to the R parameter and the lowest overshoot I can achieve is 8.2 above target.

              ;M307 H1 A273.7 C130.4 D6.0 S1.00 V24.6 B0 ; Auto tune (old auto tune)

              RRF3.2 Auto tune (new auto tune) target 195
              M307 H1 R3.486 C148.6 D10.39 S1.00 V24.6 ;

              Manual Adjustments
              M307 H1 R3.5 C148.6 D10.39 S1.00 V24.6 ; overshoot 206.7
              M307 H1 R3.6 C148.6 D10.39 S1.00 V24.6 ; overshoot 206.8
              M307 H1 R3.8 C148.6 D10.39 S1.00 V24.6 ; overshoot 207.2
              M307 H1 R4.0 C148.6 D10.39 S1.00 V24.6 ; overshoot 208.1
              M307 H1 R3.4 C148.6 D10.39 S1.00 V24.6 ; overshoot 206.5
              M307 H1 R3.3 C148.6 D10.39 S1.00 V24.6 ; overshoot 206.1
              M307 H1 R3.1 C148.6 D10.39 S1.00 V24.6 ; overshoot 203.2
              M307 H1 R3.0 C148.6 D10.39 S1.00 V24.6 ; overshoot 205.1
              M307 H1 R2.9 C148.6 D10.39 S1.00 V24.6 ; overshoot 205.6

              @dc42 Any ideas on how to reduce the overshoot more and time it take to settle to a stable state?

              appjaws - Core XYUV Duet Ethernet Duex5
              firmware 3.5.0-rc.4 Web Interface 3.5.0-rc.4
              Ormerod 1-converted to laser engraver, Duet wifi
              OpenSCAD version 2024.03.18
              Simplify3D 5.1.2

              deckingmanundefined 1 Reply Last reply Reply Quote 0
              • deckingmanundefined
                deckingman @appjaws
                last edited by

                @appjaws Just some random thoughts, based on nothing much, but from the parameters you posted, the original algorithm calculated the dead time to be 6.0 sec but the new algorithm calculates it as being 10.39 secs. I have no idea why that should be but try changing it to the original 6 secs, just to see what difference it makes.

                Ian
                https://somei3deas.wordpress.com/
                https://www.youtube.com/@deckingman

                1 Reply Last reply Reply Quote 0
                • appjawsundefined
                  appjaws
                  last edited by

                  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 - Core XYUV Duet Ethernet Duex5
                  firmware 3.5.0-rc.4 Web Interface 3.5.0-rc.4
                  Ormerod 1-converted to laser engraver, Duet wifi
                  OpenSCAD version 2024.03.18
                  Simplify3D 5.1.2

                  deckingmanundefined 1 Reply Last reply Reply Quote 0
                  • deckingmanundefined
                    deckingman @appjaws
                    last edited by deckingman

                    @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 certainly might lead to overshoot. Do you happen to have a (say) 30watt heater that you could fit?

                    Ian
                    https://somei3deas.wordpress.com/
                    https://www.youtube.com/@deckingman

                    1 Reply Last reply Reply Quote 0
                    • appjawsundefined
                      appjaws
                      last edited by

                      @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 - Core XYUV Duet Ethernet Duex5
                      firmware 3.5.0-rc.4 Web Interface 3.5.0-rc.4
                      Ormerod 1-converted to laser engraver, Duet wifi
                      OpenSCAD version 2024.03.18
                      Simplify3D 5.1.2

                      deckingmanundefined 1 Reply Last reply Reply Quote 0
                      • deckingmanundefined
                        deckingman @appjaws
                        last edited by

                        @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.

                        Ian
                        https://somei3deas.wordpress.com/
                        https://www.youtube.com/@deckingman

                        1 Reply Last reply Reply Quote 0
                        • dc42undefined
                          dc42 administrators
                          last edited by

                          @appjaws

                          1. Please post your complete config.g and config-override.g files.

                          2. What was the exact command that you user to tune the heater?

                          Duet WiFi hardware designer and firmware engineer
                          Please do not ask me for Duet support via PM or email, use the forum
                          http://www.escher3d.com, https://miscsolutions.wordpress.com

                          1 Reply Last reply Reply Quote 0
                          • appjawsundefined
                            appjaws
                            last edited by

                            @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 Z

                            M581 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 heater

                            M308 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 E100💯100 ; 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;

                            appjaws - Core XYUV Duet Ethernet Duex5
                            firmware 3.5.0-rc.4 Web Interface 3.5.0-rc.4
                            Ormerod 1-converted to laser engraver, Duet wifi
                            OpenSCAD version 2024.03.18
                            Simplify3D 5.1.2

                            dc42undefined 1 Reply Last reply Reply Quote 0
                            • appjawsundefined
                              appjaws
                              last edited by

                              Just done anther tuning using P0.8
                              M307 H1 R3.409 C168.6 D10.80 S0.80 V24.6

                              appjaws - Core XYUV Duet Ethernet Duex5
                              firmware 3.5.0-rc.4 Web Interface 3.5.0-rc.4
                              Ormerod 1-converted to laser engraver, Duet wifi
                              OpenSCAD version 2024.03.18
                              Simplify3D 5.1.2

                              1 Reply Last reply Reply Quote 0
                              • dc42undefined
                                dc42 administrators @appjaws
                                last edited by

                                @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.

                                Duet WiFi hardware designer and firmware engineer
                                Please do not ask me for Duet support via PM or email, use the forum
                                http://www.escher3d.com, https://miscsolutions.wordpress.com

                                1 Reply Last reply Reply Quote 0
                                • appjawsundefined
                                  appjaws
                                  last edited by

                                  @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 S205

                                  This 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?

                                  appjaws - Core XYUV Duet Ethernet Duex5
                                  firmware 3.5.0-rc.4 Web Interface 3.5.0-rc.4
                                  Ormerod 1-converted to laser engraver, Duet wifi
                                  OpenSCAD version 2024.03.18
                                  Simplify3D 5.1.2

                                  1 Reply Last reply Reply Quote 0
                                  • dc42undefined
                                    dc42 administrators
                                    last edited by dc42

                                    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.

                                    Duet WiFi hardware designer and firmware engineer
                                    Please do not ask me for Duet support via PM or email, use the forum
                                    http://www.escher3d.com, https://miscsolutions.wordpress.com

                                    deckingmanundefined 1 Reply Last reply Reply Quote 0
                                    • deckingmanundefined
                                      deckingman @dc42
                                      last edited by deckingman

                                      @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 🙂 ).

                                      Ian
                                      https://somei3deas.wordpress.com/
                                      https://www.youtube.com/@deckingman

                                      1 Reply Last reply Reply Quote 0
                                      • appjawsundefined
                                        appjaws
                                        last edited by

                                        @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

                                        appjaws - Core XYUV Duet Ethernet Duex5
                                        firmware 3.5.0-rc.4 Web Interface 3.5.0-rc.4
                                        Ormerod 1-converted to laser engraver, Duet wifi
                                        OpenSCAD version 2024.03.18
                                        Simplify3D 5.1.2

                                        1 Reply Last reply Reply Quote 0
                                        • First post
                                          Last post
                                        Unless otherwise noted, all forum content is licensed under CC-BY-SA