Accel VS jerk
-
What si best in your opinion: to increase acceleration and decrease jerk, or increase jerk and decrease accel? I know there is a sweep spot, but when you want speed instead of a super uality, what is best to to?
I have super clean and good prints ow, but the speed is reduced a lot at the end and start of the movements. Im using now a jerk od 20 mm/s and 2000 accel, but the real speed is very good when you change to 3000 but it is there where I have some doubts -
@tinchus said in Accel VS jerk:
What si best in your opinion: to increase acceleration and decrease jerk, or increase jerk and decrease accel? I know there is a sweep spot, but when you want speed instead of a super uality, what is best to to?
I have super clean and good prints ow, but the speed is reduced a lot at the end and start of the movements. Im using now a jerk od 20 mm/s and 2000 accel, but the real speed is very good when you change to 3000 but it is there where I have some doubtsYour best bet is to run the minimum jerk needed to run through curves without stuttering.
Then run acceleration to balance quality / speed / resonance.
-
I like to use SuperSlicer custom gcodes to make these tests. You can do something as: right-click > add shape > cylinder, scale it to whatever size you want (maybe 15mm diameter. Not too big, because larger arcs are less demanding). Setup the print for a single wall, at a normal speed for you.
Printer settings > Custom g-code > After layer change g-code:
M205 X{(layer_num0.3)} Y{(layer_num0.3)}
Pick a multiplier that for your number of layers, gets you to a reasonable max jerk setting. Make sure your print acceleration is set reasonably high, and let it rip.
You will see how notchy the motion is at first, with very low jerk. But, pretty quickly it will smooth out. Then eventually you will see quality degrade.
-
In 3d printer firmware terminology "Jerk" is where the controller commands an instantaneous change of speed for the effector. Obviously instantaneous speed changes are impossible in the real work because that would be infinite acceleration. What happens in reality is the compliance in the mechanical system acts to spread that instantaneous speed change out over a period of time.
The main reason we have "Jerk", specifically XY Jerk, needs to be high enough is for corners in a "curve" to print ok at the speed that you want to use to print at. Normally a curve is approximated by a series of straight line segments with changes of angle between them. For good quality prints there should be no deceleration and acceleration at each of the corners of these segments. The larger the angle changes, the closer the jerk needs to be to your XY print speed for there to be no changes in print speed at each corner. Obviously in extreme cases like a 90 degree corner there must be acceleration and deceleration at normal print speeds.
So after you have determined you absolute maximum sprint speed (normally limited by extruder melt rate, layer adhesion and such like), then determine the jerk needed to print curves without acceleration/deceleration. Choose curves with angles between segments that are representative of the prints you want to do. Use that value of jerk, not a higher value.
Once you have a value for Jerk and absolute max speed then you can run though the range of accelerations to find the highest your printer can tolerate while still producing acceptable prints.
edit: @CCS86 got there first.
-
Very good explanation.
I still hope we can eventually get to the point in firmware that for angles between line segments under a certain threshold, we can use look-ahead and planned path deviation to eliminate the need for jerk altogether.
As long as the user can define that angle, you could make sure intentional facets are preserved.