Hi All,
Last year I received an E3D toolchanger from a friend. Recently I've been having an issue where the current tool heater setpoint will be set to 0 after a little under 4hrs of printing. The printer will continue trying to print but extrusion will stop once the hotend temp reaches below extrusion minimum temp.
Its not a timeout. The heater setpoint itself is being set to 0. Like the actual temperature target.
It is not a heater error, there are no errors in the logs, the heater is still shown as 'active' in the web control UI, and it continues to print.
I have PID tuned the heater multiple times, no change
I have power cycled the printer before printing, no change (still is set to 0 after ~4hrs of printing)
This is the Gcode file I was printing. I use OrcaSlicer. Please note I had the feedrate machine side set to 90%, so it took longer than the estimate.
It set the heater to 0 about 3hrs/53min into the print, between layer 312 and 315.
obj_1_rotator cube 3.STL_CookieCAD_PLA_3h35m.gcode
Troubleshooting goals:
upload a photo of the temperature graph showing setpoint and temp drop
test another slicer to see if issue is replicated
Thank you.
Config:
; Configuration file for Duet WiFi / Ethernet running RRF3 on E3D Tool Changer
; executed by the firmware on start-up
; General preferences
M111 S0 ; Debugging off
G21 ; Work in millimetres
G90 ; Send absolute coordinates...
M83 ; ...but relative extruder moves
M667 S1 ; Select CoreXY mode
; Network
M550 P"ToolChanger" ; Set machine name
M587 S"****" P"****" ; WiFi Settings
M552 S1 P"****" ; Enable WiFi Networking
M552 S1 ; Enable Networking
M586 P0 S1 ; Enable HTTP
M586 P1 S1 ; Enable FTP
M586 P2 S0 ; Disable Telnet
; Drive direction
M569 P0 S0 ; Drive 0 X
M569 P1 S0 ; Drive 1 Y
M569 P2 S1 ; Drive 2 Z
M569 P3 S0 ; Drive 3 E0
M569 P4 S1 ; Drive 4 E1
M569 P5 S1 ; Drive 5 E2
M569 P6 S1 ; Drive 6 E3
M569 P7 S0 ; Drive 7 COUPLER
M569 P8 S0 ; Drive 8 Pebble Wiper
M569 P9 S0 ; Drive 9 UNUSED
M584 X0 Y1 Z2 C7 E3:4:6:5 A8 ; Apply custom drive mapping
M208 X-35:328.5 Y-49:243 Z0:300 C-45:360 A0:55 ; Set axis maxima & minima
M92 X100 Y100 Z800 C91.022 E409:409:409:409 A360 ; Set steps per mm assuming x16 microstepping
M350 E16:16:16:16 A16 I1 ; Configure microstepping with interpolation
M350 C16 I0 ; Configure microstepping without interpolation
M350 X16 Y16 Z16 I1 ; Configure microstepping with interpolation
M566 X300 Y300 Z100 C2 E300:300:300:300 ; Set maximum instantaneous speed changes (mm/min)
M203 X30000 Y30000 Z2000 C5000 E5000:5000:5000:5000 ; Set maximum speeds (mm/min)
M201 X3000 Y3000 Z1000 C500 E5000:5000:5000:5000 ; Set accelerations (mm/s^2)
M906 X2000 Y2000 Z1330 I30 ; Idle motion motors to 30%
M906 E1200:1200:1200:1200 C500 I10 ; Idle extruder motors to 10%
; Pebble Wiper
M566 A360 ; Set maximum instantaneous speed changes (mm/min)
M201 A1200 ; Set accelerations (mm/s^2)
M203 A6000 ; Set maximum speeds (mm/min)
M906 A1000 I20 ; Set motor currents (mA) and idle percent
M574 A1 S2 ; Set A endstop stall detection (using Z probe)
M950 S1 C"duex.pwm4" Q333 ; Servo hooked up to PWM 4 header
; Endstops
M574 X1 Y1 S3 ; Set X / Y endstop stall detection
M574 C0 Z0 ; No C Z endstop
; Z probe
M558 P8 C"zstop" H3 F360 I0 T20000 ; Set Z probe type to switch, the axes for which it is used and the dive height + speeds
G31 P200 X0 Y0 Z0 ; Set Z probe trigger value, offset and trigger height
M557 X10:290 Y20:180 S40 ; Define mesh grid
;Stall Detection
M915 X Y S1 F0 H400 R2 ; X / Y Axes
; Heaters
M308 S0 P"e1temp" Y"thermistor" A"Bed" T100000 B4138 C0 ; Set thermistor
M950 H0 C"bedheat" T0 ; Bed heater
M307 H0 B0
M143 H0 S225 ; Set temperature limit for heater 0 to 225C
M140 H0 ; Bed heater is heater 0
M308 S1 P"e2temp" Y"thermistor" A"T0" T100000 B4658 C6.5338987554e-08 ; Set thermistor
M950 H1 C"e0heat" T1 ; Extruder 0 heater
M143 H1 S305 ; Set temperature limit for heater 1 to 300C
M307 H1 S0.8
M308 S2 P"e3temp" Y"thermistor" A"T1" T100000 B4658 C6.5338987554e-08 ; Set thermistor
M950 H2 C"e1heat" T2 ; Extruder 0 heater
M143 H2 S305 ; Set temperature limit for heater 2 to 300C
M308 S3 P"e4temp" Y"thermistor" A"T2" T100000 B4725 C7.060000e-8 ; Set thermistor
M950 H3 C"duex.e4heat" T3 ; Extruder 0 heater
M143 H3 S305 ; Set temperature limit for heater 3 to 300C
M308 S4 P"e6temp" Y"thermistor" A"T3" T100000 B4725 C7.060000e-8 ; Set thermistor
M950 H4 C"duex.e3heat" T4 ; Extruder 0 heater
M143 H4 S305 ; Set temperature limit for heater 4 to 300C
; Tools
M563 P0 S"T0" D0 H1 F2 ; Define tool 0
G10 P0 X0 Y0 Z0 ; Reset tool 0 axis offsets
G10 P0 R0 S0 ; Reset initial tool 0 active and standby temperatures to 0C
M563 P1 S"T1" D1 H2 F4 ; Define tool 1
G10 P1 X0 Y0 Z0 ; Reset tool 1 axis offsets
G10 P1 R0 S0 ; Reset initial tool 1 active and standby temperatures to 0C
M563 P2 S"T2" D2 H3 F6 ; Define tool 2
G10 P2 X0 Y0 Z0 ; Reset tool 2 axis offsets
G10 P2 R0 S0 ; Reset initial tool 2 active and standby temperatures to 0C
M563 P3 S"T3" D3 H4 F8 ; Define tool 3
G10 P3 X0 Y0 Z0 ; Reset tool 3 axis offsets
G10 P3 R0 S0 ; Reset initial tool 3 active and standby temperatures to 0C
; Fans
M950 F1 C"fan1"
M950 F2 C"fan2"
M950 F3 C"duex.fan3"
M950 F4 C"duex.fan4"
M950 F5 C"duex.fan5"
M950 F6 C"duex.fan6"
M950 F7 C"duex.fan7"
M950 F8 C"duex.fan8"
M106 P1 S255 H1 T70 ; T0 HE
M106 P2 S0 ; T0 PCF
M106 P3 S255 H2 T70 ; T1 HE
M106 P4 S0 ; T1 PCF
M106 P5 S255 H3 T70 ; T2 HE
M106 P6 S0 ; T2 PCF
M106 P7 S255 H4 T70 ; T3 HE
M106 P8 S0 ; T3 PCF
M376 H25 ; bed compensation taper height
; Tool offsets
; Z is negative because the nozzle is "Lower" than the Z axis switch
; If we want to move the nozzle closer to the bed, move Z toward zero
; If we want to move the nozzle away from the bed, move Z away from zero
G10 P0 X20.000 Y43.500 Z-8.45 ; T0
G10 P1 X20.430 Y43.190 Z-7.60 ; T1
G10 P2 X20.970 Y43.410 Z-7.9 ; T2
G10 P3 X20.070 Y43.530 Z-8.1 ; T3
; Pebble Wiper Offsets
G10 P0 A{tools[0].offsets[2]}
G10 P1 A{tools[1].offsets[2]}
G10 P2 A{tools[2].offsets[2]}
G10 P3 A{tools[3].offsets[2]}
M572 D0 S0.00 ; pressure advance T0
M572 D1 S0.00 ; pressure advance T1
M572 D2 S0.00 ; pressure advance T2
M572 D3 S0.00 ; pressure advance T3
G29 S2 ; disable mesh
T-1 ; deselect tools
;M955 P0 C"spi.cs4+spi.cs3" I42 ;configure accelorometer
M593 P"zvdd" F41 ; configure input shaper
; Global Variables - Needed for on the fly tool position adjustment
global T0_Pickup_X = -12.690
global T0_Pickup_Y = 227.600
global T1_Pickup_X = 77.210
global T1_Pickup_Y = 227.200
global T2_Pickup_X = 212.370
global T2_Pickup_Y = 226.550
global T3_Pickup_X = 301.590
global T3_Pickup_Y = 226.900
global primeAmount = 2.0
global tuneTools = false
M501 ; Load them overrides
M122:
=== Diagnostics ===
RepRapFirmware for Duet 2 WiFi/Ethernet version 3.4.5 (2022-11-30 19:36:12) running on Duet WiFi 1.02 or later + DueX5
Board ID: 0JD0M-9X6JA-JUNSW-6JKD4-3SJ6N-9VJRT
Used output buffers: 1 of 26 (20 max)
=== RTOS ===
Static ram: 23836
Dynamic ram: 79032 of which 12 recycled
Never used RAM 5264, free system stack 88 words
Tasks: NETWORK(notifyWait,2263.6%,211) HEAT(notifyWait,44.6%,308) Move(notifyWait,478.2%,282) DUEX(notifyWait,0.0%,24) MAIN(running,861.0%,408) IDLE(ready,6.8%,30), total 3654.3%
Owned mutexes: WiFi(NETWORK)
=== Platform ===
Last reset 26:45:36 ago, cause: software
Last software reset at 2025-03-14 13:52, reason: User, GCodes spinning, available RAM 4600, slot 2
Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0041f000 BFAR 0xe000ed38 SP 0x00000000 Task MAIN Freestk 0 n/a
Error status: 0x00
Step timer max interval 0
MCU temperature: min 31.3, current 33.6, max 42.8
Supply voltage: min 25.8, current 26.5, max 27.3, under voltage events: 0, over voltage events: 0, power good: yes
Heap OK, handles allocated/used 99/10, heap memory allocated/used/recyclable 2048/436/298, gc cycles 0
Events: 0 queued, 0 completed
Driver 0: standstill, SG min 0
Driver 1: standstill, SG min 0
Driver 2: standstill, SG min 0
Driver 3: standstill, SG min n/a
Driver 4: standstill, SG min n/a
Driver 5: standstill, SG min 0
Driver 6: standstill, SG min n/a
Driver 7: standstill, SG min 0
Driver 8: standstill, SG min 0
Driver 9: standstill, SG min n/a
Driver 10:
Driver 11:
Date/time: 2025-03-15 17:41:16
Cache data hit count 4294967295
Slowest loop: 195.17ms; fastest: 0.09ms
I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0
=== Storage ===
Free file entries: 9
SD card 0 detected, interface speed: 20.0MBytes/sec
SD card longest read time 23.1ms, write time 63.8ms, max retries 0
=== Move ===
DMs created 83, segments created 45, maxWait 503821ms, bed compensation in use: mesh, comp offset 0.000
=== MainDDARing ===
Scheduled moves 937457, completed 937457, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
=== AuxDDARing ===
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, chamber heaters -1 -1 -1 -1, ordering errs 0
Heater 0 is on, I-accum = 0.0
=== GCodes ===
Segments left: 0
Movement lock held by 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
Daemon is doing "G4 S10 " in state(s) 0 0, running macro
Autopause is idle in state(s) 0
Code queue is empty
=== DueX ===
Read count 1, 0.00 reads/min
=== Network ===
Slowest loop: 179.06ms; fastest: 0.00ms
Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0)
HTTP sessions: 1 of 8
= WiFi =
Network state is active
WiFi module is connected to access point
Failed messages: pending 0, notready 0, noresp 0
WiFi firmware version 1.27
WiFi MAC address 48:3f:da:a6:e2:b2
WiFi Vcc 3.38, reset reason Power up
WiFi flash size 2097152, free heap 21304
WiFi IP address 192.168.7.98
WiFi signal strength -45dBm, mode 802.11n, reconnections 0, sleep mode modem
Clock register 00002002
Socket states: 0 0 0 0 0 0 0 0
M98 P"config.g"
M98P"config.g"
HTTP is enabled on port 80
FTP is enabled on port 21
TELNET is disabled
Error: in file macro line 156 column 21: meta command: variable 'T0_Pickup_X' already exists