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.
    • 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