Strange issue with heater (hotend)

  • Hi all,

    OK, so I was busy doing the PID tuning for the initial setup of the board on the printer. So I started the PID cycle for a temperature of 240C --- about half way; it was as if the board resets.... I changed the PWM factor to 0.85; instead of 1.00 and it went through.

    So now it became time to try and sort out the extruder, etc. Heated hotend to 200C; and at about 110C, the same issue of the board that resets. 3rd try; and it didn't reset.

    Any idea why this is????


  • Moderator

    Please post your config.g and the results of M122.

    What wattage is the heater?

    What does the temperature graph look like when heating and when it faults?

  • @Phaedrux Hi!

    The M122 response:

    === Diagnostics ===
    RepRapFirmware for Duet 2 WiFi/Ethernet version 3.1.1 running on Duet WiFi 1.02 or later
    Board ID: 08DJM-9178L-L4MSN-6J1F8-3SD6J-KS02N
    Used output buffers: 3 of 24 (10 max)
    === RTOS ===
    Static ram: 27980
    Dynamic ram: 93872 of which 44 recycled
    Exception stack ram used: 264
    Never used ram: 8912
    Tasks: NETWORK(ready,368) HEAT(blocked,1224) MAIN(running,1816) IDLE(ready,80)
    Owned mutexes: WiFi(NETWORK)
    === Platform ===
    Last reset 00:15:48 ago, cause: power up
    Last software reset at 2020-11-04 21:32, reason: User, spinning module GCodes, available RAM 8856 bytes (slot 1)
    Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0441f000 BFAR 0xe000ed38 SP 0xffffffff Task MAIN
    Error status: 0
    MCU temperature: min 28.8, current 38.4, max 38.7
    Supply voltage: min 24.2, current 24.3, max 24.4, 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: 2020-11-05 06:41:03
    Cache data hit count 1653887506
    Slowest loop: 2.75ms; 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 0.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
    Heater 1 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
    Daemon is idle in state(s) 0
    Autopause is idle in state(s) 0
    Code queue is empty.
    === Network ===
    Slowest loop: 15.95ms; 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 a4:cf:12:c3:04:2d
      WiFi Vcc 3.35, reset reason Unknown
      WiFi flash size 4194304, free heap 22696
      WiFi IP address
      WiFi signal strength -61dBm, reconnections 0, sleep mode modem
      Socket states: 0 4 0 0 0 0 0 0

    The heater is a 24V, 40W heater. It is being powered through a mosfet that is being fed directly off the power supply.

    The graph looked like an absolutely normal graph, no weird peaks or anything. I tried again now, but it heated like normal, no 'hickups' with the web interface or the board or anything.


  • Moderator

    Why the mosfet? The Duet is more than capable of powering the heater directly.

    Can you post your config.g as well so I can see the heater configuration?

  • @Phaedrux Hi; included the config.g ----- in the past I have had cheaper boards and the onboard mosfet went - don't want to take a chance like this. I am in Namibia (Africa); so spares are at a premium.

    Please excuse the 'mess' in the config.g - I still need to clean it up and add a bit more comments, etc.

    Please see config.g below:

    ; Configuration file for Duet WiFi (firmware version 3)
    ; executed by the firmware on start-up
    ; generated by RepRapFirmware Configuration Tool v3.1.4 on Tue Nov 03 2020 07:37:18 GMT-0800 (Pacific Standard Time)

    ; General preferences
    G90 ; send absolute coordinates...
    M83 ; ...but relative extruder moves
    M550 P"Ender3" ; set printer name
    M918 P1 E4 F2000000 ; configure direct-connect display

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

    ; Drives
    M569 P0 S1 ; physical drive 0 goes forwards
    M569 P1 S0 ; physical drive 1 goes forwards
    M569 P2 S1 ; physical drive 2 goes forwards
    M569 P3 S0 ; physical drive 3 goes forwards
    M584 X0 Y1 Z2 E3 ; set drive mapping
    M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation
    M92 X80.00 Y80.00 Z400.00 E412.45 ; set steps per mm
    M566 X1200.00 Y1200.00 Z24.00 E300.00 ; set maximum instantaneous speed changes (mm/min)
    M203 X9000.00 Y9000.00 Z180.00 E6000.00 ; set maximum speeds (mm/min)
    M201 X500.00 Y500.00 Z100.00 E5000.00 ; set accelerations (mm/s^2)
    M906 X800 Y800 Z800 E1000 I50 ; set motor currents (mA) and motor idle factor in per cent
    M84 S30 ; Set idle timeout

    ; Axis Limits
    M208 X-6 Y0 Z0 S1 ; set axis minima
    M208 X220 Y235 Z260 S0 ; set axis maxima

    ; Endstops
    M574 X1 S1 P"!xstop"
    M574 Y1 S1 P"ystop"
    M574 Z1 S2 ; configure Z-probe endstop for low end on Z

    ; Z-Probe
    M558 P8 C"!^" H5 F3000 T6000 ; set Z probe type to switch and the dive height + speeds
    G31 X-16 Y-11 Z14.31 P500 ; set Z probe trigger value, offset and trigger height
    M557 X15:215 Y15:195 S20 ; define mesh grid
    M950 S0 C"exp.heater7" ; define servo

    ; Heaters
    M308 S0 P"bedtemp" Y"thermistor" T100000 B4092 ; 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 S0.85 ; enable bang-bang mode for the bed heater and set PWM limit
    M140 H0 ; map heated bed to heater 0
    M143 H0 S150 ; set temperature limit for heater 0 to 150C
    M308 S1 P"e0temp" Y"thermistor" T100000 B4092 ; 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 S0.85 ; disable bang-bang mode for heater and set PWM limit
    M302 S170 R190 ; Set retraction/extruding temperature limits. Extruding 170, Retraction 190.
    M143 H1 S250

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

    ; Tools
    M563 P0 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
    M501 ; load saved parameters from non-volatile memory
    T0 ; select first tool

    ; Signal to user that probe and loading is complete
    M280 P0 S20 I1 ; Move servo to 20 degrees
    M280 P0 S70 I1 ; Move servo to 70 degrees
    M280 P0 S20 I1 ; Move servo to 20 degrees

    M501 ; Load EEPROM details

  • Moderator

    Are you sure the heater cartridge is 24v and not 12v?

    Did you save the results of the PID tuning to config-override.g with M500? I'm curious to see what it produced.

    Are these values correct for your thermistor?

    M308 S1 P"e0temp" Y"thermistor" T100000 B4092

    You have the max temp for the hotend set to 250c, which is actually quite close to your requested PID tuning value of 240C. During the tuning it may overshoot and then come back down, which could cause the fault.

    M143 H1 S250

    Once you verify that your thermistor values are correct you should try increasing the max temp to 300c and then try PID tuning to 240C again with full PWM power.

    If that works correctly you can then reduce the max temp again.

  • @Phaedrux Hi, yes I am sure it is 24V, not 12V. I did save with M500. Thermistor values are correct, as far as I know - the measurements are actually much more stable than with my previous board/marlin setup.

    The problem of the fault did occur at about 100 and 150C. Had it two times. Then changed PWM to the reduced factor and managed to get it through.

    I have not gotten the problem again (had it once while tuning the extruder yesterday evening).... which is not very comforting as it is something, somewhere, that caused this....

  • Moderator

    Well if it does happen again, definitely double check the wiring.

    I would remove the mosfet from the equation as well.

    For PID tuning, ensure the max temp is well above the tuning temp. Start from room temp. And try to replicate the same conditions that would be present during a print, so if you use a part cooling fan, have the fan turned on to a speed that would normally be used during a print. You can even have the bed heater on, but if the power supply is adequate and the temperatures mostly stable it shouldn't matter too much.

  • @Phaedrux Thank you for the advice! 🙂

Log in to reply