Velocity, Acceleration, Jerk and Junction Deviation

Most people know that 3D printers move in X, Y, and Z coordinates. But simply telling a printer where to go is the easy part. The magic—and the frustration—lies in how it gets there.
These movements are governed by a holy trinity of firmware settings: Velocity, Acceleration, and Jerk (which is rapidly being replaced by Junction Deviation).
If you’ve ever looked at a print and seen "ripples" near a sharp corner, or noticed your machine shaking violently during a fill pattern, you are dealing with these physics. These parameters can truly make or break your print quality, so understanding them is critical.
We will be discussing firmware settings that control the physical motion of your machine. While you can often override these in your slicer (Cura, PrusaSlicer), the "hard limits" are set in your printer's firmware (Marlin/Klipper).
- Tools Needed: A text editor (VS Code) if editing firmware, or a terminal (Pronterface/OctoPrint) to send G-code commands.
- Recommended Material: A high-quality PLA to run calibration tests.
The Traffic Light Analogy (Understanding the Physics)
It is intuitive that a printer with slow, controlled movements will likely have better print quality than one with high speeds and erratic movements. But to really tune your machine, you need to separate speed from acceleration and jerk.
Let's use the classic car analogy. Imagine you are driving down a road at 45 miles per hour and the stoplight in front of you turns red.

If we look at the graph above, we can break down exactly what is happening to your car (or print head) in five distinct zones:
- Zone A (Velocity): You are cruising at a steady 45mph. In 3D printing, this is your Feedrate. You aren't speeding up or slowing down; you are just moving.
- Zone B (The First Jerk): This is the exact moment you hit the brake. If you stomp on the pedal, the transition from "cruising" to "slowing down" is sudden. On the graph, this is a sharp corner.
- Zone C (Deceleration): This is the braking phase. Your speed is steadily dropping. In physics terms, the slope of this line is your Acceleration (or deceleration). The steeper the line, the harder you are braking.
- Zone D (The Second Jerk): This is the moment your car finally reaches zero. If you keep your foot buried on the brake until the very last second, you feel a "kick" when the car lurches to a halt. This is another sharp corner on the graph.
- Zone E (Stopped): You are now stationary at the light.
The Problem with Sharp Corners (High Jerk)
In the first graph, points B and D are sharp corners. In a car, this would feel like a whiplash effect. In a 3D printer, this sudden change in forces causes the frame to vibrate, resulting in "ghosting" or "ringing" on your prints.
The Solution: Smoothing the Corners
Now, imagine instead of stomping the brake, you gently ease onto the pedal, brake hard in the middle, and then gently ease off the pedal as you come to a stop.

Notice how the sharp corners at B and D have disappeared? They have been replaced by smooth curves. The slope of the line (acceleration) in the middle is roughly the same, but the entry and exit are controlled.
This is exactly what Jerk (and Junction Deviation) limits do for your printer. They round off these sharp edges in the motion profile to prevent the machine from shaking itself apart.
Velocity (Feedrate)
Velocity is simply the maximum speed your print head or extruder is allowed to move at any given time. In G-code and firmware, this is often called "Feedrate."
By setting the M203 command, you are setting a hard speed limit for the printer. No matter what you tell the slicer to do, the firmware will not allow the motors to spin faster than this limit.
M203 sets the maximum feedrate.
M203 X300 Y300 Z50 E70 ; Set X/Y to 300, Z to 50, and Extruder to 70
Raising your velocity setting doesn't always make your printer faster. If your acceleration is too low, your printer might never have enough time to reach that top speed on small prints before it has to start braking again.
Acceleration
Acceleration is the limit on how fast you can change velocity. It dictates how quickly your printer can get up to speed and how quickly it can stop.
- High Acceleration: The printer reaches top speed almost instantly. This saves time but introduces massive vibration forces.
- Low Acceleration: The printer takes a long time to ramp up speed. This is smoother but can cause "bulging" corners because the nozzle lingers too long in one spot while slowing down.

