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

    PID Controlled Heated Bed

    Scheduled Pinned Locked Moved
    Tuning and tweaking
    5
    11
    499
    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.
    • Corexyundefined
      Corexy
      last edited by

      After messing around with my Z axis a bit on my old printer, I remembered my bed might still be set for bang bang control as I had initially set it up, meaning to get back to it later. It has the original Keenovo thermistor.

      My hot end is definitely set up for PID, but it's using a 4 wire PT100. I've just upped the temp limit to 350degC, as I've got a new Microswiss all metal hot end in there and want to print some PC a bit hotter.

      Here's the heater section in my config.g (firmware 2.05):

      ; Heaters
      M143 S350 ; Set maximum extruder temperature to 350C
      M143 H0 S140 ; Set maximum bed temperature to 140C
      M305 P0 T100000 B4000 C0 R4700 L0 H0 ; Set thermistor + ADC parameters for heater 0
      M305 P1 X200 ; Set thermistor + ADC parameters for heater 1 and remap it to channel 200
      M307 H0 A144.9 C625.3 D1.0 B0
      M307 H1 A892.1 C396.5 D6.4 V24.3 B0

      H1 the hot end, H0 the bed.

      Can/should I change the bed to PID? I do get a bit of Z banding, and the printer can be a little "bindy". I hoped it might help.

      Once again I'm stuck at the wiki, as it seems things might have moved on from what I set up 4 years ago.

      All help is appreciated thanks

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

        @Corexy Hi Mate,

        Looks like you are already using PID on the bed because the "B" parameter for H0 (the bed heater) is set to 0. For Bang-Bang you'd use B1.

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

        Corexyundefined 1 Reply Last reply Reply Quote 0
        • Corexyundefined
          Corexy @deckingman
          last edited by Corexy

          @deckingman said in PID Controlled Heated Bed:

          @Corexy Hi Mate,

          Looks like you are already using PID on the bed because the "B" parameter for H0 (the bed heater) is set to 0. For Bang-Bang you'd use B1.

          True?! Cheers Ian.

          So I'll just run up the PID tuning via M303? I'm wondering how any residual plastic in my nozzle will handle 350 degC? I'll unload the filament at least.

          While I'm waiting for the hot end to cool, I'm running the bed test (M303 H1 S240). But I've left these as is for now, is that correct?

          M307 H0 A144.9 C625.3 D1.0 B0

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

            @Corexy said in PID Controlled Heated Bed:

            While I'm waiting for the hot end to cool, I'm running the bed test (M303 H1 S240). But I've left these as is for now, is that correct?
            M307 H0 A144.9 C625.3 D1.0 B0

            The D1.0 value looks rather low for a bed heater, but not impossible for a silicone heater with the thermistor embedded within it. Is the bed temperature stable, or oscillating?

            The A and C values look reasonable.

            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

            Corexyundefined 1 Reply Last reply Reply Quote 0
            • Corexyundefined
              Corexy @dc42
              last edited by

              @dc42 said in PID Controlled Heated Bed:

              @Corexy said in PID Controlled Heated Bed:

              While I'm waiting for the hot end to cool, I'm running the bed test (M303 H1 S240). But I've left these as is for now, is that correct?
              M307 H0 A144.9 C625.3 D1.0 B0

              The D1.0 value looks rather low for a bed heater, but not impossible for a silicone heater with the thermistor embedded within it. Is the bed temperature stable, or oscillating?

              The A and C values look reasonable.

              It's always been pretty solid to be honest. I've been chasing a bit of Z banding from the start when I built it, but it's starting to look like it might be mechanical.

              I'm running M307 H0 S140 on the bed right now, so my understanding is that I run M307 H0 to see the test results, then M500 to save them in the config.g?

              1 Reply Last reply Reply Quote 0
              • Corexyundefined
                Corexy
                last edited by Corexy

                This is what I got:

                M307 H0
                Heater 0 model: gain 149.3, time constant 841.4, dead time 0.4, max PWM 1.00, calibration voltage 23.6, mode PID, inverted no, frequency default
                Computed PID parameters for setpoint change: P2289.7, I119.068, D704.4
                Computed PID parameters for load change:

                M307 H1
                Heater 1 model: gain 589.7, time constant 308.5, dead time 4.4, max PWM 1.00, calibration voltage 23.9, mode PID, inverted no, frequency default
                Computed PID parameters for setpoint change: P21.0, I0.568, D65.4
                Computed PID parameters for load change: P21.

                It would seem that M500 didn't work?

                M500
                Warning: No M501 command was executed in config.g

                DIY-O-Sphereundefined 1 Reply Last reply Reply Quote 0
                • DIY-O-Sphereundefined
                  DIY-O-Sphere @Corexy
                  last edited by DIY-O-Sphere

                  @Corexy
                  The parameters are stored to config-override.g
                  But you have to put a M501 at the end of config.g to read them.

                  Edit:
                  https://duet3d.dozuki.com/Wiki/Gcode#Section_M500_Store_parameters

                  (UTC+1)

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

                    Alternatively, copy the new M307 parameters to your M307 command in config.g.

                    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
                    • Corexyundefined
                      Corexy
                      last edited by

                      M307 H0
                      Heater 0 model: gain 149.3, time constant 841.4, dead time 0.4, max PWM 1.00, calibration voltage 23.6, mode PID, inverted no, frequency default Computed PID parameters for setpoint change: P2289.7, I119.068, D704.4 Computed PID parameters for load change:

                      M307 H1
                      Heater 1 model: gain 589.7, time constant 308.5, dead time 4.4, max PWM 1.00, calibration voltage 23.9, mode PID, inverted no, frequency default Computed PID parameters for setpoint change: P21.0, I0.568, D65.4 Computed PID parameters for load change: P21.

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

                        It's easiest to save with M500 and then copy the actual parameter line from there rather than trying to reconstitute it from the text read out, or just add M501 to the end of config.g.

                        Z-Bot CoreXY Build | Thingiverse Profile

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

                          @Corexy said in PID Controlled Heated Bed:

                          M307 H0
                          Heater 0 model: gain 149.3, time constant 841.4, dead time 0.4, max PWM 1.00, calibration voltage 23.6, mode PID, inverted no, frequency default Computed PID parameters for setpoint change: P2289.7, I119.068, D704.4 Computed PID parameters for load change:

                          M307 H1
                          Heater 1 model: gain 589.7, time constant 308.5, dead time 4.4, max PWM 1.00, calibration voltage 23.9, mode PID, inverted no, frequency default Computed PID parameters for setpoint change: P21.0, I0.568, D65.4 Computed PID parameters for load change: P21.

                          Or............ A=gain, C= time Constant, D=Dead Time and optionally, S = PWM V=voltage. So M307 for heater 1 would be
                          M307 H1 A589.7 C308.5 D4.4 S1.0 V23.9 B0

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

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