Welcome! Log In Create A New Profile

Advanced

Teacup and Sprinter Comparison: Segment pause and Acceleration [Resolved-Marlin Firmware]

Posted by brnrd 
Teacup and Sprinter Comparison: Segment pause and Acceleration [Resolved-Marlin Firmware]
October 31, 2011 08:21PM
I've been bothered by the fact that printing circles at 40 mm/s with Sprinter with or without acceleration results in blobs depending on the diameter. I thought that Teacup, which does calculations with integer math would do better so I decided to compare them by printing a set of circles with diameters from 10 mm to 50 mm in the attached stl file.

The attached photo shows the prints from Sprinter in the last column and Teacup in the first two columns. The top row were printed with ramping acceleration on and the bottom row was printed without acceleration. For Teacup, the first column shows the results with a buffer of 128. I couldn't upload Sprinter when the buffer size is anything other than the default, 8, so there's no corresponding print from Sprinter.

The result shows that Teacup is indeed a lot better than Sprinter at printing circles without acceleration. I'm not sure why but it's probably because of the faster integer math in Teacup. In both firmware, turning acceleration on results in blobs. This is the reason why until the acceleration code is improved, I turn it off when I want to get high quality prints. Also, when printing the circles in multiple layers, it becomes apparent that even Teacup gives uneven surfaces and it doesn't really come out smooth until I slow down the feed rate to 10 mm/s. This is hard to show in photos of white ABS.

Edited 1 time(s). Last edit at 11/01/2011 08:23PM by brnrd.
Attachments:
open | download - Circles_segment_test.STL (120.8 KB)
open | download - teacup-sprinter-compare.jpg (48.8 KB)
Re: Teacup and Sprinter Comparison: Segment pause and Acceleration
October 31, 2011 08:35PM
Re: Teacup and Sprinter Comparison: Segment pause and Acceleration
October 31, 2011 09:27PM
I haven't tried Marlin yet. But maybe someone who does can give the STL file a try and post the result.

BTW, I had Skeinforge set for 0.3 mm layer thickness and width over thickness of 1.5 (filament width of 0.45 mm). My X, Y and Z Pololu 1201's are set to 1/8 steps.

I wanted to also compare Repetier but I haven't been successful with it. I'm unable to connect with Pronterface after downloading it to my RAMPS 1.2/Arduino Mega 2560 electronics.
Re: Teacup and Sprinter Comparison: Segment pause and Acceleration
October 31, 2011 09:34PM
There's one feature that would be nice to add to Skeinforge to make ramping acceleration work better. Currently, we can slow down the feed rate and flow rate for the perimeter using the parametrers:

Perimeter Feed Rate over Operating Feed Rate (ratio) and
Perimeter Flow Rate over Operating Feed Rate (ratio),

but there are no such options for loops. If the loops can also be slowed down, using two additional parameters,

Loop Feed Rate over Operating Feed Rate (ratio) and
Loop Flow Rate over Operating Feed Rate (ratio),

then we can get smooth surfaces and still do the fill at a very fast feed rate to shorten the print time.

Edited 1 time(s). Last edit at 10/31/2011 10:40PM by brnrd.
Re: Teacup and Sprinter Comparison: Segment pause and Acceleration
October 31, 2011 09:48PM
You sure post a lot about the issue of segment pausing and ramp acceleration, but never take the advice to try Marlin or Sjfw where were specifically designed to solve these issues. No one from Sprinter or Teacup is claiming that their firmware does what your want.

Edited 1 time(s). Last edit at 10/31/2011 09:49PM by jv4779.
Re: Teacup and Sprinter Comparison: Segment pause and Acceleration
October 31, 2011 09:57PM
I have seen prints from Marlin. Although its better, it's still not good enough. The surface on rounded sides are still uneven.

Instead of criticizing my effort to try to understand the problem, why not post a contribution to the subject? Do you have Marlin or Sjfw running? If so, please run the test and post the result. It's not always possible for everyone of us to try everything. Contrary to your statement, developers of Teacup has claimed that it's fast enough if the buffer size is increased. I've found that even this is not enough and I still have to print at a slow feed rate of 10 mm/s to get smooth sides.

The look ahead that Marlin uses improves the blobs with acceleration. But I don't think it will fix the blobs due to segment pause.
Re: Teacup and Sprinter Comparison: Segment pause and Acceleration
October 31, 2011 10:14PM
brnrd Wrote:
-------------------------------------------------------
. Contrary to your
> statement, developers of Teacup has claimed that
> it's fast enough if the buffer size is increased.
> I've found that even this is not enough and I
> still have to print at a slow feed rate of 10 mm/s
> to get smooth sides.

