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

    Temperature jumps when the fan is turned on

    Scheduled Pinned Locked Moved
    Beta Firmware
    8
    20
    967
    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.
    • Vladimir_Uundefined
      Vladimir_U
      last edited by

      Hello. RFF3.4b7.+Duet 3 Mini genuine. the electronics cooling fan is configured to turn on from heating the controller or drivers.
      It turns on periodically. Each time, at the moment of switching on, the temperature of the hotend begins to increase. More precisely, the overshoot begins relative to the installed one. Maybe this is some kind of bug?
      Снимок экрана 2022-01-16 040854.png

      Adrian52undefined Argoundefined dc42undefined 3 Replies Last reply Reply Quote 0
      • Adrian52undefined
        Adrian52 @Vladimir_U
        last edited by

        @vladimir_u the fan compensation seems to over do it for me too. I get pretty good temperature control with the second K parameter set to 0. Running beta 7+4 on Duet2wifi .

        Vladimir_Uundefined DonStaufferundefined 2 Replies Last reply Reply Quote 0
        • Vladimir_Uundefined
          Vladimir_U @Adrian52
          last edited by

          @adrian52 the fact is that this is not turning on the cooling of the model. This is the turning on of electronics cooling...

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

            @vladimir_u That's interesting. If I understand you correctly, it seems that the heater model for the hot end fan compensation is being affected by any fan coming on and not just the hot end cooling fan.

            Can you post your config.g file please.

            Also, if you've tuned the PID for a tool rather a heater, the M307 should have two values for the "C" parameter separated by a colon. What happens if you remove one of those values? Does the hot end temperature change when your electronics cooling fan comes on or does that fix the issue?

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

            Vladimir_Uundefined 1 Reply Last reply Reply Quote 0
            • Argoundefined
              Argo @Vladimir_U
              last edited by

              @vladimir_u

              Might be related to the issue I'm having:

              https://forum.duet3d.com/post/267283

              Did you PID calibrate your extruder as a tool or as a heater? I'm trying PID now as a heater so there is no fan correction enabled which might cause this.

              Vladimir_Uundefined 1 Reply Last reply Reply Quote 0
              • Vladimir_Uundefined
                Vladimir_U @deckingman
                last edited by Vladimir_U

                @deckingman Yes, you got it right. Configured as a tool
                There is no parameter "C" in the M307...

                config.g

                G90                                                   ; send absolute coordinates...
                M83                                                   ; ...but relative extruder moves
                M550 P"UltiHBot"                                      ; set printer name
                M669 K1                                               ; select CoreXY mode
                
                ; 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 V20                                          ; physical drive 0.0 goes forwards
                M569 P0.1 S1 D3 V20                                          ; physical drive 0.1 goes forwards
                M569 P0.2 S1 D3 V20                                          ; physical drive 0.2 goes forwards
                M569 P0.3 S1 D3 V20                                          ; 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 Z1600.00 E700.1                     ; set steps per mm
                M566 X900.00 Y900.00 Z60.00 E120.00                   ; set maximum instantaneous speed changes (mm/min)
                M203 X10800.00 Y10800.00 Z300.00 E1200.00             ; set maximum speeds (mm/min)
                M201 X3000.00 Y3000.00 Z20.00 E250.00                 ; set accelerations (mm/s^2)
                M906 X1200 Y1200 Z800 E300 I30                        ; set motor currents (mA) and motor idle factor in per cent
                M84 S60                                               ; Set idle timeout
                
                ; Axis Limits
                M208 X0 Y0 Z0 S1                                      ; set axis minima
                M208 X200 Y200 Z280 S0                                ; set axis maxima
                
                ; 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 Z1 S1 P"io3.in"                                  ; configure switch-type (e.g. microswitch) endstop for low end on Z via pin io3.in
                
                ; Z-Probe
                M558 P0 H5 F120 T6000                                 ; disable Z probe but set dive height, probe speed and travel speed
                M557 X15:190 Y15:190 S20                              ; define mesh grid
                
                ; Heaters
                M308 S0 P"temp0" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 0 as thermistor on pin temp0
                M950 H0 C"out0" T0 Q10                                ; 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
                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"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
                M143 H1 S280                                          ; set temperature limit for heater 1 to 280C
                
                M308 S2 Y"mcu-temp" A"MCU"
                M308 S3 Y"drivers" A"DRIVERS"
                
                ; Fans
                M950 F0 C"out3" Q500                                  ; create fan 0 on pin out3 and set its frequency
                M106 P0 S0 H-1                                        ; 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 S1 H1 T45                                     ; set fan 1 value. Thermostatic control is turned on
                
                M950 F2 C"out5" Q15000 ;Q15000
                M106 P2 H2:3 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
                M918 P2 E-4 F2000000                                  ; Fysetc 12864mini
                M150 X2 R255 U0 B0 P255 S1 F1                         ; display led
                M150 X2 R0 U255 B0 P255 S1 F1                         ; left encoder led
                M150 X2 R0 U255 B0 P255 S1 F0                         ; right encoder led
                
                ;accelerometers
                M955 I10 P0 C"io2.out+io2.in"
                
                ; Miscellaneous
                M501                                                  ; load saved parameters from non-volatile memory
                T0                                    
                

                config-override.g

                ; config-override.g file generated in response to M500 at 2022-01-10 01:31
                ; This is a system-generated file - do not edit
                ; Heater model parameters
                M307 H0 R0.687 K0.739:0.000 D2.17 E1.35 S1.00 B0
                M307 H1 R2.580 K0.391:0.254 D7.43 E1.35 S1.00 B0 V12.4
                ; Workplace coordinates
                G10 L2 P1 X0.00 Y0.00 Z0.00
                G10 L2 P2 X0.00 Y0.00 Z0.00
                G10 L2 P3 X0.00 Y0.00 Z0.00
                G10 L2 P4 X0.00 Y0.00 Z0.00
                G10 L2 P5 X0.00 Y0.00 Z0.00
                G10 L2 P6 X0.00 Y0.00 Z0.00
                G10 L2 P7 X0.00 Y0.00 Z0.00
                G10 L2 P8 X0.00 Y0.00 Z0.00
                G10 L2 P9 X0.00 Y0.00 Z0.00
                
                
                deckingmanundefined 1 Reply Last reply Reply Quote 0
                • Vladimir_Uundefined
                  Vladimir_U @Argo
                  last edited by

                  @argo a very similar case

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

                    @vladimir_u OK. So since RRF3.4.0 beta 7, the C parameter has been deprecated to using a K parameter. Your config-overide shows the M307 has two values for "K". The first will be for the fan being off, the second will be for the fan being on. But of course, it should only take account of the hot end cooling fan (F1) - not the electronics cooling fan which I assume is Fan2. Can you temporarily remove the second K value and check if the hot end temperature changes when the electronics cooling fan turns on.

                    So instead of

                    M307 H1 R2.580 K0.391:0.254 D7.43 E1.35 S1.00 B0 V12.4
                    

                    try

                    M307 H1 R2.580 K0.391 D7.43 E1.35 S1.00 B0 V12.4
                    

                    and see if that makes a difference.

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

                    1 Reply Last reply Reply Quote 0
                    • DonStaufferundefined
                      DonStauffer @Adrian52
                      last edited by

                      @adrian52 I didn't even know there WAS heater compensation for the cooling fan. How do you control it?

                      deckingmanundefined jay_s_ukundefined 2 Replies Last reply Reply Quote 0
                      • deckingmanundefined
                        deckingman @DonStauffer
                        last edited by

                        @donstauffer said in Temperature jumps when the fan is turned on:

                        @adrian52 I didn't even know there WAS heater compensation for the cooling fan. How do you control it?

                        I'm on my phone so difficult to send links but look up the tuning command. I think it's M303 but could be wrong. Essentially you PID tune a tool with it's associated heater rather than a heater.

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

                        1 Reply Last reply Reply Quote 0
                        • jay_s_ukundefined
                          jay_s_uk @DonStauffer
                          last edited by

                          @donstauffer Its M303 TX SXXX with T being the tool number (e.g. 0) and S being the temperature you want to tune to

                          Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

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

                            @vladimir_u I've checked the code. The only situations in which the heater power is adjusted are:

                            1. When a M106 command with an S parameter but no P parameter is used to adjust the speed of the print cooling fan for the current tool. In this case the feedforward correction is used, controlled by the second K parameter n the M307 command for that tool heater. No correction is applied if that second K term is zero.

                            2. If the VIN voltage measured by the Duet drops, then the tool heater power is corrected to allow for that voltage drop.

                            There is no path for a thermostatic fan turning on to cause a change in heater power, unless that fan draws such a large current that the power voltage drops - which would be unusual for a fan.

                            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 0
                            • Vladimir_Uundefined
                              Vladimir_U
                              last edited by

                              @dc42 Yes, I can't repeat this bug right now. I tried to start the fan with different options. there were no jumps. But I am sure for sure that it was synchronized with the inclusion of the cooling fan of the board. Later I will run this code that had this effect. Could you tell me by what value the voltage should change in order for the correction to work?

                              1 Reply Last reply Reply Quote 0
                              • Vladimir_Uundefined
                                Vladimir_U
                                last edited by

                                It looks like I found what was the reason for the hotend temperature fluctuations. It's all about the slicer settings. The fact is that when printing bridges, the slicer increases cooling. But the bridges were so small that the actual speed of the coolers did not have time to change. But the firmware already included heating compensation. And for this reason there were temperature jumps. This affects the quality of the model wall. I should have written about it here. Perhaps someone else will encounter a similar effect.
                                Снимок экрана 2022-01-19 221645.png Снимок экрана 2022-01-19 221413.png

                                1 Reply Last reply Reply Quote 1
                                • Vladimir_Uundefined
                                  Vladimir_U
                                  last edited by

                                  @dc42 have you considered adding some time delay to the firmware to enable compensation. Or activation of compensation by double analysis of changes in fan rotation speed with an interval of several seconds. Perhaps this would help to avoid such an effect.

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

                                    @vladimir_u great detective work.

                                    Z-Bot CoreXY Build | Thingiverse Profile

                                    Vladimir_Uundefined 1 Reply Last reply Reply Quote 0
                                    • Vladimir_Uundefined
                                      Vladimir_U @Phaedrux
                                      last edited by

                                      @phaedrux the desire to understand this did not give me peace😆

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

                                        @vladimir_u in the tests we did using a E3D V6 hot end, the compensation needed to act instantly, because the additional heater power took a small number of seconds to reach the nozzle, whereas the fan took less than a second to reach the new speed. So the fan speed increased faster than the heat reached the nozzle. As a result, the best compensation we could achieve still resulted in a slight dip in indicated temperature when the fan speed increased; but this dip was smaller than without heater feedforward, also the recovery to the set temperature was faster.

                                        I am surprised that in your graph, the temperature is rising so much because of heater feedforward. Have you tested whether the heater feedforward is compensating correctly when you change the fan speed and leave it at the new value for several seconds? It may be that the feedforward constant (the second K parameter in the M307 command) is not appropriate for your hot end.

                                        What type of hot end do you have, and what type of print cooling fan?

                                        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

                                        Argoundefined Vladimir_Uundefined 2 Replies Last reply Reply Quote 0
                                        • Argoundefined
                                          Argo @dc42
                                          last edited by

                                          @dc42

                                          The E3D V6 and similar hotends with heater cartridges react slow.

                                          There are newer hotends like the E3D Revo or the Rapido which don't have a "classic" heater cartridge. The heating unit is cylindrical and they draw less power the higher the temperature gets:

                                          https://trianglelab.net/u_file/2111/01/file/Rapido-hotendcylindricalceramicheaterpowertest-f063.pdf?spm=a2g0o.detail.1000023.95.1aed2dcc0Ov6It&file=Rapido-hotendcylindricalceramicheaterpowertest-f063.pdf

                                          They also heat up much fast and the reaction time is lower.
                                          Workaround for me (with the Rapido hotend) at the moment is to do the PID tuning without the fan (H parameter instead of T) so the temperature stays somewhat stable when the fan is turned on.

                                          1 Reply Last reply Reply Quote 0
                                          • Vladimir_Uundefined
                                            Vladimir_U @dc42
                                            last edited by

                                            @dc42 My printer uses a hotend other than e3dv6. the thermistor there is located closer to the heater. Perhaps for this reason he is more sensitive. However. As a result of several experiments, with the implementation of the M303 with different blowing power, I stopped at the option when calibration occurs with a blowout of 35 percent. Fluctuations when switching within 3 degrees. The best with this configuration can not be achieved, I think.
                                            photo_2022-01-20_21-02-14.jpg photo_2022-01-20_20-51-09.jpg

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