Welcome! Log In Create A New Profile

Advanced

Teacup Acceleration Ramping

Posted by Andrew Diehl 
Teacup Acceleration Ramping
June 21, 2011 10:01AM
I've been fairly successfully using teacup's acceleration ramping for a few weeks now and have another question.

When I print curves, they come out mostly smooth at a speed of 20mm/s or slower, but anything much above that appears to cause the machine to stutter on the curves. With no acceleration I can easily fly through high resolution curves at 60mm/s, so I'm assuming it is not related to a communications limit. I'm using ~6000 as the ramping value.

I'm guessing it has to do with the minimum ramping speed from the comment "Each movement starts at (almost) no speed, linearly accelerates to target speed and decelerates just in time to smoothly stop at the target."

Is there a way to adjust the (almost) no speed to a higher value, or am I completely off base with my root cause analysis?

Thanks!
Re: Teacup Acceleration Ramping
June 21, 2011 10:36AM
Isn't that to be expected? If you can fly round arcs at 60mm/s why do you need acceleration?

I use trapezoidal acceleration but I do my outlines at 18mm/s to avoid noticing it and do the infill twice as fast. I could optimise arcs to either do true arcs, or blend the acceleration to avoid the dead stop between segments, but then I would have the same problem at right angle corners where a stop can't be avoided.

To be able to use relatively gentle acceleration and cope with dead stops the extruder would need to be synchronised with an advance to take into account its delayed response to flow control changes.


[www.hydraraptor.blogspot.com]
Re: Teacup Acceleration Ramping
June 21, 2011 11:31AM
nophead Wrote:
-------------------------------------------------------
> Isn't that to be expected? If you can fly round
> arcs at 60mm/s why do you need acceleration?

Because there is no other way for me to handle the short infill on thin walls without skipping steps occasionally. Since there doesn't seem to be any widespread interest in solving that issue from a skeinforge perspective, I have to do it with firmware acceleration.
Re: Teacup Acceleration Ramping
June 21, 2011 09:28PM
I am gearing up to implement a start/end speed for the acceleration ramping. Feel free to beat me to it- everything you need to know is in this article, and equation 16 is the one for implementing start/end speed.

Implementing it in a sensible way is the tricky part, we have to work out the proper start speed for each axis, and if any exceed the limits we have to cut them all down to maintain geometry. Same for deceleration, then we discard the results for all but the bresenham leading axis. It's a lot of coding that I haven't gotten around to doing yet, it's much easier to describe than actually write winking smiley


-----------------------------------------------
Wooden Mendel
Teacup Firmware
Re: Teacup Acceleration Ramping
June 21, 2011 11:05PM
Sadly I can not look at the code in the quoted article as it requires an eeTimes registration.

I finally got the gen 1.2 or whatever stepper controllers built. Testing them with an indexer. Next up is to figure out what I want to run on the Gen3 mega644. Thought it might be fun to play with this, but not if the code is not open and hidden behind an email grabber registration page.

Can the eetimes code be posted in a more accessible place?
Re: Teacup Acceleration Ramping
June 22, 2011 12:29AM
There's no need to look at this code - it was available without registration until a few months ago[1] - as it's pretty much the same implementation you find in Teacup's repository. Two ideas:

- to start at a higher speed, precalculate one or two steps with the same algorithm you see in dda_step(), but in dda_init(). The current ramping algorithm nicely maintains dda->n and dda->c from movement to movement, so a deceleration stops exactly where the next acceleration should start.

- borrow the algorithm found for ACCELERATION_REPRAP to start a movement in dda_create(), but keep the part for ACCELERATION_RAMPING in dda_step(). Both acceleration types share the same mathematical model.


[1] If someone wasn't as stupid as me to delete his last copy, please share here :-)


Generation 7 Electronics Teacup Firmware RepRap DIY
     
Re: Teacup Acceleration Ramping
June 22, 2011 01:56AM
sheep Wrote:
-------------------------------------------------------
> Sadly I can not look at the code in the quoted
> article as it requires an eeTimes registration.

It let me view it earlier today without registration, perhaps the link has changed. I have it in pdf format, although googling for "stepper motor real time" finds me various versions every time


-----------------------------------------------
Wooden Mendel
Teacup Firmware
Re: Teacup Acceleration Ramping
June 22, 2011 02:02AM
Try these:

* [fab.cba.mit.edu]
* [www.eetimes.com]


-----------------------------------------------
Wooden Mendel
Teacup Firmware
Re: Teacup Acceleration Ramping
June 23, 2011 03:18AM
That's the article it's self, Triffid. Close to the end of the article a source code file is mentioned, which is no longer available freely.

Another source using the same maths is Atmel's application note AVR446, which is available with source code: [www.atmel.com] (have to search that page to find "AVR446").


Generation 7 Electronics Teacup Firmware RepRap DIY
     
Sorry, only registered users may post in this forum.

Click here to login