SOLVED Compressor via thermostatic fan (3HC) not working after upgrade



  • Dear Duet community

    I've been running a cooling compressor to cool our printchamber (Chocolat Printer as university research project) for a half a year without any troubles with the below attached config.g. We're using a Duet 3 with extension board 3HC and a SBC attached. The complicated solution via a thermostatic controlled fan output was neccessary at that time due to the need for hysteresis. If a cooling compressor gets turned on and off all the time it cut's down seriously on its lifetime. Now after a firmwareupgrade from 3.01RC12 to 3.2 the compressor is not working anymore. I would appreciate if anyone could get some inputs where that problem could come from or if I missed an entry in the changelogs. I searched allready a few hours but couldn't find the problem till now. Hardware shouldn't be an issue, all wiring doublechecked. I have two identical printers, one with 3.01 RC12 and one with 3.2.

    Thanks for any hints!

    Old thread with the hysteresis workarround:
    https://forum.duet3d.com/topic/12802/how-to-turn-off-heater-fault-detection-chocolate-printer/6?_=1610522052215
    Our chocolat printer:
    https://chocoformer.com

    The config that is not working anymore:

    ; Configuration file for Duet 3 Chocoformer2
    
    ; General preferences
    G90                                                             	; send absolute coordinates...
    M83                                                             	; ...but relative extruder moves
    M550 P"CHOCOFORMER2"                                         		; set printer name
    
    ; Network
    M552 P192.168.1.10 S1                                           	; enable network and set IP address
    M553 P255.255.255.0                                             	; set netmask
    M554 P192.168.1.254                                             	; set gateway
    M586 P0 S1                                                      	; enable HTTP
    M586 P1 S1                                                      	; enable FTP
    M586 P2 S0                                                      	; disable Telnet
    
    ; Enable Paneldue on I/O Port 0
    M575 P1 S1 B57600
    
    ; *** Drives ***
    ; * Mainboard *
    M569 P0.0 S0                                                    	; physical drive 0.0 goes forwards [Y1]
    M569 P0.1 S1                                                    	; physical drive 0.1 goes forwards [Y2]
    M569 P0.2 S1                                                    	; physical drive 0.2 goes forwards [Z]
    M569 P0.3 S0                                                    	; physical drive 0.3 goes forwards [X]
    M569 P0.4 S1                                                    	; physical drive 0.4 goes forwards [U]
    
    ; * Extension board *
    M569 P1.0 S1                                                    	; physical drive 1.0 goes forwards [E1]
    M569 P1.1 S1                                                    	; physical drive 1.1 goes forwards [E2]
    M569 P1.2 S1                                                    	; physical drive 1.2 goes forwards [V]
    
    M584 X0.3 Y0.0:0.1 Z0.2 U0.4 V1.2 E1.0:1.1								; set drive mapping
    
    M350 X16 Y16 Z16 U16 V16 E16:16 I1                                		; configure microstepping with interpolation
    M92 X66.67 Y66.67 Z1066.67 U66.67 V1613 E1000:1000						; set steps per mm
    M566 X900.00 Y900.00 Z12.00 U900.00 V12 E120.00:120.00					; set maximum instantaneous speed changes (mm/min)
    M203 X25000.00 Y25000.00 Z600.00 U25000 V1200 E600.00:600.00		; set maximum speeds (mm/min)
    M201 X300.00 Y300.00 Z20.00 U300.00 V20 E250.00:250.00					; set accelerations (mm/s^2)
    M906 X1200 Y1200 Z1200 U1200 V450 E800:800 I40							; set motor currents (mA) and motor idle factor in per cent
    M84 S10                                                         	; Set idle timeout
    
    ; Axis Limits
    M208 X-152.2 Y0 Z0 U0 V0 S1                                        	; set axis minima
    M208 X312.8 Y330 Z300 U451.2 V174.2 S0                                 	; set axis maxima, edit U-Axis maxima to rough align the two heads
    
    ; Endstops
    M574 X1 S1 P"io1.in"                                            	; configure active-high endstop for low end on X via pin io1.in
    M574 U2 S1 P"io2.in"                                            	; configure active-high endstop for low end on U via pin io2.in
    M574 Y1 S1 P"io3.in"                                            	; configure active-high endstop for low end on Y via pin io3.in
    M574 V2 S1 P"1.io0.in"												; configure active-high endstop for high end on V via pin 1.io0.in
    
    
    ; Z-Probe
    M558 P5 C"io6.in+io6.out" H5 F250 T12000                         	; set Z probe type to unmodulated and the dive height + speeds
    G31 P500 X0 Y-40 Z68.05                                         	; set Z probe trigger value, offset and trigger height, incrase Z to lower nozzle onto bed
    M557 X50:250 Y50:250 S50                                        	; define mesh grid
    *****************************************
    ; Heaters
    M308 S0 P"temp0" Y"thermistor" T100000 B4138 A"tempRH0"        		; configure sensor 0 as thermistor on pin temp0
    M950 H0 C"out3" T0                                              	; create nozzle heater output on out0 and map it to sensor 0
    M143 H0 S60                                                    		; set temperature limit for heater 0 to 60C
    M307 H0 B0 S1.00                                                	; disable bang-bang mode for heater  and set PWM limit
    M308 S1 P"temp1" Y"thermistor" T100000 B4138 A"tempRH1"             ; configure sensor 1 as thermistor on pin temp1
    M950 H1 C"out1" T1                                              	; create nozzle heater output on out1 and map it to sensor 1
    M143 H1 S60                                                    		; set temperature limit for heater 1 to 60C
    M307 H1 B0 S1.00                                                	; disable bang-bang mode for heater  and set PWM limit
    M308 S2 P"temp2" Y"thermistor" T100000 B4138 A"tempLH0"             ; configure sensor 2 as thermistor on pin temp2
    M950 H2 C"out2" T2                                              	; create nozzle heater output on out2 and map it to sensor 2
    M143 H2 S60                                                    		; set temperature limit for heater 2 to 60C
    M307 H2 B0 S1.00                                                	; disable bang-bang mode for heater  and set PWM limit
    M308 S3 P"temp3" Y"thermistor" T100000 B4138 A"tempLH1"             ; configure sensor 3 as thermistor on pin temp3
    M950 H3 C"out0" T3                                            		; create nozzle heater output on 1.out0 and map it to sensor 3
    M143 H3 S60                                                    		; set temperature limit for heater 3 to 60C
    M307 H3 B0 S1.00                                                	; disable bang-bang mode for heater  and set PWM limit
    M308 S4 P"1.temp0" Y"thermistor" T100000 B4138  A"tempChamber"      ; configure sensor 4 as thermistor on pin 1.temp0
    M950 H4 C"1.out8" T4                                            	; create chamber heater output on 1.out9 and map it to sensor 4
    M143 H4 S30                                                    		; set temperature limit for heater 4 to 60C
    M307 H4 B1 S1.00                                                	; enable bang-bang mode for the chamber heater and set PWM limit
    M141 H4                                                         	; map chamber to heater 4
    
    ; Heater fault detection parameters (only that high because of underpowered heaters!)
    
    M570 H0 P3600 T100
    M570 H1 P3600 T100
    M570 H2 P3600 T100
    M570 H3 P3600 T100
    M570 H4 P3600 T100
    
    ; Fans
    M950 F0 C"out7" Q500                                            	; create fan 0 on pin out7 and set its frequency "Power Section Fan"
    M106 P0 S1 H-1                                                  	; set fan 0 value. Thermostatic control is turned off
    M950 F1 C"out8" Q500                                            	; create fan 1 on pin out8 and set its frequency "Electronic Cabinet Fan"
    M106 P1 S1 H-1                                                  	; set fan 1 value. Thermostatic control is turned off
    M950 F2 C"out9" Q500                                            	; create fan 2 on pin out9 and set its frequency "Compressor Section Fan"
    M106 P2 S1 H-1                                                  	; set fan 2 value. Thermostatic control is turned off
    M950 F3 C"1.out6" Q500                                          	; create fan 3 on pin 1.out6 and set its frequency "Compressor Enable"
    M106 P3 S1 H4 T30                                               	; set fan 3 value. Thermostatic control is turned off
    M950 F4 C"1.out7" Q500                                          	; create fan 3 on pin 1.out7 and set its frequency "Chamber Circulating Fan"
    M106 P4 S1 H-1                                                 		; set fan 3 value. Thermostatic control is turned off
    
    ; Tools
    M563 P0 S"Printhead_Right" D0 H0:1 F0                           	; define tool 0
    G10 P0 X0 Y0 Z0.0                                                 	; set tool 0 axis offsets
    G10 P0 R0 S0                                                    	; set initial tool 0 active and standby temperatures to 0C
    M563 P1 S"Printhead_Left" D1 H2:3 F0 X3                         	; define tool 1, X3 attaches the U Axis to the X coordinates while tool active
    G10 P1 X0.25 Y0 Z-0.1                                               ; set tool 1 axis offsets, -Z lifts values from bed, + lowers it onto bed
    G10 P1 R0 S0                                                    	; set initial tool 1 active and standby temperatures to 0C
    
    ; Custom settings
    
    M302 P1 ; Allow cold extrusion
    
    ; GPIO
    
    M950 J1 C"0.io8.in" 												; Input 8 extension for door laser sensor
    M581 T2 P1 S1 R0													; Interrupt trigger2.g to open door
    

  • administrators

    Have you tried running M98 P"config.g" to check for failing commands in config.g?



  • Hi dc

    Thanks for your input. It reported some CAN Bus errors. I set the CAN adress of the extension board to 0000 and then I guess it pulled the new firmware. After restarting the errors where gone. I thought that shouldn't be an issue, because the steppers and endstop inputs where working propperly on that board.

    Thanks for your fast reply!

    Errors returned from M98 P"config.g"
    Error: M584: Response timeout: CAN addr 1, req type 6042, RID=36
    Error: M350: Response timeout: CAN addr 1, req type 6042, RID=37
    Error: M92: Response timeout: CAN addr 1, req type 6042, RID=38
    Error: M906: Response timeout: CAN addr 1, req type 6043, RID=39
    Response timeout: CAN addr 1, req type 6043, RID=40
    Response timeout: CAN addr 1, req type 6043, RID=41


  • Moderator

    Can you confirm with M122 and M122 B1 that the update to 3.2 has been applied to all boards?

    I assume you updated through the SBC with the usual sudo apt update, etc?



  • Hi Phaedrux

    Sorry for the late reply. Covid restrictions ^^

    Yes I can confirm that both are running now on 3.2 without any errors. I had to change the Duet3 board after upgrading due to the diode manufacturing problem and probabbly while upgrading the new board something got mixed up. You can mark the thread as solved.

    Thanks for your support!


Log in to reply