Heater fault only after homing
-
@deckingman I am reasonably certain it could not be a wiring issue, my post above should help give a better idea of what I'm dealing with specifically.
Included in this post is the M122 and home all file. I have not changed anything since using the machine yesterday, and it was working correctly before leaving work then.
Regarding the error, if I simply home the machine there is no error thrown -- the sensors all show "off" and read 2000*. If I make a heater active, and then home the machine I get the error attached at bottom.
M122 === Diagnostics === RepRapFirmware for Duet 2 WiFi/Ethernet version 2.05.1 running on Duet WiFi 1.02 or later + DueX2 Board ID: 08DLM-996RU-N8PS0-6JKF0-3SD6M-KUSZN Used output buffers: 3 of 24 (7 max) === RTOS === Static ram: 25712 Dynamic ram: 94164 of which 0 recycled Exception stack ram used: 400 Never used ram: 10796 Tasks: NETWORK(ready,764) HEAT(blocked,1152) DUEX(suspended,160) MAIN(running,3736) IDLE(ready,160) Owned mutexes: === Platform === Last reset 00:01:45 ago, cause: power up Last software reset at 2021-09-21 10:02, reason: User, spinning module GCodes, available RAM 10732 bytes (slot 3) Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0441f000 BFAR 0xe000ed38 SP 0xffffffff Task 0x4e49414d Error status: 0 Free file entries: 10 SD card 0 detected, interface speed: 20.0MBytes/sec SD card longest block write time: 0.0ms, max retries 0 MCU temperature: min 39.0, current 41.9, max 41.9 Supply voltage: min 24.0, current 24.2, max 24.4, under voltage events: 0, over voltage events: 0, power good: yes Driver 0: standstill, SG min/max 0/1023 Driver 1: standstill, SG min/max 0/1023 Driver 2: standstill, SG min/max 0/1023 Driver 3: standstill, SG min/max not available Driver 4: standstill, SG min/max 0/1023 Driver 5: standstill, SG min/max not available Driver 6: standstill, SG min/max not available Date/time: 2021-09-21 13:26:46 Cache data hit count 301883475 Slowest loop: 11.91ms; fastest: 0.07ms I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0 === Move === Hiccups: 0, FreeDm: 160, MinFreeDm: 155, MaxWait: 36832ms Bed compensation in use: none, comp offset 0.000 === DDARing === Scheduled moves: 14, completed moves: 14, StepErrors: 0, LaErrors: 0, Underruns: 0, 0 === Heat === Bed heaters = 0 -1 -1 -1, chamberHeaters = -1 -1 === GCodes === Segments left: 0 Stack records: 2 allocated, 0 in use 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 serial is idle in state(s) 0 aux is idle in state(s) 0 daemon is idle in state(s) 0 queue is idle in state(s) 0 autopause is idle in state(s) 0 Code queue is empty. === Network === Slowest loop: 15.49ms; fastest: 0.00ms Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) Telnet(0) HTTP sessions: 1 of 8 - WiFi - Network state is running WiFi module is connected to access point Failed messages: pending 0, notready 0, noresp 0 WiFi firmware version 1.23 WiFi MAC address ec:fa:bc:5b:46:ef WiFi Vcc 3.38, reset reason Turned on by main processor WiFi flash size 4194304, free heap 24416 WiFi IP address 10.11.11.38 WiFi signal strength -65dBm, reconnections 0, sleep mode modem Socket states: 0 0 0 0 0 0 0 0
; homeall.g ; called to home all axes ; ; generated by RepRapFirmware Configuration Tool on Sun Nov 04 2018 16:39:54 GMT-0500 (Eastern Standard Time) G91 ; relative positioning G1 X0.2 Y0.2 ; energize XY Motors G91 ; relative positioning G1 Z10 F6000 S2 ; lift Z relative to current position G1 S1 V-100 U-100 F1500 ; move quickly to V and U axis endstops and stop there (first pass) G1 V5 U5 F1500 ; go back a few mm G1 V-5 U-5 F360 ; move slowly to V and U axis endstops once more (second pass) M584 Y8 W9 P6 ; split two Y motors G1 S1 X825 Y-825 W-825 F6000 ; move quickly to X and Y axis endstops and stop there (first pass) G1 S2 X-5 Y5 W5 F6000 ; go back a few mm G1 S1 X825 Y-825 W-825 F360 ; move slowly to X and Y axis endstops once more (second pass) M584 Y8:9 P5 ; re-join Y motors G90 ; absolute positioning G1 S2 X0 Y0 F6000 ; go to first bed probe point and home Z G1 U10 F1500 ; Move U down 10mm G30 ; home Z by probing the bed G1 U0 F1500 ; bring U to 0
-
A reading of 2000 suggests a wiring or configuration error.
And it's possible that when a heater is off the temp sensor is not being accessed and the wiring issue is not detected.
Frederick
-
@fcwilt I agree with that as an initial assessment, but given the actual behavior/history it doesn't seem possible that it's a config/wiring error.
As I said above, the heater can turn on, and function with accurate temperature readings. It only gives me this error at very specific and repeatable points.
I'm completely open to being told that I have the wrong take here, but it doesn't make sense to be misconfigured (I haven't changed anything in the previously functioning config) or a wiring error (I've used the machine without changing any wiring/hardware), or even a short (see post #3).
-
Well a reading of 2000 is what you get when there is no temp sensor connected - so I would still suspect a wiring failure if the config used to work and has not changed.
It is not unusual, given that the wiring is flexed during printing, for wiring to fail over time.
Frederick
-
@plasticfactory It might be a hardware fault. Are you able to temporarily connect a standard ntc thermistor?. That would tell you if it's the daughter board or something else.
-
@plasticfactory if the failure is repeatable then it would help to step through the homeall.g and see which line caused the sensors to go from reading correctly to showing 2000. Enter the lines of the macro one at a time until you get the fault.
-
@plasticfactory it sounds to me that running the Z motor causes the sensors to report an error. Do the PT100 wires run close to the Z stepper motor wires? Have you checked the crimp connections in the Z motor wiring?
-
@dc42 They do not. It's a very large format machine and the Z steppers/wires are about 4' away from the PT100 sensors, though the wires themselves of course get close as things get closer to the Duet board. The bed can also be manipulated (and is during certain parts of the homeall) without the error. It's only those specific points above that it reports the error. All that said, I will check the crimp connections.
@T3P3Tony That makes sense, I'll give it a try.
@deckingman Not easily -- I'm about to try swapping daughter boards as it is the easiest thing that has been suggested so far.
-
@dc42 @T3P3Tony I've narrowed it down to what appears to be homing Y, other than starting a new Gcode file. I edited post 3, but:
When homing one by one, Y throws the error as soon as its complete. When running the homeall macro line by line, line 13 (home Y) throws the error. When starting a gcode file, the error is thrown immediately.
-
-
@plasticfactory so if homing Y throws the error which line in the home Y macro causes the error with the sensor?
-
- Can you disable the Y-axis stepper and push the axis until it homes and see if that causes the error?
- Can you press/trigger the Y-axis homing switch and see if that causes the error?
-
@t3p3tony said in Heater fault only after homing:
I will do the same for Home Y tomorrow as I did for Home All.Have you encountered this issue before?
-
@alankilian said in Heater fault only after homing:
Good idea, I will try it. What makes it confusing is that it doesn't happen when the Y axis end points trigger. When I home all, it does not trigger the error until the entire process is complete. However, it errors if entered line by line, right at homing Y. -
@plasticfactory when you say right at homing Y. What is the command you send exactly?
-
@plasticfactory Did you by any chance get any revelation to this issue?
I use a Duet mini 5+ and have been suffering the exact error for the past 2 days and still haven't gotten anywhere. As soon as my extruder stepper drives, both heaters shoot to 2000 for a split second, duet throws fault for both of them, and a second later the 2000 drops back to the assigned heater temp however the "fault" doesn't disappear - hence I can't control the heaters anymore.
I am 100% certain that there is no wire interference between the extruder stepper and the heaters, although I suspect the core issue is that my extruder stepper motor and the cartridge heaters are sitting in the same stainless steel assembly so they are mechanically in contact. I shielded my heaters with kapton tape for electrical insulation (heaters are stainless steel) but still I get the same error.
The only time everything works without an error is when I dismantle the extruder stepper from the assembly, while still connected to duet and then I get no error.
; Configuration file for Duet 3 Mini 5+ (firmware version 3.3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.3.16 on Sat Apr 15 2023 14:54:17 GMT-0400 (Eastern Daylight Time) ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"Morphotonics" ; set printer name M669 K1 ; select CoreXY mode ; Network M552 S1 ; enable network M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet ; Drives M569 P0.0 S0 ; physical drive 0.0 goes backwards M569 P0.1 S0 ; physical drive 0.1 goes backwards M569 P0.2 S1 ; physical drive 0.2 goes 0 to - M569 P0.3 S1 ; physical drive 0.3 goes 0 to - M569 P0.4 S0 ; physical drive 0.4 goes 0 to - M569 P0.5 S1 ; physical drive 0.5 goes forwards M569 P0.6 S0 ; physical drive 0.5 goes forwards M584 X0.0 Y0.1 Z0.2:0.3:0.4 E0.5 U0.6 ; set drive mapping M350 X16 Y16 Z16 E16 I1 U16 ; configure microstepping with interpolation M92 X80.00 Y80.00 Z80.00 E80.00 U80.00 ; set steps per mm M566 X900.00 Y900.00 Z24.00 E24.00 U24.00 ; set maximum instantaneous speed changes (mm/min) M203 X9000.00 Y9000.00 Z600.00 E900.00 U150.00 ; set maximum speeds (mm/min) M201 X250.00 Y250.00 Z50.00 E50.00 U50.00 ; set accelerations (mm/s^2) M906 X800 Y800 Z800 E800 I50 U800 ; set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout ; Axis Limits M208 X0 Y0 Z0 E0 U0 S1 ; set axis minima M208 X250 Y188 Z240 E1000000 U1000000 S0 ; set axis maxima ; Endstops M574 X1 S1 P"io0.in" ; configure switch-type (e.g. microswitch) endstop for low end on X via pin io0.in M574 Y2 S1 P"io1.in" ; configure switch-type (e.g. microswitch) endstop for high end on Y via pin io1.in M564 U6 H0 ;M574 Z1 S1 P"io2.in" ; configure switch-type (e.g. microswitch) endstop for low end on Z via pin io2.in ; Z-Probe M950 S0 C"io3.out" ; Duet 3 Mini 5+ M558 P9 C"io3.in" H5 F120 T6000 ; Duet 3 Mini 5+ G31 X-20 Y0 Z6.7 P25 ; trigger height 6.7 (change it later when recalibrating with nozzle in place) M671 X20:140:220 Y0:188:0 ; Heaters M308 S1 P"spi.cs1" Y"thermocouple-max31856" K"J" ; configure sensor 1 as J-type thermocouple via CS pin spi.cs1 M950 H1 C"out2" T1 ; heater 1 uses the out2 pin, sensor 1 ;M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit ; M307 H1 R1.652 K0.373:0.000 D37.25 E1.35 S1.00 B0 V23.9 ; M307 H1 R0.756 K2.021:0.000 D10.38 E1.35 S1.00 B0 V23.9 M307 H1 R0.861 K2.720:0.000 D12.01 E1.35 S1.00 B0 V23.9 ; M303 H1 P1 S50 ; tune heater 1 using 100% PWM, target temperature 50C M143 H1 S70 ; set temperature limit for heater 1 to 60C, switch off temporarily if it exceeds 50C M308 S2 P"spi.cs2" Y"thermocouple-max31856" K"J" ; configure sensor 1 as J-type thermocouple via CS pin spi.cs1 M950 H2 C"out1" T2 ; heater 2 uses the out1 pin, sensor 2 ; M950 H0 C"nil" ; disable heater 0 and free up the associated pin ;M307 H2 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit ; M307 H2 R1.701 K0.374:0.000 D38.26 E1.35 S1.00 B0 V23.9 M307 H2 R0.796 K2.056:0.000 D11.87 E1.35 S1.00 B0 V23.9 ; M303 H2 P1 S50 ; tune heater 1 using 100% PWM, target temperature 50C M143 H2 S70 ; set temperature limit for heater 2 to 60C, switch off temporarily if it exceeds 50C ; Servo M950 S2 C"io2.out"; assign GPIO port 2 to io2.out (Servo header), servo mode ;M950 S3 C"out6_buff"; assign GPIO port 2 to io2.out (Servo header), servo mode ; Fans ; 2-wire fans, normally controlled and thermostatic M950 F0 C"out5" Q10000 ; create fan 0 on pin out5 and set its frequency M950 F1 C"out6" Q10000 ; create fan 1 on pin out6 and set its frequency M950 F2 C"out3" Q10000 ; create fan 2 on pin out3 and set its frequency M950 F3 C"out4" Q10000 ; create fan 2 on pin out3 and set its frequency ; Tools M563 P0 S"Syringe Pump" D0 H1:2 F0:1:2:3 ; define tool 0 G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets G10 P0 R50 S50 ; set initial tool 50 active and standby temperatures to 50C
-
@ozgunkilicafsar please start a new thread
-