Any PWM Fan not working



  • Hi all,

    I have not been able to get any PWM fan working as a part cooling fan.
    I have tried all PWM fan outputs, ensuring that fan 1 and 2 aren't thermostatically controlled.

    The fans work when plugged into the 'always on' section but don't when not.

    Pictured are the fans in question, two 40mm x 20mm fans from Noctua.

    Thanks in advance,

    Tom





  • What do you have for M106 and M563?



  • Thanks for linking the image properly!

    In my config.g I have the below for M563 but nothing for M106. Should this be in the config.g file or in another?

    ; Tool definition
    M563 P0 D0 H1 ; Define tool 0
    G10 P0 S0 R0 ; Set tool 0 operating and standby temperatures
    ;*** If you have a dual-nozzle build, un-comment the following 3 lines
    M563 P1 D1 H2 ; Define tool 1
    G10 P1 S0 R0 ; Set tool 1 operating and standby temperatures

    Cheers,

    Tom



  • https://duet3d.com/wiki/Connecting_and_configuring_fans

    Yep, need to have an M106 to keep it from running as a temp sensitive fan.



  • https://www.duet3d.com/forum/thread.php?id=2471#p23167

    If you look at that thread, he has 40x40x20 fans as well, but had to add the F10 at the end of his M106.



  • @tommertens:

    Hi all,

    I have not been able to get any PWM fan working as a part cooling fan.
    I have tried all PWM fan outputs, ensuring that fan 1 and 2 aren't thermostatically controlled.

    The fans work when plugged into the 'always on' section but don't when not.

    Pictured are the fans in question, two 40mm x 20mm fans from Noctua.

    Thanks in advance,

    Tom

    Not all fans run happily with PWM. IIRC the default PWM frequency is 250Hz but lowering it to 100 or less may be what is needed for those particular fans. For a print cooling fan you'd need something like M106 P0 S0.0 I0 F100 (or maybe even lower) H-1 in you config.g. This all assumes that the fans are connected to the main Duex board. The Duex2 and Duex5 do not support variable PWM frequencies. HTH


  • administrators

    As Ian says, not all fans like PWM. Do they work on the PWM fan outputs when those are set to full on? M106 P0 S1



  • These fans were sold as PWM capable. Will try adding the M106 command to the config once I'm back in the office. Will let you know how it goes.

    Cheers all!



  • Adding the M106 command didn't do anything unfortunately.



  • F10 at the end?



  • Yep, as below.

    M106 P0 S0.3 I0 H-1 F10 ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
    M106 P1 S1 I0 F500 H1 T45 ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on
    M106 P2 S1 I0 F500 H1 T45 ; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned on



  • I don't have particular fan to try, but I do have a 40x40x30.

    M106 P1 H-1
    M563 P0 D0 H1 F0:1 is what I have in my config and I was able to PWM control it. Might be worth a shot.


  • administrators

    @tommertens:

    Yep, as below.

    M106 P0 S0.3 I0 H-1 F10 ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
    M106 P1 S1 I0 F500 H1 T45 ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on
    M106 P2 S1 I0 F500 H1 T45 ; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned on

    You have fan 0 set at 30% PWM and fans 1 and 2 in thermostatic mode. Not a good test. Try them in non thermostatic mode at 100% speed:

    M106 P0 S1 H-1
    M106 P1 S1 H-1
    M106 P2 S1 H-1



  • @tommertens:

    Yep, as below.

    M106 P0 S0.3 I0 H-1 F10 ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
    M106 P1 S1 I0 F500 H1 T45 ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on
    M106 P2 S1 I0 F500 H1 T45 ; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned on

    As Tony asked, does it work if you set full on by using S1?

    If that works, then you could try S0.3 but use the B parameter to give it a blip https://duet3d.com/wiki/G-code#M106:_Fan_On

    Edit. I was typing at the same time as David



  • It doesn't work with S1 either. Neither did the F0:1 line.



  • Here is my config.

    ; CoreXY sample config file for dc42 Duet firmware
    
    M111 S0                             ; Debug off
    M550 PMyCoreXY				        ; Machine name (can be anything you like)
    M551 Preprap                        ; Machine password (used for FTP connections)
    M540 P0xBE:0xEF:0xDE:0xAD:0xFE:0xED ; MAC Address
    ;*** Adjust the IP address and gateway in the following 2 lines to suit your network
    M552 S1 P0.0.0.0						; IP address (0 = use DHCP)
    M554 P192.168.1.1                   ; Gateway
    M553 P255.255.255.0                 ; Netmask
    M555 P1                             ; Set output to look like Marlin
    M575 P1 B57600 S1					; Comms parameters for PanelDue
    
    ; Machine configuration
    M569 P0 S0							; Drive 0 goes forwards (change to S0 to reverse it)
    M569 P1 S1							; Drive 1 goes forwards
    M569 P2 S0							; Drive 2 goes forwards
    M569 P3 S1							; Drive 3 goes forwards
    M569 P4 S1							; Drive 4 goes forwards
    ; If you use an endstop switch for Z homing, change Z0 to Z1 in the following line, and see also M558 command later in this file
    M574 X1 Y1 Z0 S1					; set endstop configuration (X and Y and endstops only, at low end, active high)
    M667 S1								; set CoreXY mode
    M92 X80 Y80 Z800					; Set axis steps/mm
    M92 E402:402						; Set extruder steps/mm
    M906 X2000 Y2000 Z2000 E800           ; Set motor currents (mA)
    M201 X600 Y500 Z5 E1000            ; Accelerations (mm/s^2)
    M203 X15000 Y15000 Z500 E3600       ; Maximum speeds (mm/min)
    M566 X600 Y600 Z30 E20              ; Maximum jerk speeds mm/minute
    M208 X450 Y500 Z1083					; set axis maxima (adjust to suit your machine)
    M208 X-8 Y0 Z-0.5 S1				; set axis minima (adjust to make X=0 and Y=0 the edges of the bed)
    G21                                 ; Work in millimetres
    G90                                 ; Send absolute coordinates...
    M83                                 ; ...but relative extruder moves
    
    ; Z probe
    M558 P1 X0 Y0 Z1                    ; Analog Z probe, also used for homing the Z axis
    G31 Z1.20 P500                      ; Set the probe height and threshold (put your own values here)
    ; The following M557 commands are not needed if you are using a bed.g file to perform bed compensation
    ;*** Adjust the XY coordinates in the following M557 commands to suit your build and the position of the Z probe
    M557 P0 X60 Y0                      ; Four... 
    M557 P1 X60 Y165                    ; ...probe points...
    M557 P2 X222 Y165                   ; ...for bed...
    M557 P3 X222 Y0                     ; ...levelling
    ;M557 P4 X141 Y82.5                 ; 5th probe point for levelling
    
    ; Thermistors and heaters
    ;*** If you have a Duet board with 1K thermistor series resistors, change R4700 to R1000 to the following M305 commands
    ; You can also use S and B parameters to define the parameters of the thermistors you are using
    M305 P0 R4700 H0 L0					; Put your own H and/or L values here to set the bed thermistor ADC correction
    M305 P1 R4700 H0 L0					; Put your own H and/or L values here to set the first nozzle thermistor ADC correction
    M305 P2 R4700 H0 L0					; Put your own H and/or L values here to set the second nozzle thermistor ADC correction
    M301 H1 P10 I0.10 D100 T0.50 S1.0	; PID settings for extruder 0
    M301 H2 P10 I0.10 D100 T0.50 S1.0	; PID settings for extruder 1
    M570 S120							; Increase to allow extra heating time if needed
    
    ; Tool definition
    M563 P0 D0 H1 F0                  ; Define tool 0
    G10 P0 S0 R0                        ; Set tool 0 operating and standby temperatures
    ;*** If you have a dual-nozzle build, un-comment the following 3 lines
    M563 P1 D1 H2 F0                     ; Define tool 1
    G10 P1 S0 R0                       ; Set tool 1 operating and standby temperatures
    
    ;*** If you are using axis compensation, put the figures in the following command
    M556 S78 X0 Y0 Z0                   ; Axis compensation here
    T0									; select first hot end
    
    ; Fan Configuration
    M106 P0 H-1 B0.2
    M106 P1 H-1	B0.2
    M106 P2 H-1	B0.2
    
    


  • Can you confirm that you are getting 12 volts and a ground out of the connection that you are using?



  • I would have done but upon attempting to check with the multimeter I slipped and shorted something out. Board is dead.


  • administrators

    I'm sorry to hear of your misfortune. Is the board completely dead, or just the fan outputs?


Locked
 

Looks like your connection to Duet3D was lost, please wait while we try to reconnect.