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

    Setting up heater chamber - need help

    Scheduled Pinned Locked Moved
    Tuning and tweaking
    2
    27
    1.4k
    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.
    • JoergS5undefined
      JoergS5 @felt342
      last edited by JoergS5

      @felt342 chamber heater documentation https://duet3d.dozuki.com/Wiki/Connecting_and_configuring_a_chamber_heater is without M307, I expect M307 has an expected temperature timeout according to heatblock and bed heating up, which is faster than chamber. But I didn't find anything yet.

      Maybe M307 C parameter higher, because you will need more than 2 minutes to heat up the chamber.

      I found a good documentation of the M307 parameters which can help: https://duet3d.dozuki.com/Wiki/Tuning_the_heater_temperature_control#Section_Setting_the_model_parameters_manually
      Setting C higher seem to be a good try.

      felt342undefined 1 Reply Last reply Reply Quote 0
      • felt342undefined
        felt342 @JoergS5
        last edited by felt342

        @JoergS5 I saw this and I first what I used to check why I don't see any difference between dead time 5 and 2000 is this:

        M307 H5 ; report model parameters for heater 5, and whether the model is being used
        

        And it did report me this:

        	M307 H5
        Heater 5 model: gain 340.0, time constant 140.0, dead time 5.5, max PWM 1.00, calibration voltage 0.0, mode PID, inverted no, frequency default
        Computed PID parameters for setpoint change: P13.4, I0.482, D51.4
        Computed PID parameters for load change: P13.4
        

        Then in my config-override is a completely different story for Heater 5.

        If I do M307 H1 then it reports correct numbers from config-override corresponding to Heater 1.

        Why it might happen?

        Trying with higher C now..

        Industrial 3D printing service in the Netherlands - gagatstudio.com

        JoergS5undefined 1 Reply Last reply Reply Quote 0
        • JoergS5undefined
          JoergS5 @felt342
          last edited by JoergS5

          @felt342 the config-override is loaded if you have M501 in your config (in most cases at the end of the config). I would comment the M307 H5 in override out until solved in config.

          The D parameter seems to be a delay time "The D parameter is the dead time, which is the delay between a change in PWM and an appreciable effect on the rate of temperature change.", so in my understanding better set it low.

          felt342undefined 1 Reply Last reply Reply Quote 0
          • felt342undefined
            felt342 @JoergS5
            last edited by

            @JoergS5

            I did remove M501 from config.g, and if I use now M370 H5 to report PID values, its show me again something wrong..

            M307 H5
            Heater 5 model: gain 340.0, time constant 140.0, dead time 5.5, max PWM 1.00, calibration voltage 0.0, mode PID, inverted no, frequency default
            Computed PID parameters for setpoint change: P13.4, I0.482, D51.4
            Computed PID parameters for load change: P13.4
            

            this is my config.g

            ; General preferences
            G90                                             ; send absolute coordinates...
            M83                                             ; ...but relative extruder moves
            M550 P"own"                                     ; set printer name
            
            M667 S1                                         ; 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 R-1
            M569 P0 S1                                      ; physical drive 0 goes forwards
            M569 P1 S1                                      ; physical drive 1 goes forwards
            M569 P2 S1                                      ; physical drive 2 goes forwards
            M569 P3 S1                                      ; physical drive 3 goes backwards
            M569 P4 S1                                      ; physical drive 4 goes forwards
            M584 X4 Y1 Z2 E3:0                             ; set drive mapping
            M350 X16 Y16 Z16 E16:16 I1                      ; configure microstepping with interpolation
            M92 X200.8 Y200.8 Z400.5 E415:415		; set steps per mm
            M566 X900 Y900 Z20 E2000.00:2000.00      	; set maximum instantaneous speed changes (mm/min)
            M203 X15000 Y15000.00 Z200 E13000.00:13000.00   ; set maximum speeds (mm/min)
            M201 X1000 Y1000 Z100 E3000.00:3000.00      	; set accelerations (mm/s^2)
            M906 X1300 Y1300 Z1500 E600:600 I30             ; set motor currents (mA) and motor idle factor in per cent
            M84 S90                                         ; Set idle timeout
            
            ; Axis Limits
            M208 X-16 Y0 Z0 S1                                ; set axis minima
            M208 X321 Y208 Z305 S0                        ; set axis maxima
            
            ; Endstops
            M574 Z1 S2                		     ; set active low and disabled endstops
            M574 X1 S0                			  ; set active high endstops
            M574 Y2 S0
            
            ; Z-Probe
            M307 H3 A-1 C-1 D-1                             ; disable heater on PWM channel for BLTouch
            M558 A10 S0.005 P9 H3 F60 T5000 R0.3                          ; set Z probe type to bltouch and the dive height + speeds
            G31 P25 X-10 Y-47.06 Z-0.19                  ; set Z probe trigger value, offset and trigger height (positive value brings bed closer)
            M557 X0:290 Y-45.952:190 S20                      ; define mesh grid
            
            ; Heaters
            M141 H5 					; heater 5 is the chamber heater
            M305 X1 P5 B4725 C7.060000e-8 			; heater 5 is monitored by a E3D thermistor
            M307 H5 A70 C600 D2000 S1.00 V0.0 B1	; use bang-bang control for the chamber heater
            M307 H0 B0 S1.00                        	; disable bang-bang mode for the bed heater and set PWM limit
            M305 P0 T100000 B4138 R4700             	; set thermistor + ADC parameters for heater 0
            M143 H0 S150                            	; set temperature limit for bed heater 0 to 150C
            M305 P1 X200                                    ; configure PT100 for heater 1
            M143 H1 S480                                    ; set temperature limit for heater 1 to 480C
            M305 P2 X201                                    ; configure PT100 for heater 2
            M143 H2 S300                                    ; set temperature limit for heater 2 to 300C
            
            ; Fans
            M106 P0 S0 I0 F20 H-1                          ; set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
            M106 P1 S1 I0 F20 H-1                          ; set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned off
            M106 P2 S1 I0 F20 H-1                          ; set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned off
            
            ; Tools
            M563 P0 S"Left" D0 H1 F-1                       ; define tool 0
            G10 P0 X0 Y0 Z0                                 ; set tool 0 axis offsets
            G10 P0 S0 R175 									; Set tool 0 active and standby temperatures
            M563 P1 S"Right" D1 H2 F-1                      ; define tool 1
            G10 P1 X20.09 Y0 Z0                               ; set tool 1 axis offsets
            G10 P1 S0 R175 									; Set tool 0 active and standby temperatures
            
            ; Custom settings are not defined
            
            ; Miscellaneous
                                                       ; load saved parameters from non-volatile memory
            
            
            

            Higher C did not work.

            Industrial 3D printing service in the Netherlands - gagatstudio.com

            JoergS5undefined 1 Reply Last reply Reply Quote 0
            • JoergS5undefined
              JoergS5 @felt342
              last edited by

              @felt342 please try setting D low (see my text change).

              I expect the values to be changed after a reboot only or setting it differently explicitly.

              felt342undefined 1 Reply Last reply Reply Quote 0
              • felt342undefined
                felt342 @JoergS5
                last edited by felt342

                @JoergS5

                Okay, there is some light -

                I did set D value to 1, and for some reason, if I report M307 H5 its does show me values from the config.g finally!

                And start to autotune however it seems didn't change anything.

                Industrial 3D printing service in the Netherlands - gagatstudio.com

                JoergS5undefined 1 Reply Last reply Reply Quote 0
                • JoergS5undefined
                  JoergS5 @felt342
                  last edited by

                  @felt342 is the error message Error: Heating fault on heater 5, temperature rising much more slowly than the expected 1.7°C/sec gone now? Would be interesting how the 1.7 is calculated. Then we can understand how to set it higher.

                  felt342undefined 1 Reply Last reply Reply Quote 0
                  • felt342undefined
                    felt342 @JoergS5
                    last edited by felt342

                    @JoergS5 I just did a test and got now this error with 0.3C/s

                    Error: Heating fault on heater 5, temperature rising much more slowly than the expected 0.3°C/sec
                    

                    Could be what my value for E3D thermistor are wrong? But those values is something that I found on duet forum for e3d thermistor.

                    Industrial 3D printing service in the Netherlands - gagatstudio.com

                    JoergS5undefined 1 Reply Last reply Reply Quote 0
                    • JoergS5undefined
                      JoergS5 @felt342
                      last edited by JoergS5

                      @felt342 can you see how 1.7 and 0.3 is calculated? M307 original and now)?
                      I found the error message in the source code, it depends on expected rate, dead time, the current temperature and the PWM.

                      Measuring the temperature wrong could be a reason.

                      I've also seen 4725 as value for the E3D thermistor. You could try verifying that it works by heating up somehow without the chamber heater. (hair dryer)

                      felt342undefined 1 Reply Last reply Reply Quote 0
                      • felt342undefined
                        felt342 @JoergS5
                        last edited by felt342

                        @JoergS5

                        Well, setting C value to 2000 doesn`t give me an error anymore about Fault in heater 5, and its keeps the rising temperature. But I still can not do the autotune.

                        Yeah the thermistor seams works.

                        Industrial 3D printing service in the Netherlands - gagatstudio.com

                        JoergS5undefined 1 Reply Last reply Reply Quote 0
                        • JoergS5undefined
                          JoergS5 @felt342
                          last edited by JoergS5

                          @felt342 you get the same autotune error like in the first post? And does the reported temperature value of the thermistor go up?

                          felt342undefined 1 Reply Last reply Reply Quote 0
                          • felt342undefined
                            felt342 @JoergS5
                            last edited by

                            @JoergS5

                            Yes, this is an error:

                            Autotune canceled because the temperature is not increasing.
                            

                            Temperature goes up, but slowly about 1 degree a minute. This would be fine for me because I am planning to add two heaters there overall of 600, but first I got one and would like to deal it up first, to at least heating without errors. Which we did now (thanks to you!) setting C to 2000, but to perform autotune for real values would be better.

                            Industrial 3D printing service in the Netherlands - gagatstudio.com

                            JoergS5undefined 1 Reply Last reply Reply Quote 0
                            • JoergS5undefined
                              JoergS5 @felt342
                              last edited by

                              @felt342 Seems to be a timeout. I cannot find the error message in the source at the moment.

                              felt342undefined 1 Reply Last reply Reply Quote 1
                              • felt342undefined
                                felt342 @JoergS5
                                last edited by

                                @JoergS5

                                Yeah, I really appreciate your help and digging in! What I am thinking is maybe better to move thermistor to the middle of the chamber, it will probably be the faster response until I have only one heater.

                                Industrial 3D printing service in the Netherlands - gagatstudio.com

                                JoergS5undefined 2 Replies Last reply Reply Quote 0
                                • JoergS5undefined
                                  JoergS5 @felt342
                                  last edited by JoergS5

                                  @felt342 Now I know why I cannot find it. I search in the 3.1.1 code....

                                  => didn't find it in 2.05 code also. Will search and will tell you if I find something.

                                  felt342undefined 1 Reply Last reply Reply Quote 1
                                  • felt342undefined
                                    felt342 @JoergS5
                                    last edited by

                                    @JoergS5

                                    Happens 🙂
                                    Thank you!

                                    Industrial 3D printing service in the Netherlands - gagatstudio.com

                                    1 Reply Last reply Reply Quote 0
                                    • JoergS5undefined
                                      JoergS5 @felt342
                                      last edited by JoergS5

                                      @felt342 I found it in pid.cpp of 2.05 source:

                                      // Heating up
                                      {
                                      const bool isBedOrChamberHeater = reprap.GetHeat().IsBedOrChamberHeater(heater);
                                      const uint32_t heatingTime = millis() - tuningPhaseStartTime;
                                      const float extraTimeAllowed = (isBedOrChamberHeater) ? 60.0 : 30.0;
                                      if (heatingTime > (uint32_t)((model.GetDeadTime() + extraTimeAllowed) * SecondsToMillis)
                                      && (temperature - tuningStartTemp) < 3.0)
                                      {
                                      platform.Message(GenericMessage, "Auto tune cancelled because temperature is not increasing\n");
                                      break;
                                      }

                                      So the error message is called and a break occurs, if the heating time is bigger than dead time + extraTimeAllowed.

                                      A low dead time helps in any case.

                                      extraTimeAllowed is defined by:
                                      const float extraTimeAllowed = (isBedOrChamberHeater) ? 60.0 : 30.0;
                                      so for Chamber it is 60.
                                      You could try setting D negative, say -59. Don't know whether it works.

                                      You're welcome and I wish you success with the heated chamber!

                                      felt342undefined 1 Reply Last reply Reply Quote 2
                                      • felt342undefined
                                        felt342 @JoergS5
                                        last edited by

                                        @JoergS5

                                        That seems working without error!
                                        I didn't try negative D, but I set D to 1 and kept C at 2000, waiting for autotune and values 🙂

                                        Thanks a lot again!

                                        Industrial 3D printing service in the Netherlands - gagatstudio.com

                                        JoergS5undefined 1 Reply Last reply Reply Quote 0
                                        • JoergS5undefined
                                          JoergS5 @felt342
                                          last edited by

                                          @felt342 Nice to hear, thank you!
                                          See you.

                                          felt342undefined 1 Reply Last reply Reply Quote 0
                                          • felt342undefined
                                            felt342 @JoergS5
                                            last edited by

                                            @JoergS5

                                            I must say it`s a nice way of solving the issue, digging the source code, will take it as a tip 🙂

                                            Industrial 3D printing service in the Netherlands - gagatstudio.com

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