No one has ever claimed ramping acceleration can do high speed curves without look ahead. The pauses are the acceleration not a processor issue. Why can't you accept the fact it speeds up and slows down on every move. The reason it does not seem to do it on slow moves is because the time between steps is equal to the time of the pause hence no appearance of a pause.


FFF Settings Calculator Gcode post processors Geometric Object Deposition Tool Blog
Tantillus.org Mini Printable Lathe How NOT to install a Pololu driver
Re: Teacup and Sprinter Comparison: Segment pause and Acceleration
October 31, 2011 10:32PM
Sublime Wrote:
-------------------------------------------------------
> brnrd Wrote:
> --------------------------------------------------
> -----
> . Contrary to your
> > statement, developers of Teacup has claimed
> that
> > it's fast enough if the buffer size is
> increased.
> > I've found that even this is not enough and I
> > still have to print at a slow feed rate of 10
> mm/s
> > to get smooth sides.
>
> No one has ever claimed ramping acceleration can
> do high speed curves without look ahead. The
> pauses are the acceleration not a processor issue.
> Why can't you accept the fact it speeds up and
> slows down on every move. The reason it does not
> seem to do it on slow moves is because the time
> between steps is equal to the time of the pause
> hence no appearance of a pause.

I was referring to when acceleration is disabled.
Re: Teacup and Sprinter Comparison: Segment pause and Acceleration
November 01, 2011 06:50AM
Quote

Contrary to your statement, developers of Teacup has claimed that it's fast enough if the buffer size is increased. I've found that even this is not enough and I still have to print at a slow feed rate of 10 mm/s to get smooth sides.

Brnrd, first, thanks for doing this research. Checking the basics is always a lot better than putting a crystal ball on complex prints and guessing what might be the cause of some (unwanted) appearance.

Seeing this, I think I understand now what you mean with "pause". Well, Teacup pauses neither with acceleration on or off. However, with acceleration on, is decelerates before each corner point and accelerates up again after the corner point. This isn't a pause, but a (indended) variation of speed.

The unfortunate thing is, the current extruder technology can't follow these accelerations/decelerations fast enough, so blobs appear. A known fact.

As there is little hope extruder technology will improve on this significantly soon, ideas on how to compensate for that developed. At least two theory models exist, one of them is implemented in Marlin and perhaps other firmwares.

As me myself is more into milling PCBs instead of printing, I don't work on this. My plans go towards smoothing out these accelerations/decelerations. As I'm currently the only one working on Teacup, this will take time.

The good thing is, trajectory smoothing should remove most of the blobs as well, except for the first and the last one.


Generation 7 Electronics Teacup Firmware RepRap DIY
     
Re: Teacup and Sprinter Comparison: Segment pause and Acceleration
November 01, 2011 10:08AM
I haven't run that particular test part, but I had my own curved test piece. Segment pauses were definitely a problem with Sprinter, though it allowed accelerating to high speeds. The only way to get rid of the segment pauses was to run the perimeter at low speed. IIRC, the speed I used was the same as the minimum speed set in the firmware, so acceleration was effectively disabled (20-35 mm/s, I think). Probably too slow to differentiate segment pauses from extruder lag. The extrusion speed lagging behind travel speed is the other cause of blobs at the ends of segments.

With Marlin, segment blobs are simply gone. 90° corners and reversals at the end of fill lines are still a little overstuffed due to extruder lag at the speeds I'm using. For curved surfaces, blobs are no longer a significant cosmetic issue. The remaining deviation from a curved surface is primarily due to the facets of the stl file. I'd love to see what could be done with the curved segments possible in the .amf format, or perhaps curve-fitting added to the slicer.
Re: Teacup and Sprinter Comparison: Segment pause and Acceleration
November 01, 2011 02:08PM
I think a major reason for my problem with getting blobs in circular segments have to do with the g-code that Skeinforge. When I give it a cylinder, the tool path for the perimeter and loops consists of alternating long and very short segments. I understand that this might be a consequence of the way STL represents the surface of solids with triangles but in that case, I would expect that the distance between the vertices would change as the height changes so that at mid-height, the segments would be equal in length and at the top, the short and long are reversed. But looking in Skeinlayer, this is not the case. The perimeter and loops don't change with height

For a 25 mm diameter cylinder, the short sections are around 0.3 mm and the long segments are about 1 mm in length. This is probably making the blobs worse than if the short segments weren't there.

