Tuning cancelled because temperature is not falling (m303)
-
Ohh and other thing. I think but I'm not sure, that gen 3 boards are more susceptible to showing electrical noise on the thermistor wiring. I had to change to using screened cable which I didn't have to do with the older Duet Ethernet.
-
@garyd9 Oh you definitely need to clear whatever is in config override because it does exactly as the name suggests. Personally, I never use it. You should be able to get the tuning to work at 65 or greater. I'm pretty sure the higher D will fix it.
-
No luck:
5/9/2020, 2:23:02 AM Auto tune cancelled because temperature is not falling 5/9/2020, 2:22:01 AM Auto tune phase 2, heater off 5/9/2020, 2:17:47 AM Auto tune phase 1, heater on 5/9/2020, 2:17:42 AM m303 H0 S55 Auto tuning heater 0 using target temperature 55.0°C and PWM 1.00 - do not leave printer unattended 5/9/2020, 2:16:07 AM M307 H0 Heater 0 model: gain 340.0, time constant 140.0, dead time 70.0, max PWM 1.00, calibration voltage 0.0, mode bang-bang
I included the M307 H0 report before the tuning started to show the result of "M307 H0 B1 D70" was active.
-
@garyd9 I'm on my phone right now. I'll get back to you when I get in front of my PC (unless someone else jumps in first)
-
@deckingman No problem. I'm going to be heading to bed soon anyway. One thing I might try first is to lower my nozzle to Z1 and force the hotend fan on. The air circulation might help cool the build plate slightly quicker.
(My part cooling is a berd air, and I doubt it'd do much to cool the build plate.)
Hopefully David will pop in at some point and give a suggestion (or fix) for the PID tune routine to allow 2 minutes (or more) for the temp to start falling.
-
Well, I think I did something.. unusual. I wasn't patient enough to let the bed cool all the way down, so started another PID tune when it was at 30C. As soon as it hit 55C and turned the bed heater off, I started fanning the bed to try and cool it down.
I guess I was overly aggressive fanning, because it went to phase 3 after only 7 seconds with a "peak" temp of only 55.7. I stopped fanning and the temp crept back up to 57.5 and then started to go down again.
When the tune finally finished, it reported a gain of 98, time constant of 818 and a dead time of a mere 7 seconds. For no particular reason, I saved those values via M500, and copied the resulting M307 command out to play with it: M307 H0 A98.5 C818.0 D7.2 S1.00 V23.4 B0
Now, this is where it gets interesting: I kept running that same command over and over, tinkering with the D parameter. Doing that, I was able to max out the D at 409. (I'm sure there's a good reason why a D > 70 is acceptable now, but wasn't in my old tune or in bang-bang mode - but I have no idea what that reason is.)
So, with "M307 H0 A98.5 C818.0 D409 S1.00 V23.4 B0" configured, I'm going to try to run the PID tune again and see if it allows more than 60 seconds for the temperature to start falling...
So much for going to bed...
-
@garyd9 I don't really have any better ideas. I just checked what I have now for my 10mm thick bed and it's as follows:
M307 H0 A271.8 C2583.2 D17.6 S1.00 B0 V24.2
That's the result of an auto tune last August. So it would have been RRF3 but an early beta firmware. But I'd say from that, the answer to the problem isn't simply the "D" parameter.
Maybe it's just a matter of finding some sort of approximate model first and doing multiple tunes to home in on the right values. Perhaps DC or someone more knowledgable than I can comment.
-
Another cancel - same thing. There's just too much thermal mass for the temperature to start falling within 60 seconds.
@dc42 Can I beg you for at least a temporary one-off build of RRF3 that increases the timeout for temperature falling to 2 or 3 minutes? (I don't have a platform available to rebuild RRF3 myself.)
5/9/2020, 11:36:59 AM Auto tune cancelled because temperature is not falling 5/9/2020, 11:35:59 AM Auto tune phase 2, heater off 5/9/2020, 11:30:03 AM Auto tune phase 1, heater on 5/9/2020, 11:29:57 AM m303 H0 S60 Auto tuning heater 0 using target temperature 60.0°C and PWM 1.00 - do not leave printer unattended
-
@garyd9 I hear what you are saying about the temperature drop time but despite that, I don't think it's the entire reason why you are getting the problem. The reason I say that is because my bed temperature doesn't drop within 60 seconds - if anything it carries on rising slightly. It's 400mm x 400mm x 10mm thick but also with 12mm of semi rigid insulation under it and another 6mm of float glass on top. So the thermal mass is pretty big.
Just as a long shot (at least until DC comes up with anything better) try sending M307 with my values via the console and then send M307 without any parameters to check that those values and none other will be used. Then try another heater tune.
The only other thing I can think of is, does the heater graph look nice and smooth without any sign of noise in the signal? If it's picking up any electrical noise on the thermistor signal, that might screw things up.
EDIT. Having said all of that, I'm still on a very early beta (pre RC) firmware so.......
-
@deckingman Actually, I think it was the thermistor noise that allowed yours to complete when you last did it. As far as I can tell from different experiments, the tuned D parameter seems to match the time difference between turning the heater off and RRF detecting a fall in the temperature. So, when I fanned mine and it "detected" a drop after only 7 seconds, it gave me a D of 7. In a different experiment, I waited 30 seconds and then fanned it, and it gave a D of about 30.
However, I really don't understand how all the different parameters interact and I'd hate to cause some unintended problem by fanning the bed during tuning, and then manually up'ing the D parameter to 120 or so. I'll freely admit that, at this point, I'm taking WAGs with electric stuff that could burn my house down - so I won't trust those guesses.
-
@garyd9 said in Tuning cancelled because temperature is not falling (m303):
@deckingman Actually, I think it was the thermistor noise that allowed yours to complete when you last did it..................
TBH, I couldn't remember if I did the tuning before or after I fitted screened cable to cure the noise. So I've just run auto tune again - now with screened thermistor cable and a good clean temperature trace. Other info that might or might not be useful is that the heater is 240 V 800 watt via an SSR. It's connected to a gen 3 main board with the sensor connected to an expansion board. Here is the result;
M303 H0 S100 sent via the console
Time 19:07:12 Phase 1 Heater on
Time 19:23:04 Phase 2 Heater off - (temp reached 100 deg C after about 16 minutes)
Time 19:23:34 Phase 3 Peak temperature reached 101.3No error messages. 15 minutes after phase 3 the bed temperature is still dropping but is at 74.5 deg C. I'm not sure what the temperature has to get down to for the tuning to complete - I'll just have to leave it and report back on that.
Looking at your result, you didn't get the Phase 3 peak temperature result that I did. No idea why though....
I wouldn't have thought that M570 heater fault detection has any part in heater tuning but just in case it does, mine is set as follows:
M570 H0 P10 T5 S300.I can't think what else I can do to help you. I guess it needs DC42 or someone more knowledgeable than I to come up with something.
-
@deckingman said in Tuning cancelled because temperature is not falling (m303):
Time 19:07:12 Phase 1 Heater on
Time 19:23:04 Phase 2 Heater off - (temp reached 100 deg C after about 16 minutes)
Time 19:23:34 Phase 3 Peak temperature reached 101.3No error messages. 15 minutes after phase 3 the bed temperature is still dropping but is at 74.5 deg C. I'm not sure what the temperature has to get down to for the tuning to complete - I'll just have to leave it and report back on that.
Taking guesses here: When RRF3 reported "peak temperature", it was when it detected that the temperature started dropping. On mine, it doesn't report that because the temperature hasn't started dropping 1 minute after the heater was turned off, so it gives an error instead.
I wonder if I were to try to PID tune to 100C if I'd have better luck. It might take forever for my plate to get that hot (it's only about a 250W heater under there right now) but it should start to fall sooner. (When my 500W silicone heater gets delivered, it'll be easier to hit 100C. It's been enroute from China for almost 2 weeks, but with COVID-19, delivery times are worse than normal.)
There's nothing in the PID tuning wiki that gives guidance on what target temperature to use when PID tuning. I've always just used "what I normally print with." Would it make a difference to the PID tune if I tuned the bed to 100C even though I never print with it over 65C?
-
@garyd9 said in Tuning cancelled because temperature is not falling (m303):
................. Would it make a difference to the PID tune if I tuned the bed to 100C even though I never print with it over 65C?
I've no idea to be honest - might be worth a try. I usually tune mine at around 65, not because it takes too long to heat but because it takes forever to cool down. I ran that last tune at 100 - no idea why I did that. An hour after phase three heater off, it was still over 40 deg C. I left it another half hour or so until the temperature dropped to 29 deg but I never got a message to say that tuning was completed (I'm sure I should have done). Anyway, I ran M307 H0 and it reported slightly different values than what is in my config.g so I can only assume that it worked OK.
-
Well... trying to tune to a higher temperature (80C) on the bed did allow me to reach phase 3 (finally) without artificially influencing the temperature. Now I just need to understand if tuning to a temperature much higher than I normally use will be a problem.
5/9/2020, 5:20:54 PM m307 h0 Heater 0 model: gain 164.2, time constant 1263.4, dead time 27.1, max PWM 1.00, calibration voltage 23.5, mode PID Computed PID parameters for setpoint change: P50.7, I0.274, D961.2 Computed PID parameters for load change: P50.7, I0.629, D961.2 5/9/2020, 5:16:34 PM Auto tune heater 0 completed in 1848 sec Use M307 H0 to see the result, or M500 to save the result in config-override.g 5/9/2020, 4:57:05 PM Auto tune phase 3, peak temperature was 81.7 5/9/2020, 4:56:14 PM Auto tune phase 2, heater off 5/9/2020, 4:45:50 PM Auto tune phase 1, heater on 5/9/2020, 4:45:44 PM m303 H0 S80 Auto tuning heater 0 using target temperature 80.0°C and PWM 1.00 - do not leave printer unattended
It took 50 seconds (just barely making the 60 second cut off), and the temperature really did peak at 81.7.
While messing with all this, I also found M143 in the gcode documentation and realized it could be useful to associate the thermistor built into the kapton heater with the bed as a secondary monitor:
M143 H0 P1 T3 S150 A2
To heater 0 (H0), add a second protection instance (P1) using sensor 3 (T3.) If/When that sensor reaches 150C (S150), switch off temporarily (A2.) That should prevent the kapton heater from melting itself. (I'll probably use the same type of command with the thermistor built into my incoming silicone heater.) The sensor number (T3) apparently should match the sensor number used in M308. (In this case, 'M308 S3 P"temp0" Y"thermistor" A"Kapton Heater" ...')
In the above PID tuning to 80C, that kapton heater thermistor reached 125C. I wonder how high it's rated for.