Bukobot 3D Printer Forum

News: Added the Bukobot Parts List (BOM) to Wiki at http://bukobot.com/bukobot-parts-list
Welcome, Guest. Please login or register.
Did you miss your activation email?

Author Topic: Temperature Control  (Read 960 times)

Tyson

  • Newbie
  • *
  • Posts: 42
    • View Profile
Temperature Control
« on: February 14, 2013, 04:38:01 PM »

Watching the hot-end heat up, it is clear that there are issues with the control algorithm.   I have seen a few other posts about not coming up to temperature, but the way the default control algorithm is working in the firmware it could take 20 minutes to rise the last 5 degrees.   This isn't an issue of power or insulation.   The firmware from what I can tell has a PID controller and and "bang-bang" option.   What I am seeing must be the PID control, but the "P", "I", "D" parameters need to be adjusted.

Can these be controlled by sending a command?   Or does the firmware have to be compiled with these parameters?

Waiting 10 minutes for a print to start to get the last 5 degrees, and pulling globs off the head every minute gets old real fast.


jit

  • Global Moderator
  • Full Member
  • *****
  • Posts: 174
    • View Profile
Re: Temperature Control
« Reply #1 on: February 14, 2013, 04:44:34 PM »
Bukobot Duo v1

Tyson

  • Newbie
  • *
  • Posts: 42
    • View Profile
Re: Temperature Control
« Reply #2 on: February 14, 2013, 06:34:00 PM »
Thanks!   That got me onto the correct search terms.   Good to see that I don't have to recompile firmware, and can just send G-Code which makes it very flexible (or save to EEPROM).    Definitely most users cannot leave this at its default.   For those that aren't control systems experts, part of the issue here is that the print head has thermal mass (block of aluminum), and the sensor and the heater aren't directly next to each other.  This is a good thing because we want to sense the temperature of the head, not the heater element.  But, it introduces a delay that the sensor doesn't see the effect of the heater coming on or off until a few seconds later.   Imagine this ... your TV or radio with a remote control takes five seconds to change the volume after you hit the up/down button.   You push volume up, hear no change, push again, again, again, again, then it starts to change but now you pushed volume up too many times and it is too loud, so you push down,  and it is still going up so you hit down, down, down and after a delay it starts going down but now it is too low again.   What do you do?   Push the buttons very slowly and wait.    Same for the extruder hot-end.   Have the control change very slowly.  This keeps it from oscillating up and down, like the TV volume example, but makes it take a long time.     Different designs will have more aluminum or stronger/weaker heater elements so there is no magic universal setting.    That is why a "PID" control system has these 3 programmable variables, and the firmware has implemented an autotune routine to help find an optimum setting or at least a good starting point.

This is also a good description and instructions:

http://blog.lincomatic.com/?p=773

In other searches people mention that the autotune sometimes doesn't converge, and they have to stop it and read out the values.


jit

  • Global Moderator
  • Full Member
  • *****
  • Posts: 174
    • View Profile
Re: Temperature Control
« Reply #3 on: February 14, 2013, 07:02:13 PM »
And we all need to remember that any changes we make to the hot end, with regards to its insulation or other things, may affect the PID control in noticeable ways.  Since the hot ends don't come insulated in the kit, and the wiki instructions for the insulation were nonexistent for a long time until people started describing their personal hacks, we are insulating our hot ends in various ways that may not closely match what the Deezmaker people do in the shop.  So we shouldn't be surprised if the PID parameters from Deezmaker aren't optimal for our builds.

So everybody, go run this routine on your extruders.  If you want to get really finicky, run it for each of the temperatures you use and record the resulting g-code fragments so that you can tell Slic3r which parameters to use for the various kinds of filament you use.  And if you have more than one extruder, do it separately for each one, as they may not closely match.

And if you change your insulation, do it again.
Bukobot Duo v1

Tyson

  • Newbie
  • *
  • Posts: 42
    • View Profile
Re: Temperature Control
« Reply #4 on: February 14, 2013, 09:24:52 PM »
As I have trouble finding a link to this, here is the discussion on insulating the hot-end:

http://www.bukobot.com/hot-end-thermal-management


whosawhatsis

  • Administrator
  • Hero Member
  • *****
  • Posts: 598
    • View Profile
    • Whosawhatsis on G+
Re: Temperature Control
« Reply #5 on: February 14, 2013, 11:44:41 PM »
I've seen that "last 5 degrees take 20 minutes" problem on other machines. It's never a bad idea to tune your own PID, especially when Marlin has a feature to automate it, but the settings I put in there shouldn't be that far off. Make sure you have your power supply set to the correct input voltage. If they are in 230VAC mode with a 115VAC supply, it will be really difficult to reach temperature.

Tyson

  • Newbie
  • *
  • Posts: 42
    • View Profile
Re: Temperature Control
« Reply #6 on: February 15, 2013, 12:12:55 AM »
If the control algorithm is written properly, then this can be a result of the PID settings.    If I start from cold, it might take 5 minutes.   If I start from hot but below target temp, then might take 10 minutes.   If I start from hot but above target temp, then it might take 20 minutes.   In my case, certainly not a power problem.   The control algorithm is being reset when running a job, so even though it appears not too bad from cold, the default setting don't provide the right control near the target temperature without the "weight" of starting from cold.

whosawhatsis

  • Administrator
  • Hero Member
  • *****
  • Posts: 598
    • View Profile
    • Whosawhatsis on G+
Re: Temperature Control
« Reply #7 on: February 15, 2013, 12:20:42 AM »
Yes, that definitely means that your PID settings are wrong. I'm not sure how you ended up with settings that are so wrong, but the PID autotune function (M303) should fix it. You may have to use Pronterface to run it, as Repetier Host has an annoying habit of dropping certain codes that it doesn't recognize rather than sending them along to the firmware.

 

BloQcs design by Bloc
SMF 2.0.3 | SMF © 2011, Simple Machines