Does anyone understand why SF behaves in this way?
Re: Teacup and Sprinter Comparison: Segment pause and Acceleration
November 01, 2011 03:05PM
The old version of SF I use definitely doesn't do that. The segments are equal length apart from sometimes the first line is split in the middle. Have you got the Fillet module turned on? I don't use it but I can imagine it might add extra short segments.


[www.hydraraptor.blogspot.com]
Re: Teacup and Sprinter Comparison: Segment pause and Acceleration
November 01, 2011 03:54PM
That was it. Thanks! I'll repeat the tests with Fillet off. I guess I should leave that feature off.
Re: Teacup and Sprinter Comparison: Segment pause and Acceleration
November 01, 2011 05:47PM
Here's the result of the comparison after turning the Fillet plugin off. The segments comprising each circle are now of equal length.

Without the short segments, both Sprinter (3rd column) and Teacup (1st and 2nd columns) give similar results at 40 mm/s with acceleration on (top row) and with acceleration off (bottom row). The first column shows the result for Teacup with increase buffer size: 64 with acceleration and 128 without acceleration. They look the same as the result with the default buffer size of 8.



Even running at 80 mm/s, the results without acceleration looks fine except for the largest circle. In that case, Sprinter is slightly worse than Teacup.



I think part of the issue I had with blobs and unevenness in the perimeter and loops are probably due to having the Fillet feature in Skeinforge enabled. This resulted in alternating long and short segments in rounded corners and circles which did result in segment pause. Turning this feature off should solve part my problem.

I agree with everyone that with acceleration on, the major cause of blobs is the failure of the extruder to keep up with the change in the feed rate. It seems that the extruder is lagging behind the other axes. I wonder if this can be fixed by advancing the step pulses to the extruder ahead of the x,y and z motors in the firmware. I'm not sure how complicated this is since I still don't understand that part of the code yet. Alternatively, we can introduce an adjustable delay circuit on the step pulses going to the x, y and z stepper controllers.

Even if the blobs with acceleration is due to the extruder not keeping up, it's still wrong to slow down the head in this case since it leads to a lot of vibration. The feed rate should stay constant when going around curves.

As Dale Dunn suggested, turning the feedrate for the perimeter below the max_start_speed parameter in Sprinter disables acceleration in the perimeter and it does lead to smoother surfaces. But the problem is that the loops are still done at the same feed rate as the infill with acceleration. This leads to blobs in the loops as this test shows even at a 40 mm/s feedrate which still shows through the perimeter.

As I proposed earlier, one way to fix this is to also slow down the loops in Skeinforge so that it's at or below the max_start_speed parameter. This way, only the infill is done at high speed. Perhaps someone would volunteer to add this feature to Skeinforge.

Edited 1 time(s). Last edit at 11/01/2011 07:43PM by brnrd.
Re: Teacup and Sprinter Comparison: Segment pause and Acceleration
November 01, 2011 07:43PM
I use Marlin, and it's been said by others, but this blobbing is really not a problem. I liked your test, so I modified it to make the walls taller so you can really see the effect, or lack of it. Here's my print, made with Marlin at 54 mm/sec (the speed I print perimeters for all my things nowadays with Marlin):



The only circle that shows any blobbing at all is the middle one. And I can tell you from the prints I do with Marlin that in practice, this simply isn't a cosmetic issue at all. To the extent that it may still be slightly present in certain rare cases, it's dramatically eclipsed by more obvious printing problems. From the perspective of reducing blobbing (not to mention printing speed), Marlin has been a clear win for me.
Re: Teacup and Sprinter Comparison: Segment pause and Acceleration
November 01, 2011 08:22PM
Thank you for running the test. I have downloaded Marlin for non-Gen 6 from github and I have run the test with 2 layers at 40 mm/s and I don't see signs of blobbing. The configuration and temperature table files were easy to change since they were almost exactly like the files in Sprinter. To top it off, it works with SDRAMPS.

I'm also trying to run Repetier on my RAMPS. I got it running but it doesn't seem to be running the extruder correctly. But it was moving the carriage and bed smoothly just like Marlin did. Please send me a PM if you're running this firmware on RAMPS 1.2.

Thanks everyone!

Edited 1 time(s). Last edit at 11/01/2011 10:57PM by brnrd.
Re: Teacup and Sprinter Comparison: Segment pause and Acceleration [Resolved-Marlin Firmware]
November 02, 2011 12:11AM
I decided to give this a go on my Repstrap.

Teacup with acceleration (old old old commit set to 37500) I think this is about 2000mm/s^2

Skeinforge set to 40mm/s on all moves. (as brnd said he would like to be able to print at 40mm/s)

