E3D Toolchanger Heater Set to 0 Mid print
-
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