Duet 3 - Cooling fan configurations
-
If the temperature on the tool fan is below the set point (35c) then only Fan 0 (part cooling fan) turns on. If the temp on the hotend is above 35c then moving the slider in the DWC ui changes the speed in both fans
-
@kj3d said in Duet 3 - Cooling fan configurations:
If the temperature on the tool fan is below the set point (35c) then only Fan 0 (part cooling fan) turns on. If the temp on the hotend is above 35c then moving the slider in the DWC ui changes the speed in both fans
I lately observed the same here, so +1 for the problem. Thanks for posting that, because I also asked my self how this could be if only one of the two fans is an "automatic" thermostatic and the other one is only a "do nothing and wait for g-code-command" issued.
Would be great if more people would replicate the behaviour, I guess most are not paying attention to it.
BUT - currently I am not sure wether it is only DWC or also the real-world-printer that behave that way. Current print runs a few more hours so I will report later -> So first this evening I will connect a probe to each fan and then starting and stopping some files to measure independent of what DWC is "saying it does" and how this relates to what the board "actually does".
See the screenshots: Heat-break-fan should be 100% above 60°C on the hotend (which you can see the extruder surely has with 220°C) but everytime the printfile increases the part-cooling (I usually start with low part-cooling and increase it over some layers to the desired "top"-value e.g. in this case around 70%) at least DWC told me the heatbreak-fan has the same val which if it is true is an error:
EDIT: O.K.: Mixed up the OP original problem this particular thing is answered already by VETI and PHAEDRUXMy setup: duet2ethernet1.0.4 running RRF3.2, single extruder with thermostatic-heatbreak-fan & g-code-partcooling-fan, single heatplate (of course), PSU 24V, fans are 12V, PanelDue7i connected. Slicer is also currently Simplify3D-4.1.2.
The "fan"-section in my config.g:
;print/part cool fan: M950 F0 C"fan0" ;Q200 ; create F=fan(x) with "!" to invert, on pin C; opt set frequency(Q) e.g. for most real 4-wire pwm-fans 25000 (max 65535), ordinary 2-wire must be kept low around 100-500, default seems to be 250 M106 P0 C"print cool fan" B1.0 H-1 S0 ; P=num; s=set speed 0-255/0.0-1.0; limit L min & X max; H=heater monitored+Thermostatic control, -1=off or Hx(:__...) monitored; B=blip time in ms; if not thermostatic (H-1) define a board-boot-start-up speed S=fan speed; ;extr heat-sink/-break fan: M950 F1 C"fan1" ;Q200 ; create F=fan(x) with "!" to invert, on pin C; opt set frequency(Q) e.g. for most real 4-wire pwm-fans 25000 (max 65535), ordinary 2-wire must be kept low around 100-500, default seems to be 250 M106 P1 C"extr heat sink fan" B1.0 H1 L0.5 T40:60 ; P=num; s=set speed 0-255/0.0-1.0; limit L min & X max; H=heater monitored+Thermostatic control, -1=off or Hx(:__...) monitored; B=blip time in ms; if not thermostatic (H-1) define a board-boot-start-up speed S=fan speed; ;chamber fan: M950 F2 C"fan2" T3 ;Q500 ;! ;Q25000 ; create F=fan(x) with "!" to invert, on pin C; opt set frequency(Q) e.g. for most real 4-wire pwm-fans 25000 (max 65535), ordinary 2-wire must be kept low around 100-500, default seems to be 250 ; set some default vals to start e.g. from PETG 35°C to PC UL 45°C, but override it in the print-file with the specific filament-config.g: M106 P2 C"chamber fan" B1.0 L0.9 T35:45 H10 ;X1.0 ; P=num; s=set speed 0-255/0.0-1.0; limit L min & X max; H=heater num monitored->Thermostatic control, -1=off or Hx(:__...) monitored; B=blip time in ms; if not thermostatic (H-1) define a board-boot-start-up speed S=fan speed; ;-> We start with a summer-cooldown temp above 35°C with thermostatic control enabled -> and define the optimum value for each filament in the filament-config.g
Some samplecode how a file starts:
111582-01 Temperatursensorabdeckung 9997 WLFM-01.gcode.txtWhat is your hardware-setup again running which firmware on which volts?
Will report back!
-
@LB
Thanks for your post - its good to know that the problem is not just with me. After quite a few hours checking wiring, configurations and simply scratching my head the problem is a strange one.
I can confirm that the problem of the two fans being interlinked is present when printing. I printed the xyz calibration cube with different part cooling settings every 5 layers (0 % first five layers printing at 235c with PLA+ Hotbed 65c) then increasing the fan speed by 10% every five additional layers.
Layers 0 to 5 all ran with the hotend fan at 100% (part cooling set to 0%) As soon as the first change in part cooling applied then the hotend fan started to follow the setting for the part cooling (down at that point to 50%. This was confirmed with an optical tacho to measure motor / fan speeds
My conclusion is that its a problem with both DWC and the real world running of files outside DWC
My setup is 6HC Motherboard, Panel Due 7, Volcano 24v hotend, 24v hotbed, 24v fans smart effector for Z sensing, Simplify 3d 4.1.2 for the slice software
Latest release of Firmware.
-
Regarding hardware and firmware the only things we have in common seem to be:
- RRF3.2
- Simplify3D-4.1.2
- thermostatic heat-break-fan
- gcode-partcooling-fan
- EDIT (see conversation): PanelDue
Right?
-
Other than the Panel Due then yes you are right
Looking at your GCODE have you tried switch on the hotend fan using M106 (from DWC) BEFORE it reaches the preset start temp?
I tried and mine just sat there without starting. However once the preset start limit is reached it seems to follow the M106 command for anything (irrespective of what fan the M106 command targets)
-
The tool fan slider will mirror what your part cooling fan is set to. They are the same fan. Thermostatically controlled fans don't show up in the UI at all. Click on change visibility to hide the tool fan if you wish. It only makes sense on machines with multiple tools where it will control the fan of the currently selected tool.
If the UI slider is changing the speed of your heat sink fan, it's either a configuration or wiring problem.
-
I was just looking here https://duet3d.dozuki.com/Wiki/Gcode#Section_M106_Fan_On
and this section made me curious:
Hnn:nn:nn... Enable thermostatic mode and select heaters monitored. H-1 disables thermostatic mode. (In RRF_3 relates to the sensor number(s) created by M308, not the temperature sensor pin number on the board)
-
@Phaedrux said in Duet 3 - Cooling fan configurations:
The tool fan slider will mirror what your part cooling fan is set to.
?
Does that make any sense or doesn´t that mean that the "part cooling fan" should be kicked out forever once and for all from the firmware?
EDIT: Moved, see conversation
-
I don't know what you mean by that.
-
@Phaedrux said in Duet 3 - Cooling fan configurations:
I don't know what you mean by that.
If that is the same fan:
why is it occupying screen-space 2 times? hey, I do not know, I am a single-extruder-single-tool-user, maybe somebody can explain it to me - could be that there is a benefit for multi-tool-users I guess?EDIT: Moved, see conversation
-
As I explained, in machines with multiple tools the tool fan slider will always control the fan of the currently selected tool.
In machines with only a single tool you can hide either the tool fan or the print cool fan slider if you wish with the change visibility button.
-
Maybe for our kind (the OP and me) why not only have within DWC "Tool Fan (your current print cool fan)" and that´s it? If it is really the same why have 2 sliders when you can do it with one. If you insist to have 2 sliders then they are not the same? Or am I wrong here (maybe time for a 2nd tool to try out and see?)
EDIT: Moved, see conversation
-
Because the Duet is built around the concept of flexible tools. Some of those decisions and functions only become usefully apparent when multiple tools are apparent.
I would agree that it would be clearer for new users with only a single tool to show only a single slider, but it's really not such a big deal is it? You can hide it if you wish. There is a button right above it that says change visibility.
Here's another use case that might make more sense even if you have only a single tool, you may have 2 part cooling fans. left and right for instance. The tool fan will control the fans configured in the tool definition, so both fans at once. But you would also have an independant slider for each fan in case you wanted to adjust only one or the other.
-
Thanks for the example! So basically "all" tool fans i guess.
EDIT: I moved this side-talk to https://forum.duet3d.com/topic/21300/tool-fans-representation-within-dwcBut I deraild now what the OP had as problem! He actually sat down and tried different values and there seems to be some intertwining with the fans anyway (let´s keep DWC out from now on):
"
If the temperature on the tool fan is below the set point (35c) then only Fan 0 (part cooling fan) turns on. If the temp on the hotend is above 35c then moving the slider in the DWC ui changes the speed in both fans
"
Sorry @kj3d -
@kj3d Can you post your config.g as copy and paste text?
Can you also send M122 and post the results, along with M98 P"config.g"?
your config appears to be correct. Usually if the heat sink fan is changing speed along with the part cooling fan that would indicate either the tool definition is incorrectly mapping both fans, or there is a wiring problem.
-
If you happen to have a permanent marker or a sticker I like to put that on the fan, that helps to be able to vaguely judge the running speed beside wetting a finger and putting it in front of it
-
config.g:
; Configuration file for Duet 3 (firmware version 3)
; executed by the firmware on start-up
;
; generated by RepRapFirmware Configuration Tool v3.2.2 on Wed Jan 27 2021 12:22:57 GMT+0000 (Greenwich Mean Time); General preferences
G90 ; send absolute coordinates...
M83 ; ...but relative extruder moves
M550 P"KJ3D Delta" ; set printer name
M665 R227 L440 B185 H405 ; Set delta radius, diagonal rod length, printable radius and homed height
M666 X0 Y0 Z0 ; put your endstop adjustments here, or let auto calibration find them; Network
M551 P"freddy5363" ; set password
M552 P0.0.0.0 S1 ; enable network and acquire dynamic address via DHCP
M586 P0 S1 ; enable HTTP
M586 P1 S0 ; disable FTP
M586 P2 S0 ; disable Telnet; Drives
M569 P0.0 S1 ; physical drive 0.0 goes forwards
M569 P0.1 S1 ; physical drive 0.1 goes forwards
M569 P0.2 S1 ; physical drive 0.2 goes forwards
M569 P0.3 S1 ; physical drive 0.3 goes forwards
M584 X0.0 Y0.1 Z0.2 E0.3 ; set drive mapping
M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation
M92 X80.00 Y80.00 Z80.00 E335.00 ; set steps per mm
M566 X1200.00 Y1200.00 Z1200.00 E1200.00 ; set maximum instantaneous speed changes (mm/min)
M203 X18000.00 Y18000.00 Z18000.00 E1200.00 ; set maximum speeds (mm/min)
M201 X1000.00 Y1000.00 Z1000.00 E1000.00 ; set accelerations (mm/s^2)
M906 X1000 Y1000 Z1000 E800 I30 ; set motor currents (mA) and motor idle factor in per cent
M84 S30 ; Set idle timeout; Axis Limits
M208 Z0 S1 ; set minimum Z; Endstops
M574 X2 S1 P"io1.in" ; configure active-high endstop for high end on X via pin io1.in
M574 Y2 S1 P"io2.in" ; configure active-high endstop for high end on Y via pin io2.in
M574 Z2 S1 P"io3.in" ; configure active-high endstop for high end on Z via pin io3.in; Z-Probe
M558 P5 R0.4 C"io4.in+io4.out" H5 F1200 T6000 ; set Z probe type to effector and the dive height + speeds
;M558 H30 ;*** Remove this line after delta calibration has been done and new delta parameters have been saved
G31 P500 X0 Y0 Z-0.232 ; set Z probe trigger value, offset and trigger height
M557 R185 S20 ; define mesh grid; 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
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
M143 H0 S120 ; set temperature limit for heater 0 to 120C
M308 S1 P"temp1" Y"thermistor" T100000 B4138 ; 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
M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit
M143 H1 S280 ; set temperature limit for heater 1 to 280C; Fans
M950 F0 C"out4" Q500 ; create fan 0 on pin out4 and set its frequency
M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off
M950 F1 C"out5" Q500 ; create fan 1 on pin out5 and set its frequency
M106 P1 S1 H1 T35 ; set fan 1 value. Thermostatic control is turned on; Tools
M563 P0 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; Custom settings are not defined
; Miscellaneous
M575 P1 S1 B57600 ; enable support for PanelDue
M501 ; load saved parameters from non-volatile memory
M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss -
M112 produced an interesting result (sent via consel)
-
M122 was much better!!
KJ3D Delta
Send code...
Status
Idle
Mode: FFF
Tool Position
X
0.0
Y
0.0
Z
399.04
Extruder Drives
Drive 0
0.0
Speeds
Requested Speed
0 mm/s
Top Speed
0 mm/s
Sensors
Vin
23.9 V
V12
12.1 V
MCU Temperature
29.5 C
Z-Probe
0
Tools
Extra
Control All
Tool Heater Current Active Standby
Tool 0
T0 - Sunlu - White Heater 1
off 13.1 C
0
0
Bed Heater 0
off 15.4 C
0
0
Temperature Chart
M122
29/01/2021, 18:43:40 M122
=== Diagnostics ===
RepRapFirmware for Duet 3 MB6HC version 3.01-RC9 running on Duet 3 MB6HC v1.01 or later
Board ID: 08DJM-956BA-NA3TJ-6JKD4-3S46M-KB8USUsed output buffers: 1 of 40 (12 max)
=== RTOS ===
Static ram: 154572
Dynamic ram: 161276 of which 44 recycled
Exception stack ram used: 440
Never used ram: 76884
Tasks: NETWORK(ready,236) ETHERNET(blocked,444) HEAT(blocked,1184) CanReceiv(suspended,3824) CanSender(suspended,1436) CanClock(blocked,1428) TMC(blocked,80) MAIN(running,4532) IDLE(ready,80)
Owned mutexes:
=== Platform ===
Last reset 00:00:54 ago, cause: software
Last software reset at 2021-01-29 18:42, reason: User, spinning module GCodes, available RAM 77060 bytes (slot 2)
Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0444a000 BFAR 0x00000000 SP 0xffffffff Task 0x4e49414d
Error status: 0
Free file entries: 10
SD card 0 detected, interface speed: 25.0MBytes/sec
SD card longest block write time: 0.0ms, max retries 0
MCU temperature: min 28.2, current 29.4, max 29.5
Supply voltage: min 23.8, current 23.9, max 24.1, under voltage events: 0, over voltage events: 0, power good: yes
12V rail voltage: min 12.0, current 12.1, max 12.2, under voltage events: 0
Driver 0: standstill, reads 5931, writes 19 timeouts 0, SG min/max 0/166
Driver 1: standstill, reads 5932, writes 19 timeouts 0, SG min/max 0/160
Driver 2: standstill, reads 5932, writes 19 timeouts 0, SG min/max 0/158
Driver 3: standstill, reads 5938, writes 14 timeouts 0, SG min/max 0/0
Driver 4: standstill, reads 5942, writes 11 timeouts 0, SG min/max 0/0
Driver 5: standstill, reads 5942, writes 11 timeouts 0, SG min/max 0/0
Date/time: 2021-01-29 18:43:40
Slowest loop: 8.89ms; fastest: 0.14ms
=== Move ===
Hiccups: 0(0), FreeDm: 375, MinFreeDm: 369, MaxWait: 13123ms
Bed compensation in use: none, comp offset 0.000
=== MainDDARing ===
Scheduled moves: 5, completed moves: 5, StepErrors: 0, LaErrors: 0, Underruns: 0, 0 CDDA state: -1
=== AuxDDARing ===
Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0 CDDA state: -1
=== Heat ===
Bed heaters = 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamberHeaters = -1 -1 -1 -1
=== GCodes ===
Segments left: 0
Movement lock held by 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
Autopause is idle in state(s) 0
Code queue is empty.
=== Network ===
Slowest loop: 10.27ms; fastest: 0.03ms
Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) Telnet(0)
HTTP sessions: 1 of 8- Ethernet -
State: active
Error counts: 0 0 0 0 0
Socket states: 5 2 2 2 2 0 0 0
=== CAN ===
Messages sent 219, longest wait 0ms for type 0
=== Linux interface ===
State: 0, failed transfers: 0
Last transfer: 54411ms ago
RX/TX seq numbers: 0/1
SPI underruns 0, overruns 0
Number of disconnects: 0
Buffer RX/TX: 0/0-0
29/01/2021, 18:42:49 Connection established
29/01/2021, 18:42:49 Connection interrupted, attempting to reconnect...
29/01/2021, 18:40:57 Emergency stop, attemping to reconnect...
- Ethernet -
-
@kj3d said in Duet 3 - Cooling fan configurations:
RepRapFirmware for Duet 3 MB6HC version 3.01-RC9 running on Duet 3 MB6HC v1.01 or later
Let's update your firmware.
If you still have access to DWC. Upload these zip files, one at a time. Don't extract them. Reboot after each. Use M115 to verify the firmware has been applied.
https://github.com/Duet3D/RepRapFirmware/releases/download/3.0/Duet2and3Firmware-3.0.zip
https://github.com/Duet3D/RepRapFirmware/releases/download/3.2/Duet2and3Firmware-3.2.zip
That will get your firmware and DWC up to date.