Nozzle can't fall to 60°C



  • Hi,

    My printer works well but, I'm trying, with no luck, to keep my nozzle fan on until it falls to 60°C at the end of a print. Unfortunetly, if I put M109 R60 at the gcode's end, the printer never arrive to this value but keeps regulate around 62°C (so my gcode never stop). Am I missing somthing?

    Firmware, software:

    Firmware Name: RepRapFirmware for Duet 2 WiFi/Ethernet
    Firmware Electronics: Duet WiFi 1.02 or later
    Firmware Version: 2.01(RTOS) (2018-07-26b2)
    WiFi Server Version: 1.21
    Web Interface Version: 1.22

    config.g

    ; Configuration file for Duet WiFi (firmware version 1.21)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool on Mon Aug 06 2018 16:00:33 GMT+0200

    ; General preferences

    G90 ; Send absolute coordinates...
    M83 ; ...but relative extruder moves

    ; Network
    M550 P**** ; Set machine name
    M587 S"" P"" ; Configure access point. You can delete this line once connected
    M552 S1 P"****" ; Enable network
    M586 P0 S1 ; Enable HTTP
    M586 P1 S0 ; Disable FTP
    M586 P2 S0 ; Disable Telnet

    ; Drives
    M569 P0 S1 ; Drive 0 goes forwards
    M569 P1 S0 ; Drive 1 goes forwards
    M569 P2 S1 ; Drive 2 goes forwards
    M569 P3 S0 ; Drive 3 goes forwards
    M350 X16 Y16 Z16 E16 I1 ; Configure microstepping with interpolation
    M92 X100 Y100 Z400 E95.73 ; Set steps per mm
    M566 X600 Y600 Z100 E200 ; Set maximum instantaneous speed changes (mm/min)
    M203 X12000 Y12000 Z1800 E4500 ; Set maximum speeds (mm/min)
    M201 X600 Y600 Z150 E300 ; Set accelerations (mm/s^2)
    M906 X2400 Y2400 Z2000 E2000 I30 ; Set motor currents (mA) and motor idle factor in per cent
    M84 S180 ; Set idle timeout

    ; Pressure Advance
    M572 D0 S0.05

    ; Axis Limits
    M208 X-51 Y-25 Z0 S1 ; Set axis minima
    M208 X220 Y220 Z280 S0 ; Set axis maxima

    ; Endstops
    M574 X1 Y1 S1 ; Set active high endstops

    ; Z-Probe
    M574 Z1 S2 ; Set endstops controlled by probe
    M558 P1 H5 F120 T9600 B1 ; Set Z probe type to unmodulated and the dive height + speeds
    G31 P500 X32 Y5 Z2.40 ; Set Z probe trigger value, offset and trigger height
    M557 X20:200 Y20:200 S90 ; Define mesh grid

    ; Heaters
    M307 H0 B0 S1.00 ; Disable bang-bang mode for the bed heater and set PWM limit
    M305 P0 T100000 B4138 C0 R4700 ; Set thermistor + ADC parameters for heater 0
    M143 H0 S90 ; Set temperature limit for heater 0 to 90C
    M305 P1 T100000 B4138 C0 R4700 ; Set thermistor + ADC parameters for heater 1
    M143 H1 S270 ; Set temperature limit for heater 1 to 270C

    ; Fans
    M106 P0 S0.0 I0 F500 H-1 ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
    M106 P1 S0.8 I0 F500 H-1 ; extruder fan
    M106 P2 S0.7 I0 F500 H-1 ; board fan

    ; Tools
    M563 P0 D0 H1 ; 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

    ; Automatic saving after power loss is not enabled

    ; Custom settings are not configured



  • @jul The best way to do it is simply enable thermostatic mode, then you don't need any commands to the gcode file. Assuming fan 1 is the fan you want to control and you want it to switch with haete 1 which is the normal hot end heater, then use this in your config.g instead of what you have now.

    M106 P1 S0.8 I0 F500 H1 T60

    For a more detailed explanation look here https://duet3d.dozuki.com/Wiki/GCode#Section_M106_Fan_On



  • @jul said in Nozzle can't fall to 60°C:

    M109 R60

    From the Wiki:

    M109: Set Extruder Temperature and Wait

    You are telling the Duet to set the temperature to 60 degrees and then do nothing, which sounds like exactly what is happening.

    You probably want Thermostatic fan control, part of M106

    Looking at your config, you have this option disabled with H-1:
    M106 P1 S0.8 I0 F500 H-1 ; extruder fan

    as an example, try:
    M106 P1 S0.8 I0 F500 H1 T60

    and put

    M104 S0

    in your end gcode. When the temperature drops below 60C, the fan should switch off.

    adavidm



  • Thanks for helping, but I'm using this on P0 (nozzle) wich I can't use thermostaticaly.
    P1 (extruder) is always on and could be in thermostatic mode, but is not noisy



  • I don't understand what you are trying to do. If you don't want to use thermostatic control what about:

    M109 R40 ; To get the temperature below your threshold
    M106 P0 S0; To switch P0 off.
    

    Does that help? Sorry if i'm not understanding your use case.



  • The problem is that it wil never arrive at 40°C (as at 60°C). It will go around but upper than 40°C (like 42-43°C) so M106 P0 S0 will never be done.

    Basically, I've got:

    P0 wich blow on my nozzle,
    P1 on the E3D heatsink
    P2 on motherboard.

    What I want to do at the end of a print is:

    Have P1 (e3d heatsink) blowing permanently at 80% (works)
    Have P0 (nozzle) keeping blow on the nozzle until it reach 60°C
    Have P2 (motherboard) blowing permanently at 70% (works)

    PS: my english is maybe poor, so don't hesitate to ask again if it's not clear 😉



  • @jul said in Nozzle can't fall to 60°C:

    Thanks for helping, but I'm using this on P0 (nozzle) wich I can't use thermostaticaly.
    P1 (extruder) is always on and could be in thermostatic mode, but is not noisy

    Why can you not use thermostatic mode on P0? I don't see anything in the documentation other than they recommend it on P1 due to it being activated on Duet restart by default.

    Are you using it to cool the print and don't want it running all the time?



  • @tjb1 said in Nozzle can't fall to 60°C:

    Are you using it to cool the print and don't want it running all the time?

    Exactly



  • @jul said in Nozzle can't fall to 60°C:

    @tjb1 said in Nozzle can't fall to 60°C:

    Are you using it to cool the print and don't want it running all the time?

    Exactly

    Try turning thermostatic off in the start g-code of your slicer using M106 P0 S0.0 I0 F500 H-1 which should allow it to be controlled like a normal print fan and then in the ending g-code when you want the fan to stay on until 60C turn it into a thermostatic fan with M106 P0 S0.0 I0 F500 H1 T60



  • @tjb1 Idon't want to modify P1, it works well.
    I want P0 to wait until the cold temperature is achieved.
    I did that before with Marlin firmware on ramps, and it worked a charmed.
    With Marlin, I did M104 S0 followed by M109 R60 and it didn't regulate, just wait as hotend were stop.
    The duet firmware doesn't seem to work that way with M109 R60, it regulate



  • @jul said in Nozzle can't fall to 60°C:

    The problem is that it wil never arrive at 40°C (as at 60°C). It will go around but upper than 40°C (like 42-43°C) so M106 P0 S0 will never be done.

    Basically, I've got:

    P0 wich blow on my nozzle,
    P1 on the E3D heatsink
    P2 on motherboard.

    What I want to do at the end of a print is:

    Have P1 (e3d heatsink) blowing permanently at 80% (works)
    Have P0 (nozzle) keeping blow on the nozzle until it reach 60°C
    Have P2 (motherboard) blowing permanently at 70% (works)

    PS: my english is maybe poor, so don't hesitate to ask again if it's not clear 😉

    That's no problem. You can set any fan to monitor any heater.

    So M106 P0 H1 T60 will use fan 0 monitoring heater1 (which is the hot end) and turn on at 60 deg C.
    Then M106 P1 H1 T80 will use fan 1 but also monitoring heater1 and turning it on when it reaches 80 deg C.

    I haven't tried it but it should work.



  • @jul said in Nozzle can't fall to 60°C:

    @tjb1 Idon't want to modify P1, it works well.
    I want P0 to wait until the cold temperature is achieved.
    I did that before with Marlin firmware on ramps, and it worked a charmed.
    With Marlin, I did M104 S0 followed by M109 R60 and it didn't regulate, just wait as hotend were stop.
    The duet firmware doesn't seem to work that way with M109 R60, it regulate

    I'm sorry, I didn't edit the commands to reflect the correct pin. Change the P1 to P0. If you use the command to change P0 to a thermostatically controlled fan at the end of the print, it will leave the fan on until it reaches 60C and then shut the fan off but it's not a blocking code and the g-code will terminate.



  • Just for be clear:
    P0 (wich I want to wait until asked temperature) is the fan wich blow on my print, so I want to manage speed on the slicer, not themostatic.
    But I can maybe put your command in my slicer's end script after M104 S0 ?



  • @jul said in Nozzle can't fall to 60°C:

    Just for be clear:
    P0 (wich I want to wait until asked temperature) is the fan wich blow on my print, so I want to manage speed on the slicer, not themostatic.
    But I can maybe put your command in my slicer's end script after M104 S0 ?

    Yes if you place M106 P0 S0.0 I0 F500 H-1 in the starting g-code (this is needed in the starting g-code to reset the fan to g-code control if you don't reset Duet between prints) it should allow that fan to be controlled with g-code like a normal print fan then when you reach the end (ending g-code) you should be able to place M106 P0 S0.0 I0 F500 H1 T60 and the fan will stay on until 60C is reached.



  • ok for my fan, I will give it a try.
    Is there a way to do something when the fan shutdown? I want my printer to blow until 60°C is reached then turn the printer off



  • @jul said in Nozzle can't fall to 60°C:

    ok for my fan, I will give it a try.
    Is there a way to do something when the fan shutdown? I want my printer to blow until 60°C is reached then turn the printer off

    You can use M81 S1 per https://duet3d.dozuki.com/Wiki/GCode#Section_M81_ATX_Power_Off or if you aren't using M81 I assume something like the following would work as well?

    M106 P0 S0.0 I0 F500 H1 T60 ;Change fan P0 to thermostatic control with 60C target
    G10 P0 R60 S60 ;Set tool 0 to 60C Standby/Active temperature
    M116 ;Wait for temperature
    G10 P0 R0 S0 ;Set tool 0 heaters off - needs confirmed
    *Command to shutdown here*
    


  • M106 P0 S1.0 L1.0 I0 F500 H1 T60 works well for keeping my fan alive until temperature reached
    Thx
    As I don't already have my relay, I can't test the M81 command. I'll test as soon as I can



  • I think you may have found what you needed already, but here's what I do at the end of my prints to cool the nozzle and the print with the part cooling fan.

    ; stop.g
    ; called when M0 (Stop) is run (e.g. when a print from SD card is cancelled)
    ; Also called by slicer end gcode by M0
    ;
    M400			; Finish move queue
    M104 S0 		; Extruder heater off
    M140 S0 		; Bed heater off
    M106 S255 		; Fan at 100 to cool nozzle and bed
    G91			; Relative positioning
    M220 S100		; Set speed factor back to 100% in case it was changed
    M221 S100		; Set extrusion factor back to 100% in case it was changed
    G1 E-2			; Retract filament 2mm
    G1 X5 Y5		; Wipe nozzle 
    G1 Z5			; raise nozzle 5mm from printed part
    G90			; Absolute positioning
    M104 S35		; Set hot end low and wait
    G4 S300			; Wait 5 minutes
    M116			; wait for temp to drop
    M106 S0			; Fan off
    M104 S0			; extruder heater off
    M140 S0 		; Bed heater off
    G28 X Y			; Home X and Y
    G28 X Y			; Home it again, Sam.
    M290 R0 S0		; clear babystepping
    M84			; Steppers off
    M98 P"ZSpeedsNormal.g"	; Load normal z speed settings again.
    


  • @jul said in Nozzle can't fall to 60°C:

    M106 P0 S1.0 L1.0 I0 F500 H1 T60 works well for keeping my fan alive until temperature reached
    Thx
    As I don't already have my relay, I can't test the M81 command. I'll test as soon as I can

    Why do you have the G4 S300 and M116?



  • @tjb1 because I want to wait at least 5 minutes with the fan on to cool the part and bed. Depending on the print temp the hotend may have cooled off by then or not.


 

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