Max heater limit ignored in config.g



  • Here's a bit of a new one for me. It seems to have started when I updated to version 3.1.1 on my Duet 3 board. I have a temperature limit set in my config.g for my heater 0 of 165C. But if I try to set the bed higher than 120 I get an error.

    This line is in my config.g

    M143 H0 S165                                    ; set temperature limit for heater 0 to 165C
    

    But if I try to set the temp it seems to be ignored. If I send that same M143 command from the console of the DWC it is accepted and then I can set the bed temp to 165 with no errors.

    I did a search in my config.g and my config-override.g for M143 H0 and it is only in there once so I'm not accidentally overriding it anywhere.

    Has anyone else come across this or could it be a bug?

    It appears to have an arbitrary limit of 125C. My other temp limits have been accepted in my config.g. It seems that H0 does not like a temp higher than 125 in the config.g.

    
    Duet 3
    M98 P"config.g"
    Status
    Idle
    Mode: FFF
    Tool Position
    X
    0.0
    Y
    0.0
    Z
    0.00
    Extruder Drives
    Drive 0
    0.0
    Drive 1
    0.0
    Speeds
    Requested Speed
    0 mm/s
    Top Speed
    0 mm/s
    Sensors
    Vin
    24.9 V
    V12
    12.1 V
    MCU Temperature
    48.8 C
    Z-Probe
    0
     Tools
     Extra
     Control All
    Tool	Heater	Current	Active	Standby
    Primary
    T0 - PLA	Heater 1
    active	65.7 C	
    0
    0
    Secondary
    T1 - Load Filament	Heater 2
    off	48.5 C	
    0
    0
    Bed	Heater 0
    off	62.0 C	
    0
    0
    Chamber	Heater 3
    off	45.8 C	
    0
    0
    Temperature Chart
    System Directory
    0:/sys/config.g
    ; Configuration file for Duet 3 (firmware version 3)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool v2.1.8 on Fri Apr 24 2020 14:40:15 GMT-0600 (Central Standard Time)
    
    ; General preferences
    G90                                             ; send absolute coordinates...
    M83                                             ; ...but relative extruder moves
    M550 P"Duet 3"                                  ; set printer name
    
    M667 S1                                         ; select CoreXY mode
    
    ; Drives
    M569 P0.0 S1                                    ; physical drive 0.0 goes backwards
    M569 P0.1 S0                                    ; physical drive 0.1 goes backwards
    M569 P0.2 S0                                    ; physical drive 0.2 goes backwards
    M569 P0.4 S0                                    ; physical drive 0.4 goes backwards
    M569 P0.5 S0                                    ; physical drive 0.5 goes forwards
    M584 X0.2 Y0.1 Z0.4 E0.5:0.0                    ; set drive mapping
    M350 X32 Y32 Z32 E16:16 I1                      ; configure microstepping with interpolation
    M92 X200.00 Y200.00 Z1600.00 E837:837           ; set steps per mm
    M566 X800.00 Y800.00 Z100.00 E240.00:240.00      ; set maximum instantaneous speed changes (mm/min)
    M203 X15000.00 Y15000.00 Z1200.00 E2400.00:2400.00 ; set maximum speeds (mm/min)
    M201 X800.00 Y800.00 Z40.00 E300.00:300.00      ; set accelerations (mm/s^2)
    M906 X1800 Y1800 Z1200 E1000:1000 I30           ; set motor currents (mA) and motor idle factor in per cent
    M84 S30                                         ; Set idle timeout
    
    ; Axis Limits
    M208 X-186.5 Y-175 Z-2.8 S1                     ; set axis minima
    M208 X186.5 Y175 Z583.1 S0                      ; set axis maxima
    
    ; Endstops
    M574 X1 S1 P"io0.in"                            ; configure active-high endstop for low end on X via pin io0.in use a NC switch
    M574 Y1 S1 P"io1.in"                            ; configure active-high endstop for low end on Y via pin io1.in use a NC switch
    M574 Z2 S1 P"io2.in"                            ; configure active-high endstop for high end on Z via pin io2.in use a NC switch
    
    ; Z-Probe
    M950 S1 C"io4.out"								; Set pin4 out as servo out 0
    M558 P9 C"^io4.in" H3 F200 T12000     			; set Z probe type to BL touch and the dive height + speeds
    G31 P500 X55 Y48 Z3.076	                		; set Z probe trigger value, offset and trigger height
    M557 X-115:185 Y-120:120 S60              	    ; define mesh grid
    M280 P1 S160									; Reset Probe just in case
    M402											; Retract probe just in case
    
    ; Heaters
    M308 S0 P"temp0" Y"thermistor" T100000 B4138    ; configure sensor 0 as thermistor on pin temp0
    M950 H0 C"out0" T0                              ; create bed heater output on out0 and map it to sensor 0
    M143 H0 S165                                    ; set temperature limit for heater 0 to 165C
    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
    
    M308 S1 P"temp1" Y"pt1000" R2200                ; configure sensor 1 as PT1000 on pin temp1
    M950 H1 C"out1" T1                              ; create nozzle heater output on out1 and map it to sensor 1
    M143 H1 S340                                    ; set temperature limit for heater 1 to 340C
    M307 H1 B0 S1.00                                ; disable bang-bang mode for heater  and set PWM limit
    
    M308 S2 P"temp2" Y"pt1000" R2200                ; configure sensor 2 as PT1000 on pin temp2
    M950 H2 C"out2" T2                              ; create nozzle heater output on out2 and map it to sensor 2
    M143 H2 S340                                    ; set temperature limit for heater 2 to 340C
    M307 H2 B0 S1.00                                ; disable bang-bang mode for heater  and set PWM limit
    
    M308 S3 P"temp3" Y"thermistor" T100000 B4138    ; configure sensor 3 as thermistor on pin temp0
    M950 H3 C"out3" T3                              ; create chamber heater output on out3 and map it to sensor 3
    M143 H3 S75                                     ; set temperature limit for heater 3 to 75C
    M307 H3 B1		 		                        ; disable bang-bang mode for heater  and set PWM limit
    M141 H3											; map heated chamber to heater 3
    
    ;Heater Tuning parameters
    M307 H0 A253.1 C685.6 D0.7 V24.9 B0				; PID model for Heater 0
    M307 H1 A529.2 C249.3 D5.7 V24.8 B0				; PID model for heater 1
    M307 H2 A418.3 C213.8 D3.6 V24.8 B0				; PID model for heater 2
    M307 H3 A90 C1500 D600	V24.8 B1				; BANG-BANG model for heater 3
    
    ;Virtual Heaters
    M308 S4 Y"mcu-temp" A"MCU"						; create mcu temperature
    M308 S5 Y"drivers" A"Stepper driver"			; create driver temperatures
    
    ; Fans
    M950 F0 C"out7" Q500                            ; create fan 0 on pin out4 and set its frequency used for Radiator cooler fan
    M106 P0 T85 S1 H1:2                             ; set fan 0 value. Thermostatic control is turned on
    M950 F1 C"out8" Q500                            ; create fan 1 on pin out5 and set its frequency used for Water circ pump
    M106 P1 T45 S1 H1:2                             ; set fan 1 value. Thermostatic control is turned on
    M950 F2 C"out4" Q500                            ; create fan 2 on pin out7 and set its frequency used for Part cooling fan
    M106 P2 S0.0                                    ; set fan 2 value. Thermostatic control is turned off
    M950 F3 C"out5" Q500                            ; create fan 3 on pin out8 and set its frequency used for board cooling fan
    M106 P3 T35:55 H4:5						        ; set fan 3 value. Thermostatic control is proportional to the CPU or driver temps
    M950 F4 C"out6" Q500							; create fan 4 on pin out 6 and set its frequency used. for bed cooling fan
    M106 P4 S0.0									; set fan 4 value. Thermostatic control is turned off.  Controlled by Gcode only
    
    ; Tools
    M563 P0 S"Primary" D0 H1 F2                   	; 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"Secondary" D1 H2 F2                	; define tool 1
    G10 P1 X25.25 Y0 Z0                             ; set tool 1 axis offsets
    G10 P1 R0 S0                                    ; set initial tool 1 active and standby temperatures to 0C
    
    ; Custom settings
    M572 D0:1 S0.03:0.03							; Set Pressure advance settings
    ;G28	Z											; Home Z
    ;G28 X Y											; Home X and Y
    ;M280 P1 S120									; Probe Self test
    T0												; Set tool 0 active
    ;G1 X0 Y0 F12000									; Move print head to middle of bed
    ; Miscellaneous
    M911 S22.0 R24.0 P"M913 X50 Y50 G91 M83 G1 Z3 E-5 F1000"	; Set the power loss resume parameters
    M501											; Load Config-overide.g
    
    

    Here is the rest of the config.g in case that helps.

    Also here is the override.g

    
    Duet 3
    M98 P"config.g"
    Status
    Idle
    Mode: FFF
    Tool Position
    X
    0.0
    Y
    0.0
    Z
    0.00
    Extruder Drives
    Drive 0
    0.0
    Drive 1
    0.0
    Speeds
    Requested Speed
    0 mm/s
    Top Speed
    0 mm/s
    Sensors
    Vin
    24.9 V
    V12
    12.1 V
    MCU Temperature
    48.8 C
    Z-Probe
    0
     Tools
     Extra
     Control All
    Tool	Heater	Current	Active	Standby
    Primary
    T0 - PLA	Heater 1
    active	64.1 C	
    0
    0
    Secondary
    T1 - Load Filament	Heater 2
    off	48.5 C	
    0
    0
    Bed	Heater 0
    off	61.0 C	
    0
    0
    Chamber	Heater 3
    off	45.5 C	
    0
    0
    Temperature Chart
    System Directory
    0:/sys/config-override.g
    ; config-override.g file generated in response to M500 at 2020-07-01 15:05
    
    ; Heater model parameters
    M307 H0 A253.1 C685.6 D0.7 S1.0 V24.9 B0
    M307 H1 A529.2 C249.3 D5.7 S1.0 V24.8 B0
    M307 H2 A418.3 C213.8 D3.6 S1.0 V24.8 B0
    M307 H3 A90 C1500.0 D600.0 S1.0 V24.8 B1
    ; Z probe parameters
    G31 P500 X55.0 Y48.0 Z2.68
    ; 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
    
    

  • Moderator

    @baird1fa see the firmware update notes for 3.1.0:

    Any M143 H0 command must come later in config.g than the M140 H0 command, because M140 resets the temperature limit for the heater to the default for bed heaters.

    https://github.com/Duet3D/RepRapFirmware/blob/v3-dev/WHATS_NEW_RRF3.md#reprapfirmware-310

    Your M143 is before M140.

    Ian



  • @droftarts would that then also apply to the M141 H3?



  • @droftarts Thanks so much.


  • Moderator

    @baird1fa said in Max heater limit ignored in config.g:

    @droftarts would that then also apply to the M141 H3?

    Yes. See https://duet3d.dozuki.com/Wiki/Gcode#Section_M141_Set_Chamber_Temperature_Fast_or_Configure_Chamber_Heater

    Order dependency

    In RRF3 a M141 command with H parameter (other than H-1) must come after the M950 command that creates that heater, and before any M143 command that sets a temperature limit for that heater.

    Ian


Log in to reply