• Tags
  • Documentation
  • Order
  • Register
  • Login
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.
  • undefined
    Corexy
    last edited by 25 Aug 2020, 07:46

    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

    undefined 1 Reply Last reply 25 Aug 2020, 07:56 Reply Quote 0
    • undefined
      deckingman @Corexy
      last edited by 25 Aug 2020, 07:56

      @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

      undefined 1 Reply Last reply 25 Aug 2020, 08:18 Reply Quote 0
      • undefined
        Corexy @deckingman
        last edited by Corexy 25 Aug 2020, 08:18

        @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

        undefined 1 Reply Last reply 25 Aug 2020, 08:41 Reply Quote 0
        • undefined
          dc42 administrators @Corexy
          last edited by 25 Aug 2020, 08:41

          @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

          undefined 1 Reply Last reply 25 Aug 2020, 08:45 Reply Quote 0
          • undefined
            Corexy @dc42
            last edited by 25 Aug 2020, 08:45

            @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
            • undefined
              Corexy
              last edited by Corexy 25 Aug 2020, 08:53

              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

              undefined 1 Reply Last reply 25 Aug 2020, 09:54 Reply Quote 0
              • undefined
                DIY-O-Sphere @Corexy
                last edited by DIY-O-Sphere 25 Aug 2020, 09:54

                @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
                • undefined
                  dc42 administrators
                  last edited by 25 Aug 2020, 09:56

                  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
                  • undefined
                    Corexy
                    last edited by 25 Aug 2020, 20:18

                    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.

                    undefined 1 Reply Last reply 25 Aug 2020, 22:06 Reply Quote 0
                    • undefined
                      Phaedrux Moderator
                      last edited by 25 Aug 2020, 22:00

                      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
                      • undefined
                        deckingman @Corexy
                        last edited by 25 Aug 2020, 22:06

                        @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
                        7 out of 11
                        • First post
                          7/11
                          Last post
                        Unless otherwise noted, all forum content is licensed under CC-BY-SA