APIs, concepts, guides, and more
SCurve Motion

Understand how the RMP firmware transforms commanded acceleration into peak acceleration for S-Curve moves by adjusting accel/decel based on the Jerk Percent parameter.

Profiles: Command Acceleration vs. Peak Acceleration

The RMP motion firmware uses a formula to convert the "commanded acceleration" for an S-Curve move to a "peak acceleration." The firmware calculates the trapezoidal profile first, then adjusts the accel/decel portions of the move based on the "Jerk Percent" parameter, while keeping the move time at a constant value. For example, a 0% jerk would look like a trapezoidal velocity profile (no jerk portion), and a 100% jerk would have no constant accel/decel (all jerks). See the table below.

Changes in Jerk Percent parameter change the acceleration-deceleration curve characteristics


The conversion formula is:



max_accel is the maximum acceleration (or decel) for a point-to-point profile.

accel is the specified acceleration (or decel) from the application code.

jerk_percent is the specified jerk percentage (0 to 100.0) from the application code.

Specifying jerk percent is a handy way to specify jerk in your motion moves. There are some pros and cons that you should be aware of when using jerk percent.


Jerk percent makes it easy to specify the jerk that your move will make. You can also know the change that the jerk will have on your move without having to change the move time.

Jerk percent is easy to understand from an intuitive point of view.


Jerk percent changes the max acceleration.

A couple of cases:

  • With 0% jerk, maximum acceleration is as specified by the user.
  • With 50% jerk, maximum acceleration is 133% of the value specified by the user.
  • With 100% jerk, maximum acceleration is 200% of the value specified by the user.

In most systems there is a practical limit to acceleration, as it is proportional to current in most motor types.

As the amount of time spent in acceleration changes, so does the amount of time spent in constant jerk.