Fan0/1 pegged together
-
I have a Duet2 v1.04 running v2.03 of the firmware. I have my part cooling fan connected to Fan0 and my heatsink fan connected to Fan1 as recommended in the documentation. Here is my config.g for these two fans:
; Fans M106 P0 C"PartFan" S0.0 B0.1 I0 F500 H-1 ; set fan 1 (part cooling fan) value, PWM signal inversion and frequency. Thermostatic control is turned off M106 P1 C"Hotend" S1.0 I0 F500 H1 T45 ; set fan 0 (hotend fan) value, PWM signal inversion and frequency. Thermostatic control is turned on monitoring heater one (hotend)
I have it set this way because my part cooling fan should be controlled via gcode while my heatsink fan should come on automatically when T0 is hot.
However, my part cooling fan is not coming on when it should (at the start of layer 3) and if I set the part cooling fan speed in the web control, it sets my heatsink fan to the same speed as if they're locked together. If I turn the part cooling fan up or down or even off, my heatsink fan will do the same.
Any ideas?
-
This post is deleted! -
This is what I use for my part cooling fan
M106 P0 H-1Also check that your slicer is using the correct fan number also, I know in Cura you can change the number.
The DWC is possibly concerning, where both fans come on...
Please post your full config.gP.
-
@PaulHew I am using Simplify3D for my slicer and I don't see where I can specify the fan designator but here is my full config.g:
; Configuration file for Duet WiFi (firmware version 2.03) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v2.0.3 on Thu Sep 05 2019 15:07:13 GMT-0400 (Eastern Daylight Time) ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"Sidewinder X1" ; set printer name ; Network M552 S1 ; enable network M586 P0 S1 ; enable HTTP M586 P1 S1 ; enable FTP M586 P2 S1 ; enable Telnet ; Drives M569 P0 S0 D3 V100 ; drive 0 (X) goes forwards M569 P1 S0 D3 V100 ; drive 1 (Y) goes forwards M569 P2 S1 D3 V100 ; drive 2 (Z) goes forwards M569 P3 S0 D3 V100 ; drive 3 (E0) goes forwards M584 X0 Y1 Z2 E3 ; set drive mapping ;;;M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation M92 X80.12 Y80.12 Z399.78 E478.49 ; set steps per mm (for 1/16 microstepping) M350 X128 Y128 Z128 E128 I0 ; configure microstepping without interpolation M566 X800 Y800 Z50 E500 ; set maximum instantaneous speed changes (mm/min) M203 X8000 Y8000 Z1000 E1200 ; set maximum speeds (mm/min) M201 X500 Y500 Z20 E250 ; set accelerations (mm/s^2) M906 X800 Y800 Z800 E800 I15 ; set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout ; Axis Limits M208 X0:300 Y0:300 Z0:400 ; set axis min:max ; Endstops M574 X1 Y1 S0 ; set active high endstops ; Z-Probe M307 H7 A-1 C-1 D-1 ; disable heater 7 on PWM channel for BLTouch ; BLTouch Configuration M574 Z1 S2 ; set endstops controlled by probe M558 P9 H5 F120 T6000 ; set Z probe type to bltouch and the dive height + speeds G31 P500 X30 Y-30 Z2.504 ; set Z probe trigger value, offset and trigger height M557 X30:270 Y30:270 S25 ; define mesh grid ; 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 S275 ; set temperature limit for heater 1 to 275C ; Fans M106 P0 C"PartFan" S0.0 B0.1 I0 F500 H-1 ; set fan 1 (part cooling fan) value, PWM signal inversion and frequency. Thermostatic control is turned off M106 P1 C"Hotend" S1.0 I0 F500 H1 T45 ; set fan 0 (hotend fan) value, PWM signal inversion and frequency. Thermostatic control is turned on monitoring heater one (hotend) ; Tools M563 P0 S"Tool0" D0 H1 F-1 ; define T0 M572 D0 S0.05 ; enable pressure advance on T0 G10 P0 X0 Y0 Z0 ; set T0 axis offsets G10 P0 R0 S0 ; set initial T0 active and standby temperatures to 0C ; Filament Runout Sensor M591 D0 P1 C3 S1 ; filament runout sensor for E0 connected to E0 endstop ; Miscellaneous 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 T0 ; select first tool
-
@tblake84 said in Fan0/1 pegged together:
; Tools
M563 P0 S"Tool0" D0 H1 F-1This should have
F0
notF-1
-
@Phaedrux Thanks, I will try that in a bit. I think that was originally set when I went through the RepRap configuration tool so maybe I set something wrong there.
-
Interesting. Could you post the config.json file that you got from the configurator?
-
@Phaedrux Here you go (json is not a valid format for upload).
{"board":"duetwifi10","firmware":2.03,"nvram":true,"auto_save":{"enabled":true,"save_threshold":10,"resume_threshold":11,"gcodes_to_run":"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000"},"display":{"type":0,"encoder_steps":4,"spi_frequency":2000000,"menus":[{"name":"main","value":""}],"images":[]},"geometry":{"type":"cartesian","mins":[0,0,0],"maxes":[300,300,400],"delta_radius":105.6,"homed_height":250,"low_dive_height":false,"max_carriage_travel":260,"print_radius":85,"rod_length":215,"z_min":0},"drives":[{"direction":1,"microstepping":16,"microstepping_interpolation":true,"steps_per_mm":80,"instant_dv":15,"max_speed":100,"acceleration":500,"current":800,"driver":0,"endstop_type":1,"endstop_location":1},{"direction":1,"microstepping":16,"microstepping_interpolation":true,"steps_per_mm":80,"instant_dv":15,"max_speed":100,"acceleration":500,"current":800,"driver":1,"endstop_type":1,"endstop_location":1},{"direction":1,"microstepping":16,"microstepping_interpolation":true,"steps_per_mm":4000,"instant_dv":0.2,"max_speed":3,"acceleration":20,"current":800,"driver":2,"endstop_type":3,"endstop_location":1},{"direction":0,"microstepping":16,"microstepping_interpolation":true,"steps_per_mm":420,"instant_dv":2,"max_speed":20,"acceleration":250,"current":800,"driver":3}],"idle":{"used":true,"factor":30,"timeout":30},"homing_speed_fast":30,"homing_speed_slow":6,"travel_speed":100,"z_dive_height":5,"slow_homing":false,"probe":{"type":"bltouch","recovery_time":0.4,"trigger_height":2.5,"trigger_value":500,"x_offset":0,"y_offset":0,"speed":2,"deploy":false,"points":[{"x":0,"y":84.9,"z":0},{"x":73.53,"y":-42.45,"z":0},{"x":-73.53,"y":-42.45,"z":0},{"x":0,"y":0,"z":0}],"pwm_channel":7,"pwm_inverted":true},"bed_is_nozzle":false,"bed":{"present":true,"heater":0,"use_pid":false},"chamber":{"present":false,"heater":2,"use_pid":false},"heaters":[{"temp_limit":120,"scale_factor":100,"series":4700,"thermistor":100000,"beta":4138,"a":0.0005717725,"b":0.0002416626,"c":0,"channel":0},{"temp_limit":250,"scale_factor":100,"series":4700,"thermistor":100000,"beta":4138,"a":0.0005717725,"b":0.0002416626,"c":0,"channel":1}],"num_nozzles":1,"toolchange_wait_for_temperatures":true,"generate_t_code":true,"tools":[{"mix_ratio":[],"number":0,"name":"Tool0","extruders":[0],"heaters":[1],"fans":[],"x_offset":0,"y_offset":0,"z_offset":0}],"compensation_x_offset":15,"compensation_y_offset":15,"peripheral_points":3,"halfway_points":0,"calibration_factors":3,"probe_radius":85,"mesh":{"x_min":15,"x_max":215,"y_min":15,"y_max":195,"radius":85,"spacing":20},"home_first":false,"orthogonal":{"compensation":false,"height":50,"deviations":[0,0,0]},"network":{"enabled":true,"mac_address":"","name":"Sidewinder X1","password":"","ssid":"","ssid_password":"","dhcp":true,"ip":"192.168.1.20","netmask":"255.255.255.0","gateway":"192.168.1.254","protocols":{"http":true,"ftp":true,"telnet":true}},"fans":[{"name":"","value":100,"inverted":false,"frequency":500,"thermostatic":true,"heaters":[1],"trigger_temperature":45},{"name":"","value":0,"inverted":false,"frequency":500,"thermostatic":false,"heaters":[1],"trigger_temperature":45}],"custom_settings":""}
-
-
@T3P3Tony Thanks!
@Phaedrux Here is the file for easier searching.
config.json -
@tblake84 said in Fan0/1 pegged together:
{"board":"duetwifi10","firmware":2.03,"nvram":true,"auto_save":{"enabled":true,"save_threshold":10,"resume_threshold":11,"gcodes_to_run":"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000"},"display":{"type":0,"encoder_steps":4,"spi_frequency":2000000,"menus":[{"name":"main","value":""}],"images":[]},"geometry":{"type":"cartesian","mins":[0,0,0],"maxes":[300,300,400],"delta_radius":105.6,"homed_height":250,"low_dive_height":false,"max_carriage_travel":260,"print_radius":85,"rod_length":215,"z_min":0},"drives":[{"direction":1,"microstepping":16,"microstepping_interpolation":true,"steps_per_mm":80,"instant_dv":15,"max_speed":100,"acceleration":500,"current":800,"driver":0,"endstop_type":1,"endstop_location":1},{"direction":1,"microstepping":16,"microstepping_interpolation":true,"steps_per_mm":80,"instant_dv":15,"max_speed":100,"acceleration":500,"current":800,"driver":1,"endstop_type":1,"endstop_location":1},{"direction":1,"microstepping":16,"microstepping_interpolation":true,"steps_per_mm":4000,"instant_dv":0.2,"max_speed":3,"acceleration":20,"current":800,"driver":2,"endstop_type":3,"endstop_location":1},{"direction":0,"microstepping":16,"microstepping_interpolation":true,"steps_per_mm":420,"instant_dv":2,"max_speed":20,"acceleration":250,"current":800,"driver":3}],"idle":{"used":true,"factor":30,"timeout":30},"homing_speed_fast":30,"homing_speed_slow":6,"travel_speed":100,"z_dive_height":5,"slow_homing":false,"probe":{"type":"bltouch","recovery_time":0.4,"trigger_height":2.5,"trigger_value":500,"x_offset":0,"y_offset":0,"speed":2,"deploy":false,"points":[{"x":0,"y":84.9,"z":0},{"x":73.53,"y":-42.45,"z":0},{"x":-73.53,"y":-42.45,"z":0},{"x":0,"y":0,"z":0}],"pwm_channel":7,"pwm_inverted":true},"bed_is_nozzle":false,"bed":{"present":true,"heater":0,"use_pid":false},"chamber":{"present":false,"heater":2,"use_pid":false},"heaters":[{"temp_limit":120,"scale_factor":100,"series":4700,"thermistor":100000,"beta":4138,"a":0.0005717725,"b":0.0002416626,"c":0,"channel":0},{"temp_limit":250,"scale_factor":100,"series":4700,"thermistor":100000,"beta":4138,"a":0.0005717725,"b":0.0002416626,"c":0,"channel":1}],"num_nozzles":1,"toolchange_wait_for_temperatures":true,"generate_t_code":true,"tools":[{"mix_ratio":[],"number":0,"name":"Tool0","extruders":[0],"heaters":[1],"fans":[],"x_offset":0,"y_offset":0,"z_offset":0}],"compensation_x_offset":15,"compensation_y_offset":15,"peripheral_points":3,"halfway_points":0,"calibration_factors":3,"probe_radius":85,"mesh":{"x_min":15,"x_max":215,"y_min":15,"y_max":195,"radius":85,"spacing":20},"home_first":false,"orthogonal":{"compensation":false,"height":50,"deviations":[0,0,0]},"network":{"enabled":true,"mac_address":"","name":"Sidewinder X1","password":"","ssid":"","ssid_password":"","dhcp":true,"ip":"192.168.1.20","netmask":"255.255.255.0","gateway":"192.168.1.254","protocols":{"http":true,"ftp":true,"telnet":true}},"fans":[{"name":"","value":100,"inverted":false,"frequency":500,"thermostatic":true,"heaters":[1],"trigger_temperature":45},{"name":"","value":0,"inverted":false,"frequency":500,"thermostatic":false,"heaters":[1],"trigger_temperature":45}],"custom_settings":""}
It looks like no fan was selected for the tool. By default it does select Fan0. So maybe a misclick?
-
@Phaedrux Yeah, that's what I'm thinking. I have a print about to wrap up now so will test shortly.
-
@Phaedrux No dice on that fix.
Here is the relevant sections of my config.g:
; Fans M106 P0 C"PartFan" H-1 ; set fan 0 (part cooling fan) value, PWM signal inversion and frequency. Thermostatic control is turned off M106 P1 C"Hotend" S1.0 I0 F500 H1 T45 ; set fan 1 (hotend fan) value, PWM signal inversion and frequency. Thermostatic control is turned on monitoring heater one (hotend) ; Tools M563 P0 S"Tool0" D0 H1 F0 ; define T0 M572 D0 S0.05 ; enable pressure advance on T0 G10 P0 X0 Y0 Z0 ; set T0 axis offsets G10 P0 R0 S0 ; set initial T0 active and standby temperatures to 0C
I am still getting pegged F0 and F1; whatever I do to one fan (turn up/down/on/off) happens to the other un-commanded. However, they are now turning on correctly as expected but both seem to be respecting the latest fan command. When I start a print and the hotend warms to 45C, they both come on full blast (as F1 is commanded to do). Then, when my gcode commands the part cooling fan (F0) to come on 50% at layer three, they both throttle back to 50%. It's bizarre.
-
@tblake84 said in Fan0/1 pegged together:
M563 P0 S"Tool0" D0 H1 F0
Just checking my own config to compare with and the M106 commands are pretty similar and my tool command doesn't even specify a fan since F0 is the default anyway.
They aren't actually wired together are they?
-
@Phaedrux That's a valid question but no.... at least I don't think so. I am using an Artillery Sidewinder X1 which is famous for its use of ribbon cables in the wiring harness so it does have a bunch of breakout boards to convert the ribbon cables to the necessary XH2.5mm connectors. I didn't have this kind of issue with the original MKS board so I don't think there is any trace on the breakout board connecting the two but I will have to take a closer look.
In either event, the DWC does indicate that both fan controls move in sync; moving the slider for one fan moves the other to the same setting so my instinct says this is related to the Duet board/firmware.
-
@tblake84 said in Fan0/1 pegged together:
moving the slider for one fan moves the other to the same setting
So do PartFan and Hotend both show up with their own slider?
Try this:
Send
M98 Pconfig.g
in the gcode console. That will execute the config.g and any error messages should get echoed to the console.Next try sending
M106 P0 C"PartFan" H-1
andM106 P1 C"Hotend" S1.0 I0 F500 H1 T45
separately in the gcode console and testing the fans. -
@Phaedrux I did that and I get no errors but I still have the issue.
One interesting thing to note is that only P0 has the correct name. P1 should be labeled 'Hotend' but instead it shows up in DWC as 'Tool Fan'.
-
The Tool fan slider and the Part fan slider are the same thing.
The tool fan slider is it's own separate thing because on machines with multiple tools each tool may have it's own fan, so that slider controls the fan of the currently selected tool.
In your case with a single tool the PartFan slider and the Tool Fan slider are both controlling the same fan.
Hotend won't show up as a slider because it is thermostatically controlled.
If you heat the hotend up to 50c does the hotend fan turn on?
-
@Phaedrux So I actually just reflashed the FW and it all behaves (somewhat) normally now but what you said certainly makes sense. Nevertheless, there must have been something wrong in the FW build I initially loaded onto it.
I removed the fan names from my config.g and now I just have 'Tool Fan' and 'Fan0'. The tool fan slider does nothing and Fan0 operates the part cooling fan. If I heat the hotend up to 50c, the heatsink fan (tool fan?) kicks on/off as expected. Is there a way to get rid of 'Tool Fan' in DWC since I only have one hotend and it doesn't control anything?
-
No you can't remove the tool fan slider.