If you set acceleration too high, the motors may try to move faster than the physics of the heavy print head allow. This causes Layer Shifting, where the motor "skips steps" and the rest of your print is offset by a few mm.
M201 sets the maximum acceleration.
M201 X3000 Y3000 Z100 E10000 ; Set accel for X/Y to 3000mm/s², Z to 100, E to 10000
The Cornering Problem: Jerk vs. Junction Deviation
This is where things get technical—and where the biggest quality gains are found. When the printer reaches a corner (say, a 90-degree turn on a calibration cube), it technically needs to stop moving X and start moving Y.
If it came to a complete stop at every corner, prints would take forever and you would get blobs at every vertex. We need a way to carry some speed through the corner.
What is Jerk?
In the context of legacy Marlin firmware, "Jerk" is not actually the derivative of acceleration (the physics definition). Instead, it is a setting that defines the instantaneous velocity change the printer is allowed to make.
Think of it as the speed at which the printer is allowed to "hard turn" without slowing down first.
- Jerk = 10mm/s: The printer enters the corner, slows down to 10mm/s, makes the turn instantly, and accelerates away.
- Jerk = 20mm/s: The printer carries more speed through the corner. It's faster, but the sudden directional change shakes the frame, causing "Ghosting" or "Ringing" (ripples on the walls).
A common mistake is thinking "smooth is better" and setting Jerk to 0. This forces the printer to come to a complete halt at every single polygon vertex. Your print time will skyrocket, and you will get blobs at every corner.
What is Junction Deviation?
Marlin 2.0 and other modern firmwares (like Klipper) have moved toward Junction Deviation.
Jerk treats corners like a sharp angle. Junction Deviation treats corners like a curve. It calculates a "virtual circle" that touches the incoming and outgoing paths. It then determines the maximum speed the head can travel along that virtual arc based on your acceleration settings.
It is smarter, smoother, and generally results in better print quality because it dynamically adjusts based on the angle of the corner.
You generally use one or the other, not both. Most modern firmware defaults to Junction Deviation. If you see "Junction Deviation" in your slicer or EEPROM, you do not need to worry about "Jerk" settings.
Converting Jerk to Junction Deviation
If you are upgrading your firmware and need to switch from your old trusted Jerk settings to the new Junction Deviation (JD) system, there is a helpful approximation formula:
Junction Deviation = 0.4 × (Jerk2 / Acceleration)
For example, if you liked a Jerk of 10 and your Acceleration is 3000:
JD = 0.4 × (100 / 3000) = 0.013
M205 sets advanced settings. Depending on your firmware version, it controls either Jerk or Junction Deviation.
M205 X8 Y8 ; Sets Legacy X/Y Jerk to 8mm/s
OR
M205 J0.03 ; Sets Junction Deviation to 0.03
Practical Tuning: Finding the Sweet Spot
How do you actually use this information? You tune your printer to balance Speed vs. Quality.
1. Test for "Ringing" (Ghosting)
Print a calibration cube with a sharp letter (like X or Y) on the face. Look at the space immediately after the corner of the letter.
- Symptoms: Do you see faint ripples echoing away from the corner?
- The Fix: Your Acceleration or Jerk is too high. The printer frame is vibrating from the sudden move. Lower your Acceleration (try dropping from 3000 to 1500) or lower your Jerk (try dropping from 10 to 8).
2. Test for Bulging Corners
Look at the sharp 90-degree corners of the cube.
- Symptoms: are the corners rounded or do they bulge out slightly?
- The Fix: Your Acceleration or Jerk/JD is too low. The nozzle is slowing down too much in the corner, allowing excess plastic to ooze out. Increase Junction Deviation slightly or increase Acceleration.
- Velocity (Feedrate): The top speed limit. Affects large straight lines.
- Acceleration: How fast you reach top speed. High acceleration causes ringing; low acceleration causes rounded corners.
- Jerk: The legacy setting for cornering speed. It represents instantaneous velocity change.
- Junction Deviation: The modern setting for cornering. It uses a virtual arc calculation for smoother motion.
- Independence: You can have high acceleration and low jerk, or vice versa. They are independent variables that must be balanced.
- Hardware limits: No amount of firmware tuning can fix a loose belt or wobbly frame. Tighten your mechanics first!
Should I use Jerk or Junction Deviation?
If your firmware supports it, use Junction Deviation. It provides smoother motion calculations and better print quality in most scenarios. Most versions of Marlin 2.0+ default to this.
What is a good starting Acceleration value?
For a standard Ender 3 style bed slinger, 500 mm/s² is a safe conservative value, and 1500 mm/s² is a good performance target. For CoreXY machines, you can often push 3000+ mm/s².
Why is my printer vibrating so loudly?
This is usually caused by Acceleration or Jerk being set higher than the physical frame can handle. The motors are trying to change direction faster than the weight of the bed allows. Lower your M201 and M205 settings.
Does acceleration affect print time?
Yes, significantly. On detailed models with many short moves, the printer rarely reaches its top Velocity. In these cases, Acceleration is the primary factor determining how long the print takes.
5 comments
I was wondering how the velocity can affect the printing result
Dear all, i was reading what you raised about print speed, acceleretion and jerk but some expert user even not allow to on acceleration and jerk. please, i need to know the effect of acceleration on mechanical strength including other process parameter by research, what do you think of it does acceleration and jerk affect mechanical strength of printed part directly or even indirectly?
I’m no expert, not to I speak for the author. But to answer a couple of Alexandier’s questions:
1) Jerk and acceleration are affected by many factors, and therefore can’t be quoted on stepper specs. For example, a motor driving the x-carriage with a Bowden setup has to move the given weight. But change to a direct drive and there’s more weight on the carriage. That same stepper will now face different forces, so your jerk and acceleration will be affected.
2). As for higher jerk settings being better, in my opinion, only if you’re worried about saving time. Lower settings will have smoother movement, reduced (destructive) mechanical force on your equipment, and generally better prints. Faster jerks mean quicker speed/direction changes. So you print faster, but have to deal with the violent shaking (suffered from it on my y-axis with a jerk set at 20).
Hi 3DMaker Engineering,
I too would like to know the answers to the three questions asked by Alexandier on 2/14/2020.
Thanks for all your help so far, stay safe!
Great guide and explanation. However i would like to ask if jerk and acceleration and feed rate of course are.depending on the stepper motor specs. If so there shoul d be a data sheet with example numbers. Also i would like to ask does juction deviation nulify jerk or you have to set numbers on both in marlin? And 1 last thing ive read on internet that some say high jerk is better and others say low jerk is better. So which is better i know testing is always better but dont wanna waste lot of time and printing on this. Thx