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

    New heater tuning algorithm

    Scheduled Pinned Locked Moved
    Beta Firmware
    33
    131
    15.3k
    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.
    • MikeSundefined
      MikeS
      last edited by

      Hi David,
      with this algorithm i get always a massive overshoot at first. Which parameters should i tweak manually to try to fix it? R or C?

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

        @MikeS said in New heater tuning algorithm:

        Hi David,
        with this algorithm i get always a massive overshoot at first. Which parameters should i tweak manually to try to fix it? R or C?

        Try reducing R.

        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

        MikeSundefined 1 Reply Last reply Reply Quote 0
        • A Former User?
          A Former User
          last edited by A Former User

          Hi,

          fist thanks for all the work that is put into RRF!

          my setup: i3mega with new external 300W-24V supply, converted to a duet-ethernet-1.4 now with firmware RRF3.2-RC2 running (+ PanelDue i5)

          I successfully tuned the - in my opinion for higher temperature prints underpowered - "ultrabase mk3" heatplate of the i3mega of which has around 140-145W (glass plate swapped for a solid piece of flat alu with 240x240x5mm attached with heat-conductive-adhesive) for 110°C with M303 H0 P1.0 S110 (heater 0 is setup in config.g as PID via M307 H0 B0 S1.0 )

          After successfull tuning with the following console printout
          974924a3-8731-4c2a-80e3-9570d274aaae-grafik.png

          When manually heating afterwards, I am not able to reach any temperature above 100°C (after ca. 15-20minutes from ca. 35°C as start) before a heater0-fault is thrown

          currently in config.g I tried

          M143 H0 P0 S125 A2 ; switch off heater H_ temporarily if it exceeds S_°C
          M143 H0 P1 S130 A0 ; raise a heater fault if it exceeds S_°C
          M570 H0 P120 T30 S5

          to eventually have the error go away, but it seems I cannot get higher temperatures, because the higher the temperatures get, the slower the the heat-up-process is getting until it seems to saturate a little below 100°C. What I do not understand how it was able to reach 110°C while tuning?

          Are there any software tweaks I could do to reach around 105-110°C for which I am aiming (I am reluctant to buy a higher W(wattage)-heatplate if I can avoid - which would otherwise be the most obvious thing of course)? The error the tuning threw up leads me to try maybe tuning for 105°C first?

          EDIT:

          Looks better with 105°C
          1d889ecc-10ff-4b92-a9ee-fb28e30528dc-grafik.png
          At least does not throw a heater fault

          Sadly when manually trying afterwards to heat, it also does not go to the 105°C but saturates at ca. 100°C after tuning and throws a fault because it cannot climb any more.

          EDIT:
          Looks even better with 100°C:
          3fd165f5-22c9-4d9e-8278-b1e5a3e84bba-grafik.png
          Since it does not throw a warning this is most likely the limit I guess?

          But even here, I cannot reach the 100°C consistent when heating afterwards manually, it still throws a fault...

          But 95°C works fine -> no fault there, hm

          -> 95°C

          So it seems around 95°C is the inherent limit of this "i3 mega mk3" heatplate with its 140-145W on 220x220mm?
          Or would there be any gain by trying hard swithing via setting heater-0 in config.g to M307 H0 B1 S1.0?

          Next is feeding the 24V through the 12V (It has 2 inputs 1 for 12V 1 for 24V) to see what temperature I can reach there

          Stay tuned... 🤔

          Thanks for working on the console-output for the user: In my perception a big step up!
          Best regards
          Lucas

          Edit: After retryin 3.1.1, 3.2RC2 & final 3.2alpha it turns out I had in my filament-config.g another M143 with 100°C OUUUUUUUUUCH slap on the forhead at least the heatplate is now feeded with 10A instead of 5A because the waiting got me so nervous that we "tuned" the heating-time -> nice how you can change the behaviour of a resistance-heater by playing with parallel, series, or 1-of-2-circuits-only (no series, no parallel)
          WUZA 😑

          1 Reply Last reply Reply Quote 0
          • MikeSundefined
            MikeS @dc42
            last edited by MikeS

            @dc42 so i tried playing around with values but i can get a stable temperature during printing, but can't mitigate the overshoot at the first heat up. Also when starting from a cold nozzle i usually get error on bad curve:
            Warning: Auto tune of heater 1 failed due to bad curve fit (R=7.999, 1/C=0.0040:0.0097, D=10.3)
            The temperature readings seems reasonable to me and i got no "noise" on that, at least from what i can see on duet ui.

            Any suggestion?

            edit1: I managed to get the tune give me results by tuning the heater and not the tools, so i think the bad curve probelm is related to the layer fan but i'm not sure. Also with the given results i get a 8/10°C overshoot at first but at least it won't trigger the thermal runout safety. Still it has to be better than this.

            1 Reply Last reply Reply Quote 0
            • TLASundefined
              TLAS
              last edited by

              Is there any chance to implement more of a plugin approach for the auto-tune algorithm? This algorithm change has been one of my biggest fears in upgrading, although I've been somewhat forced into it to use the web control plugins.

              I won't go into the details, but my printer is quite different than traditional printers (for example, I don't use any part cooling fans in my current design). The previous algorithm worked fairly well for me, and after seeing the comments in this post, I'm really afraid of upgrading and may end up manually defining the parameters for a few of my heaters.

              I'll report back with the results of using the new algorithm (hopefully this week), but there are so many different heater designs out there that using an option that lets users custom-develop their own versions may be a good opportunity for future growth.

              A Former User? 1 Reply Last reply Reply Quote 0
              • A Former User?
                A Former User @TLAS
                last edited by A Former User

                @TLAS said in New heater tuning algorithm:

                Is there any chance to implement more of a plugin approach for the auto-tune algorithm? This algorithm change has been one of my biggest fears in upgrading, although I've been somewhat forced into it to use the web control plugins.

                I won't go into the details, but my printer is quite different than traditional printers (for example, I don't use any part cooling fans in my current design). The previous algorithm worked fairly well for me, and after seeing the comments in this post, I'm really afraid of upgrading and may end up manually defining the parameters for a few of my heaters.

                I'll report back with the results of using the new algorithm (hopefully this week), but there are so many different heater designs out there that using an option that lets users custom-develop their own versions may be a good opportunity for future growth.

                I would like it also if the new algorithem could be just a new Bx within M307, as was "bang-bang" in the past as B1, B0="simple" PID, and now e.g. B2 as "feed-forward" PID.

                Another option would be to put within M307 in the place of B0 the new "feed-forward"PID and "replace" the "old" PID to e.g. a new B2-option... (so that new users use by default B0 for heater1 and only the those who need really, swap back as an individual decision to B2 for whatever reason)?

                +1 from me

                But if I recall correctly dc42 (altough that was way before RC2 of RRF3.2) had some issue with code getting too much/too big and therfor would of course have liked to get rid of the "old" PID -> Please correct if it is wrong what I write here, these are only some vague memories from several weeks ago long before RC2...

                1 Reply Last reply Reply Quote 0
                • Deltasquareundefined
                  Deltasquare
                  last edited by

                  What is the limit to the PID values that are available?
                  I have a very fast heater and would like to use the integrated PID tuning, but unfortunately it heats too quickly (3 seconds to target temp), until now I have only gotten errors. "not heating at expected rate"...

                  MikeSundefined 1 Reply Last reply Reply Quote 0
                  • MikeSundefined
                    MikeS @Deltasquare
                    last edited by

                    @Deltasquare are you sure of your temperature readings? 20-200°C in 3 seconds is really fast. Is this a SpaceX motor at launch? 😃

                    Deltasquareundefined 1 Reply Last reply Reply Quote 0
                    • lui2004undefined
                      lui2004
                      last edited by

                      Hi

                      i have updated my Duet wifi to newest RRF 3.2 what i must change to use the new heater tuning algorithm ?

                      thats my actual settings for heater:

                      ; Heaters
                      M308 S0 P"bedtemp" Y"thermistor" T100000 B3950 ; configure sensor 0 as thermistor on pin bedtemp
                      M950 H0 C"bedheat" T0                          ; 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" T100000 B4725 C7.06e-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
                      M143 H1 S280 								   ; set temperature limit for heater 1 to 300C
                      M307 H1 B0 S1.00   
                      

                      and how i can tune the bed and thermistor ?

                      thanks a lot

                      Phaedruxundefined 1 Reply Last reply Reply Quote 0
                      • Phaedruxundefined
                        Phaedrux Moderator @lui2004
                        last edited by

                        @lui2004 You tune it as normal using M303

                        https://duet3d.dozuki.com/Wiki/Gcode?revisionid=HEAD#Section_M303_Run_heater_tuning

                        Z-Bot CoreXY Build | Thingiverse Profile

                        1 Reply Last reply Reply Quote 0
                        • Deltasquareundefined
                          Deltasquare @MikeS
                          last edited by

                          @MikeS
                          I am 100% sure. 😄
                          However it's not quite up there with the Marlin engine in sophistication.... but close. 😉

                          1 Reply Last reply Reply Quote 0
                          • Alucardiundefined
                            Alucardi
                            last edited by

                            This post is deleted!
                            1 Reply Last reply Reply Quote 0
                            • lee7670undefined
                              lee7670
                              last edited by

                              @dc42 now that 3.2 has been out for some time, would it be possible to get a better description of what the new M307 parameters do? the documentation is very vague and (https://duet3d.dozuki.com/Wiki/Tuning_the_heater_temperature_control#Section_Manual_adjustments_to_the_heater_model_parameters) still refers to the deprecated parameter A (gain). Specifically, heater rate has no units on it. Would it be possible to see a quick diagram of what the heater loop looks like and where all the parameters feed in? I'll need to have one of our controls engineers fix a particularly troublesome heater and it would be good if they had a diagram of what's going on so we can tune on the fly.

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

                                @lee7670 I have updated the wiki page on heater tuning.

                                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

                                lee7670undefined 1 Reply Last reply Reply Quote 0
                                • lee7670undefined
                                  lee7670 @dc42
                                  last edited by

                                  @dc42 Thank you, this is very useful!

                                  1 Reply Last reply Reply Quote 0
                                  • gorf26undefined
                                    gorf26
                                    last edited by

                                    Seeing the subject has been brought up again..

                                    I have just change out my hotend and heater and tried auto tune, always finishes but seems to have errors and gives me the values for the 307 in config, after entering the new values and i turn on the heater to 210 i always get a heater fault not rising fast enough. but from watching the DWC the temp seems to be going up fast.
                                    So returned and this time no error and a new pid value so i enter that and got the same heater fault

                                    If i put just use the default m307 values with no pid values it heats up fine no errors..

                                    also have a pt100 with the duet pt100 board and it a diet2 wifi

                                    this is with firmware 3.2.2 release

                                    Thanks gary

                                    Phaedruxundefined dc42undefined 2 Replies Last reply Reply Quote 0
                                    • Phaedruxundefined
                                      Phaedrux Moderator @gorf26
                                      last edited by

                                      @gorf26 Instead of manually copying the values, can you try using M500 to save them to config-override.g and then compare what you had to what it saved. See if there is a difference. What values are they?

                                      Z-Bot CoreXY Build | Thingiverse Profile

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

                                        @gorf26 what M307 values does it tell you to use when you tune it?

                                        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

                                        gorf26undefined 1 Reply Last reply Reply Quote 0
                                        • gorf26undefined
                                          gorf26 @dc42
                                          last edited by

                                          @dc42

                                          M307 H0 B0 A113.8 C611.3 D0.4 V23.0

                                          I have gone ahead and installed 3.3RC3 and that has seemed to fix it, I tuned the hotend again and it tuned with no errors, used the m307 it suggested and when cooled down i heated it to 240c and no fault error now.

                                          Still a little trouble with the bed tuning gives me a waring message every time and a suggested a m307 value
                                          i enter that in the config and it heats up fine.. so guess i won't worry about it to much..

                                          Thanks gary

                                          Phaedruxundefined 1 Reply Last reply Reply Quote 0
                                          • Phaedruxundefined
                                            Phaedrux Moderator @gorf26
                                            last edited by

                                            @gorf26 said in New heater tuning algorithm:

                                            a waring message every time

                                            The warning is normal. It's telling you how hot it predicts the heater could get in a failure situation.

                                            Z-Bot CoreXY Build | Thingiverse Profile

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