Failed over and over until I reached a temperature 50c above my minimum temp and 40c above my normal temp. Finally worked at 220c with PLA (min for me is 170, normal is 180)

As you can see there are almost no bumps at the vertices, but I have ooze if the temp is high.


I also made a video to show at this high of acceleration it has almost no vibration.

I also decided to film it on high speed. Filmed at 30fps and switches to 210fps for a few circles. Sorry about the lighting. 
If anyone would like to do the math on acceleration I can make a better film with better lighting and film speed as high as 1000fps


Edited 1 time(s). Last edit at 11/02/2011 12:12AM by Sublime.


FFF Settings Calculator Gcode post processors Geometric Object Deposition Tool Blog
Tantillus.org Mini Printable Lathe How NOT to install a Pololu driver

Attachments:
open | download - 2011-11-01-203049.jpg (41.7 KB)
Re: Teacup and Sprinter Comparison: Segment pause and Acceleration [Resolved-Marlin Firmware]
November 02, 2011 01:00AM
Something must have changed in Teacup between your version and the one that I downloaded a couple of days ago. I used all the default acceleration settings and the only way to avoid blobs was to turn off acceleration. BTW, I did make another version of the test that sticks better to the bed for printing multiple layers.

It seems that with Marlin, I can go even faster than 40 mm/s. I just printed Yoda Lite at 100 mm/s and it seemed fine when I left it.
Re: Teacup and Sprinter Comparison: Segment pause and Acceleration [Resolved-Marlin Firmware]
November 02, 2011 01:10AM
brnrd Wrote:
-------------------------------------------------------
> Something must have changed in Teacup between your
> version and the one that I downloaded a couple of
> days ago. I used all the default acceleration
> settings and the only way to avoid blobs was to
> turn off acceleration.

My acceleration is about twice as fast. And the temperature was really really important.


BTW, I did make another
> version of the test that sticks better to the bed
> for printing multiple layers.

I have no issues with it sticking on the blue tape.

>
> It seems that with Marlin, I can go even faster
> than 40 mm/s. I just printed Yoda Lite at 100 mm/s
> and it seemed fine when I left it.

Love to see the results.


FFF Settings Calculator Gcode post processors Geometric Object Deposition Tool Blog
Tantillus.org Mini Printable Lathe How NOT to install a Pololu driver
Re: Teacup and Sprinter Comparison: Segment pause and Acceleration [Resolved-Marlin Firmware]
November 02, 2011 01:33AM
Quote
Sublime
My acceleration is about twice as fast. And the temperature was really really important.

I can see why raising the temperature would reduce blobs due to extruder lag. But I don't understand why that combined with twice the acceleration would reduce the vibration.
Re: Teacup and Sprinter Comparison: Segment pause and Acceleration [Resolved-Marlin Firmware]
November 02, 2011 11:02AM
Quote
Sublime
> It seems that with Marlin, I can go even faster
> than 40 mm/s. I just printed Yoda Lite at 100 mm/s
> and it seemed fine when I left it.

Love to see the results.

Printed with Marlin. Skeinforge estimated 50 minutes and Pronterface reported a build time of 111 minutes with a feed rate of 100 mm/s and perimeters at 75 mm/s, layer thickness of 0.3mm and extruded width of 0.45 mm. No signs of blobs from pauses, only from the start of each perimeter probably due to extruder lag since it's much better at slower feed rates. I probably need to turn on the slow down in the cool feature to get the top of the head to come out right. Yoda ended up with a beard and some hair around the ears. I don't know how people can get away with printing this without support. Perhaps it would be better if I increase the extruded width.
Attachments:
open | download - IMG_1895.jpg (37.2 KB)
open | download - IMG_1896.jpg (25.8 KB)
open | download - IMG_1897.jpg (25 KB)
Decreasing the layer height is how they (we) print it. A small layer height makes overhangs easier since each layer doesn't have to jut out as far. The smallest I've gone is 0.15mm/layer but I just bought Netfabb and I hope to go even lower tonight or tomorrow.
Re: Teacup and Sprinter Comparison: Segment pause and Acceleration [Resolved-Marlin Firmware]
November 02, 2011 12:14PM
What is the width over thickness ratio? I suppose you have to increase it, i.e. keep the same width, when you decrease the layer thickness. My first attempt was to print with the skin feature in SF but I think I made the mistake of turning on Half Width Perimeter.
Yes, you do have to increase the WoT ratios for perimeter and infill, especially if you print quickly. I also found lowering the nozzle a tad using the Altitude setting in the Bottom plugin helped in certain cases too.
Sorry, only registered users may post in this forum.

Click here to login