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 said in Setting up heater chamber - need help:

      M307 H5 A340.0 C140.0 D2000 S1.00 V0.0 B1

      M307 A parameter together with S results in goal temperature, which is 340 °C, seems to be too high for a chamber.
      (A temperature * S PWM % => goal temp)

      https://duet3d.dozuki.com/Wiki/Gcode#Section_M307_Set_or_report_heating_process_parameters

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

        @JoergS5

        Yes, those values were there by default in congid-override, I only change dead time to 2000, just to check. But how do I start fresh autotune without any values? As I was thinking to obtain proper values from auto-tune, or do I need to enter something manual there? However, I did change A value to 70 and it doesn't affect anything seems like.

        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 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
                                            • First post
                                              Last post
                                            Unless otherwise noted, all forum content is licensed under CC-BY-SA