Error: Heater 0 fault: heater monitor 0 was triggered



  • Hi,
    I have a Duet. I have updated the firmware to:
    Board: Duet 2 WiFi (2WiFi)
    Firmware: RepRapFirmware for Duet 2 WiFi/Ethernet 3.1.1 (2020-05-19b2)
    Duet WiFi Server Version: 1.23

    I've been chasing this issue for a couple of days now, so I thought I'd post here to see if anyone has any suggestions.

    The error I get is the topic of the post.

    My printer is a Tevo Black Widow

    Here's what I've tried:

    Calibrated the heatbed successfully and used M500 to place the following in config-override.g
    M307 H0 A29.4 C86.9 D1.1 S1.00 V23.5 B0

    The issue was present before this and was unchanged afterwards.

    I have carefully read the page at https://duet3d.dozuki.com/Wiki/Spurious_heater_faults_and_how_to_avoid_them
    and followed anything that seemed like a possible solution in there.

    In desperation, I looked at the page at https://reprap.org/wiki/G-code#M570:_Configure_heater_fault_detection
    and based on that, I issued the following command: M570 H0 P30 T20, knowing that it was a bit over the top, but also knowing I could change it after finding the actual cause of the problem.

    I have also hard soldered the cable connections to the bed, after cutting off the connector.

    My temperature graph in the web interface is nice and steady, and just drops away from the target temperatue once a heater fault is detected.

    What I really want to know, to continue fault finding, is how to determine the fault that the software is detecting?

    The article, "Spurious heater faults and how to avoid them", refers to errors like "temperature excursion too large" or "temperature excursion exceeded 10.0C", but my error has no such clues as to the cause that I can see.


  • Moderator

    Post your config.g and the results of sending M122 and M98 P"config.g"

    3.2 firmware is now out, you should probably update.
    Download this zip file and upload it as is to the system tab in DWC.

    https://github.com/Duet3D/RepRapFirmware/releases/download/3.2/Duet2and3Firmware-3.2.zip



  • @Phaedrux said in Error: Heater 0 fault: heater monitor 0 was triggered:

    M122

    Here are the things you asked for Phaedrux:

    config.g:

    0:/sys/config.g
    ; Configuration file for Duet WiFi (firmware version 3)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool v3.2.0 on Sat Jan 02 2021 15:54:53 GMT+1100 (Australian Eastern Daylight Time)
    
    ; General preferences
    G90                                            ; send absolute coordinates...
    M83                                            ; ...but relative extruder moves
    M550 P"Black Widow"                            ; set printer name
    
    ; Network
    M552 S1                                        ; enable network
    M586 P0 S1                                     ; enable HTTP
    M586 P1 S1                                     ; enable FTP
    M586 P2 S0                                     ; disable Telnet
    
    ; Drives
    M569 P0 S0                                     ; physical drive 0 goes backwards
    M569 P1 S1                                     ; physical drive 1 goes forwards
    M569 P2 S1                                     ; physical drive 2 goes forwards
    M569 P3 S0                                     ; physical drive 3 goes backwards
    M584 X0 Y1 Z2 E3                               ; set drive mapping
    M350 X16 Y16 Z16 E16 I1                        ; configure microstepping with interpolation
    M92 X80.00 Y80.00 Z1000.00 E420.00             ; set steps per mm (z was 4000)
    M566 X900.00 Y900.00 Z60.00 E120.00            ; set maximum instantaneous speed changes (mm/min)
    M203 X6000.00 Y6000.00 Z180.00 E1200.00        ; set maximum speeds (mm/min)
    M201 X500.00 Y500.00 Z20.00 E250.00            ; set accelerations (mm/s^2)
    M906 X800 Y800 Z800 E800 I30                   ; set motor currents (mA) and motor idle factor in per cent
    M84 S30                                        ; Set idle timeout
    
    ; Axis Limits
    M208 X0 Y0 Z0 S1                               ; set axis minima
    M208 X370 Y250 Z300 S0                         ; set axis maxima
    M208 X-205:165 Y-140:110  						; set axis limits
    
    ; Endstops
    M574 X1 S1 P"!xstop"                            ; configure active-high endstop for low end (or high end?) on X via pin xstop (was M574 X1 S0 P"xstop")
    M574 Y1 S1 P"!ystop"                            ; configure active-high or low? endstop for low end on Y via pin ystop (S0 = no endstop)  																;if you are using RepRapFirmware 3 then you will need to use S1 but invert the polarity by putting a ! character at the start of the pin name in the M574 command
    M574 Z1 S2                                     ; configure Z-probe endstop for low end on Z
    
    ; Z-Probe
    M950 S0 C"exp.heater3"                         ; create servo pin 0 for BLTouch
    M558 P9 C"^zprobe.in" H5 F120 T6000            ; set Z probe type to bltouch and the dive height + speeds
    G31 P500 X48 Y-18 Z3.8                      ; set Z probe trigger value, offset and trigger height
    M557 X15:355 Y15:235 S20                       ; define mesh grid
    
    ; Heaters
    M308 S0 P"bedtemp" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin bedtemp
    M950 H0 C"bedheat" T0                          ; create bed heater output on bedheat and map it to sensor 0
    M307 H0 B1 S1.00                               ; enable bang-bang mode for the bed heater and set PWM limit
    M140 H0                                        ; map heated bed to heater 0
    M143 H0 S120                                   ; set temperature limit for heater 0 to 120C
    M308 S1 P"e0temp" Y"thermistor" T100000 B4138  ; configure sensor 1 as thermistor on pin e0temp
    M950 H1 C"e0heat" T1                           ; create nozzle heater output on e0heat and map it to sensor 1
    M307 H1 B0 S1.00                               ; disable bang-bang mode for heater  and set PWM limit
    M143 H1 S280                                   ; set temperature limit for heater 1 to 280C
    
    ; Fans
    M950 F0 C"fan0" Q500                           ; create fan 0 on pin fan0 and set its frequency
    M106 P1 S0 H-1                                 ; set fan 1 value. Thermostatic control is turned off
    M950 F1 C"fan1" Q500                           ; create fan 1 on pin fan1 and set its frequency
    M106 P0 T45 H1                              ; set fan 0 value. Thermostatic control is turned on
    
    
    ; Tools
    M563 P0 S"Extruder" D0 H1 F0                               ; define tool 0; 
    G10 P0 X0 Y0 Z0                                ; set tool 0 axis offsets
    G10 P0 R0 S0                                   ; set initial tool 0 active and standby temperatures to 0C
    
    ; Custom settings are not defined
    
    ; Miscellaneous
    M575 P1 S1 B57600                              ; enable support for PanelDue
    
    M501										   ; load values stored in config-override.g
    
    M122:
    === Diagnostics ===
    RepRapFirmware for Duet 2 WiFi/Ethernet version 3.1.1 running on Duet WiFi 1.02 or later
    Board ID: 08DGM-9T6BU-FG3SJ-6JKD4-3S86N-TAXHF
    Used output buffers: 3 of 24 (14 max)
    === RTOS ===
    Static ram: 27980
    Dynamic ram: 93892 of which 24 recycled
    Exception stack ram used: 304
    Never used ram: 8872
    Tasks: NETWORK(ready,412) HEAT(blocked,1224) MAIN(running,1832) IDLE(ready,80)
    Owned mutexes: WiFi(NETWORK)
    === Platform ===
    Last reset 00:13:25 ago, cause: power up
    Last software reset at 2021-01-13 10:44, reason: User, spinning module GCodes, available RAM 8664 bytes (slot 0)
    Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x04417000 BFAR 0xe000ed38 SP 0xffffffff Task MAIN
    Error status: 0
    MCU temperature: min 23.5, current 33.7, max 34.0
    Supply voltage: min 23.9, current 24.0, max 24.1, under voltage events: 0, over voltage events: 0, power good: yes
    Driver 0: standstill, SG min/max not available
    Driver 1: standstill, SG min/max not available
    Driver 2: standstill, SG min/max not available
    Driver 3: standstill, SG min/max not available
    Driver 4: standstill, SG min/max not available
    Date/time: 2021-01-14 11:12:46
    Cache data hit count 1415889029
    Slowest loop: 4.35ms; fastest: 0.12ms
    I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0
    === Storage ===
    Free file entries: 10
    SD card 0 detected, interface speed: 20.0MBytes/sec
    SD card longest read time 2.8ms, write time 0.0ms, max retries 0
    === Move ===
    Hiccups: 0(0), FreeDm: 169, MinFreeDm: 169, MaxWait: 0ms
    Bed compensation in use: none, comp offset 0.000
    === MainDDARing ===
    Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0  CDDA state: -1
    === AuxDDARing ===
    Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0  CDDA state: -1
    === Heat ===
    Bed heaters = 0 -1 -1 -1, chamberHeaters = -1 -1 -1 -1
    === 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
    Daemon is idle in state(s) 0
    Autopause is idle in state(s) 0
    Code queue is empty.
    === Network ===
    Slowest loop: 41.03ms; fastest: 0.00ms
    Responder states: HTTP(2) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions
    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.23
    WiFi MAC address 4c:11:ae:02:e2:60
    WiFi Vcc 3.36, reset reason Unknown
    WiFi flash size 4194304, free heap 23376
    WiFi IP address 192.168.1.113
    WiFi signal strength -59dBm, reconnections 0, sleep mode modem
    Socket states: 0 0 0 0 0 0 0 0
    
    1/14/2021, 11:15:40 AM	M98 P"config.g"
    HTTP is enabled on port 80
    FTP is enabled on port 21
    TELNET is disabled
    Warning: Heater 0 appears to be over-powered. If left on at full power, its temperature is predicted to reach 365C
    Warning: Heater 1 appears to be over-powered. If left on at full power, its temperature is predicted to reach 721C
    

  • Moderator

    What temperature are you trying to reach when you get the fault?

    Can you post the contents of config-override.g as well?



  • Of course, just doing the firmware update you linked. Won't be long.



  • Here you are:

    ; config-override.g file generated in response to M500 at 2021-01-13 13:03
    ; This is a system-generated file - do not edit
    ; Heater model parameters
    M307 H0 A29.4 C86.9 D1.1 S1.00 V23.5 B0
    M307 H1 A696.7 C224.2 D6.3 S1.00 V24.0 B0
    ; Workplace coordinates
    G10 L2 P1 X0.00 Y0.00 Z0.00
    G10 L2 P2 X0.00 Y0.00 Z0.00
    G10 L2 P3 X0.00 Y0.00 Z0.00
    G10 L2 P4 X0.00 Y0.00 Z0.00
    G10 L2 P5 X0.00 Y0.00 Z0.00
    G10 L2 P6 X0.00 Y0.00 Z0.00
    G10 L2 P7 X0.00 Y0.00 Z0.00
    G10 L2 P8 X0.00 Y0.00 Z0.00
    G10 L2 P9 X0.00 Y0.00 Z0.00



  • Here are the results of the Firmware upgrade:
    Board: Duet 2 WiFi (2WiFi)
    Firmware: RepRapFirmware for Duet 2 WiFi/Ethernet 3.2 (2021-01-05)
    Duet WiFi Server Version: 1.25


  • Moderator

    Try retuning the bed heater after updating the firmware.

    Note that firmware 3.2 has a new PID tuning algorithm.
    https://duet3d.dozuki.com/Wiki/Gcode#Section_M303_Run_heater_tuning



  • Ok, I will retune the pid for the bed using the autotune now, I was trying to get to and maintain a bed temp of 120 degrees C btw.


  • Moderator

    @dmbgo said in Error: Heater 0 fault: heater monitor 0 was triggered:

    a bed temp of 120 degrees C btw.

    Well you've set your bed temp limit to 120c. So as the error says, your heater monitor was triggered.

    M143 H0 S120 ; set temperature limit for heater 0 to 120C

    If that's a temp you intend to use frequently you should you that temp to tune to, and change the M143 command to a higher temperature to allow for over shoot. 130 maybe.



  • Thanks Phaedrux, I will change the Temp limit for the bed to 135C after it finishes tuning. I'll then try to run a print and let you know.
    The tuning is in progress...



  • Here is my updated config.g. Tuning is still in progress, so I haven't restarted the board to apply the new settings yet.



  • ; Configuration file for Duet WiFi (firmware version 3)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool v3.2.0 on Sat Jan 02 2021 15:54:53 GMT+1100 (Australian Eastern Daylight Time)

    ; General preferences
    G90 ; send absolute coordinates...
    M83 ; ...but relative extruder moves
    M550 P"Black Widow" ; set printer name

    ; Network
    M552 S1 ; enable network
    M586 P0 S1 ; enable HTTP
    M586 P1 S1 ; enable FTP
    M586 P2 S0 ; disable Telnet

    ; Drives
    M569 P0 S0 ; physical drive 0 goes backwards
    M569 P1 S1 ; physical drive 1 goes forwards
    M569 P2 S1 ; physical drive 2 goes forwards
    M569 P3 S0 ; physical drive 3 goes backwards
    M584 X0 Y1 Z2 E3 ; set drive mapping
    M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation
    M92 X80.00 Y80.00 Z1000.00 E420.00 ; set steps per mm (z was 4000)
    M566 X900.00 Y900.00 Z60.00 E120.00 ; set maximum instantaneous speed changes (mm/min)
    M203 X6000.00 Y6000.00 Z180.00 E1200.00 ; set maximum speeds (mm/min)
    M201 X500.00 Y500.00 Z20.00 E250.00 ; set accelerations (mm/s^2)
    M906 X800 Y800 Z800 E800 I30 ; set motor currents (mA) and motor idle factor in per cent
    M84 S30 ; Set idle timeout

    ; Axis Limits
    M208 X0 Y0 Z0 S1 ; set axis minima
    M208 X370 Y250 Z300 S0 ; set axis maxima
    M208 X-205:165 Y-140:110 ; set axis limits

    ; Endstops
    M574 X1 S1 P"!xstop" ; configure active-high endstop for low end (or high end?) on X via pin xstop (was M574 X1 S0 P"xstop")
    M574 Y1 S1 P"!ystop" ; configure active-high or low? endstop for low end on Y via pin ystop (S0 = no endstop) ;if you are using RepRapFirmware 3 then you will need to use S1 but invert the polarity by putting a ! character at the start of the pin name in the M574 command
    M574 Z1 S2 ; configure Z-probe endstop for low end on Z

    ; Z-Probe
    M950 S0 C"exp.heater3" ; create servo pin 0 for BLTouch
    M558 P9 C"^zprobe.in" H5 F120 T6000 ; set Z probe type to bltouch and the dive height + speeds
    G31 P500 X48 Y-18 Z3.8 ; set Z probe trigger value, offset and trigger height
    M557 X15:355 Y15:235 S20 ; define mesh grid

    ; Heaters
    M308 S0 P"bedtemp" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin bedtemp
    M950 H0 C"bedheat" T0 ; create bed heater output on bedheat and map it to sensor 0
    M307 H0 B1 S1.00 ; enable bang-bang mode for the bed heater and set PWM limit
    M140 H0 ; map heated bed to heater 0
    M143 H0 S135 ; set temperature limit for heater 0 to 135C
    M308 S1 P"e0temp" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin e0temp
    M950 H1 C"e0heat" T1 ; create nozzle heater output on e0heat and map it to sensor 1
    M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit
    M143 H1 S280 ; set temperature limit for heater 1 to 280C

    ; Fans
    M950 F0 C"fan0" Q500 ; create fan 0 on pin fan0 and set its frequency
    M106 P1 S0 H-1 ; set fan 1 value. Thermostatic control is turned off
    M950 F1 C"fan1" Q500 ; create fan 1 on pin fan1 and set its frequency
    M106 P0 T45 H1 ; set fan 0 value. Thermostatic control is turned on

    ; Tools
    M563 P0 S"Extruder" D0 H1 F0 ; define tool 0;
    G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets
    G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C

    ; Custom settings are not defined

    ; Miscellaneous
    M575 P1 S1 B57600 ; enable support for PanelDue

    M501 ; load values stored in config-override.g



  • How long does the new tuning algorithm take? It seems to be hovering around 80C atm,. I told it to tune to 120C.



  • Should I reset and start the tuning again? It still says it is running.

    1/14/2021, 11:51:57 AM Upload of config.g successful after 0s
    1/14/2021, 11:50:19 AM Upload of config.g successful after 0s
    1/14/2021, 11:40:18 AM Auto tune starting phase 1, heater on
    1/14/2021, 11:40:13 AM M303 H0 P0.4 S119
    Auto tuning heater 0 using target temperature 119.0°C and PWM 0.40 - do not leave printer unattended



  • I grew impatient and reset the printer. I then sent the following:
    M303 H0 P0.4 S120

    I'll wait without changing anything now.....



  • Hmmm, I seem to have this error when doing the Autotune:
    1/14/2021, 12:34:32 PM Auto tune cancelled because target temperature was not reached
    1/14/2021, 12:04:32 PM Auto tune starting phase 1, heater on
    1/14/2021, 12:04:26 PM

    I'm not sure if it is related or not to my original issue. I'll try turning the bed heater on now with a 120C target.



  • No issues getting to, or maintaing the bed at 110C, which is what I ended up commanding the printer to do. I'll try printing something now and see if there is any change in the errors after the FW upgrade.



  • This is the heater graph now, while the printer is printing a calibration cube.

    6f02b6d1-943e-422f-b606-c77e18728998-image.png
    As you can see the temperatures are fairly constant according to the graph, which is how they were before.
    The big difference this time, is that the bed heater error hasn't occured (yet).


  • Moderator

    @dmbgo said in Error: Heater 0 fault: heater monitor 0 was triggered:

    How long does the new tuning algorithm take? It seems to be hovering around 80C atm,. I told it to tune to 120C.

    It can take a long time.


  • Moderator

    @dmbgo said in Error: Heater 0 fault: heater monitor 0 was triggered:

    M303 H0 P0.4 S120

    Why did you reduce the PWM factor so much?



  • @dmbgo said in Error: Heater 0 fault: heater monitor 0 was triggered:

    Hmmm, I seem to have this error when doing the Autotune:
    1/14/2021, 12:34:32 PM Auto tune cancelled because target temperature was not reached
    1/14/2021, 12:04:32 PM Auto tune starting phase 1, heater on
    1/14/2021, 12:04:26 PM

    Autotune didn't work, the second attempt at autotune led to the error above, however printing with the heatbed PID settings from an earlier firmware version that did successfully autotune, I have not experienced anymore heatbed errors.
    Given that the errors were very constant, I think that it might be fixed.
    Thanks!



  • Oh and the reduction of the PWM factor was from the example at:
    https://duet3d.dozuki.com/Wiki/Tuning_the_heater_temperature_control


  • Moderator

    Yes the previous tuned values should still be valid.

    I would try tuning again with full power to see if it has better luck hitting the commanded temp.


  • Moderator

    It's just an example of how the power factor can be used. Normally you'd want to tune at full power. I'm going to change that example. Actually I don't see that example at all in that tuning link, but I did find it in the M303 entry in the gcode wiki and have changed it to use 100%. The only times you'd want to use that is with an overpowered heater that is throwing "heating too fast" errors.


Log in to reply