Ultimaker uses functional, analytical and tracking cookies. Tracking cookies enhance your experience on our website and may also collect your personal data outside of Ultimaker websites. If you agree with the use of tracking cookies, click “I agree, continue browsing”. You can withdraw your consent at any time. If you do not consent with the use of tracking cookies, click “Refuse”. You can find more information about cookies on our Privacy and Cookie Policy page.

The X speed is changing from 60 to 38 as it slows down so if X acceleration is set to 3000 (common values are 1K, 3K, and 5k - 5K works fine on UM2 but prints have less ringing at 3K) then it will decelerate the X axis at 3000 mm^2/sec aproaching postition "5" on your graph.

All movements must be linear (in 4 axes X,Y,Z,E). This means the E axis (which due to printing thin layers and other factors is usually not the limiting acceleration) will decelerate at the appropriate rate for an X decelration at 3000 mm^2/sec.

Going into the vertex (the turn?) the speed was 38 so I assume the speed is 38 going out of the vertex. This means Y is going 19 (sin30*38) and X is going 33 (cos30*38). That's a lot of jerk at that vertex (X instantly 38 to 33, Y instantly 0 to 19 together comes out to 20mm/sec deltaV).

We now accelerate X from 33 to 52 and Y from 19 to 30 (X deltaV is 19, Y deltaV is 11). X is still the limiting factor (it has to speed up more) so X accelerates at the full 3000 mm^2/sec but Y accelerates less 3000*11/19 or 1740mm^2/sec. This is important to keep the new line segment straight. E accelerates in a similar manner so that it is also linear (in a 4 dimensional straight line).

The planner looks ahead about 20 lines segments because sometimes the vertexes are so close together that they never get up to full speed (or down to low speed) and you have to be able to round every vertex without going too fast. In other words, sometimes you have to start slowing down now because of a sharp corner (or a stop) 20 vertexes away.

This method of defining jerk is not the best - I can add two points .1mm apart at a corner of a cube that turns a 90 degree corner into 2 45 degree corners .1mm apart. This will allow Marlin to go around that corner 40% faster yet it's also 40% more (true) jerk force on the hardware. It's a way to cheat/fool Marlin. In a bad way. Instead there should be a max jerk integrated over some small resolution. Maybe .2mm distance. But then the math probably gets more complicated. Another way to look at it - Marlin should be able to cut corners by some tiny amount - like .1mm or as that jerk isn't in theory infinite at each vertex (changing acceleration from 1000mm/sec to 1002mm/sec instantly is infinite jerk).

Ultimaker is turning 10 years old and that means it is story telling time! We'll explore 2010-2014, traveling through the evolution of the business from the Protobox and Ultimaker Original, to the major leaps forward with the Ultimaker 2 and Ultimaker 3.

Often getting started is the most difficult part of any process. A good start sets you up for success and saves you time and energy that could be spent elsewhere. That is why we have a onboarding course ready for
Ultimaker S5 Pro Bundle, Ultimaker S5, Ultimaker S3 Ultimaker 2+ Connect.
They're ready for you on the Ultimaker Academy platform. All you need to do to gain access is to register your product to gain free access.
Ready? Register your product here in just 60 seconds.

## Recommended Posts

## gr5 1,668

You got it perfect so far.

The X speed is changing from 60 to 38 as it slows down so if X acceleration is set to 3000 (common values are 1K, 3K, and 5k - 5K works fine on UM2 but prints have less ringing at 3K) then it will decelerate the X axis at 3000 mm^2/sec aproaching postition "5" on your graph.

All movements must be linear (in 4 axes X,Y,Z,E). This means the E axis (which due to printing thin layers and other factors is usually not the limiting acceleration) will decelerate at the appropriate rate for an X decelration at 3000 mm^2/sec.

Going into the vertex (the turn?) the speed was 38 so I assume the speed is 38 going out of the vertex. This means Y is going 19 (sin30*38) and X is going 33 (cos30*38). That's a lot of jerk at that vertex (X instantly 38 to 33, Y instantly 0 to 19 together comes out to 20mm/sec deltaV).

We now accelerate X from 33 to 52 and Y from 19 to 30 (X deltaV is 19, Y deltaV is 11). X is still the limiting factor (it has to speed up more) so X accelerates at the full 3000 mm^2/sec but Y accelerates less 3000*11/19 or 1740mm^2/sec. This is important to keep the new line segment straight. E accelerates in a similar manner so that it is also linear (in a 4 dimensional straight line).

The planner looks ahead about 20 lines segments because sometimes the vertexes are so close together that they never get up to full speed (or down to low speed) and you have to be able to round every vertex without going too fast. In other words, sometimes you have to start slowing down now because of a sharp corner (or a stop) 20 vertexes away.

This method of defining jerk is not the best - I can add two points .1mm apart at a corner of a cube that turns a 90 degree corner into 2 45 degree corners .1mm apart. This will allow Marlin to go around that corner 40% faster yet it's also 40% more (true) jerk force on the hardware. It's a way to cheat/fool Marlin. In a bad way. Instead there should be a max jerk integrated over some small resolution. Maybe .2mm distance. But then the math probably gets more complicated. Another way to look at it - Marlin should be able to cut corners by some tiny amount - like .1mm or as that jerk isn't in theory infinite at each vertex (changing acceleration from 1000mm/sec to 1002mm/sec instantly is infinite jerk).

## Link to post

## Share on other sites