Extruder heating tuner failed to reach set temp
-
I am in the process of testing and tuning my Hemra V6 hotend from E3D on my custom core xy tool changer 3d printer. I've connected the hot end and its respective thermistor but I am unable to tune it successfully. I have been following this guide: https://docs.duet3d.com/User_manual/Connecting_hardware/Heaters_tuning but the steps in recommends to resolve the M303 command failing have not been working for me. I have not touched the P value (its at max) and I have tried many values for the D (dead time value). With default values the hot end doesn't even reach 150C before it auto cancels the tuning with the error that it failed to hit the specifies temp. I've increased the D value all the way up to 80 and that only made the hotend get to barely above 150C before it again failed. (the max temp of my hotend is 300C)
Here is the entirety of my config.g file:
; Configuration file for RepRapFirmware on Duet 3 Main Board 6HC ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.5.0-rc.3 on Fri Mar 15 2024 11:41:50 GMT-0400 (Eastern Daylight Time) ; General M550 P"Duet 3" ; set hostname ; Accessories M575 P1 S0 B57600 ; configure PanelDue support ; Network M552 P0.0.0.0 S1 ; configure Ethernet adapter M586 P0 S1 ; configure HTTP ; Smart Drivers M569 P0.0 S1 D2 ; driver 0.0 goes forwards (X axis) M915 P0.0 S1 ; set StallGuard threshold M569 P0.1 S0 D2 ; driver 0.1 goes forwards (Y axis) M915 P0.1 S1 ; set StallGuard threshold M569 P0.2 S1 D2 ; driver 0.2 goes forwards (Z axis) M915 P0.2 S1 ; set StallGuard threshold M569 P0.4 S1 D2 ; driver 0.4 goes forwards (U axis) M569 P0.5 S1 D2 ; driver 0.5 goes forwards (extruder 0) ; Motor Idle Current Reduction M906 I10 ; set motor current idle factor M84 S10 ; set motor current idle timeout ; Axes M584 X0.0 Y0.1 Z0.2 U0.4 ; set axis mapping M350 U16 I0 ; configure microstepping without interpolation M350 X16 Y16 Z16 I1 ; configure microstepping with interpolation M906 X900 Y900 Z900 U0 ; set axis driver currents M92 X160 Y160 Z400 U80 ; configure steps per mm M208 X0:300 Y0:300 Z0:300 U0:200 ; set minimum and maximum axis limits M566 X900 Y900 Z12 U900 ; set maximum instantaneous speed changes (mm/min) M203 X9000 Y9000 Z180 U6000 ; set maximum speeds (mm/min) M201 X600 Y600 Z20 U5 ; set accelerations (mm/s^2) ; Extruders M584 E0.5 ; set extruder mapping M350 E16 I1 ; configure microstepping with interpolation M906 E900 ; set extruder driver currents M92 E420 ; configure steps per mm M566 E120 ; set maximum instantaneous speed changes (mm/min) M203 E3600 ; set maximum speeds (mm/min) M201 E250 ; set accelerations (mm/s^2) ; Kinematics M669 K1 ; configure CoreXYU kinematics ; Probes M558 K0 P9 C"io2.in" H5 F120 T6000 ; configure BLTouch probe via slot #0 G31 P500 X0 Y0 Z0.7 ; set Z probe trigger value, offset and trigger height M950 S0 C"io2.out" ; create servo #0 for BLtouch ; Endstops M574 X1 S3 ; configure X axis endstop M574 Y1 S3 ; configure Y axis endstop M574 Z1 S2 ; configure Z axis endstop M574 U0 ; configure U axis endstop M915 X Y R0 F0 H400; manually added for sensorless homing ; Mesh Bed Compensation M557 X25:175 Y25:175 S40:40 ; define grid for mesh bed compensation ; 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"Nozzle" T100000 B4725 C7.06e-8 ; configure sensor #1 ; Heaters M950 H0 C"out0" T0 ; create heater #0 M143 H0 P0 T0 C0 S140 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 S300 A0 ; configure heater monitor #0 for heater #1 M307 H1 R2.43 D5.5 E1.35 K0.56 B0 ; configure model of heater #1 ; Heated beds M140 P0 H0 ; configure heated bed #0 ; Fans M950 F0 C"out3" ; create fan #0 M106 P0 S0 L0 X1 B0.1 ; configure fan #0 M950 F1 C"out4" ; create fan #1 M106 P1 S0 B0.1 H1 T45 ; configure fan #1 ; Tools M563 P0 D0 H1 F0 ; create tool #0 M568 P0 R0 S0 ; set initial tool #0 active and standby temperatures to 0C
Note that I currently only have my alpha and beta motors plugged in along with my hotend and thermistor so many other firmware values are default and have not been tuned yet.
Please let me know what suggestions you might have for values to change and/ or things to test. Thank you for your help.
Sam
-
Update: I tried running M303 H1 S125 (because it has reliably hit 125C) and it returned:
Warning: heater behaviour was not consistent during tuning
Auto tuning heater 1 completed after 3 idle and 25 tuning cycles in 1450 seconds. This heater needs the following M307 command:
M307 H1 R1.491 K0.895:0.000 D5.05 E1.35 S1.00 B0 V24.1
Edit the M307 H1 command in config.g to match this. Omit the V parameter if the heater is not powered from VIN.Do these values look reasonable? Is it likely that I have a faulty heater due to the fact that it can not hit anywhere near its max temp of 300C?
I also tried preheating the nozzle using the web interface and this time the nozzle hit 170C. It continued to still go up after this point but it was taking almost a minute to go up one degree C.
-
@SamKudarauskas I'd say if the heater is struggling to get past 170C, there's something wrong with the heater cartridge. I assume you're running it on 24V? If possible, use a multimeter to check the resistance of the heater. E3D heaters are usually either 12V or 24V, and either 30W or 40W, so:
12V 40W = 3.6 ohms
12V 30W = 4.8ohms
24V 40W = 14.4ohms
24V 30W = 19.2 ohmsRunning a 12V heater cartridge at 24V would give a dangerously fast heating rate, so I doubt that's the problem. Running a 24V heater at 12V would severely limit the power output, and how hot it could get.
If the heater cartridge gives a sensible resistance, check the wiring for poor connections.
Ian
-
@droftarts Thank you for your help. It is the 24V 30W heater cartridge. I measured 19.7 ohms (so I presume it is fine?). Is it possible that I am only sending it 12V instead of 24V? If so, how could I check this and fix it?
I inspected the wires and all the connections appear fine to me.
Sam
-
Can you send M122 in the gcode console and report the results here? It will show the input voltage.
-
@Phaedrux Here is the results from M122
M122
=== Diagnostics ===
RepRapFirmware for Duet 3 MB6HC version 3.5.0-rc.3 (2024-01-24 17:58:49) running on Duet 3 MB6HC v1.02 or later (standalone mode)
Board ID: 08DJM-9P63L-DJ3S0-7J1FJ-3SN6P-TSMZA
Used output buffers: 3 of 40 (18 max)
=== RTOS ===
Static ram: 155184
Dynamic ram: 120916 of which 732 recycled
Never used RAM 69160, free system stack 214 words
Tasks: NETWORK(1,ready,40.3%,148) ETHERNET(5,nWait 7,0.2%,565) HEAT(3,nWait 1,0.0%,341) Move(4,nWait 6,0.0%,336) CanReceiv(6,nWait 1,0.0%,940) CanSender(5,nWait 7,0.0%,334) CanClock(7,delaying,0.0%,338) TMC(4,nWait 6,8.6%,56) MAIN(1,running,49.8%,103) IDLE(0,ready,1.1%,30), total 100.0%
Owned mutexes:
=== Platform ===
Last reset 00:00:09 ago, cause: software
Last software reset at 2024-03-22 09:13, reason: User, Gcodes spinning, available RAM 66304, slot 1
Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00400000 BFAR 0x00000000 SP 0x00000000 Task MAIN Freestk 0 n/a
Error status: 0x00
Aux0 errors 0,0,0
MCU temperature: min 32.2, current 32.7, max 32.7
Supply voltage: min 24.1, current 24.1, max 24.2, under voltage events: 0, over voltage events: 0, power good: yes
12V rail voltage: min 12.1, current 12.2, max 12.3, under voltage events: 0
Heap OK, handles allocated/used 0/0, heap memory allocated/used/recyclable 0/0/0, gc cycles 0
Events: 0 queued, 0 completed
Driver 0: standstill, SG min n/a, mspos 8, reads 51073, writes 19 timeouts 0
Driver 1: standstill, SG min n/a, mspos 8, reads 51074, writes 19 timeouts 0
Driver 2: standstill, SG min n/a, mspos 8, reads 51076, writes 17 timeouts 0
Driver 3: standstill, SG min n/a, mspos 8, reads 51082, writes 11 timeouts 0
Driver 4: standstill, SG min n/a, mspos 8, reads 51077, writes 16 timeouts 0
Driver 5: standstill, SG min n/a, mspos 8, reads 51077, writes 16 timeouts 0
Date/time: 2024-03-22 09:13:52
Slowest loop: 3.99ms; fastest: 0.07ms
=== Storage ===
Free file entries: 20
SD card 0 detected, interface speed: 25.0MBytes/sec
SD card longest read time 3.5ms, write time 0.0ms, max retries 0
=== Move ===
DMs created 125, segments created 0, maxWait 0ms, bed compensation in use: none, height map offset 0.000, max steps late 0, ebfmin 0.00, ebfmax 0.00
no step interrupt scheduled
Moves shaped first try 0, on retry 0, too short 0, wrong shape 0, maybepossible 0
=== DDARing 0 ===
Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
=== DDARing 1 ===
Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
=== Heat ===
Bed heaters 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0
=== GCodes ===
Movement locks held by null, null
HTTP is idle in state(s) 0
Telnet is idle in state(s) 0
File is idle in state(s) 0
USB is idle in state(s) 0
Aux is idle in state(s) 0
Trigger is idle in state(s) 0
Queue is idle in state(s) 0
LCD is idle in state(s) 0
SBC is idle in state(s) 0
Daemon is idle in state(s) 0
Aux2 is idle in state(s) 0
Autopause is idle in state(s) 0
File2 is idle in state(s) 0
Queue2 is idle in state(s) 0
Q0 segments left 0, axes/extruders owned 0x0000000
Code queue 0 is empty
Q1 segments left 0, axes/extruders owned 0x0000000
Code queue 1 is empty
=== CAN ===
Messages queued 83, received 0, lost 0, errs 44130, boc 0
Longest wait 0ms for reply type 0, peak Tx sync delay 0, free buffers 50 (min 50), ts 47/0/0
Tx timeouts 0,0,46,0,0,35 last cancelled message type 30 dest 127
=== Network ===
Slowest loop: 5.46ms; fastest: 0.03ms
Responder states: MQTT(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) Telnet(0)
HTTP sessions: 1 of 8
= Ethernet =
Interface state: active
Error counts: 0 0 0 1 0 0
Socket states: 5 2 2 2 2 0 0 0
=== WiFi ===
Interface state: disabled
Module is disabled
Failed messages: pending 0, notrdy 0, noresp 0
Socket states: 0 0 0 0 0 0 0 0
=== Multicast handler ===
Responder is inactive, messages received 0, responses 0I also tried a out2 instead of out1 and it didn't change anything.
-
Is your hotend assembled correctly? Perhaps the hot block is making contact with the headsink.