Welcome! Log In Create A New Profile

Advanced

manage_heater not updated during long moves

Posted by Gosa 
manage_heater not updated during long moves
May 15, 2015 06:05PM
Hello,

I am recently running in temperature control issues when printing large parts.
I noticed that during long moves (20cm), the heater PID is not updated periodically. This leads to extreme temperature swings, going even to overtemp switchoff.
It's very visible looking at the heater led duty-cycle and I enable PID_debug and it is obvious that the manage_heater function is not called as long as a move is ongoing, sometimes not during several seconds.
Looking at the marlin_main file, I only see the function being called after the move is complete, is that correct?
I cannot believe that nobody else has this problem as I have not found a single mention in the forums.

Does any of the Marlin gurus have an explanation?

Thank you in advance
Re: manage_heater not updated during long moves
May 16, 2015 05:41AM
What sort of printer is it, what movement speed are you using for those long moves, and what are your steps/mm values? Perhaps Marlin is too busy generating stepper pulses to do anything else.



Large delta printer [miscsolutions.wordpress.com], E3D tool changer, Robotdigg SCARA printer, Crane Quad and Ormerod

Disclosure: I design Duet electronics and work on RepRapFirmware, [duet3d.com].
Re: manage_heater not updated during long moves
May 16, 2015 05:57AM
Thanks for the quick,feedback dc42

It's a home-brew Delta, Problem present already at 25mm/s 80steps/unit xyz and 500steps/unit for E

I thought about that, but there's a lot of much faster deltas out there, no?
Re: manage_heater not updated during long moves
May 16, 2015 01:56PM
I think you will find that the "much faster" deltas out there are not running Marlin on Arduino/RAMPS - assuming that is what you have. That combination is barely adequate to run a delta. Even so, I am surprised that you have a problem at speeds as low as 25mm/sec - unless you are trying to drive a graphical LCD as well. Perhaps you have the segments per second value set too high.



Large delta printer [miscsolutions.wordpress.com], E3D tool changer, Robotdigg SCARA printer, Crane Quad and Ormerod

Disclosure: I design Duet electronics and work on RepRapFirmware, [duet3d.com].
Re: manage_heater not updated during long moves
May 16, 2015 02:50PM
Yes running on Arduino/Ramps, but no graph display. I'm running it over serial though, but I tried from the SD and it did not make a difference.

I confirm your theory: I patched the code and added an overrun check into the temperature reading interrupt (in case temp_meas_ready gets set again before it is reset by the PID control) and it triggers 10-12 times on a long move. I added a call to manage_heaters in these cases and get now satisfactory temp stability.
I hear the effect on the motors, but I can't see an alteration of the print. I guess if it looses steps, I will see it when it gets to upper layers (the print takes 20h)
Not a good solution, but for now I can live with it.

Agreed, Ramps may not be the latest and greatest anymore, but when I started this project more than 2 yrs ago, Deltas were new and Ramps what standard. I then had a long pause due to other prios and only finished the printer a couple of months ago. I works fine for smaller parts even at 40-50mm/s (my bowden extruder/hot-end can't handle faster feeds) but now that I'm trying to print a large part with long moves I run into trouble.
I've seen inconsistent temp control before on smaller parts with suboptimal printing results but blamed the thermistor and changed it.
I understand better now.
I assume on a delta the setting you mean is:
#define DELTA_SEGMENTS_PER_SECOND 200

I have no feel for what is adequate and what the effect will be on the printout. Can you give me a hint?

Thanks again for putting me on the right track!

Edited 1 time(s). Last edit at 05/16/2015 02:53PM by Gosa.
Re: manage_heater not updated during long moves
May 16, 2015 06:47PM
Quote
Gosa
I assume on a delta the setting you mean is:
#define DELTA_SEGMENTS_PER_SECOND 200

I have no feel for what is adequate and what the effect will be on the printout. Can you give me a hint?

That's the correct setting, however I switched to 32-bit electronics and segmentation-free firmware months ago, so I can't really advise you. I think I recall seeing values of about 80 being suggested. I suggest you ask on the Delta sub-forum for more advice.



Large delta printer [miscsolutions.wordpress.com], E3D tool changer, Robotdigg SCARA printer, Crane Quad and Ormerod

Disclosure: I design Duet electronics and work on RepRapFirmware, [duet3d.com].
Sorry, only registered users may post in this forum.

Click here to login