PID autotuning for customized extruder
-
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
-
@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 -
@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:55Here`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
-
@jocanetto can you provide the full M303 command you're using as there are 2 ways to tune a heater
-
@jocanetto will the 3 different stages of your tool be set to different temperatures or will they all be set to the same temperature?
-
@jay_s_uk I`m sending M303 T0 S50
-
@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.
-
@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
-
@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!
-
@jocanetto try increasing the M307 D parameter for that heater before you send the M303 command.
-
@dc42 thanks it all worked.
Problem solved. -
-