Chamber Heater Setup - Fan Behavior
-
EDIT: I use a Duet 3 Mini 5+ and firmware v3.4.2.
I searched but didnt find an answer. I am setting up a chamber heater and i have trouble configuring my fan behavior. My basic request is to setup my PWM fan such that when the chamber heater turns on, the heater fan turns on to circulate the hot air. But i guess a more complex version of this would be temperature control, but in reverse. When the heater turns on, the fan should turn on to circulate the hot air up to the setpoint at which the fan will reduce or turn off. This seems opposite to a normal hotend fan which turns off until a high temp is reached, then turns on. Chamber fan should turn on until a high temp is reached, then turn off.
Here is my config.g:
; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"V-Core3" ; set printer name M669 K1 ; CoreXY G21 ; Set Units to Millimeters ; Network M552 S2 ; enable network M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet G4 S2 ; wait for expansion boards to start ; Drives M569 P0.0 S0 D2 ; Left Z physical drive 0.0 goes forwards M569 P0.1 S0 D2 ; Rear Z physical drive 0.1 goes forwards M569 P0.2 S0 D2 ; Right Z physical drive 0.2 goes forwards M569 P0.3 S1 D2 ; Right physical drive 0.3 goes forwards M569 P0.4 S1 D2 ; Left physical drive 0.4 goes forwards M569 P121.0 S1 D2 ; Extruder physical drive 0.5 goes forwards M584 X0.4 Y0.3 Z0.0:0.1:0.2 E121.0 ; set drive mapping M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation M92 X80.00 Y80.00 Z800.00 E690 ;E400 ; set steps per mm M906 X2000 Y2000 Z1800 E1000 I10 ;E700 I30 ; set motor currents (mA) and motor idle factor in per cent -- safe for Duet 3 mini 5+ M84 S30 ; Set idle timeout M566 X1500.00 Y1500.00 Z60.00 E300 P1 ;Z6.00 E300 P1 ;E120.00 P1 ; set maximum instantaneous speed changes (mm/min) M203 X30000.00 Y30000.00 Z1000.00 E7200 ;E3600.00 ; set maximum speeds (mm/min) M201 X10000.00 Y10000.00 Z100.00 E10000 ;E3600.00 ; set accelerations (mm/s^2) M207 S0.6 F7200 Z0.2 ; firmware retraction orbiter 2.0 ; Axis Limits M208 X0 Y0 Z0 S1 ; set axis minima M208 X310 Y310 Z300 S0 ; set axis maxima ; Endstops M574 X1 S1 P"121.io2.in" ; configure active high endstops M574 Y2 S1 P"io1.in" ; configure active high endstops M671 X-4.5:150:304.5 Y-4.52:305:-4.52 S5 ; define positions of Z leadscrews or bed levelling screws M557 X30:280 Y20:290 P5 ; define 5x5 mesh grid ; Heaters M308 S0 P"temp0" Y"thermistor" T100000 B3950 A"Keenevo 600W Bed" ; configure sensor 0 as thermistor on pin temp0 M950 H0 C"out0" T0 Q10 ; Define Heater0 as the heated bed, bind to Sensor0 M140 H0 P0 ; Define Heated Bed M307 H0 R0.602 K0.401:0.000 D2.44 E1.35 S1.00 B0 ; PID Tuning for Heater0, Heated Bed (100C) M143 H0 S140 ; Set temperature limit for Heater0 to 120C M308 S1 P"121.temp0" Y"thermistor" T100000 B4725 C7.060000e-8 A"Slice Hotend" ;Slice Engineering 300C thermistor, settings are online M950 H1 C"121.out0" T1 Q100 ; Define Heater1 as Extruder0 heater, bind to Sensor1 M307 H1 R3.030 K0.444:0.000 D4.49 E1.35 S1.00 B0 V23.8 ; PID Tuning for Heater1, Extruder0 (240C) M143 H1 S285 ; Set temperature limit for heater 1 to 285C M308 S2 P"temp1" Y"thermistor" T100000 B3950 A"Chamber" ; configure sensor 2 as thermistor on pin temp2 M950 H2 C"out1" T2 ;Q10 ; create chamber heater output on out1 and map it to sensor 2 M307 H2 B0 S1.00 ; disable bang-bang mode for the chamber heater and set PWM limit M141 H2 ; map chamber to heater 2 M143 H2 S120 ; set temperature limit for heater 2 to 60C M308 S3 P"121.temp1" Y"thermistor" A"Toolhead Motor" T100000 B4725 C7.060000e-8 ; Define Sensor as Chamber temperature M308 S4 Y"drivers" A"4028 Power" ; 4028 power using spare heater M308 S5 Y"mcu-temp" A"MCU" ; Define Sensor3 as the integrated MCU temperature sensor M308 S6 Y"drivers" A"TMC Drivers" ; Define Sensor4 as the TMC overheat sensor M308 S7 Y"mcu-temp" P"121.dummy" A"Toolboard 1LC" M308 S8 Y"drivers" P"121.dummy" A"1LC Stepper" ; Fans M950 H3 C"!out2" T2 Q10 ;H2 ; Define Heater2 as the 4028 fan power, bind to Sensor3 M950 F0 C"!121.out1+out1.tach" Q25000 ;Q500 ; create fan 0 on pin out4 and set its frequency M106 P0 C"Layer Fan" L0.0 X1.0 S0 H-1 B0.1 ; set fan 0 name and value. Thermostatic control is turned off M950 F1 C"121.out2+out2.tach" Q500 ; Fan 1 uses out3, and using out3.tach as a tacho input M106 P1 C"Hotend Fan" S0 H1 T45 ; set fan 1 name and value. Thermostatic control turned on for Hotend M950 F2 C"out5" Q500 ; create fan 1 on pin out5 and set its frequency M106 P2 C"Board Fan" S0 H4:5:6 T46 ; set fan 1 name and value. Thermostatic control turned on for Hotend M950 F3 C"out3+out3.tach" Q500 ; Chamber Heater Fan Noctua NF-F12 Industrial M106 P3 C"Chamber Heater Fan" S0 H2 ; S0.3 L0.3 X0.6 B0.1 T30:40 ; set fan 1 name and value. Thermostatic control turned on for Hotend ; Tools M563 P0 D0 H1 F0 S"Mosquito Magnum" ; define tool 0 G10 P0 X0 Y0 Z0 R0 S0 ; set tool 0 axis offsets, set initial tool 0 active 60C and standby temperatures to 0C ;M563 P0 H0 F0 S"Keenevo 600W Bed" ;G10 P0 X0 Y0 Z0 ;G10 P0 R50 S0 ; Z-Probe Inductive Probe ;M558 P5 C"io3.in" H5 F400 T5000 ; set Z probe type to unmodulated and the dive height + speeds M558 P8 C"121.io0.in" H5 F400 T5000 ; set Z probe type to unmodulated and the dive height + speeds G31 P1000 X-28 Y-15 Z1.06 ; set Z probe trigger value, offset and trigger height, more Z means closer to the bed ;; BLTouch ; M950 S0 C"io7.out" ; Create a servo pin on io7 ; M558 P9 C"io7.in" H5 F240 T10800 A5 ; set Z probe type to unmodulated and the dive height + speeds ; G31 P25 X-28.00 Y-13.00 Z0.78 ; set Z probe trigger value, offset and trigger height, more Z means closer to the bed ;Accelerometer M955 P121.0 I16 ;Input Shaper M593 P"zvdd" F44 ; for 10k acceleration ;M593 P"mzv" F42.5 ; for 15k acceleration ;Filament Sensor0 M591 D0 P3 C"121.io1.in" S1 M591 D0 L27 R10:190 ;PanelDue 5i M575 P1 S1 B57600 ;NeoPixels x3 M150 X3 Q4000000 ;R128 U128 B128 P128 S2 F0 M150 X3 R255 U255 B255 W255 P255 S2 F0 ; display led ; Custom settings G29 S1 M572 D0 S0.065; set Pressure Advance K-factor M501 ;M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss ; init print time logging if !exists(global.runtime) M98 P"runtime.g" ; init LED variables if !exists(global.warmUp) global warmUp = false ; Select default tool M404 N1.75 ; Define filament diameter for print monitor T0
-
Would you not want the fan to continue to run when temp is reached to keep the chamber temps evenly distributed?
If you wanted to create more complex fan control logic you could use the daemon.g file and the object model and some conditional gcode statements to read the chamber temp and act on the fan accordingly.
https://docs.duet3d.com/en/User_manual/Reference/Gcode_meta_commands
-
@Phaedrux yeah that may be better to run continuously. but i still need to get the fan synced up with the heater just in on/off configuration. i suspect a complex daemon setup is overkill.