Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    Hotend Heater Overshoots Badly

    Scheduled Pinned Locked Moved
    General Discussion
    3
    6
    218
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • br7408undefined
      br7408
      last edited by br7408

      I normally try to research ad nauseum to solve problems myself, but this one really has me stumped. I just installed a Mosquito Magnum Pro 2.85 hotend, running a Duet3 wifi and 1LC toolboard.

      I did the PID tuning at 230, and the tunes come out fine; relatively consistent numbers on 3 separate PID tunes, with no errors during the tunes.

      When I go to set a temperature, it overshoots very rapidly, and I get a fault.

      1. I have raised/lowered the M307 K value 10%. The guide says to lower it but I've also seen Dave tell people to raise it in this forum, so not sure.

      2. I have tried lowering the M307 S value (0.7).

      3. I even disassembled the hotend to verify the heater is 24V. It is indeed a 24V, 52W Slice Engineering heater.

      4. I've observed heating cycles; the rate on the graph is very smooth, with no weird spikes or abnormalities.

      5. I went to just try setting temps at various increments. On the first try at 100, it quickly shot past 100, faulted, and hit 121 before cooling off.

      Here is all the information and configs. Hopefully I'm just missing something stupid. I also understand this is a pretty massive heater and it may take some effort.

      M307 H1:

      
      Heater 1: heating rate 1.516, cooling rate 4.830, dead time 8.83, max PWM 1.00, mode PID, calibrated at 23.5V
      Predicted max temperature rise 42°C
      PID parameters: heating P13.3 I0.938 D82.4, steady P13.3 I1.044 D82.4
      

      config.g:

      ; 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 Sun Apr 16 2023 22:41:37 GMT-0400 (Eastern Daylight Time)
      
      ; General preferences
      G90                                              ; send absolute coordinates...
      M83                                              ; ...but relative extruder moves
      M550 P"BR1"                                      ; set printer name
      M669 K1                                          ; select CoreXY mode
      
      ; Wait a moment for the CAN expansion boards to start
      G4 S4
      
      ; 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 forwards
      M569 P0.1 S0                                    ; physical drive 0.1 goes forwards
      M569 P0.2 S0                                    ; physical drive 0.2 goes forwards
      M569 P0.3 S1                                    ; physical drive 0.3 goes forwards 
      M569 P0.4 S1                                    ; physical drive 0.4 goes forwards 
      M569 P0.5 S1                                     ; physical drive 0.5 goes forwards
      M569 P121.0 S0                                   ; physical drive 121.0 goes forwards
      M584 X0.4 Y0.3 Z0.2:0.1:0.0 E121.0                       ; set drive mapping
      M350 E16 I0                                      ; configure microstepping without interpolation
      M350 X16 Y16 Z16 E32 I1                              ; configure microstepping with interpolation
      M92 X81.07 Y80.90 Z800.82 E825.00                ; set steps per mm for .8mm ASA filament            
      M566 X720.00 Y720.00 Z10.00 E3000.00             ; set maximum instantaneous speed changes (mm/min)
      M203 X16000.00 Y16000.00 Z600.00 E6000.00          ; set maximum speeds (mm/min)
      M201 X6000.00 Y6000.00 Z100.00 E3600.00                ; set accelerations (mm/s^2)
      M906 X1400 Y1400 Z1600 E600 I30                     ; set motor currents (mA) and motor idle factor in per cent
      M84 S30                                          ; Set idle timeout
      
      ; Axis Limits
      M208 X-245:245 Y-250:250 Z0:460                  ;XY axis minima
      
      ; 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 low end on Y via pin io1.in
      M574 Z1 S2                                       ; configure Z-probe endstop for low end on Z
      
      ; Bed Leveling
      M671 X-253.5:-1:253.5 Y-243:267.5:-243 S5              ; define positions of Z leadscrews or bed levelling screws
      M557 X-200:200 Y-190:210 S20                        ; define 5x5 mesh grid
      
      ; Z-Probe
      M950 S0 C"121.io0.out"                           ; create servo pin 0 for BLTouch
      M558 P8 C"121.io0.in" H4 F120 T12000 R0.2 A20 S0.005  ; set Z probe type to DuetIR and the dive height + speeds avg 5 probes  tolerance .01
      ;M558 H30                                         ;*** Remove this line after delta calibration has been done and new delta parameters have been saved
      G31 P50 X27.33 Y73.71 Z2.888            ; set Z probe trigger value, offset and trigger height
      M556 S50 X0 Y0 Z0                                ; set orthogonal axis compensation parameters
      M557 X-200:200 Y-190:210 P5                      ; define mesh grid
      
      ; Heaters
      M308 S0 P"temp0" Y"thermistor" T100000 B3950 A"Bed"    ; configure sensor 0 as thermistor on pin temp0
      M950 H0 C"out0" T0 Q11                                 ; create bed heater output on out0 and map it to sensor 0, lower switching frequency 11hz
      ;M307 H0 R0.456 K0.916:0.000 D3.79 E1.35 S1.00 B0       ; old heater PID parameters 100C given from PID tune 14May23
      M307 H0 R0.460 K0.487:0.000 D3.36 E1.35 S1.00 B0        ; PID parameters 110 C 22May23
      M140 H0                                          ; map heated bed to heater 0
      M143 H0 S120                                     ; set temperature limit for heater 0 to 110C
      M308 S1 P"121.temp0" Y"PT1000"                       ; configure sensor 1 as thermistor on pin 121.temp0
      M950 H1 C"121.out0" T1                           ; create nozzle heater output on 121.out0 and map it to sensor 1
      M307 H1 R1.516 K4.830:0.000 D8.83 E1.35 S1.0 B0 V23.5   ; PID from 22Jan24 Mosquito Pro Ind 230 celsius
      M143 H1 S295                                     ; set temperature limit for heater 1 to 295C
      ; Fans
      M950 F0 C"!out4+out4.tach" Q25                   ; create fan 0 on pin out4 and set its frequency
      M950 F1 C"121.out2" 				        	 ; create fan 1 at extruder toolboard
      M106 P0 S0 H-1                                   ; set fan 0 value. Thermostatic control is turned off
      M106 P1 T40 H1:1                                 ; set extruder 121 fan to run at 40° extruder temp 
      
      ; Tools
      M563 P0 S"Mosquito Magnum" D0 H1 F0              ; define tool 0
      G10 P0 X0 Y10 Z0                                 ; set tool 0 axis offsets
      G10 P0 R0 S0                                     ; set initial tool 0 active and standby temperatures to 0C
      ;M572 D0 S0.050                                   ;PA for .8 ASA
      ;M572 D0 S0.07                                   ;PA .6 ASA
      ;M572 D0 S0.045									;PA for 1.2 ASA
      ;M572 D0 S0.05									;PA for .6 Nylon
      ;M572 D0 S0.085									; PA for .8 PETG
      ;M572 D0 S0.065									;PA for .4 PC
      
      ; retraction
      ;M207 S0.5 F3000							; retraction amount and speed ASA .8
      ;M207 S0.8 F2700                                  ; retraction amount and speed ASA 1.2
      M207 S0.25 F2100 Z0.3						; retraction for PETG .8
      
      ; Accelerometer and Input Shaping
      M955 P121.0 I41
      M593 P"zvd" F25.4 S0.0
      
      ;configure direct connect display
      M918 P2 E-4 F2000000
      M950 E0 C"io3.out" T1 U3       ; create a RGB Neopixel LED strip with 3 LEDs on the Duet 3 Mini 5+ 12864_EXP1 header
      M150 E0 R255 U255 B255 P255 S1 F1      ; display led
      M150 E0 R0 U0 B255 P255 S1 F1      ; left encoder led
      M150 E0 R0 U0 B255 P255 S1 F0      ; right encoder led
      
      ; Custom settings are not defined
      
      ; Miscellaneous
      T0
      

      config-override.g

      ; config-override.g file generated in response to M500 at 2024-01-22 21:21
      ; This is a system-generated file - do not edit
      ; Heater model parameters
      M307 H0 R0.460 K0.487:0.000 D3.36 E1.35 S1.00 B0
      M307 H1 R1.516 K4.830:0.000 D8.83 E1.35 S1.00 B0 V23.5
      ; 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
      
      

      M122:

      m122
      === Diagnostics ===
      RepRapFirmware for Duet 3 Mini 5+ version 3.5.0-rc.1+ (2023-11-03 17:18:21) running on Duet 3 Mini5plus WiFi (standalone mode)
      Board ID: GS9VZ-V296U-D65J0-40KMY-L713Z-RU7ZK
      Used output buffers: 3 of 40 (20 max)
      === RTOS ===
      Static ram: 102812
      Dynamic ram: 128244 of which 12 recycled
      Never used RAM 10348, free system stack 200 words
      Tasks: NETWORK(2,nWait,15.7%,228) HEAT(3,nWait,0.0%,356) Move(4,nWait,0.0%,358) CanReceiv(6,nWait,0.0%,774) CanSender(5,nWait,0.0%,336) CanClock(7,delaying,0.0%,350) TMC(4,nWait,0.7%,108) MAIN(1,running,82.7%,670) IDLE(0,ready,0.0%,29) AIN(4,delaying,0.8%,264), total 100.0%
      Owned mutexes: WiFi(NETWORK)
      === Platform ===
      Last reset 00:29:28 ago, cause: power up
      Last software reset at 2023-12-25 09:52, reason: User, Gcodes spinning, available RAM 11228, slot 0
      Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00000000 BFAR 0xe000ed38 SP 0x00000000 Task MAIN Freestk 0 n/a
      Error status: 0x00
      MCU revision 3, ADC conversions started 1768450, completed 1768450, timed out 0, errs 0
      MCU temperature: min 19.6, current 33.2, max 33.2
      Supply voltage: min 24.0, current 24.1, max 24.2, under voltage events: 0, over voltage events: 0, power good: yes
      Heap OK, handles allocated/used 0/0, heap memory allocated/used/recyclable 0/0/0, gc cycles 0
      Events: 3 queued, 3 completed
      Driver 0: standstill, SG min 0, read errors 0, write errors 0, ifcnt 18, reads 27499, writes 18, timeouts 0, DMA errors 0, CC errors 0
      Driver 1: standstill, SG min 0, read errors 0, write errors 0, ifcnt 18, reads 27499, writes 18, timeouts 0, DMA errors 0, CC errors 0
      Driver 2: standstill, SG min 0, read errors 0, write errors 0, ifcnt 18, reads 27498, writes 18, timeouts 0, DMA errors 0, CC errors 0
      Driver 3: standstill, SG min 0, read errors 0, write errors 0, ifcnt 18, reads 27498, writes 18, timeouts 0, DMA errors 0, CC errors 0
      Driver 4: standstill, SG min 0, read errors 0, write errors 0, ifcnt 18, reads 27499, writes 18, timeouts 0, DMA errors 0, CC errors 0
      Driver 5: not present
      Driver 6: not present
      Date/time: 2024-01-22 21:08:15
      Cache data hit count 3375602439
      Slowest loop: 60.74ms; fastest: 0.17ms
      === Storage ===
      Free file entries: 20
      SD card 0 detected, interface speed: 22.5MBytes/sec
      SD card longest read time 4.6ms, write time 2.0ms, max retries 0
      === Move ===
      DMs created 83, segments created 0, maxWait 0ms, bed compensation in use: none, height map offset 0.000, ebfmin 0.00, ebfmax 0.00
      no step interrupt scheduled
      Moves shaped first try 0, on retry 0, too short 0, wrong shape 0, maybepossible 0
      === DDARing 0 ===
      Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
      === DDARing 1 ===
      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 1 is on, I-accum = 0.0
      === GCodes ===
      Movement locks held by null, 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
      SBC is idle in state(s) 0
      Daemon is idle in state(s) 0
      Aux2 is idle in state(s) 0
      Autopause is idle in state(s) 0
      File2 is idle in state(s) 0
      Queue2 is idle in state(s) 0
      Q0 segments left 0, axes/extruders owned 0x0000803
      Code queue 0 is empty
      Q1 segments left 0, axes/extruders owned 0x0000000
      Code queue 1 is empty
      === CAN ===
      Messages queued 15996, received 35418, lost 0, errs 0, boc 0
      Longest wait 2ms for reply type 6053, peak Tx sync delay 261, free buffers 26 (min 25), ts 8842/8841/0
      Tx timeouts 0,0,0,0,0,0
      === Network ===
      Slowest loop: 17.33ms; fastest: 0.00ms
      Responder states: MQTT(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0)
      HTTP sessions: 1 of 8
      === WiFi ===
      Interface state: active
      Module is connected to access point 
      Failed messages: pending 0, notrdy 0, noresp 0
      Firmware version 1.27
      MAC address f0:08:d1:03:80:d7
      Module reset reason: Power up, Vcc 3.38, flash size 2097152, free heap 25056
      WiFi IP address 192.168.1.135
      Signal strength -36dBm, channel 0, mode 802.11n, reconnections 0
      Clock register 00002002
      Socket states: 0 0 0 0 0 0 0 0
      

      Thanks for your time.

      deckingmanundefined droftartsundefined 2 Replies Last reply Reply Quote 0
      • deckingmanundefined
        deckingman @br7408
        last edited by

        @br7408 When you run the heater tune, do you write the values to config-override or copy and paste them to config g? If it's the latter, then you need to put M501 at the end of config g in order for those values to be read in. Essentially, you have two M307 commands - one in config g and one in config-override.g but without using M501, then the values in config-override will be ignored. So do you have the result of the PID tune in config g?

        Ian
        https://somei3deas.wordpress.com/
        https://www.youtube.com/@deckingman

        1 Reply Last reply Reply Quote 0
        • droftartsundefined
          droftarts administrators @br7408
          last edited by

          @br7408 It looks like you have copied the M307 command into config.g. While the new value has been saved into config-override.g, you don't appear to have an M501 command in config.g to load those overrides.

          I have raised/lowered the M307 K value 10%. The guide says to lower it but I've also seen Dave tell people to raise it in this forum, so not sure.

          See https://docs.duet3d.com/en/User_manual/Connecting_hardware/Heaters_tuning#manual-adjustments-to-the-heater-model-parameters

          If during initial heating the temperature overshoots the target:

          • RRF 3.3 and later: reduce the R parameter by 5% or 10%

          It is not the K parameter you want to change, which is the cooling rate, it is the R parameter. The overheating may be because of the type of heater; if it is a PTC heater, these are harder to characterise, as their heating rate changes as they get hotter.

          Ian

          Bed-slinger - Mini5+ WiFi/1LC | RRP Fisher v1 - D2 WiFi | Polargraph - D2 WiFi | TronXY X5S - 6HC/Roto | CNC router - 6HC | Tractus3D T1250 - D2 Eth

          1 Reply Last reply Reply Quote 0
          • br7408undefined
            br7408
            last edited by br7408

            Somehow I fixed it.

            I added the M501 at the end of the config.g.

            I was not changing the K value; I was changing the R value; that was a mistype.

            It looks like I had gotten some strangely high K values from the M307 yesterday. I tried another PID today and it dropped way down and its working properly now. This hotend seems to be much more affected by my fan as well.

            I also updated to the newer RC2 firmware; although I doubt that made any difference.

            deckingmanundefined 1 Reply Last reply Reply Quote 0
            • deckingmanundefined
              deckingman @br7408
              last edited by

              @br7408 When you say this hot end is more affected by the fan, do you mean the part cooling fan? If so then try tuning the tool rather than the heater i.e. use M303 T0 rather then M303 H1. This will give you two sets of PID parameters and the firmware will switch to the second set when the fan comes on. The procedure is best done with the hot end close to the build plate so you get the same amount of deflected part cooling air as you would when printing.

              Ian
              https://somei3deas.wordpress.com/
              https://www.youtube.com/@deckingman

              br7408undefined 1 Reply Last reply Reply Quote 0
              • br7408undefined
                br7408 @deckingman
                last edited by br7408

                @deckingman

                Hi Ian. I was looking into that, as well as PID fan compensation. My part cooling fan is run off of the main board, through a CPAP tube. I also reasoned that this hotend would likely benefit from a heatsock/insulator but the Slice offering is about $50 USD.

                I built this printhead purely for a promotion, so I just need it to run well enough for now to get a print or two out of it. I will work out a more efficient implementation later.

                1 Reply Last reply Reply Quote 0
                • First post
                  Last post
                Unless otherwise noted, all forum content is licensed under CC-BY-SA