Jump to content
Ultimaker Community of 3D Printing Experts
Nicolinux

SOLVED UM2 PID Autotune failed

Recommended Posts

Hi,

I am trying to run PID Autotune on my UM2 but it fails every time. What I am doing wrong? (using Printrun/Pronterface) to send GCode, firmware version: 15.04.2):

 

M303 S50

 

Output:

 

PID Autotune start

PID Autotune failed! Temperature too high

It doesn't matter which values I try - it fails every time. These are a few combinations:

 

M303 S100 C3

 

 

M303 S200

 

 

M303 S150 C8

 

When I connect to the UM2 it correctly displays the actual PID values:

 

echo:PID settings:

echo:   M301 P10.00 I2.50 D100.00

Edited by Guest

Share this post


Link to post
Share on other sites

Alright, to answer my own question - it seems those values were pretty out of whack. I installed a 35W heater and it heated up too fast and tripped some kind of overheat protection. To solve the issue I first set the PID to 0:

 

M301 P0.00 I0.00 D0.00

 

And then ran PID Autotune again:

 

M303 S150

 

This gave me these values - here is the difference:

Old:

 

M301 P10.00 I2.50 D100.00

New:

 

M301 P12.58 I1.90 D20.86

When finished I stored the parameters in EEPROM. Careful with this since everything that was changed will be saved - so don't fiddle with anything else while PID Autotuning!

 

M500

 

Edited by Guest
  • Like 5

Share this post


Link to post
Share on other sites

I think there are a few things that will make it abort. I think if it trips past the max temp that might do it. For example I think by default the max dial temp in menu is 260 and the max temp is always 15C hotter so 275. If during PID autotune it goes above 275 it will probably fail.

So maybe try autotuning at a lower temp - for example 200C? What temp did you autotune at? I hope not 150C like you did before. Ideally you want to autotune to a temp roughly close to where you will be using it (e.g. 190C to 250C).

Or you can use the default values that come with the plus (which is a 35W heater) or you can take the 25W heater values and multiple by 25/35.

