Jump to content

Massive initial temperature overshooting, then levels out?


thirdsurface

Recommended Posts

Posted · Massive initial temperature overshooting, then levels out?

I have been reading through some of the Ultimaker 1 temperature issues, but I haven't seen mine yet.

I've been using my Ultimaker since August and have been able to figure out every issue until now. My hotend was on its last legs, so I went ahead and installed an E3D hotend. I hooked everything back up (I also have a heated bed) but I have not been able to figure out why the hotend temperature will SKYROCKET past the input temperature:

ie, I enter 60, it shoots up to 130; I enter 160, it gets up to 230

Then it realizes it is way too hot and the temperature decreases, and finally reaches the correct temperature and stays there.

Has anyone else experienced this? The thermocoupler is brand new. Could it be something with the relay or the board?

I am out of ideas. If anyone has suggestions please let me know

 

  • Link to post
    Share on other sites

    Posted · Massive initial temperature overshooting, then levels out?

    Have you re calibrated the PID settings since installing the new hotend? I seem to recall that someone else had similar issues related to the different power to thermal mass ratio of alternative hot ends, but I'm not sure how they fixed it.

     

  • Link to post
    Share on other sites

    Posted · Massive initial temperature overshooting, then levels out?

    I have not, just found the thread, thank you. The issue in that thread was not resolved but Daid said on 12/19/13 that new U1 firmware would be coming with the next Cura update, which should fix the PID bugs. Has there been a firmware update since then?

     

  • Link to post
    Share on other sites

    Posted · Massive initial temperature overshooting, then levels out?

    There are a few settings to deal with this. First of all I would cut P,I and D in half since you want less power. Especially P. That should help a little. Maybe cut it in half again if it still overshoots. You can play with these values with the ulticontroller but it's so much easier with pronterface:

    printrun/pronterface/prontrface download:

    http://koti.kapsi.fi/~kliment/printrun/

     

    Then you can also limit the max power setting for the heater if you want. Unfortunately you might be forced to do that.


    #define PID_MAX 255 // limits current to nozzle; 255=full current
    #ifdef PIDTEMP
    //#define PID_DEBUG // Sends debug data to the serial port.
    //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
    #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
    // is more then PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
    #define PID_INTEGRAL_DRIVE_MAX 255 //limit for the integral term

    Above is a section from Configuration.h. You can limit PID_MAX to say 128 instead of 255 so it will put out half the power - this will make it heat up half as fast.

    You can also open up the range of 10 degrees to something more reasonable - by the time your head is 10 degrees below the goal temp it's too late for the PID controller so make that 20 degrees. That alone should be a huge help. Unfortunately doing these Configuration.h changes requires a recompile of Marlin:

    First get the source code files here:

    https://github.com/ErikZalm/Marlin

    Then edit Configuration.h – this is by far the hardest step and it's not bad. I recommend you go here:

    http://marlinbuilder.robotfuzz.com/

    and use that website only to get the Configuration.h file. Then run winmerge or some other diff program to compare the latest ErikZalm version of Configuration.h to the one from robotfuzz which is usually a few months behind. Edit the ErikZalm version to match the robotfuzz generated version. Make any other edits as necessary. It sound complicated but it is extremely clear and well commented. Sometimes with paragraphs of explanation.

    configuration.h file detailed explanation:

    http://airtripper.com/1145/marlin-firmware-v1-basic-configuration-set-up-guide/

    Then you need to build Marlin. There are instructions that come with the erik zalm download in the "README.md" text file.

    Basically you download and install arduino ide:

    http://arduino.cc/en/main/software

    Then copy the sanguino software as explained in README file. Open Marlin.ino file in Arduino IDE by double clicking it (not pde file as stated in README - I think that's old). Select board as "Mega 2560" as explained in README file. Go to "file" "preferences" and select "verbose output" so you can find your hex file. Then build it by clicking the check box in the upper left corner. At the bottom you will see it compiling Marlin. At the end of this it says where the hex file is. If you are currently connected to your UM through USB you can just click "file" "upload" and you are done! But you should locate that hex file and save it somewhere along with the Configuration.h file used to create it so you can recreate the same version with maybe one change. Also you can upload the hex file using Cura in expert menu.

    Alternatively you can build Marlin with somewhat more detailed step by step instructions the command line way (which I don't prefer):

    http://www.extrudable.me/2013/05/03/building-marlin-from-scratch/

     

     

  • Link to post
    Share on other sites

    Posted · Massive initial temperature overshooting, then levels out?

    Oh - and while you are in there messing around you might want to increase the max temp so you can go over 275C.

     

  • Link to post
    Share on other sites

    Posted · Massive initial temperature overshooting, then levels out?

    Hi Guys,

    Reading this topic about P.I.D. values, power and temperatures, makes me wonder.

    I'm working with a lot of different UM originals lately, and I was wondering why aprox. half of them can't keep up the temperature to 225/230 when the original 'Origami' fan kicks in.

    Could It be there where some changes in parts specifications or those Firmware PID settings you refer to, in the last couple of months?

    Reading this topic gives me the idea it might be possible to change those settings in the ulticontroller to get more power to the hotend?

    Any of you walking encyclopaedia, knows if its possible, safe and witch ones to change.

    Regards Kees

     

  • Link to post
    Share on other sites

    Posted · Massive initial temperature overshooting, then levels out?

    Understanding the I value is important here. I is for integral (or sum) of the temp error. To calculate the I portion you find the error (actual temp minus goal temp) and you average that forever. You multiply that by the "I" constant to get how much heat to add. The I term basically tells you how much energy you need to achieve a steady state. It may take a while (a whole minute) for the I term to be accurate. Eventually it is guaranteed to be the exact right amount of energy to keep the nozzle at the goal temperature. Once you get there the P and D terms evaluate to nearly zero.

    Once you turn on the fan, everything changes. The I term which has finally settled to the perfect amount is no longer valid. The nozzle cools, the I term slowly builds and eventually you settle on the new integrated error with the higher energy.

    The latest Cura, by default, turns on the fan slowly for this reason. So that the I term has time to adjust to the new, colder, environment.

    One possible firmware fix would be to print for a while with the fan off and then print for a while with the fan on and somehow read back the integrated error for both of those states. Find the difference in integrated error (think of it as the "base" power level needed to maintain temp with fan on and fan off). Then everytime the fan is switched on or off, you cheat and instantly bump the error by that amount.

    That would require some changes to the code. I don't think this is critical as I just turn the fan on slowly.

    The existing PID values are properly tuned and work quite well (but not for E3D nozzle) so I wouldn't mess with them other than maybe expand that 10 degree range of where they are used.

     

  • Link to post
    Share on other sites

    Posted · Massive initial temperature overshooting, then levels out?

    Thank you all for the help. I thought I would mess around with the settings on the Ulticontroller first and had no luck. I tried every combination for decreasing the PID levels and the inverses as well, but the result was the same every time (btw what is the PID-C = 1 setting?).

    Every increase in temperature resulted in an almost exactly doubled amount before it would slow down and return to the desired level, regardless of how small the increase.

    I finally got frustrated and hooked it up to a 12v power supply and the problem VANISHED, although it would not have been enough to run the steppers. I connected the board fan to a separate power supply and turned off the nozzle cooling fan and the problem returned with a vengeance when I tried again. This leads me to believe that the heater is definitely getting too much power, but I'm still peeved that none of the 3 hours of tinkering with the PID settings amounted to squat.

    So I guess my next step will be some tinkering in the config h file per GR5's much appreciated instructions and if anyone has more insight to my dilemma please holler back

     

  • Link to post
    Share on other sites

    Posted · Massive initial temperature overshooting, then levels out?

     


    #define PID_MAX 255 // limits current to nozzle; 255=full current

    This one thing alone is probably enough - it's like setting the max voltage to a lower voltage.

     

    Every increase in temperature resulted in an almost exactly doubled amount

     

    Were your increases more than 10 degrees above the current temperature? Because, again, PID feature is only used when it gets within 10 degrees.

    pid-c is a constant used to give the head an extra boost of power when the extruder is moving fast - presumably because when you suddenly decide to melt twice is much plastic as normal you need a bit more power to keep the head at a constant temperature.

     


    #define DEFAULT_Kc (1) //heating power=Kc*(e_speed)
  • Link to post
    Share on other sites

    Posted · Massive initial temperature overshooting, then levels out?

    The temperature increases were always at least 30 degrees over. I will be working on it today, update incoming

     

  • Link to post
    Share on other sites

    Posted · Massive initial temperature overshooting, then levels out?

    SOLVED.

    Had the same issue tuning the PID settings. Then I tuned the BANG_MAX down to 125 and

    BOOM

    Problem Solved

    Thank you for getting me there

     

  • Link to post
    Share on other sites

    Posted · Massive initial temperature overshooting, then levels out?

    Good to know, thanks.

     

  • 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
    • Our picks

      • UltiMaker Cura 5.7 stable released
        Cura 5.7 is here and it brings a handy new workflow improvement when using Thingiverse and Cura together, as well as additional capabilities for Method series printers, and a powerful way of sharing print settings using new printer-agnostic project files! Read on to find out about all of these improvements and more. 
         
          • Like
        • 18 replies
      • S-Line Firmware 8.3.0 was released Nov. 20th on the "Latest" firmware branch.
        (Sorry, was out of office when this released)

        This update is for...
        All UltiMaker S series  
        New features
         
        Temperature status. During print preparation, the temperatures of the print cores and build plate will be shown on the display. This gives a better indication of the progress and remaining wait time. Save log files in paused state. It is now possible to save the printer's log files to USB if the currently active print job is paused. Previously, the Dump logs to USB option was only enabled if the printer was in idle state. Confirm print removal via Digital Factory. If the printer is connected to the Digital Factory, it is now possible to confirm the removal of a previous print job via the Digital Factory interface. This is useful in situations where the build plate is clear, but the operator forgot to select Confirm removal on the printer’s display. Visit this page for more information about this feature.
          • Like
        • 0 replies
    ×
    ×
    • Create New...