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

    M107/106 Not Turning Off Fans

    Scheduled Pinned Locked Moved
    General Discussion
    3
    4
    220
    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.
    • jwebb4616undefined
      jwebb4616
      last edited by

      I am not sure what I am doing incorrect in the slicer to turn off the fans at the end of the print, I also receive an occasional Insufficeint axis's home. config below, I have tried both M107, and M106 in my end gcode in cura slicer and neither seem to stop the fan. I suspect the homing issue has something to do with my delta config but other wise a second home and it prints fine.

      ; Configuration file for Duet 3 Mini 5+ (firmware version 3.3)
      ; executed by the firmware on start-up
      ;
      ; generated by RepRapFirmware Configuration Tool v3.3.10 on Tue Jun 21 2022 15:09:53 GMT-0400 (Eastern Daylight Time)

      ; General preferences
      G90 ; send absolute coordinates...
      M83 ; ...but relative extruder moves
      M550 P"Delta" ; set printer name
      M665 R151.67 L315 B132 H330 ; 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
      M552 S1 ; enable network
      M586 P0 S1 ; enable HTTP
      M586 P1 S0 ; disable FTP
      M586 P2 S0 ; disable Telnet

      ; Drives
      M569 P0.0 S1 D3 V0 ; physical drive 0.0 goes forwards
      M569 P0.1 S1 D3 V0 ; physical drive 0.1 goes forwards
      M569 P0.2 S1 D3 V0 ; physical drive 0.2 goes forwards
      M569 P0.3 S0 D3 V0 ; 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 E526.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 X3000.00 Y3000.00 Z3000.00 E1000.00 ; set accelerations (mm/s^2)
      M906 X1250 Y1250 Z1250 E650 I30 ; set motor currents (mA) and motor idle factor in per cent
      M84 S30 ; Set idle timeout

      ; Axis Limits
      M208 Z-25 S1 ; set minimum Z

      ; Endstops
      M574 X2 S1 P"io4.in" ; configure switch-type (e.g. microswitch) endstop for high end on X via pin io4.in
      M574 Y2 S1 P"io2.in" ; configure switch-type (e.g. microswitch) endstop for high end on Y via pin io2.in
      M574 Z2 S1 P"io1.in" ; configure switch-type (e.g. microswitch) endstop for high end on Z via pin io1.in

      ; Z-Probe
      M558 P5 C"^!io3.in" H5 F120 T6000 ; set Z probe type to switch and the dive height + speeds
      G31 P500 X0 Y0 Z17.17 ; set Z probe trigger value, offset and trigger height
      M557 R130 S15 ; define mesh grid

      ; Heaters
      M308 S0 P"temp0" Y"thermistor" T100000 B3950 ; 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 R0.439 K0.389:0.000 D3.07 E1.35 S1.00 B0 ; 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 B4725 C7.06e-8 ; configure sensor 1 as thermistor on pin temp1
      M950 H1 C"out2" T1 ; create nozzle heater output on out2 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"out3" Q500 ; create fan 0 on pin out3 and set its frequency
      M106 P0 S1 H1 T45 ; set fan 0 value. Thermostatic control is turned off
      M950 F1 C"out4" Q500 ; create fan 1 on pin out4 and set its frequency
      M106 P1 S0 H-1 ; set fan 1 value. Thermostatic control is turned on
      M950 F2 C"out5" Q500
      M106 P2 S1 H1 T45

      ; 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
      T0 ; select first tool
      M501 ; config override

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

        @jwebb4616 said in M107/106 Not Turning Off Fans:

        M950 F0 C"out3" Q500 ; create fan 0 on pin out3 and set its frequency
        M106 P0 S1 H1 T45 ; set fan 0 value. Thermostatic control is turned off
        M950 F1 C"out4" Q500 ; create fan 1 on pin out4 and set its frequency
        M106 P1 S0 H-1 ; set fan 1 value. Thermostatic control is turned on

        The problem with the fan is that you have created fan 0 as a thermostatically controlled fan and assigned it to the tool as the part cooler. So it's not going to respond to commands to turn it off. It will only respond to the temperature of heater1. 45c in this case.

        Which fan is where? You have Fan1 created as a gcode controllable fan. Is that the actual part cooler? Once you sort that out M107 etc should work.

        As for the insufficient axis homed error, when do you see that? That would happen when giving a movement command before the axis are actually homed.

        For good measure share your homedelta.g and bed.g and you slicer start gcode. It would also be good to know what firmware version you are using.

        Z-Bot CoreXY Build | Thingiverse Profile

        jwebb4616undefined 1 Reply Last reply Reply Quote 0
        • jwebb4616undefined
          jwebb4616 @Phaedrux
          last edited by jwebb4616

          @phaedrux Which fan should be which? Should hotend cooling fan be fan 1 and part cooling fan be 0? I am still learning Reprap and using the configurator, coming from Marlin and Klipper. Thank you for your help

          I switched cura to say fan 1 was the part fan and it functions fine turning it on now which it did not before.

          As far as the homing error, it seems to happen randomly at the start of prints occasionally, but not every time it homes. a second home always resolves it.

          This is an FL Sun Super Racer, with a build volume of 330 mm by 260. The carriage travel section was unclear to me in the configurator so I may have gotten that wrong.

          ; homedelta.g
          ; called to home all towers on a delta printer
          ;
          ; generated by RepRapFirmware Configuration Tool v3.3.10 on Tue Jun 21 2022 15:09:53 GMT-0400 (Eastern Daylight Time)
          G91 ; relative positioning
          G1 H1 X337 Y337 Z337 F2500 ; move all towers to the high end stopping at the endstops (first pass)
          G1 H2 X-5 Y-5 Z-5 F3600 ; go down a few mm
          G1 H1 X10 Y10 Z10 F250 ; move all towers up once more (second pass)
          G1 Z-5 F6000 ; move down a few mm so that the nozzle can be centred
          G90 ; absolute positioning
          G1 X0 Y0 F6000 ; move X+Y to the centre

          ; bed.g
          ; called to perform automatic delta calibration via G32
          ;
          ; generated by RepRapFirmware Configuration Tool v3.3.10 on Tue Jun 21 2022 16:50:21 GMT-0400 (Eastern Daylight Time)
          M561 ; clear any bed transform
          G28 ; home all towers
          ; Probe the bed at 10 peripheral and 6 halfway points, and perform 8-factor auto compensation
          ; Before running this, you should have set up your Z-probe trigger height to suit your build, in the G31 command in config.g.
          G30 P0 X0 Y130.9 H0 Z-99999
          G30 P1 X76.94 Y105.9 H0 Z-99999
          G30 P2 X124.49 Y40.45 H0 Z-99999
          G30 P3 X124.49 Y-40.45 H0 Z-99999
          G30 P4 X76.94 Y-105.9 H0 Z-99999
          G30 P5 X0 Y-130.9 H0 Z-99999
          G30 P6 X-76.94 Y-105.9 H0 Z-99999
          G30 P7 X-124.49 Y-40.45 H0 Z-99999
          G30 P8 X-124.49 Y40.45 H0 Z-99999
          G30 P9 X-76.94 Y105.9 H0 Z-99999
          G30 P10 X0 Y65.4 H0 Z-99999
          G30 P11 X56.64 Y32.7 H0 Z-99999
          G30 P12 X56.64 Y-32.7 H0 Z-99999
          G30 P13 X0 Y-65.4 H0 Z-99999
          G30 P14 X-56.64 Y-32.7 H0 Z-99999
          G30 P15 X-56.64 Y32.7 H0 Z-99999
          G30 P16 X0 Y0 H0 Z-99999 S8
          ; Use S-1 for measurements only, without calculations. Use S4 for endstop heights and Z-height only. Use S6 for full 6 factors
          ; If your Z probe has significantly different trigger heights depending on XY position, adjust the H parameters in the G30 commands accordingly. The value of each H parameter should be (trigger height at that XY position) - (trigger height at centre of bed)

          Slicer:
          G21 ; millimeter units
          G90 ; absolute coordinates
          M82 ; E absolute
          M140 S{material_bed_temperature}
          M104 S{material_print_temperature}
          M190 S{material_bed_temperature}
          M109 S{material_print_temperature}
          G28 ; home axis
          G29 S1 ; enable mesh leveling
          ; Lower nozzle and move to start position
          G1 Z150
          G1 X-130 Y0 Z0.4 F3000
          ; Extrude about 40 mm by printing a 90 degree arc
          G3 X0 Y-130 I130 Z0.3 E40 F2700
          ; Retract and move nozzle up
          G92 E0
          G1 E-1.5 F3000
          G0 Z0.5
          G1 E0 F1000

          deckingmanundefined 1 Reply Last reply Reply Quote 0
          • deckingmanundefined
            deckingman @jwebb4616
            last edited by

            @jwebb4616 The default position for RepRap firmware is that the part cooling fan is fan 0. That's because most slicers insert M106 into the gcode (without a fan number). But you can use any fan you like as long as you map it to fan 0 in the tool configuration (M563). So if you want to use fan 1 instead of fan 0, then add F1 to the M563 tool definition command. That way, whenever a gcode file is being printed which contains M106 commands (without fan numbers) the firmware will use Fan 1 instead of Fan 0. Just remember that whichever fan you decide on for part cooling, you must set it to non-thermostatic mode.

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

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