M107/106 Not Turning Off Fans
-
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 -
@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 onThe 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.
-
@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 -
@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.