Discontinuous (not-smooth) X/Y movement on Prusa i3
Hello!
I am in dire need of help.
Specs (everything from reprap.me):
bq Prusa i3 Hephestos
Diamond Hotend
Rumba
Heated bed
Repetier 0.92.9 and slic3r combo is really nice and all is good with color mixing and everything (quite satisfying results, within realistic expectations) but there's a problem i can't seem to shake:
The X/Y axis motions are not smooth, and wherever there's a vertex in the 3D model, i get a tiny, itsy bitsy small brake or stutter, and thus, a little bit of extra, unwanted extrusion. This causes every vertex to be visible, and it's especially annoying in curved surfaces, like circles but not only. Vertical spines or edges go up and down along my prints, right until the polygons are so tiny and vertices almost overlapping, that this problem appears to disappear. Small/high poly objects print nicer.
The only thing that seems to mitigate this is really slow print speeds. Printing perimeters at excruciatingly slow 10mm/s yields some not as bad results.
Also, by slowing down prints, the stuttering is even more easily noticeable. You can hear the motors accelerate and decelerate to a short pause. Instead of LINE-LINE-LINE-LINE it goes LINE-PAUSE-LINE-PAUSE-LINE-PAUSE, where LINE is a g-code instruction and the PAUSE is a matter of milliseconds, but long enough to cause the issue.
I haven't been able to pinpoint the issue to some specific setting. I've tried various perimeter speeds, extrusion, jerk, acceleration, feedrate values, belt tensions, but what i get is that straight lines (with no vertex interrupting the flow) get printed correctly, as opposed to curved surfaces, which get a jagged, wavy outline. I think it's a firmware/settings issue but i'm at my wits' end. I have a RapMan 3.2 and Micro M3D printer that had no such behavior ever.
Please help!
Thank you!
Comments
I have changed Max Jerk from 20 to values from 0 and going into the hundreds, and there's no change in that regard.
I will try your advice and report back.
Thank you!
#define DEBUG_QUEUE_MOVE
in your configuration.h. If you then enable echo it will show a very detailed log about move computations including start/end speed and acceleration steps. It is too much for a complete run with it enabled but you could make 2 longer dummy moves to fill queue and then 10 lines of a circle segment. That should exactly show what internal stage it tries to copy.
Just for info i used the same parameter like acceleration, feedrate etc that used before...(with marlin and single extruder)
I tried the detailed log with #define DEBUG_QUEUE_MOVE if is necessary i can post the result.
https://www.dropbox.com/s/5nx9l73f034loj9/Test.zip?dl=0
#define ALTERNATIVE_JERK
#define REDUCE_ON_SMALL_SEGMENTS
This makes some optimizations for bad generated gcode with very short moves. It then reduces jerk even more in case it is a fast turn (REDUCE_ON_SMALL_SEGMENTS). Maybe not exactly what helps here while ALTERNATIVE_JERK should do less reduction on curved parts.
1) small circle 4cm diameter
2) big circle 12cm diameter
3) small circle, dev firmware with option enabled how you suggest
At the first look, logs are similar. the start speed seems always at 7.7, but now the jerk is 20. what does it mean? buffer always down? with a big circle also....
Somethings is different instead in log dev firmware, it seems everithings zero.
https://www.dropbox.com/s/cfbuhmz4v46okkz/PLANNER.zip?dl=0
float eJerk = fabs(current->speedE - previous->speedE);
if(eJerk > Extruder::current->maxStartFeedrate)
factor = RMath::min(factor, Extruder::current->maxStartFeedrate / eJerk);
so my assumption is that your maxStartFeedrate = extruder start speed is set 0 or very small for your printer. Normal values would be 20-40 since extruder has nearly no mass it can start very fast. But with low setting it enforces low speed where not needed. Then speed is increased to minimum speed as it seems instead of 0 from computation.
So increase extruder start speeds and the problem should be gone. Never thought of that.
I this point i want understand if is it my mistake...( i forgot to set right value ?) or my printer is "strange" and it wants a non zero value...
Finally it's a circle not a gear...i made some test with normal and dev firmware with alternative jerk and reduce on small circle and in any case it seems pretty smooth to the touch, but visually there is still some discontinuity shadow...
If this is found not to be then maybe I made some other mistake, which does not surprise me at all. :-)
Anyway just don't seem crazy...
https://www.dropbox.com/s/ld7u843lftfv3aq/test.jpg?dl=0
On left side you can see the original problem, on right side the actual condiction.
Well, i can accept this condiction surely, but becouse your firmware is awesome, it disturb me that i can not get perfection. :-)
P.S.
I'm not sure if image is visible, so...
https://www.dropbox.com/s/5nx9l73f034loj9/Test.zip?dl=0
https://www.dropbox.com/s/hos4oin3s1y55xc/test.zip?dl=0
Now should be correct. It's a image...
...and , yes debug log is off.
Anyway never mind, i'm satisfied. i aim for perfection, but i'm happy for the result i get. ;-)
Thank you for your time.