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

I seem to be misunderstanding M106 / fan control

Scheduled Pinned Locked Moved Solved
Using Duet Controllers
4
12
1.1k
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.
  • undefined
    SupraGuy
    last edited by 15 Mar 2023, 18:51

    Okay, so I have 3 fans defined. (One isn't really a fan, it's a set of LED pucks.

    2 are defined with thermostatic control (Fan 1 and Fan 2) and one is defined with thermostatic control off.

    ; Fans
    M950 F0 C"out8" Q500 ; create fan 0 on pin out7 and set its frequency
    M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off
    M950 F1 C"out7" Q500 ; create fan 1 on pin out8 and set its frequency
    M106 P1 S0 H1 T45 ; set fan 1 value. Thermostatic control is turned on
    M950 F2 C"out4" Q500 ; Pretend that the LED lighting is a fan...
    M106 P2 S0 H0 T30:75 ; set fan 2 value. Thermostatic control follows the bed

    So, Fan 0 is the part cooling fan. I intend this to be turned on/off using M106 S255 or M106 S0 -- at least that's what Prusa Slicer puts in the Gcode for it.

    This does not seem to work. Sometimes the fan comes on when I power up the printer and stays on. Entering Gcode in the console does not seem to affect it, with or without the "P" parameter.

    The other 2 work on the thermostatic control, but I can't seem to get them to work manually.

    I've read through the Gcode docs several times, can't seem to figure out what I've done wrong...

    Firmware info:
    Board: Duet 3 MB6HC (MB6HC)
    Firmware: RepRapFirmware for Duet 3 MB6HC 3.4.5 (2022-11-30)

    Lead screw driven printer, powered by Duet 2 Wifi
    MPCNC powered by Duet 2 Wifi
    CoreXY printer driven by Duet 3 6HC
    LowRider CNC powered by Duet 2 Wifi

    undefined 1 Reply Last reply 15 Mar 2023, 20:58 Reply Quote 0
    • undefined
      dc42 administrators @SupraGuy
      last edited by 15 Mar 2023, 20:58

      @SupraGuy I suspect that you may have incorrectly specified fan numbers in your M563 command(s). Please post the whole of your config.g file s that we can check.

      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

      undefined 1 Reply Last reply 15 Mar 2023, 21:49 Reply Quote 1
      • undefined
        SupraGuy @dc42
        last edited by 15 Mar 2023, 21:49

        @dc42 M563? I guess I didn't touch that from the configuration tool, so I think it's defined as having fan 1 (Which is the thermostatic controlled fan that keeps the heat from coming up the throat.)

        config.g:

        ; Configuration file for Duet 3 MB 6HC (firmware version 3.3)
        ; executed by the firmware on start-up
        ;
        ; generated by RepRapFirmware Configuration Tool v3.3.15 on Tue Feb 21 2023 20:05:02 GMT-0800 (Pacific Standard Time)
        ; General preferences
        G90 ; send absolute coordinates...
        M83 ; ...but relative extruder moves
        M550 P"DMG3D03" ; set printer name
        M669 K1 ; select CoreXY mode
        ; Network
        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 S0 ; physical drive 0.0 goes backwards
        M569 P0.1 S0 ; physical drive 0.1 goes backwards
        M569 P0.2 S1 ; physical drive 0.2 goes forwards
        M569 P0.3 S1 ; physical drive 0.3 goes forwards
        M569 P0.4 S1 ; physical drive 0.4 goes forwards
        M569 P0.5 S1 ; physical drive 0.5 goes forwards
        M584 X0.0 Y0.1 Z0.2:0.3:0.4 E0.5 ; set drive mapping
        M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation
        M92 X100.00 Y100.00 Z100.00 E395.45 ; set steps per mm
        M566 X900.00 Y900.00 Z60.00 E120.00 ; set maximum instantaneous speed changes (mm/min)
        M203 X9000.00 Y9000.00 Z3000.00 E2700.00 ; set maximum speeds (mm/min)
        M201 X3000.00 Y3000.00 Z1500.00 E3000.00 ; set accelerations (mm/s^2)
        M906 X1100 Y1100 Z800 E800 I30 ; set motor currents (mA) and motor idle factor in per cent
        M84 S60 ; Set idle timeout
        ; Axis Limits
        M208 X-15 Y0 Z0 S1 ; set axis minima
        M208 X235 Y250 Z243 S0 ; set axis maxima
        M671 X-35.3:271.3:117.5 Y34.5:34.5:307.8 S5 ; Motor positions: -35.3,34.5; 271.3,34.5; 117.5,307.8
        ; Endstops
        M574 X1 S1 P"^io0.in" ; configure switch-type (e.g. microswitch) endstop for low end on X via pin ^io0.in
        M574 Y1 S1 P"^io1.in" ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin ^io1.in
        M574 Z2 S3 ; configure sensorless endstop for high end on Z
        ; Z-Probe
        M950 S0 C"io4.out" ; create servo pin 0 for BLTouch
        M558 P9 C"io4.in" H5 F120 T6000 ; set Z probe type to bltouch and the dive height + speeds
        G31 P500 X0 Y-36 Z3.24 ; set Z probe trigger value, offset and trigger height
        M557 X5:205 Y2:202 S50 ; 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
        M307 H0 R0.155 D15.47 ; set PID parameters for heated bed
        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
        M307 H1 R1.800 K0.448:0.000 D7.97 E1.35 S1.00 B0 V24.1
        M143 H1 S280 ; set temperature limit for heater 1 to 280C
        ; Fans
        M950 F0 C"out8" Q500 ; create fan 0 on pin out7 and set its frequency
        M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off
        M950 F1 C"out7" Q500 ; create fan 1 on pin out8 and set its frequency
        M106 P1 S0 H1 T45 ; set fan 1 value. Thermostatic control is turned on
        M950 F2 C"out4" Q500 ; Pretend that the LED lighting is a fan...
        M106 P2 S0 H0 T30:75 ; set fan 2 value. Thermostatic control follows the bed
        ; Tools
        M563 P0 S"Hemera" D0 H1 F1 ; 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
        T0 ; select first tool

        Lead screw driven printer, powered by Duet 2 Wifi
        MPCNC powered by Duet 2 Wifi
        CoreXY printer driven by Duet 3 6HC
        LowRider CNC powered by Duet 2 Wifi

        undefined 1 Reply Last reply 15 Mar 2023, 21:52 Reply Quote 0
        • undefined
          SupraGuy @SupraGuy
          last edited by 15 Mar 2023, 21:52

          Okay, I'm re-reading the M563 page, and it seems that I should tell it that it's fan 0. I'll change that, and see how it works...

          Lead screw driven printer, powered by Duet 2 Wifi
          MPCNC powered by Duet 2 Wifi
          CoreXY printer driven by Duet 3 6HC
          LowRider CNC powered by Duet 2 Wifi

          1 Reply Last reply Reply Quote 1
          • undefined
            SupraGuy
            last edited by SupraGuy 17 Mar 2023, 00:31

            Okay... I changed the line:
            M563 P0 S"Hemera" D0 H1 F1

            So now it reads:
            M563 P0 S"Hemera" D0 H1 F0

            And... nothing changed. Still can't seem to control the fan, it still comes on full blast when the board powers up.

            So... maybe it's the control pin? I changed it to "out9" and moved the fan connector. Yay, it's off... and won't turn on....

            Lead screw driven printer, powered by Duet 2 Wifi
            MPCNC powered by Duet 2 Wifi
            CoreXY printer driven by Duet 3 6HC
            LowRider CNC powered by Duet 2 Wifi

            1 Reply Last reply Reply Quote 0
            • undefined
              Phaedrux Moderator
              last edited by 17 Mar 2023, 03:42

              Can you send these commands manually?

              M106 P0 S0 H-1
              M106 P0 S1

              Does it work?

              Z-Bot CoreXY Build | Thingiverse Profile

              undefined 1 Reply Last reply 17 Mar 2023, 13:24 Reply Quote 0
              • undefined
                SupraGuy @Phaedrux
                last edited by 17 Mar 2023, 13:24

                @Phaedrux that would be no.

                So if I define fan 0 on out8, the fan comes on. If it's on out9, it is off. If I define it as thermostatic, it comes on at temperature, so pretty sure that it isn't hardware.

                ; Configuration file for Duet 3 MB 6HC (firmware version 3.3)
                ; executed by the firmware on start-up
                ;
                ; generated by RepRapFirmware Configuration Tool v3.3.15 on Tue Feb 21 2023 20:05:02 GMT-0800 (Pacific Standard Time)
                ; General preferences
                G90 ; send absolute coordinates...
                M83 ; ...but relative extruder moves
                M550 P"DMG3D03" ; set printer name
                M669 K1 ; select CoreXY mode
                ; Network
                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 S0 ; physical drive 0.0 goes backwards
                M569 P0.1 S0 ; physical drive 0.1 goes backwards
                M569 P0.2 S1 ; physical drive 0.2 goes forwards
                M569 P0.3 S1 ; physical drive 0.3 goes forwards
                M569 P0.4 S1 ; physical drive 0.4 goes forwards
                M569 P0.5 S1 ; physical drive 0.5 goes forwards
                M584 X0.0 Y0.1 Z0.2:0.3:0.4 E0.5 ; set drive mapping
                M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation
                M92 X100.00 Y100.00 Z100.00 E395.45 ; set steps per mm
                M566 X900.00 Y900.00 Z60.00 E120.00 ; set maximum instantaneous speed changes (mm/min)
                M203 X9000.00 Y9000.00 Z3000.00 E2700.00 ; set maximum speeds (mm/min)
                M201 X3000.00 Y3000.00 Z1500.00 E3000.00 ; set accelerations (mm/s^2)
                M906 X1100 Y1100 Z800 E800 I30 ; set motor currents (mA) and motor idle factor in per cent
                M84 S60 ; Set idle timeout
                ; Axis Limits
                M208 X-15 Y0 Z0 S1 ; set axis minima
                M208 X235 Y250 Z243 S0 ; set axis maxima
                M671 X-35.3:271.3:117.5 Y34.5:34.5:307.8 S5 ; Motor positions: -35.3,34.5; 271.3,34.5; 117.5,307.8
                ; Endstops
                M574 X1 S1 P"^io0.in" ; configure switch-type (e.g. microswitch) endstop for low end on X via pin ^io0.in
                M574 Y1 S1 P"^io1.in" ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin ^io1.in
                M574 Z2 S3 ; configure sensorless endstop for high end on Z
                ; Z-Probe
                M950 S0 C"io4.out" ; create servo pin 0 for BLTouch
                M558 P9 C"io4.in" H5 F120 T6000 ; set Z probe type to bltouch and the dive height + speeds
                G31 P500 X0 Y-36 Z3.24 ; set Z probe trigger value, offset and trigger height
                M557 X5:205 Y2:202 S50 ; 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
                M307 H0 R0.155 D15.47 ; set PID parameters for heated bed
                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
                M307 H1 R1.800 K0.448:0.000 D7.97 E1.35 S1.00 B0 V24.1
                M143 H1 S280 ; set temperature limit for heater 1 to 280C
                ; Fans
                M950 F0 C"out9" Q500 ; create fan 0 on pin out7 and set its frequency
                M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off
                M950 F1 C"out7" Q500 ; create fan 1 on pin out8 and set its frequency
                M106 P1 S0 H1 T45 ; set fan 1 value. Thermostatic control is turned on
                M950 F2 C"out4" Q500 ; Pretend that the LED lighting is a fan...
                M106 P2 S0 H0 T30:75 ; set fan 2 value. Thermostatic control follows the bed
                M950 F3 C"out8" Q500
                M106 P3 S0 H1 T45
                ; Tools
                M563 P0 D0 H1 S"Hemera" ; 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
                T0 ; select first tool

                Current state of config.g with fan 0 on out9 and a fan defined on out8 with thermostatic control. I also tried changing the tool to the non zero fan to see if that was it. Grasping at straws... currently the F parameter for M563 is not defined, to let it default to 0.

                Lead screw driven printer, powered by Duet 2 Wifi
                MPCNC powered by Duet 2 Wifi
                CoreXY printer driven by Duet 3 6HC
                LowRider CNC powered by Duet 2 Wifi

                1 Reply Last reply Reply Quote 0
                • undefined
                  SupraGuy
                  last edited by SupraGuy 17 Mar 2023, 14:26

                  Okay. I give up. I left the printer on and had a shower, when I came back, the part fan was on, and I could turn it off. So... yay?

                  Lead screw driven printer, powered by Duet 2 Wifi
                  MPCNC powered by Duet 2 Wifi
                  CoreXY printer driven by Duet 3 6HC
                  LowRider CNC powered by Duet 2 Wifi

                  1 Reply Last reply Reply Quote 0
                  • undefined
                    Phaedrux Moderator
                    last edited by 17 Mar 2023, 19:41

                    Call an exorcist.

                    Is the fan failing maybe?

                    Z-Bot CoreXY Build | Thingiverse Profile

                    undefined 1 Reply Last reply 18 Mar 2023, 02:13 Reply Quote 0
                    • undefined
                      SupraGuy @Phaedrux
                      last edited by 18 Mar 2023, 02:13

                      Doubtful. It's brand new, but with some of these Chinese parts that might not mean much. The fact that it worked reliably on thermostatic control is what really gets me though.

                      Hopefully I don't have to change the config file anymore, so if it acts up again, I'll replace the fan.

                      Lead screw driven printer, powered by Duet 2 Wifi
                      MPCNC powered by Duet 2 Wifi
                      CoreXY printer driven by Duet 3 6HC
                      LowRider CNC powered by Duet 2 Wifi

                      undefined 1 Reply Last reply 10 Sept 2023, 00:03 Reply Quote 0
                      • undefined SupraGuy marked this topic as a question 18 Mar 2023, 02:21
                      • undefined SupraGuy has marked this topic as solved 18 Mar 2023, 02:21
                      • undefined
                        SupraGuy @SupraGuy
                        last edited by 10 Sept 2023, 00:03

                        Okay... This is still making me crazy...

                        Configuration is still as it was last. I've changed stuff and changed it back, and behaviour is as it was. When I power the printer up, the part fan (Fan 0) comes on, nothing that I can do powers it down, except to redefine it with thermostatic control. Then it will follow the heater, and still not turn on/off. I've been leaving it on, but trying some filaments that are a bit more picky about part cooling, and it isn't going well...

                        Lead screw driven printer, powered by Duet 2 Wifi
                        MPCNC powered by Duet 2 Wifi
                        CoreXY printer driven by Duet 3 6HC
                        LowRider CNC powered by Duet 2 Wifi

                        undefined 1 Reply Last reply 10 Sept 2023, 04:33 Reply Quote 0
                        • undefined
                          deckingman @SupraGuy
                          last edited by 10 Sept 2023, 04:33

                          @SupraGuy Does the fan voltage jumper match the voltage of the fan itself? Other than that, some fans just don't play nicely with pwm, have you tried a different PWM value? I've found that sometimes a really low value like 10Hz can work.

                          Ian
                          https://somei3deas.wordpress.com/
                          https://www.youtube.com/@deckingman

                          1 Reply Last reply Reply Quote 0
                          8 out of 12
                          • First post
                            8/12
                            Last post
                          Unless otherwise noted, all forum content is licensed under CC-BY-SA