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.
    • NikAundefined
      NikA @jay_s_uk
      last edited by

      @jay_s_uk said in New heater tuning algorithm:

      did you tune as H1 or T0?

      finally I have some time to update and reply:
      I usually tune using H0 and H1.
      I'm working with Duet3 and RRF for the first time, so basically I am a noob 😉

      I added the F0 back to the tool definition g-code line.
      I just wonder why I suddenly see 2 fans defined after I switched to the new (beta) firmware branch. I didn't see any clue in the release notes though.

      Right now I try to tune my bed heater again, maybe the warning won't appear this time.
      BTW: I still have the previous PID values stored, but I don't know if I can simply use them with the new firmware.

      1 Reply Last reply Reply Quote 0
      • NikAundefined
        NikA
        last edited by NikA

        wow, this time it finished fast (after 5 idle and 5 tuning cycles in 605 s) with no warning! Nice!
        Thanks 😄
        Have a wonderful Christmas 🙂

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

          @sozkan said in New heater tuning algorithm:

          @dc42 I have water-block cooling which is originally Dyze double heater Typhoon hot end. Which is continuously running. I need multiple heaters and sensors running simultaneously. Since they are on the same block, they are influencing. Incredibly fast heating, one of them cool fast and heat slow, other heat slow but cool fast. But they are defined in the config as a single hot end. Once a job starts, it enables both at the same time. ( Which is initially from the dyze design documentation) . However, It is all the time out of the temperature range and error.

          Dyze-Design does not recommend using Duet on their advanced hot ends because of these time-based safety futures. That's why they don't provide support on that.

          It's a shame that they haven't been in touch with us about that. I had no idea they were advising against using Duet, and I wasn't aware of the Typhoon hot end.

          It's possible to extend the heater timeouts and allowed temperature ranges using the M570 command, in particular the P and T parameters.

          Tuning those coupled heaters may work better using the following procedure;

          1. Set the M570 limits for those heaters very high.

          2. Find some parameters that allow you to heat both heaters at once to the target temperature.

          3. With heater #1 at its normal operating temperature, tune heater #2 with the target temperature equal to its normal operating temperature.

          4. Now set heater #2 to its normal operating temperature and tune heater #1.

          If you continue to get "Temperature rising too slowly" errors, the fix is to reduce the gain or heating rate parameter. That's the M307 R parameter in 3.2RC1 and later.

          HTH David

          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

          sozkanundefined 1 Reply Last reply Reply Quote 0
          • sozkanundefined
            sozkan @dc42
            last edited by

            @dc42 said in New heater tuning algorithm:

            @sozkan said in New heater tuning algorithm:

            @dc42 I have water-block cooling which is originally Dyze double heater Typhoon hot end. Which is continuously running. I need multiple heaters and sensors running simultaneously. Since they are on the same block, they are influencing. Incredibly fast heating, one of them cool fast and heat slow, other heat slow but cool fast. But they are defined in the config as a single hot end. Once a job starts, it enables both at the same time. ( Which is initially from the dyze design documentation) . However, It is all the time out of the temperature range and error.

            Dyze-Design does not recommend using Duet on their advanced hot ends because of these time-based safety futures. That's why they don't provide support on that.

            It's a shame that they haven't been in touch with us about that. I had no idea they were advising against using Duet, and I wasn't aware of the Typhoon hot end.

            It's possible to extend the heater timeouts and allowed temperature ranges using the M570 command, in particular the P and T parameters.

            Tuning those coupled heaters may work better using the following procedure;

            1. Set the M570 limits for those heaters very high.

            2. Find some parameters that allow you to heat both heaters at once to the target temperature.

            3. With heater #1 at its normal operating temperature, tune heater #2 with the target temperature equal to its normal operating temperature.

            4. Now set heater #2 to its normal operating temperature and tune heater #1.

            If you continue to get "Temperature rising too slowly" errors, the fix is to reduce the gain or heating rate parameter. That's the M307 R parameter in 3.2RC1 and later.

            HTH David

            Hi David,
            Thank you for the support, I couldn`t realize this feature without your support.

            They actually don`t blame DUET, What they say;" They have some strong advantages, as much as some very frustrating weaknesses" advise me to get in touch with the DUET support team.

            This what I wrote to them;"We are using RepRap based Duet 2 Wifi hardware. I have checked in your documentation, but PID parameters are not related to Typhoon.
            Could you please specify what parameters needed? Because Heater 1 increases rapidly and Heater 2 slowdown. That cause error. Autotuning of PID is failing all the time. So I cant get the correct parameters."

            Their return; "Sadly, it is indeed very tricky to fine-tune the heaters with Duet. They have so many security and error checking features that it becomes a pain for the user.
            We are using Duet with one of our Pulsar, and there is sadly nothing we can do to go around this firmware feature.
            I would strongly suggest that you contact the guys from Duet and maybe they can implement a fix.

            Most of the time, we don't supply any parameters to our heaters, as it leads to more problems. It seems like the default values are good enough for what we are doing.
            **"
            However as of my thesis research subject; "Applicability of Large 3D Printers to the Production industry" stuck on these heater errors, which is frustrating. I needed to get into work and print some successful products. But almost 1.5 half months dealing with the heating errors.

            1 Reply Last reply Reply Quote 0
            • OwenDundefined
              OwenD
              last edited by

              I have a 240v 500w AC heater controlled by an SSR heating a 250x250x4 aluminium bed.
              With the old algorithm, the bed temp was flatline stable.
              With the new algorithm I get 4-5 degrees oscillation after PID tuning at 100C
              The extruder is as good as before, with almost no deviation.
              Most of the deviation is over shooting (2.5-3 degrees)
              I tried increasing dead time without a lot of change.

              I'm sure I'll be able to tweak it, but reporting as previous PID worked flawlessly.

              
              ; Heaters
              M308 S0 P"bedtemp" Y"thermistor" A"Bed" B4725 C7.06e-8         		; configure sensor 0 as thermistor on pin bedtemp
              M950 H0 C"bedheat" T0 Q10                                       ; create bed heater output on bedheat and map it to sensor 0 and set PWM frequency to 10hz
              M140 H0 																		; Set bed themp to zero
              M143 H0 S130 A0 C0                                          ; set temperature limit for heater 0 to 130C - fault if too high
              M308 S1 P"e0temp" Y"thermistor" A"Nozzle-1" 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 A0 C0                                          ; set temperature limit for heater 1 to 280C - fault if too high
              ; Set PID autotune parameters
              M307 H0 R0.435 C745.2 D20.50 S1.00						;set PID values for heater 0 (bed) no V parameter as powered by mains
              M307 H1 R2.354 C140.7:139.6 D7.38 S1.00 V24.3							;set PID values for heater 1 (hotend)
              
              
              1 Reply Last reply Reply Quote 0
              • dc42undefined
                dc42 administrators
                last edited by

                @OwenD, do you have a record of the M307 bed heater parameters produced by the old tuning algorithm?

                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

                OwenDundefined sozkanundefined 2 Replies Last reply Reply Quote 0
                • OwenDundefined
                  OwenD @dc42
                  last edited by

                  @dc42 The last time I posted my config it was
                  M307 H0 A421.6 C860.4 D14.2 S1.00 V24.0 B0
                  I doubt I would have changed it since them until the new algorithm was introduced.

                  OwenDundefined 1 Reply Last reply Reply Quote 0
                  • sozkanundefined
                    sozkan @dc42
                    last edited by

                    @dc42
                    Dear David,
                    Many thanks, I have finally Archived to print without problem for more than an hour. I will share the m307 values and printing the video later ( because it is saved on the device).

                    The parameter set to M570 S180 and different
                    reduced PWM and delay rates for each heater.

                    Since the Typhoon hot end carries two different power capacity rates on the same block and with two sensors individually sensing the temperature, and the auto tunning did not help, I had to play hundreds of times with parameters manually to get them synced on the same temperature.

                    However, reducing the PWM by more than half will reduce the print rate. Normally it is rated 1 kg/hour capacity hot-end.

                    1 Reply Last reply Reply Quote 0
                    • OwenDundefined
                      OwenD @OwenD
                      last edited by

                      @OwenD said in New heater tuning algorithm:

                      @dc42 The last time I posted my config it was
                      M307 H0 A421.6 C860.4 D14.2 S1.00 V24.0 B0
                      I doubt I would have changed it since them until the new algorithm was introduced.

                      Penny may have just dropped.
                      It looks like the M307 returned by the auto-tune didn't include B0, so I presume it will default to bang bang thereafter.
                      Retrying now with B0 added.

                      OwenDundefined 1 Reply Last reply Reply Quote 0
                      • OwenDundefined
                        OwenD @OwenD
                        last edited by OwenD

                        @OwenD said in New heater tuning algorithm:

                        @OwenD said in New heater tuning algorithm:

                        @dc42 The last time I posted my config it was
                        M307 H0 A421.6 C860.4 D14.2 S1.00 V24.0 B0
                        I doubt I would have changed it since them until the new algorithm was introduced.

                        Penny may have just dropped.
                        It looks like the M307 returned by the auto-tune didn't include B0, so I presume it will default to bang bang thereafter.
                        Retrying now with B0 added.

                        @dc42
                        Can confirm that the problem was the loss of the B0 parameter after running PID auto tune with the new algorithm.
                        The temp is now stable at 100C +/- 0.2-0.3

                        Edit: Using M500 puts the B0 parameter into the new M307 settings, but the recommendation in the console at the end of tuning doesn't. I had copied and pasted the latter M307 recommendation.

                        1 Reply Last reply Reply Quote 2
                        • 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
                                            • First post
                                              Last post
                                            Unless otherwise noted, all forum content is licensed under CC-BY-SA