The default PID values are 10,2.5,100 for the 25W heater. For 35W heater you might try 7.5, 1.8, 75. Or use the values you came up with your PID tuning earlier (12.58,1.9,20.86) although that was done at 150C. :(

Share this post


Link to post
Share on other sites

P it's how fast goes up, I the force to compensate the ip/downs and D makes the heat more stable. I did some manual PID adjustment on my third umo+ and I had to lower some values before tunning the autotune until I got a perfect value. But never got a 15C error not even with umo not plus 18V heater (that heats faster than any umo+ heater)

Share this post


Link to post
Share on other sites

Well I did set P, I and D to 0 first and it still aborts. It does so while the temp rises well over the target temperature.

 

Same here, the only way to find the values I posted was playing around with PID settings via printrun during a print. With P12.0 I0.8 D70.00 overshooting now is within +/- 2 °C.

Share this post


Link to post
Share on other sites

With P12.0 I0.8 D70.00 overshooting now is within +/- 2 °C.

 

Nice. The problem is there is a time delay between when the power to the heater changes and when the temperature changes. And some noise. Normally D can dampen any oscillation but because of the delay and the noise sometimes D just can't do it and you have to reduce P and I. Either P or I can cause oscillations. Higher values are more likely to cause larger oscillations. P tends to create faster oscillations (guessing < 10 seconds) and I tends to create slower oscillations (guessing > 5 seconds).

Share this post


Link to post
Share on other sites

I'm using this for dual extrusion prints. So it's kinda optimized for the hotends switching between printing temp and idle temp with usually 20°C to 40°C difference. However the settings are not perfect if you want to cool down to a certain temp. If I set target temp to 90°C for an atomic pull the heater will start to kick in at 105°C. I have to lower to 80°C to reach 90° quickly.

Share this post


Link to post
Share on other sites

Today installed my um2 hotend china with some stuff bought to 3dsolex (heater and 1.75 olsson, steel coupler tfm coupler) and parts to ultimaker (bottom aluminium & fans). And did some lucky PID using the values of other printer with a by ear calibration. Seems pretty stable at 210C so far just launched first print P12.86 I 1.84 D88.42

Share this post


Link to post
Share on other sites

Well my um2+ hotend after a lot of fine tunning because a bad coupler and I saw that the heater fails to stays 'put' but my other um2 hotend with a 35w heater from 3dsolex it's spot-on with the PID that comes with um2+... So I run into the PID overshoot think.

I did this to run the PID.

Set hotend manually to 200 until it almost become stable. Then I did run PID M303 E0 S210 C15 since internally PID 'kicks-in' when near 10C. It suddenly overshoot to 223-226 to the target temp, but also it didn't return the PID overshoot error.

I got: (edited)

Kp: 8.01

Ki: 0.48

Kd: 33.33

Also tried setting the temp to the target temp manually (220C) and running the PID to 220 this time, I got almost the same numbers again:

Kp: 7.92

Ki: 0.47

Kd: 33.08

Edited by Guest

Share this post


Link to post
Share on other sites

After many months of watching the heater never able to really stay 'put' I decided to debug the source of the issue. Because, even with a new PID the temp never did stay put. And it had sudden jumps of 2-3C in mid-print (with fans off).

So..

This it's what I did debug:

 

Blue coloring on this kind of metals it's because the exposure to very hit temps. I do turn off the heat as soon it goes red on the blue-ish spot.

The heater goes red in a matter of just secs when 'on' and also the heat focuses on a very small area that also it's quite far from the tip.

My theory it's this:

The Problem I see on this overshooting heater: I'm willing to bet 2 beers that the Nicolinux heater has the same problem)

- The heat it’s build on a very far position, not uniform along the heater.

- The heat sensor feels a overshoot of heat that tries to make it stable.

- Heat suddenly raises on the heater

- PID tries to make it stable

- Heater, because has a very small red-hot area, can’t fully do ‘slow heat’.

In the end, you get ok readings, but you actually ain’t reading the full block heat, because it’s so focused on a point far from the filament and the heat isn't spread along the heater (the point of origin at least). So, you get real temperature fluctuations on the nozzle, and accurate readings of what the heater it’s doing, but not the full block.

So yesterday installed a new heater to replace this one from the um2+ hotend and it works perfectly with the Um2+ original PID. Also it overshoots at first maybe 10C, but it goes stable very fast and stays there.

Before changing the heater that's how my hotend did react:

Set temp to 230

Reaches 246C and starts going down.

Get’s near 230 for some time, starts to print

Temp keeps going down to 223-ish

Temp goes up again to 234

Temp goes down to 228

And after some time it does stay on the target, but also it has sudden weird 2-3C heat loss.

So, anyone with this Weird PID can check their heater to see if it actually looks like mine did?

Edited by Guest
  • Like 1

Share this post


Link to post
Share on other sites

This same problem can happen if the temp sensor is very loose (air gap around it). Basically it's much harder for the PID to control if there is a long delay between when it changes power to the heater and when it measures a change. Increasing "D" value helps but if you increase it too much you can get a different oscillation (there's, I think, 3 ways to get oscillations).

Share this post


Link to post
Share on other sites

This same problem can happen if the temp sensor is very loose (air gap around it).  Basically it's much harder for the PID to control if there is a long delay between when it changes power to the heater and when it measures a change.  Increasing "D" value helps but if you increase it too much you can get a different oscillation (there's, I think, 3 ways to get oscillations).

 

I went on the route when doing test and tested by applying copper grease (the one for the bed screws) to increase the contact area. It didn't improve this effect. The last test I did about the sensor (apart of using 2 different pt100 from umo+ and e3d) I also tested with a brand new olsson. That's when I started to focus my tests on the heater itself. Replacing it fixed the issue immediately.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Announcements

  • Our picks

    • Architect Design Contest | Vehicles.
      We're open for entries! - Design and submit your 3D designs of architectural entourage - vehicles - for a chance to win a large filament pack. Presenting an idea, an architectural design or something as big as an urban project isn't easy. A scaled model can really help to get your idea across.
        • Like
      • 24 replies
    • What The DfAM?
      I'm Steve Cox, an experienced engineer familiar with 3D printing. I wanted to share some DfAM guidelines with this community to help and make stronger parts.
      I'm also an Autodesk Certified Instructor for Fusion 360, so many of the images in ...
        • Thanks
        • Like
      • 23 replies
×

Important Information

Welcome to the Ultimaker Community of 3D printing experts. Visit the following links to read more about our Terms of Use or our Privacy Policy. Thank you!