Setting up heater chamber - need help
-
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.
-
@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. -
@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..
-
@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.
-
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.
-
@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.
-
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.
-
@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.
-
@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.
-
@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)
-
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.
-
@felt342 you get the same autotune error like in the first post? And does the reported temperature value of the thermistor go up?
-
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.
-
@felt342 Seems to be a timeout. I cannot find the error message in the source at the moment.
-
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.
-
@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.
-
Happens
Thank you! -
@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!
-
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 valuesThanks a lot again!
-
@felt342 Nice to hear, thank you!
See you.