Firmware 3.0 update. Heaters problem



  • Hi,

    I went to 2.04 to 3.0 firmware update.

    Fixed fans problems.
    Fixed z-probe homing etc.
    PID auto tuned heaters, sensors no problem.

    The problem is I can configure heaters(H0/H1/H2) manually and can reach any temperature I want but when start of the print I am getting error something like heater1 never reaches target temp in 1.7 sec.

    I see that H0 heatedbed is active and getting warmer but heater1 and heater2 never gets activated but the firmware thinks that they are active but not reaching the temp. point.

    Normally at the startup of the print, first the heated bed was reaching the target than extruder activated. There should be smt. I am missing.
    Thanks


  • Moderator

    Did you PID tune the bed heater? Did you save the results?

    What do you have in your start gcode for the heaters?



  • Thanks.

    Yes I have pid tuned all heaters including bed. The print file is from sdcard calibration cube. I mean it is old gcode file on sdcard that i print succesful one week ago.


  • Moderator

    @secure Sounds like there's something at the beginning of the gcode file that is setting temperatures. Please post your config.g, config-override.g (if used) and the gcode file that is causing the problem.

    Ian



  • Weird but M500 turns with

    Warning: No M501 command was executed in config.g
    

    config-override.g file

    ; Heater model parameters
    M307 H0 A340.0 C140.0 D5.5 S1.00 V0.0 B0
    M307 H1 A340.0 C140.0 D5.5 S1.00 V0.0 B0
    M307 H2 A340.0 C140.0 D5.5 S1.00 V0.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
    

    config

    ; General preferences
    G90                                                ; send absolute coordinates...
    M83                                                ; ...but relative extruder moves
    M550 P"DUET"                                       ; set printer name
    
    ; 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 S1                                         ; physical drive 1 goes forwards
    M569 P2 S1                                         ; physical drive 2 goes forwards
    M569 P3 S1                                         ; physical drive 3 goes forwards
    M569 P4 S1                                         ; physical drive 4 goes forwards
    M584 X0 Y1 Z2 E3:4                                 ; set drive mapping
    M350 X16 Y16 Z16 E16:16 I1                         ; configure microstepping with interpolation
    M92 X81.25 Y81.25 Z400.00 E420.00:420.00           ; set steps per mm
    M566 X900.00 Y900.00 Z12.00 E120.00:120.00         ; set maximum instantaneous speed changes (mm/min)
    M203 X9000.00 Y9000.00 Z200.00 E1200.00:1200.00    ; set maximum speeds (mm/min)
    M201 X500.00 Y500.00 Z20.00 E250.00:250.00         ; set accelerations (mm/s^2)
    M906 X1200 Y1200 Z1200 E1200:1200 I30              ; set motor currents (mA) and motor idle factor in per cent
    M84 S30                                            ; Set idle timeout
    
    ; Axis Limits
    M208 X5 Y5 Z5 S1                                   ; set axis minima
    M208 X440 Y420 Z400 S0                             ; set axis maxima
    
    ; Endstops
    M574 X1 S1 P"xstop"                                ; configure active-high endstop for low end on X via pin xstop
    M574 Y1 S1 P"ystop"                                ; configure active-high endstop for low end on Y via pin ystop
    M574 Z1 S2                                         ; configure Z-probe endstop for low end on Z
    
    ; Z-Probe
    M950 S0 C"exp.heater7"                             ; create servo pin 0 for BLTouch
    M558 P9 C"zprobe.in+zprobe.mod" H5 F150 T9000      ; set Z probe type to bltouch and the dive height + speeds
    G31 P25 X-25 Y-25.3 Z2.4                           ; set Z probe trigger value, offset and trigger height
    M557 X60:420 Y40:420 S170                          ; 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
    M143 H0 S125                                       ; set temperature limit for heater 0 to 125C
    M307 H0 B0 S1.00                                   ; disable bang-bang mode for the bed heater and set PWM limit
    M140 H0                                            ; map heated bed to heater 0
    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
    M143 H1 S280                                       ; set temperature limit for heater 1 to 280C
    M307 H1 B0 S1.00                                   ; disable bang-bang mode for heater  and set PWM limit
    M308 S2 P"e1temp" Y"thermistor" T100000 B4138      ; configure sensor 2 as thermistor on pin e1temp
    M950 H2 C"e1heat" T2                               ; create nozzle heater output on e1heat and map it to sensor 2
    M143 H2 S280                                       ; set temperature limit for heater 2 to 280C
    M307 H2 B0 S1.00                                   ; disable bang-bang mode for heater  and set PWM limit
    
    ; Fans
    M106 P0 S0.3 I0 F500 H-1                           ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
    M106 P1 S0 I0 F500 H-1                             ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned off
    M106 P2 S0 I0 F500 H-1                             ; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned off
    
    ; Tools
    M563 P0 S"İnce" 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
    M563 P1 S"Kalın" D1 H2 F0                          ; define tool 1
    G10 P1 X0 Y0 Z0                                    ; set tool 1 axis offsets
    G10 P1 R0 S0                                       ; set initial tool 1 active and standby temperatures to 0C
    
    ; Custom settings are not defined
    
    ; Miscellaneous
    M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss
    

    print.PNG

    I can activate heaters manually.



  • @droftarts There is no problem with the gcode really. I have tried almost 5 old gcodes stored in SDCard. They were fine before and printing without problem



  • One after one H1 pid tuning result turns with different results. M500 doesnt seem to store them

    M307 H1
    Heater 1 model: gain 505.8, time constant 157.9, dead time 2.8, max PWM 1.00, calibration voltage 25.2, mode PID
    Computed PID parameters for setpoint change: P19.7, I0.930, D39.0
    Computed PID parameters for load change: P19.7, I2.228, D39.0
    
    M307 H1
    Heater 1 model: gain 288.5, time constant 86.7, dead time 3.9, max PWM 1.00, calibration voltage 25.2, mode PID
    Computed PID parameters for setpoint change: P13.9, I0.760, D37.6
    Computed PID parameters for load change: P13.9, I1.450, D37.6
    

  • Moderator

    @secure Do you have a copy of your config.g from when you were running RRF v2.04? This may help with some of the following.

    First, you need to get your temperature sensors reporting accurately.

    M308 S0 P"bedtemp" Y"thermistor" T100000 B4138     ; configure sensor 0 as thermistor on pin bedtemp
    M308 S1 P"e0temp" Y"thermistor" T100000 B4138      ; configure sensor 1 as thermistor on pin e0temp
    M308 S2 P"e1temp" Y"thermistor" T100000 B4138      ; configure sensor 2 as thermistor on pin e1temp
    

    T100000 B4138 is the default thermistor setting, for a Honeywell 135-104QAD-J01 thermistor that shipped with hot ends from RepRapPro, who have been out of business for 4 years! So I doubt you have the correct thermistor settings, and likely the temperature your heaters are reporting is not accurate. All 100k ohm thermistors have a resistance of 100k ohms at 25C, and will be fairly accurate at room temperature, but they report very differently as they get hotter. So please check what thermistors you have in your bed and hot ends, and set them correctly, then you have a chance of accurately setting extrusion temperature.

    Then, your heater settings. For full details see: https://duet3d.dozuki.com/Wiki/Tuning_the_heater_temperature_control

    Your heater settings are at the default. It looks like you haven't tuned your heaters THEN sent M500 (to store them to config-override.g). Alternatively you can copy the heater tuning to config.g. This hasn't been done, as the heater profiles in your config.g are still:

    M307 H0 B0 S1.00
    M307 H1 B0 S1.00
    M307 H2 B0 S1.00
    

    While the hot ends will probably heat up, the temperature control won't be smooth. So, tune heaters with something like:

    M303 H0 S60
    M303 H1 S200
    M303 H2 S200
    

    Run them each a number of times, but wait for the heater to be at room temperature before doing it again. Once the results converge, send M500 to save them to config-override.g

    Then either add M501 to the end of config.g so they load from config-override.g, or copy the heater settings to config.g

    You can check the current heater settings by sending M307 H0, M307 H1 or M307 H2 from the console.

    Ian



  • @droftarts Thanks. I thought they were correct when I see them at 18C degree. I'm using typical 100K Ohm NTC3950.

    ; Configuration file for Duet WiFi (firmware version 1.21)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool v2 on Fri Feb 08 2019 02:22:13 GMT+0300 (GMT+03:00)
    
    ; General preferences
    G90                                                  ; Send absolute coordinates...
    M83                                                  ; ...but relative extruder moves
    
    ; Network
    M550 P"DUET"                                         ; Set machine name
    M552 S1                                              ; Enable network
    M587                        ; Configure access point. You can delete this line once connected
    M586 P0 S1                                           ; Enable HTTP
    M586 P1 S0                                           ; Disable FTP
    M586 P2 S0                                           ; Disable Telnet
    
    ; Drives
    M569 P0 S1                                           ; Drive 0 goes forwards X
    M569 P1 S1                                           ; Drive 1 goes forwards Y
    M569 P2 S1                                           ; Drive 2 goes forwards Z
    M569 P3 S0                                           ; Drive 3 goes forwards E0
    M569 P4 S0                                           ; Drive 4 goes forwards E1
    M350 X16 Y16 Z16 E16:16 I1                           ; Configure microstepping with interpolation
    M92 X80 Y80 Z400 E95.00:95.00        	             ; Set steps per mm (CUBE:Y20.15 X:20.05 M92 X80.25 Y81.00 Z400.25 E95.00:95.00) 
    M566 X1000.00 Y1000.00 Z100.00 E120.00:120.00        ; Set maximum instantaneous speed changes (mm/min) (best at M566 X900.00 Y900.00 Z12.00 E120.00:120.00 )
    M203 X20000.00 Y20000.00 Z500.00 E1200.00:1200.00    ; Set maximum speeds (mm/min) (best at M203 X6000.00 Y6000.00 Z180.00 E1200.00:1200.00 )
    M201 X500.00 Y500.00 Z40.00 E300.00:300.00           ; Set accelerations (mm/s^2) (best at M201 X500.00 Y500.00 Z20.00 E250.00:250.00 )
    M906 X1200.00 Y1200.00 Z1200.00 E1200.00:1200.00 I30 ; Set motor currents (mA) and motor idle factor in per cent
    M84 S30                                              ; Set idle timeout
    
    ; Axis Limits
    M208 X0 Y-10 Z0 S1                                   ; Set axis minima
    M208 X420 Y420 Z400 S0                               ; Set axis maxima
    
    ; Endstops
    M574 X1 Y1 S1                                        ; Set active high endstops
    
    ; Z-Probe
    M574 Z1 S2                                           ; Set endstops controlled by probe
    M307 H7 A-1 C-1 D-1                                  ; Disable heater on PWM channel for BLTouch
    M558 P5 H15 F120 T6000 X0 Y0 Z1.5                    ; Set Z probe type to bltouch and the dive height + speeds
    G31 P25 X-25 Y-25.3 Z1.4                             ; Set Z probe trigger value, offset and trigger height
    M557 X50:440 Y20:430 S115                            ; Define mesh grid
    G31 Z2.8
    
    ; Heaters
    M305 P0 T100000 B4138 R4700                          ; Set thermistor + ADC parameters for heater 0
    M143 H0 S120                                         ; Set temperature limit for heater 0 to 120C
    M305 P1 T100000 B4138 R4700                          ; Set thermistor + ADC parameters for heater 1
    M143 H1 S280                                         ; Set temperature limit for heater 1 to 280C
    M305 P2 T100000 B4138 R4700                          ; Set thermistor + ADC parameters for heater 2
    M143 H2 S280                                         ; Set temperature limit for heater 2 to 280C
    M307 H0 P131.6, I5.350, D284.4			     ; Auto tuning sonuçları
    
    ; Fans
    M106 P0 S0.3 I0 F500 H-1                             ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
    M106 P1 S0 I0 F500 H-1                               ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned off
    M106 P2 S0 I0 F500 H-1                               ; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned off
    
    ; Tools
    M563 P0 S"E1" D0 H1 F1				     ; Define tool E1 
    M563 P1 S"E2" D1 H2 F2                               ; Define tool E2
    G10 P0 X0 Y0 Z0                                    ; Set tool E1 axis offsets
    G10 P1 X-32.50 Y0 Z0                                 ; Set tool E2 axis offsets
    G10 P0 R0 S0                                         ; Set initial tool 0 active and standby temperatures to 0C
    G10 P1 R0 S0 					     ; Set initial tool 0 active and standby temperatures to 0C
    
    ; Automatic saving after power loss is not enabled
    
    ; Custom settings are not configured
    


  • M308 S1 P"e0temp" Y"thermistor" T100000 B3950

    I have added this into my config file the readings getting worst. Infrared thermometer shows 110 deg while the heater set at 200C. It is interesting not find a calibration easily for that thermistor.


  • Moderator

    @secure If it can melt filament, I'd trust the thermistor, not the IR probe, which measures the surface temperature. If it can't melt filament, you may have a faulty thermistor.

    Ian



  • I searched and come with a very little information about this "ebay" thermistors on Reprap firmware so I made a little guess with IR thermometer.

    I configured settings like below.
    M308 S1 P"e0temp" Y"thermistor" T100000 B4250 R4700

    pid tuning
    M307 H0 A81.1 C180.3 D3.1 S1.00 V25.3 B0
    M307 H1 A479.4 C157.1 D3.0 S1.00 V25.2 B0
    M307 H2 A498.2 C140.7 D2.9 S1.00 V25.2 B0

    I went from bang bang to pid for heated bed. It is a 220v silicone heater. In bang bang mode I can see the SSR lights blinks. Now in pid mode it is dimming the ssr light. I will further investigate this as I dont know which is safe.

    Thanks


  • Moderator

    @secure said in Firmware 3.0 update. Heaters problem:

    Now in pid mode it is dimming the ssr light. I will further investigate this as I dont know which is safe.

    This will depend on the rating of your SSR. You can change the PWM frequency by using the Q parameter in the M950 command that creates the heater, eg .
    M950 H0 C"bedheat" T0 Q100
    See https://duet3d.dozuki.com/Wiki/Gcode?revisionid=HEAD#Section_M950_Create_heater_fan_or_GPIO_servo_pin

    Either that, or set it back to bang-bang mode, but keep the rest of the PWM settings, so it knows how long it's going to take to heat up, and doesn't fault, eg
    M307 H0 A81.1 C180.3 D3.1 S1.00 V25.3 B1

    Ian


  • administrators

    For AC bed heaters controlled by SSRs, I recommend you use PID with the PWM frequency set to 10Hz (Q10 in the M950 H0 command).



  • @dc42 Thanks captain that seems better now!

    I'm using 100K NTC3950 sensor but I was thinking I'm on the the colder side. I've checked/ recalibrated sensor settings with my PID controller. When DUET shows 200C degree I was measuring 165C so I come up with settings

    M308 S1 P"e0temp" Y"thermistor" T100000 B4360 c0.00000000001
    

    I have tried with temperature points 100C-170C-260C and DUET reads fine now.

    f6d1404a-5550-44e3-9611-9556b370b0fc.jpg



  • The thing very interesting is the extruder steps.
    I had to change that lot. How could this be?

    2019 backup config.g file 2.04

    M92 X80 Y80 Z400 E95.00:95.00   
    

    2020 config.g file 3.00

    M92 X81.25 Y81.25 Z400.00 E250.00:250.00           ; set steps per mm
    

  • administrators

    What type of extruder are you using, and what microstepping in your M350 command?



  • Sorry this was my fault. My config.json file has 250mm steps so i edited via config tool(I like this) and missed that steps are wrong.

    I need to figure out how to update config.json file.


  • Moderator

    @secure To edit config.json you'd have to load it up in the configurator, make changes, and save it out again.

    Or just stick to editing config.g since it's human readable.


Log in to reply