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

    PID autotuning for customized extruder

    Scheduled Pinned Locked Moved Solved
    Tuning and tweaking
    3
    11
    296
    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.
    • jocanettoundefined
      jocanetto
      last edited by

      Hello,

      I'm trying to perform PID autotuning for a custom extruder, but I keep encountering the following error:

      "Autotune cancelled because temperature is not increasing."

      The setup is a custom screw-based extruder with a stainless steel barrel. I have 3 heating zones along the barrel, positioned from the feeding port to the nozzle. Each zone is heated by two 24V 40W cartridges wired in parallel. The heating cartridges are mounted in aluminum blocks, which are placed around the stainless steel barrel.

      For temperature sensing, I'm using Semitec 104NT thermistors placed directly in the stainless steel barrel, instead of the aluminum blocks, to get a more accurate reading of the temperature where the polymer will be processed.

      I understand that the system will take longer to heat up, and that’s not an issue. The main problem is that I’m unable to complete the PID autotuning process.

      I've already tried reducing the heating rate and lowering the maximum PWM. After doing this, the heaters stayed on a bit longer, but still turned off after a while.

      Here is my setup info:

      • Controller: DUET 6HC
      • Firmware: RepRapFirmware Configuration Tool v3.5.4

      Does anyone have any suggestions on how to resolve this?

      M950 H1 C"out1" T1 ; create heater #1
      M143 H1 P0 T1 C0 S285 A0 ; configure heater monitor #0 for heater #1 (max temp, generate fault)
      M307 H1 R0.01 D100 E1.35 K0.56 B0 S0.05; configure model of heater #1
      M950 H2 C"out2" T2 ; create heater #2
      M143 H2 P0 T1 C0 S285 A0 ; configure heater monitor #0 for heater #2 (max temp, generate fault)
      M307 H2 R0.01 D100 E1.35 K0.56 B0 S0.05; configure model of heater #2
      M950 H3 C"out3" T3 ; create heater #3
      M143 H3 P0 T1 C0 S285 A0 ; configure heater monitor #0 for heater #3 (max temp, generate fault)
      M307 H3 R0.01 D100 E1.35 K0.56 B0 S0.05; configure model of heater #3
      
      jay_s_ukundefined 1 Reply Last reply Reply Quote 0
      • jay_s_ukundefined
        jay_s_uk @jocanetto
        last edited by jay_s_uk

        @jocanetto what command are you sending?
        also post your full config so we can see how your tools are setup
        There also is no firmware 3.5.4. Please post an output of M115

        Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

        jocanettoundefined 1 Reply Last reply Reply Quote 0
        • jocanettoundefined
          jocanetto @jay_s_uk
          last edited by

          @jay_s_uk Hi, thanks

          I`m sending the M303 command.
          M115 output:
          FIRMWARE_NAME: RepRapFirmware for Duet 3 MB6HC FIRMWARE_VERSION: 3.5.1 ELECTRONICS: Duet 3 MB6HC v1.02 or later FIRMWARE_DATE: 2024-04-19 14:30:55

          Here`s the full config:

          ; Configuration file for RepRapFirmware on Duet 3 Main Board 6HC
          ; executed by the firmware on start-up
          ;
          ; generated by RepRapFirmware Configuration Tool v3.5.4 on Fri Jul 12 2024 10:28:49 GMT+0100 (Hora de verão da Europa Ocidental)
          
          ; General
          G90 ; absolute coordinates
          M83 ; relative extruder moves
          M550 P"Co-TSE 3D Printer" ; set hostname
          
          ; Network
          M551 P"311090" ; set machine password
          M552 P0.0.0.0 S1 ; configure Ethernet adapter
          M586 P0 S1 ; configure HTTP
          
          ; Smart Drivers
          M569 P0.0 S0 D2 ; driver 0.0 goes backwards (X axis)
          M569 P0.1 S0 D2 ; driver 0.1 goes backwards (Y axis)
          M569 P0.2 S1 D2 ; driver 0.2 goes forwards (extruder 0)
          M569 P0.3 S1 D2 ; driver 0.3 goes forwards (extruder 1)
          M569 P0.4 S1 D2 ; driver 0.4 goes forwards (Z axis)
          M569 P0.5 S1 D2 ; driver 0.5 goes forwards (Z axis)
          
          ; Motor Idle Current Reduction
          M906 I30 ; set motor current idle factor
          M84 S30 ; set motor current idle timeout
          
          ; Axes
          M584 X0.0 Y0.1 Z0.4:0.5 ; set axis mapping
          M350 X16 Y16 Z16 I1 ; configure microstepping with interpolation
          M906 X800 Y800 Z800 ; set axis driver currents
          M92 X80 Y80 Z400 ; configure steps per mm
          M208 X0:160 Y0:115 Z0:40 ; set minimum and maximum axis limits
          M566 X900 Y900 Z12 ; set maximum instantaneous speed changes (mm/min)
          M203 X6000 Y6000 Z180 ; set maximum speeds (mm/min)
          M201 X500 Y500 Z20 ; set accelerations (mm/s^2)
          
          ; Extruders
          M584 E0.2:0.3 ; set extruder mapping
          M350 E16:16 I1 ; configure microstepping with interpolation
          M906 E1000:1000 ; set extruder driver currents
          M92 E420:420 ; configure steps per mm
          M566 E120:120 ; set maximum instantaneous speed changes (mm/min)
          M203 E3600:3600 ; set maximum speeds (mm/min)
          M201 E250:250 ; set accelerations (mm/s^2)
          
          ; Kinematics
          M669 K1 ; configure CoreXY kinematics
          
          ; Endstops
          M574 X2 P"io0.in" S1 ; configure X axis endstop
          M574 Y2 P"io1.in" S1 ; configure Y axis endstop
          M574 Z2 P"io4.in" S1 ; configure Z axis endstop
          
          ; Sensors
          M308 S0 P"temp0" Y"thermistor" A"Heated Bed" T100000 B4725 C7.06e-8 ; configure sensor #0
          
          
          M308 S1 P"temp1" Y"thermistor" A"Die" T100000 B4267 C7.06e-8 ; configure sensor #1
          M308 S2 P"temp2" Y"thermistor" A"Knead" T100000 B4267 C7.06e-8 ; configure sensor #2
          M308 S3 P"temp3" Y"thermistor" A"Feed" T100000 B4267 C7.06e-8 ; configure sensor #3
          
          ; Heaters
          M950 H0 C"out0" T0 ; create heater #0
          M143 H0 P0 T0 C0 S100 A0 ; configure heater monitor #0 for heater #0
          M307 H0 R2.43 D5.5 E1.35 K0.56 B1 ; configure model of heater #0
          
          
          M950 H1 C"out1" T1 ; create heater #1
          M143 H1 P0 T1 C0 S285 A0 ; configure heater monitor #0 for heater #1 (max temp, generate fault)
          M307 H1 R0.01 D100 E1.35 K0.56 B0 S0.05; configure model of heater #1
          M950 H2 C"out2" T2 ; create heater #2
          M143 H2 P0 T1 C0 S285 A0 ; configure heater monitor #0 for heater #2 (max temp, generate fault)
          M307 H2 R0.01 D100 E1.35 K0.56 B0 S0.05; configure model of heater #2
          M950 H3 C"out3" T3 ; create heater #3
          M143 H3 P0 T1 C0 S285 A0 ; configure heater monitor #0 for heater #3 (max temp, generate fault)
          M307 H3 R0.01 D100 E1.35 K0.56 B0 S0.05; configure model of heater #3
          
          ; Heated beds
          M140 P0 H0 ; configure heated bed #0
          
          ; Tools
          M563 P0 S"Feed" D0 H3 ; create tool #0
          M568 P0 R0 S0 ; set initial tool #0 active and standby temperatures to 0C
          M563 P1 S"Knead" D1 H2 ; create tool #1
          M568 P1 R0 S0 ; set initial tool #0 active and standby temperatures to 0C
          M563 P2 S"Die" D1 H1 ; create tool #1
          M568 P2 R0 S0 ; set initial tool #0 active and standby temperatures to 0C
          
          
          ; Miscellaneous
          M501 ; load saved parameters from non-volatile memory
          
          
          jay_s_ukundefined 2 Replies Last reply Reply Quote 0
          • jay_s_ukundefined
            jay_s_uk @jocanetto
            last edited by

            @jocanetto can you provide the full M303 command you're using as there are 2 ways to tune a heater

            Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

            jocanettoundefined 2 Replies Last reply Reply Quote 0
            • jay_s_ukundefined
              jay_s_uk @jocanetto
              last edited by

              @jocanetto will the 3 different stages of your tool be set to different temperatures or will they all be set to the same temperature?

              Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

              1 Reply Last reply Reply Quote 0
              • jocanettoundefined
                jocanetto @jay_s_uk
                last edited by

                @jay_s_uk I`m sending M303 T0 S50

                1 Reply Last reply Reply Quote 0
                • jocanettoundefined
                  jocanetto @jay_s_uk
                  last edited by

                  @jay_s_uk ideally different temperatures, like 180°C in the upper zone, 200°C in the intermediary zone, and 220°C in the final lower zone.

                  jay_s_ukundefined 1 Reply Last reply Reply Quote 0
                  • jay_s_ukundefined
                    jay_s_uk @jocanetto
                    last edited by

                    @jocanetto i think the problem you may have is that your trying to tune one area of the tool, when its got the mass and heating capability of 3 tools in one.
                    It may make sense to create a 4th tool and tune that to the median temperature
                    e.g.

                    M563 P3 S"tuning" D1 H1:2:3
                    

                    i'm not sure whether the knead/feed will be affected by temperature bleed from the die if its set to a higher temperature

                    Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

                    jocanettoundefined 1 Reply Last reply Reply Quote 0
                    • jocanettoundefined
                      jocanetto @jay_s_uk
                      last edited by

                      @jay_s_uk Great point! Fortunately, the barrel is modular, so I can disassemble it and perform PID tuning for each section individually. I'll update you soon on whether it works. Thanks again!

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

                        @jocanetto try increasing the M307 D parameter for that heater before you send the M303 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

                        jocanettoundefined 1 Reply Last reply Reply Quote 0
                        • jocanettoundefined
                          jocanetto @dc42
                          last edited by

                          @dc42 thanks it all worked.
                          Problem solved.

                          1 Reply Last reply Reply Quote 0
                          • Phaedruxundefined Phaedrux marked this topic as a question
                          • Phaedruxundefined Phaedrux has marked this topic as solved
                          • First post
                            Last post
                          Unless otherwise noted, all forum content is licensed under CC-BY-SA