Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    Temp controlled fan sometimes only goes 50pct

    Scheduled Pinned Locked Moved
    Tuning and tweaking
    5
    11
    309
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • gnydickundefined
      gnydick
      last edited by gnydick

      My current configs for fans are below. I have a tool changer so there are A LOT of things going on. I'll post all of my scripts if you want.

      I've also tried with T80:80 and gotten the same results. It only happens with tool 0 which is even stranger.

      When I say 50pct, the M106 shows S50

      Duet 2 Ethernet w/RRF 3.3

      M106 P0 C"Cold Section 0" S1 H1 T80
      M106 P1 C"Tool 0 Blower" S0 H-1
      M106 P2 C"Cold Section 1" S1 H2 T80
      M106 P3 C"Tool 1 Blower" S0 H-1
      M106 P4 C"Cold Section 2" S1 H3 T80
      M106 P5 C"Tool 2 Blower" S0 H-1
      M106 P6 C"Cold Section 3" S1 H4 T80
      M106 P7 C"Tool 3 Blower" S0 H-1

      o_lampeundefined dc42undefined 2 Replies Last reply Reply Quote 0
      • o_lampeundefined
        o_lampe @gnydick
        last edited by

        @gnydick
        I had the same when I also added the fan# to my tool definition. I simply confused heatsink fan with part cooling fan.

        1 Reply Last reply Reply Quote 1
        • dc42undefined
          dc42 administrators @gnydick
          last edited by

          @gnydick if you have a temperature controlled fan and you try to change the speed to below 50% using the M106 S parameter, then RRF will set the speed to 50%. This is to stop you accidentally turning off a temperature controlled fan completely when it is supposed to be on. So most likely something in your system is trying to turn the temperature controlled fan off, by sending M106 P# S0 or M107 P# where # s the fan number. Or perhaps you have included the temperature controlled fans in the M563 F parameters of the tool definitions, which you should not do (that parameter is only for print cooling fans).

          Duet WiFi hardware designer and firmware engineer
          Please do not ask me for Duet support via PM or email, use the forum
          http://www.escher3d.com, https://miscsolutions.wordpress.com

          gnydickundefined 2 Replies Last reply Reply Quote 0
          • gnydickundefined
            gnydick @dc42
            last edited by

            @dc42 thanks, I'll check that out

            1 Reply Last reply Reply Quote 0
            • gnydickundefined
              gnydick @dc42
              last edited by

              @dc42 none of those are the case, so I'm not sure why it's set at 50%

              fcwiltundefined 1 Reply Last reply Reply Quote 0
              • fcwiltundefined
                fcwilt @gnydick
                last edited by

                @gnydick

                Most slicers by default assume that fan 0 is the tool 0 (part) fan.

                A command of M106 S0 is the same as M106 P0 S0.

                So check your slicer code for M106 commands.

                Frederick

                Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

                gnydickundefined 1 Reply Last reply Reply Quote 0
                • gnydickundefined
                  gnydick @fcwilt
                  last edited by

                  @fcwilt thanks. I don't think a temperature controlled fan would be changed by an M106 command without a "P"

                  fcwiltundefined Phaedruxundefined 2 Replies Last reply Reply Quote 0
                  • fcwiltundefined
                    fcwilt @gnydick
                    last edited by

                    @gnydick said in Temp controlled fan sometimes only goes 50pct:

                    @fcwilt thanks. I don't think a temperature controlled fan would be changed by an M106 command without a "P"

                    Well I made a configuration error on one of my printers and fan 0, which should have been the part fan was actually the hotend fan.

                    And when a print was run the hotend fan was controlled by the M106 commands in the print file.

                    Leading to the hotend overheating and melting of the hotend mount.

                    Frederick

                    Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

                    1 Reply Last reply Reply Quote 0
                    • Phaedruxundefined
                      Phaedrux Moderator @gnydick
                      last edited by

                      @gnydick said in Temp controlled fan sometimes only goes 50pct:

                      M106 command without a "P"

                      An M106 without a P should control the currently selected tools part fan as defined in it's M563 F parameter.

                      If an S parameter is provided but no other parameter is present, then the speeds of the print cooling fans associated with the current tool will be set (see the F parameter in the M563 command). If no tool is active then the speed of Fan 0 will be set.

                      https://duet3d.dozuki.com/Wiki/Gcode?revisionid=HEAD#Section_M106_Fan_On

                      So the question then is, does the slicer send a M106 S command when no tool is selected?

                      @gnydick said in Temp controlled fan sometimes only goes 50pct:

                      I'll post all of my scripts if you want.

                      Let's see em.

                      Z-Bot CoreXY Build | Thingiverse Profile

                      1 Reply Last reply Reply Quote 0
                      • gnydickundefined
                        gnydick
                        last edited by

                        @phaedrux but the is not my part cooling fan, so it shouldn't affect it, right?

                        Scripts...

                        config.g

                        ; Configuration file for Duet WiFi (firmware version 3)
                        ; executed by the firmware on start-up
                        ;
                        ; generated by RepRapFirmware Configuration Tool v3.1.4 on Tue Jul 21 2020 18:20:38 GMT-0700 (Pacific Daylight Time)
                        
                        ; General preferences
                        G90                                                  ; send absolute coordinates...
                        M83                                                  ; ...but relative extruder moves
                        M550 P"RailCore II ZLT"                              ; set printer name
                        M669 K1                                              ; select CoreXY mode
                        
                        ; Network
                        M552 P10.0.0.201 S1                               ; enable network and set IP address
                        M553 P255.255.255.0                                  ; set netmask
                        M554 P10.0.0.1                                  ; set gateway
                        M586 P0 S1                                           ; enable HTTP
                        M586 P1 S1                                           ; enable FTP
                        M586 P2 S1                                           ; enable Telnet
                        
                        ; Drives
                        M569 P0 S0                                           ; physical drive 0 goes b
                        M569 P1 S1                                           ; physical drive 1 goes f
                        M569 P2 S1                                           ; physical drive 2 goes f
                        M569 P3 S1                                           ; physical drive 3 goes f
                        M569 P4 S0                                           ; physical drive 4 goes b
                        M569 P5 S0
                        M569 P6 S0
                        M569 P7 S0
                        M569 P8 S1   ; goes b  
                        M569 P9 S0   ; goes f
                        
                        M584 X0 Y1 Z5:6:7 E3:4:8:9 C2  U5 V6 W7                            ; set drive mapping
                        M350 X16 Y16 Z16 U16 V16 W16 E16:16:16:16 I1        ; set 16x microstepping for axes& extruder, with interpolation
                        M350 C8 
                        M201 X10000 Y10000 Z100 U201 V201 W201 E1500:1500:1500:1500 C400       ; Accelerations (mm/s^2)
                        M203 X24000 Y24000 Z900 U900 V900 W900 E3600:3600:3600:3600 C5000    ; Maximum speeds (mm/min)
                        M566 X250 Y250 Z100 U100 V100 W100 E8000:8000:1000:8000 C2          
                        
                        M204 P1000 T4000
                        
                        M906 X1000 Y1000 Z1000 E800:800:800:800 C500 I60 ; Set motor currents (mA)
                        
                        
                        
                        
                        M92 X200.00 Y200.00 Z1600.00 U1600 V1600 W1600 E800:800:800:800 C100        ; set steps per mm
                        
                        
                        M84 S30                                                  ; Set idle timeout
                        
                        
                        
                        ; Axis Limits
                        M208 X-83.1 Y-7 Z0 C0 S1 V0                                   ; set axis minima
                        M208 X425.60 Y300 Z580 C260 S0 V28              ;set X to max of 216, and for tool changing to 302
                        
                        ; Endstops
                        ;M574 X1 S1 P"xstop"                                  ; configure active-high endstop for low end on X via pin xstop
                        M574 X1 S3
                        M574 Y1 S3 ;P"ystop"                                  ; configure active-high endstop for low end on Y via pin ystop
                        
                        
                        
                        ; Heaters
                        M308 S0 P"bedtemp" Y"thermistor" T100000 R4700 B3950 H0 L0       ; configure sensor 0 as thermistor on pin bedtemp
                        M950 H0 C"bedheat" T0 Q100                         ; create bed heater output on bedheat 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 S160                                       ; set temperature limit for heater 0 to 160C
                                                            ; set temperature limit for heater 0 to 160C
                        M308 S1 P"e0temp" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 1 as thermistor on pin e0temp
                        M950 H1 C"e0heat" T1                                 ; create nozzle heater output on e0heat and map it to sensor 1
                        M143 H1 S400
                        M307 H1 B0 S1.00                                     ; disable bang-bang mode for heater  and set PWM limit
                        
                        
                        M308 S2 P"e1temp" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 2 as thermistor on pin e1temp
                        M950 H2 C"e1heat" T2                                 ; create nozzle heater output on e0heat and map it to sensor 2
                        M143 H2 S400
                        M307 H2 B0 S1.00                                     ; disable bang-bang mode for heater  and set PWM limit
                        
                        M308 S3 P"duex.e2temp" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 2 as thermistor on pin e1temp
                        M950 H3 C"duex.e2_heat" T3                                 ; create nozzle heater output on e0heat and map it to sensor 2
                        M143 H3 S400
                        M307 H3 B0 S1.00                                     ; disable bang-bang mode for heater  and set PWM limit
                        
                        
                        M308 S4 P"duex.e3temp" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 2 as thermistor on pin e1temp
                        M950 H4 C"duex.e3_heat" T4                                 ; create nozzle heater output on e0heat and map it to sensor 2
                        M143 H4 S400
                        M307 H4 B0 S1.00                                     ; disable bang-bang mode for heater  and set PWM limit
                        
                        
                        
                        
                        ; Fans
                        ;tool 0
                        M950 F0 C"duex.pwm4" Q500
                        M950 F1 C"^duex.pwm5" Q16000
                        M950 F2 C"duex.pwm3" Q500
                        M950 F3 C"^duex.fan3" Q16000
                        M950 F4 C"duex.fan4" Q500
                        M950 F5 C"^duex.fan5" Q16000
                        M950 F6 C"duex.fan6" Q500
                        M950 F7 C"^duex.fan8" Q16000
                        
                        M106 P0 C"Cold Section 0" S1 H1 T80:80 B1
                        M106 P1 C"Tool 0 Blower" S0 H-1 B1
                        M106 P2 C"Cold Section 1" S1 H2 T80:80 B1
                        M106 P3 C"Tool 1 Blower" S0 H-1 B1
                        M106 P4 C"Cold Section 2" S1 H3 T80:80 B1
                        M106 P5 C"Tool 2 Blower" S0 H-1 B1
                        M106 P6 C"Cold Section 3" S1 H4 T80:80 B1
                        M106 P7 C"Tool 3 Blower" S0 H-1 B1
                        
                        
                        
                        ; Tools
                        M563 P0 S"One" D0 H1 F1                           ; define tool 0
                        M563 P1 S"Two" D1 H2 F3                          ; define tool 1 - single hot-end
                        M563 P2 S"Three" D2 H3 F5                ; define tool 2 - single hot-end
                        M563 P3 S"Four" D3 H4 F7                ; define tool 3 - single hot-end
                        
                        G10 P0 X39.136 Y-4.384  Z-10.81
                        G10 P0 R0 S0
                        
                        G10 P1 X39.197 Y-19.654 Z-19.87
                        G10 P1 R0 S0
                        
                        G10 P2 X39.13 Y-5.869 Z-11.22
                        G10 P2 R0 S0
                        
                        G10 P3 X39.285 Y-19.736 Z-20.15
                        G10 P3 R0 S0
                        
                        
                        ; Custom settings
                        G21
                        G90                                                  ; Send absolute coordinates...
                        M140 S0 R0 
                        M501
                        M555 P2
                        
                        M671 X-41.2:-41.2:372 Y-2:252:126.1 S7.5               ;Front left,(-10,22.5) Rear Left (-10.,227.5) , Right (333,160) S7.5 is the max correction - measure your own offsets, to the bolt for the yoke of each leadscrew
                        
                        ;M671 X-41.2:-41.2:372 Y10:264:138.1 S7.5               ;Front left,(-10,22.5) Rear Left (-10.,227.5) , Right (333,160) S7.5 is the max correction - measure your own offsets, to the bolt for the yoke of each leadscrew
                        
                        
                        
                        M83                                                  ; ...but relative extruder moves
                        M929 P"eventlog.txt" S1                              ; Start logging to file eventlog.txt
                        
                        
                        ; 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
                        
                        M98 P"config-user.g"
                        

                        tfreeX.g it's the same for all tools, just different offsets

                        ; tfree0.g
                        ; called when tool 0 is freed
                        ;
                        
                        ;G60 S0 ; save the current position
                        
                        ; retract
                        ;M98 P"/macros/_tip forming"
                        
                        
                        
                        ;if fans[0].actualValue > 0
                        ;    M106 P0 S0
                        
                        ;;;;;;;;;;;;;;;;;;
                        
                        ;mesh levelling off
                        ;G29 S2
                        
                        ;Purge nozzle
                        ;M98 Ppurge.g
                        
                        
                        
                        ;Move In
                        G60 S0
                        G53 G1 Y1.1 E0 F6000
                        G53 G1 X380 F6000
                        G53 G1 X424 F3000
                        ;G1 E-100 F3000
                        
                        ;Open Coupler
                        M98 P"/macros/tool_unlock"
                        
                        
                        ;Move Out
                        G53 G1 X380 F6000
                        G53 G1 X250 F3000
                        M400
                        

                        tpreX.g

                        if tools[0].state != "active"
                        	M118 S"Activating Tool 0"
                        
                        	;Move In
                        	G53 G1 Y1.1 F6000
                        	G53 G1 X380 F6000
                        	G53 G1 X424 F1500
                        
                        
                        	M98 P"/macros/tool_lock"	;Close Coupler
                        

                        tpostX.g

                        if move.axes[2].machinePosition < 30
                          G91
                          G1 Z30
                          G90
                        
                        
                        M116 H1
                        ;G1 E100 F3000
                        
                        if heat.heaters[1].current > 170
                        	G1 E0 F420
                        	M98 P"/macros/tools/wipe"
                        
                        ; enable fan if it was running
                        M106 R2
                        G53 G1 X279 F16000
                        G1 X0 Y0 R0 F16000
                        
                        
                        dc42undefined 1 Reply Last reply Reply Quote 0
                        • dc42undefined
                          dc42 administrators @gnydick
                          last edited by

                          @gnydick you've made the classic mistake of using Fan 0 as a hot end fan. Any M106 or M107 commands generated by the slicer when no tool is selected will target that fan. See https://duet3d.dozuki.com/Wiki/Connecting_and_configuring_fans#Section_General_recommendations.

                          Duet WiFi hardware designer and firmware engineer
                          Please do not ask me for Duet support via PM or email, use the forum
                          http://www.escher3d.com, https://miscsolutions.wordpress.com

                          1 Reply Last reply Reply Quote 1
                          • First post
                            Last post
                          Unless otherwise noted, all forum content is licensed under CC-BY-SA