We all want the perfect 3D print. When we get our new 3D printer, there are multiple calibration steps you will want to take to tune your printer for optimal printing.
PID Tuning For Optimal Temperature Stability
The way the printer attempts to keep your build plate or hot end at the selected temperature is to heat up a heating element. Once the chosen temperature is reached, the heating element is allowed to cool.
When heating element starts cooling, the bed and hotend continue to increase in temperature before they too begin to cool.
Once the bed or hotend temperature cools back down to the target temperature, the heating element heats back up. After a few swings up and down, above and below the target temperatures, the hotend or build plate will tend to stabilize close to the target temperature.
The actual temperature will continue to fluctuate but far less than it did initially.
PID are the settings that control how far and how often the temperature swings. How effective these are depends on the ambient air temperature as well as any air flow in and around the hotend or build plate.
Factors such as whether or not the door is open, a fan is blowing, or if the AC or heater is on all effect how much the temperature fluctuates.
In order calibrate the PID setting, also known as PID tuning, you need to be able to send commands to your 3D printer.
Connect your printer up to your computer using a USB cable. You will need to install Repetier Host or Pronterface. If you have a Raspberry Pi, you can connect the Pi machine to the computer and use OctoPi.
Once you have your computer set up with a terminal interface with Repetier Host, Proterface, or OctoPi, you will need to send some GCODE commands to perform the tuning. Here is a YouTube video where I go over how to do PID tuning.
To get the correct PID settings, you need to run the auto tuning process at the temperature you use when printing. For PLA, this is usually 200 °C for the hotend and 60 °C for the build plate.
The GCODE command you will send is M303 E0 to perform the tuning on the hotend or M303 E-1. If you have more than 1 hotend, you can run the tuning on the second hotend with M303 E1. Tune which ever hotend you primarily use as the PID settings apply to all hotends.
These commands tells the printer to conduct the auto tune process. You set the temperature to auto tune for using S and can set the number of iterations to use, meaning the number of times to run the auto tuning, using C.
To set the auto tuning for for the build plate at 60 °C with 10 iterations, the full command would be
M303 E-1 S60 C10
The results from the auto tune will give you the estimated optimal PID settings. To set actually configure you PID now that you know you settings, you will need to send another GCODE command.
To set the hotend you will use the GCODE command M301 and for the build plate use M304 followed by the appropriate settings found.
For example, say we ran the PID tuning for the build plate. If P = 30, I = 2, and D = 300 you would send the command
M304 P30.00 I2.00 D300 M500
M500 saves the PID settings so that you do not need to refind them every time you start up your printer.
Perform the same steps for your hotend to calibrate the PID settings there too.
Nozzle Height Calibration
This is usually referred to as leveling the build plate. This can be confusing for some people who reasonably thing they need to take a level and level the plate to the floor.
The purpose of nozzle height calibration is to ensure that the first layer properly adheres to the build plate.
If the nozzle is too far from the build plate when the print starts, the filament will just drop to the plate and will not stick. You may even end up dragging the extruded filament behind the nozzle.
When the nozzle is too close to the print bed, there may not be room between the plate and the nozzle for the filament to be laid down. You might have filament pressed out the sides of the nozzle or the extruder may grind on the filament as it tries but is unable to push the filament into the hotend.
The most commonly recommend method for setting the nozzle height is to use a folded piece of paper.
Set the printer to its home location. You will need to disable the stepper motors through the printer menu as these will lock up after homing.
Move the hotend carriage along the x-axis and either the hotend or the print bed along the y-axis, depending on your printer.
You want to test the distance between the nozzle and the print bed at all 4 corners and the center. I start in the lower left, near the home location, move right to the lower right, up to the upper right, and then to the upper left. You should check about an inch or two in from the edge.
After checking the corners, I check the corners again before checking the center.
That is the order you check but what are you actually checking?
Take your once folded paper and put it between the nozzle and the build plate. Lower the plate if needed to get the paper under. Raise the plate up as you move the piece of paper back and forth under you can feel the nozzle gripping it.
Repeat this process at each corner and the center. The center should be close after tightening all the corners. There is no way to raise the center without adjusting the corners so if the corner needs to be tightened, you will need to carefully tighten each of the corners very slightly to tighten the center.
If you have a glass or other surface attached to the plate to print on and the center of the plate dips slightly, you can put a little bit of aluminum under the center to help left it up.
Feeler gauge method
One of the disadvantages of the paper method is that the nozzle starts slightly above the build plate. What we really want is the nozzle starting out just barely touching the build plate.
When the printer prints the first layer, it moves the nozzle up by the layer height and extrudes filament based on that height. If the nozzle is the layer height plus twice the thickness of a piece of paper, your print may fail.
Instead, we can use a feeler gauge to exactly measure how high the nozzle is from the build plate.
As with the paper method, send the nozzle to the home location. Disable the steppers through the printer’s menu so the you can move the hotend carriage and the build plate.
Go into the printer menu and move along the z-axis by the layer height you most commonly print with. Use the feeler gauge with the thickness of your layer height.
As with the paper method, move the hotend carriage around to each of the corners and the center. Lower the bed at each point one at a time.
Place the feeler gauge under the nozzle and raise the bed while moving the gauge back and forth until the nozzle just barely grips it.
Print a test print
After you have calibrated the nozzle height with either the paper or feeler gauge, you will want to finish the calibration by printing this test print from Thingiverse.
The test print prints consecutive squares. The download includes GCODE specifically for the Ender 3. If you have a printer with a different size print bed than the Ender, you can scale the print in your slicer.
As the test file prints, carefully check that the layer is sticking to the build plate. If it is too loose on the corner, tighten it. If the layer does not does not show up, lower the build plate.
Make the adjustments slowly until you get a successful print. You may need to start the print multiple times until you can get all 4 corners calibrated.
If it never seems to adhere properly no matter how you adjust it, you might need to check your temperature settings. You may need increase the temperature at the hotend or the build plate.
XYZ Stepper Calibration Test
For a lot of prints, if your print comes out 1mm too wide, it is not really an issue. In cases when you have prints with multiple parts that have to be combined, small deviations in the size of the print from the specification can result in parts not fitting together.
The sizes can be off as a result of imperfections in the stepper motor or the belts they drive. Your printer came from the factory preconfigured to assume that the stepper and belt perfectly meet specifications.
These imperfections could occur during printer assembly or happen over time as parts wear. Either way, we can make adjustments in your printer settings to ensure almost perfect dimensional accuracy in your prints.
Print a calibration cube
The first step in this test is to print the calibration cube from Thingiverse. This cube should print out at 20mm along each axis.
After printing the test cube, measure each side to determine its accuracy. I use this set of calipers I purchased from Amazon. They come with feeler gauge blades that will be used in a later calibration. If you already have a feeler gauge set or don’t want one, you can grab this set of calipers instead.
If both your X and Y dimensions are just slightly off, you may have an extrusion problem. In that case, you may want to perform the extruder calibration below first.
When you are over or under extruding, the outer walls of your print could be too thick or too thin.
My X and Y dimensions are too large but the Z is too small. These values are off by a very small amount, 1-2%, and it may not be worth it to try to dial it in any more precise.
Calculate new steps
In order to determine your current stepper setting and update those setting based on your measurements of the calibration cube, you will need to have a way to interface with your printer.
Connect your printer up to your computer using a USB cable. You will need to install Repetier Host or Pronterface. If you have a Raspberry Pi, you can connect the Pi machine to the computer and use OctoPi.
Open up your program or use your web browser to connect to your OctoPi. In the terminal window, you will ender the GGCODE.
You should a whole set of feedback from the printer. Somewhere in the data you should see something that looks like:
Recv: echo:Steps per unit: Recv: echo: M92 X80.00 Y80.00 Z400.00 E93.00
M92 indicates these are the steps per unit. The letters identify which stepper motor the value is for with E representing the extruder. We will calibrate the extruder in the next section.
The formula for calculating the correct step is
New steps = Old Steps * 20 / Measured distance
In my case, the new steps should be X79.09 Y79.56 Z405.68.
I sent the following command with a final M500 to save the values.
M92 X79.09 Y79.56 Z40 M500
You should get an okay reponse back from the printer. If there is any error, you might need to troubleshoot the problem.
If you have an Ender machine like my Ender 3 V2, you need to have an SD card plugged into the machine. There is no EPROM in the Ender 3 so you cannot store the new configuration to the EPROM. Instead, the machine will save the configurations to the SD card.
Reprint calibration cube
With the new settings, the cube printed significantly closer to the 20mm on each axis, less than 1% off.
Extruder Calibration Test
Most of the guides I have seen will have you calibrate the extruder stepper motor when the calibration cube comes out with the wrong measurements.
This process may help improve your calibration cube print if you are over or under extruding but that is usually due to the XYZ stepper motor.
However, it is worth performing this step to make sure that your extruder is push as much filament out as expected.
You can perform this calibration test with either a Bowden or direct drive system but the process is different depending on your setup.
The Bowden tube goes from your extruder to the hotend. If you do not have this tube, you have a direct drive system.
You will need to heat up the hot end so that you can remove the tube from it. The cooled filament will stick to the inside of the hotend and will not come loose until heated.
Push down on the compression fitting to release the tube. While pushing down on the fitting, pull up on the tube to pull it out.
If you are having issue removing the tube, that is okay. You can use the same process as the direct drive.
Once you have the tube out of the hotend, snip the excess filament off the end of the tube. Make sure that the snip is flush with the tube.
Go into the printer controls and tell it to extrude 10mm of filament. Measure how much filament was actually extruded out the end of the tube. Write down the amount actually extruded for use in the later calculation.
With a direct drive system, you will have to extrude the filament through the hotend.
Heat up the hotend to the appropriate temperature for your filament.
Once the hotend it to temp, measure 20mm of filament above the extruder. Place a mark at the 20mm point.
Go into the printer controls and tell it to extrude 10mm of filament. Measure the distance from the extruder to the mark you previously made.
The actual amount extruded is 20 minus the distance to the mark.
Calculate new extruder steps
Much of the same commands will be used for the extruder stepper motor as for the other motor. Bring up your terminal interface and type:
In the feedback you receive, you will look for the lines that say:
Recv: echo:Steps per unit: Recv: echo: M92 X80.00 Y80.00 Z400.00 E93.00
This time we are interested in the last number, for me it was E93.00.
Use the same formula to calculate the new step count, using 10 for the desired length.
New steps = Old Steps * 10 / Length extruded
For example, if the actual extruded amount was 9.8mm, my new steps would be
93 * 10 / 9.8 = 94.90
If you want a more precise calculation, you can tell the printer to extrude a large amount of filament, replacing the 10 with whatever value you use.
Once you have your new steps, you will need to send the updated value to the printer and save it. Send the following GCODE to your printer, replacing the step value with the value you calculated.
M92 E94.90 M500
As long as you do not get any errors, you should be good to go.
Temperature Calibration Test
Not all filaments are the same. Even if you are using different colors of PLA from the same manufacturer, different additives that give the filament its color can affect the best print temperature.
Print Temperature Tower
To calibrate your temperature for your filament, you will want to print a temperature tower. I recommend the smart compact temperature calibration tower on Thingiverse for your test print.
This tower test the effect of temperature on bridging, stringing, and overhangs, all factors that we will dial in even more later.
Unlike other towers I have printed, this one starts at the highest temperature and goes down 5 °C as it goes up. I prefer this as some filaments do not perform well at the lower end of the standard temperature range for their material.
In the example print above, you can see that the print started to fail at 180 °C. The nozzle started to clog at the lower temperature.
If I had started this tower at 180 °C instead of 225 °C, the clogging at the first level would have prevented the tower from printing at all.
Other than the top segment, the tower printed successfully. When looking at the tower, I can see that this filament had great color consistency at the entire range of temperatures.
We also want to check the quality of the outer walls. Some filaments may not produce quality prints at all temperatures and that was may main concern with this print.
Based on how well this filament performed, I chose to print with this filament at 200 °C. Other filaments may perform differently and thus will need to be checked as well.
One of the toughest features to print is the bridge. Bridging occurs anytime there is a gap in a print that a layer must print across.
The most successful bridges will be the smallest. Reorient your model to minimize any bridging that might be required. This is always the first step to getting better bridges.
To test your bridging calibration, print this bridging test from Thingiverse. This print includes multiple bridge lengths and is lightweight, no requiring much filament to print.
There are two settings you need to dial in for bridging, print speed and fan speed. A more advanced setting it the flow rate.
There are two schools of though when it comes to print speed. The general consensus it that you want to slow the print speed down.
A slower print speed will allow the ends of the bridge to adhere properly before the print head moves away. If the speed is too fast, the print head may pull the string of filament off when it goes for a second pass.
On the other hand, the longer the printer takes to move from one end to the other, the more likely that gravity will pull the liquid filament out of the nozzle. For this reason, some people argue for a faster print speed.
I have found that lowering the print speed works best. If you have a larger nozzle opening, the effect of oozing filament may be more pronounces and faster speeds may be needed to successfully bridge.
Increased fan speed increases the rate at which the filament solidifies. If the filament hardens just as it comes out of the nozzle, it is less likely to droop.
For this reason, it is usually best to set your fan speed to 100%.
The potential drawback to fan speed is that it can cause poor layer adhesion and nozzle clogging. Poor layer adhesion occurs when the filament cools before it has time to adhere to the layer below. Nozzle clogging occurs that the filament in the nozzle is cooling before it can be extruded out the nozzle.
If you run into problems with fan speed, reduce the sped in 5% increments and try again.
As the nozzle extends over the gap, you want to pull the filament tight behind the nozzle so that the first layers do not droop. Lowering the flow rate while bridging can help with this.
In Cura, flow rate is controlled by the setting called Flow listed under material. You need to be very careful when lowering this as you do not want to under extrude your print.
Reduce the extrusion multiple to 0.99 at first to see how that helps bridging. Continue to decrease little by little as long as it does not significantly impact the rest of the print.
Make modifications to one of the settings mentioned and reprint the test print. If you do not see significant improvements, you may need to try one of the other settings.
Stringing is an annoying but rarely fatal issue in 3D printing.
The primary ways to reduce stringing is to increase retraction and decrease nozzle temperature. Additionally, increasing movement speed and enabling combing can be used.
If you suspect that you have stinging issues, you can print a test print such as this one from Thingiverse.
The print temperature calibration above should have given you an indication of how much stringing is resulting from the temperature.
Get the temp dialed for print quality then increase retraction distance.
Distance should be the only retraction setting you should need to tweak. Mine retraction distance is set to 3 mm but you can go up to 5 mm if needed.
You may still have minor stringing issues no matter how well you get your settings tuned in. It is possible for the nozzle to move around and slightly melt part of a print as it moves across a gap.
You can enable combing mode to avoid gaps where possible. This will cause the print head to move over a section of the print that has already been printed to avoid moving across a gap.
Flow Ratio Calibration
With every new filament, you will want to calibrate the flow ratio.
Every roll of filament will have a slightly different filament diameter. Even different colors from the same manufacturer.
The tolerance for a roll of filament may be listed on the product page on the filament packaging. This only tells you how far off the 1.75mm diameter the filament might vary.
You might end up with a roll of filament off a different machine that has a diameter slightly lower or higher than a different roll of filament.
There are 2 different ways to handle the varying diameter.
- Change filament diameter in the machine settings
- Change the flow ratio
Since filament diameter setting is in the machine setting in Cura, it is easier to change the flow ratio. You can also easily save different flow ratios in separate Cura configurations.
To determine the appropriate flow ratio, print a simple cube. Here are the settings I used for the cube in the image above.
|Nozzle Temperature||200 °C|
|Bed Temperature||70 °C|
|Layer Height||0.2 mm|
|Wall Thickness||0.8 mm|
Thicker walls can be used to get precision, but thicker walls also could potentially result in overlapping layers that hide excess filament.
Measure the thickness of the wall that prints out. Use multiple measurements. I recommend measuring twice on each wall and taking the average. The formula for the flow rate is:
Flow ratio = Wall thickness / Measured Thickness
My measured wall thickness was exactly 0.8, so I needed the default flow ratio of 1.0.
If you measured the wall thickness and got a measurement of 0.79, your flow ratio would be
Flow = 0.8 / 0.79 = 1.01
The setting for flow ratio is called Flow in Cura and can be founded using the search function.
Advanced Calibration: Feed Rate and Print Speed
For most users, just sticking to the reported standard print speeds should be sufficient. However, if you are willing to test the limits of your machine, follow these steps to calibrate your print speed.
Feed rate refers to how much filament is being pushed through the extruder.
The maximum feed rate limits the speed that you can safely print at. If you attempt to print too fast, your printer will not be able to extrude filament fast enough to keep up with the print.
Two other factors limit how fast you can print, layer height and temperature.
A higher temperature increases how fast the filament melts and thus increases the maximum feed rate.
The layer height impacts the amount of filament needed to be extruded. If you cut the layer height in half, half as much filament is needed for any given line segment printed. The means for the same feed rate, you can double your print speed assuming the only constraint was the feed rate.
Before you begin entering codes, be sure to clean any debris from the extruder gears. These might get in the way of the filament and prevent you from achieving the maximum feed rate.
Next, preheat the hotend to your standard print temperature. I usually print at 200 °C for PLA and that is the temperature I used for my calibration.
The first code you need to enter is G91. This tells the print that you are using relative distances. We are going to extrude 50mm of filament at a time. This code allows us to use 50 in the following commands to tell it 50 mm more.
The next set of commands start with G1. This GCODE tells the printer to perform a linear move. The second parts is E50, tell the printer that it should extrude 50mm of filament.
The last part of the command is the feed rate. We are going to vary the feed rate little by little to find the optimal rate.
The feed rate is in mm/minute. Start with a feed rate of F120. This equates to 2mm/sec.
So the commands you will start with should read:
G91 G1 E50 F120
I anticipate that this feed should run successfully. Increase the feed rate by 60 to F180. Keep going until you see one of the signs that the feed rate is too high.
When the rate is too high, the filament coming out of the hotend may start to have thick and thin segments as the extruder motor struggles to maintain the requested rate. You may also hear clicking sounds. My printer just under extruded as the motor just maintained the highest feed rate it could.
Once you have found the feed rate that gives you issues, start reducing the feed rate back in 20mm increments. If you are like me and just had under extrusion, you will have to mark 50 mm of filament and see where the extruder successfully extrudes the full 50 mm.
Now here is where we need to do some math.
Don’t worry if you don’t follow the math. There is a form below that you can enter your values to calculate your print speed.
My optimal feed rate came out to 300 mm/min, which is 5 mm/sec. My filament is 1.75 mm in diameter or 0.875 mm in radius.
To find the volume of filament I can extrude at max I use the formula for a cylinder, πr2 * h.
Since I can extrude 5 mm/sec, I will use 5 mm for the height.
My volume of filament per second is
Volume = π * (0.875)2 * 5 = 12.03 mm³/sec
This number is the amount of filament going into the hotend. Since the amount coming out of the hotend should equal the amount going out, we simply need to calculate how much filament we are actually printing.
If we are printing 0.4 mm wide lines, 0.2 mm thick, then the amount of filament exiting the nozzle can be written as width * thickness * length. Length is our print speed in mm/sec.
Volume = 0.4 mm * 0.2 mm * print speed = 12.03 mm³/sec
Solving for print speed I get
Print speed = 12.03 mm³/sec /( 0.4 mm * 0.2 mm) = 150 mm/sec
This is a theoretically optimum speed given the feed rate. I would recommend whatever you calculation comes out to, be a bit more conservative in the speed you use.
You can enter your numbers here to calculate your max print speed.
Advanced Calibration: Acceleration
Acceleration setting impact the acceleration and deceleration of the print head and build plate. These play a part when as each layer starts and the hot end gets up to the print speed.
Ringing can occur as the print head gets up to speed. When the acceleration is too fast, the axis belt stretches as it is pulled. The build will quickly give but as it does it will slightly reverberate, causing ringing.
Calibrating your acceleration gives you the opportunity to decide on the print quality vs speed trade.
Print Test Print
To test this, I used an acceleration test print from Thingiverse. This is the same print I’ll go over for jerk and junction deviation in the next section.
Send the GCODE M503. In the output, look for the line with M204. Just after this is P and the acceleration.
When I checked my print, I saw M204 P500.00. This means the acceleration for the print head is 500 mm/sec2. If I set my print speed to 60 mm/sec, it would take 120 milliseconds to get up to speed.
Here are the settings you will want to set for the print. Be sure to set the print temp to the temp you regularly print at. I used 200 °C.
|Wall Line Count||2|
Modify GCODE File
Once you have saved the GCODE file, you will need to open it up in a text editor. I use Notepad++ but Notepad will work. You do not want to open with MS Word as it is not a plain text editor.
The print is split into 6 segments. Unlike the temperature print above, the segments are unlabeled.
With a layer height of 0.2 mm, each segment is 25 layers. In the text editor, we will look for layers 0, 25, 50, 75, 100, and 125. Cura marks these layers using LAYER: followed by the layer number.
The first layer is layer 0. You should be able to find LAYER:0 very close to the top of the file.
Before setting the overall acceleration, you need to set the maximum acceleration in the X and Y. The maximum acceleration in the X and Y can limit acceleration of the hotend or the build plate in case you have issues with either one.
The acceleration settings I tested were 500, 1000, 1500, 2000, 2500, and 3000. I set the maximum acceleration in the X and Y to 3000 so that the X and Y setting do not override the overall setting.
On the line after LAYER:0, I set the maximum X Y acceleration used M201 X3000 Y3000. Then I set the overall acceleration to 250 using M204 P500. This means acceleration will not exceed 500 mm/sec2, even on the X and Y axes.
So this section of my GCODE file reads
;LAYER:0 M201 X3000 Y3000 M204 P500
At layer 25, I added M204 P1000. I did not need to change the maximum in the X and Y so I did not need to use M201. I continued to increase the acceleration by 500 mm/sec2 every 25 layers.
There was some ringing and ghosting in the print that got worse with higher acceleration.
Only the very lowest section with acceleration of 500 mm/sec2 had no ringing.
The ringing occurs just after transition in print direction like after a corner or after the letters on the side. The ringing is caused by the print head or build plate getting up to speed.
It is up to your what level of ringing you are okay with in your prints. More complicated prints may have more ringing than seen on a print made up of multiple long straight sections.
You can enter the acceleration setting in your printers interface directly. However, since it effects the surface quality, you can use Cura to set different values for acceleration for different parts of your print.
You have to enable acceleration control in order to have Cura make changes. Notice that you can set different values for inner and outer walls.
Set a lower acceleration for the inner wall and a higher acceleration for outer wall, travel, and skirt/brim where it does not impact the quality of the outer surface of the model.
Advanced Calibration: Jerk or Junction Deviation
Jerk and Junction Deviation perform the same roll. They effect how the print head or build plate slow down for direction changes.
These could be viewed as similar to how a car needs to slow down when turning. If you don’t slow down enough when going fast, your momentum will carry you further than you want to go. The belts are jerked, hence the setting name, as the direction is suddenly changed.
If the print head or build plate don’t slow down enough for a direction change, the momentum can carry them to far. There will be a bit of stretching in the belt to absorb the momentum causing ringing in the print.
Whether you use jerk or junction deviation depends on the version of the firmware that you are running. You can easily check by accessing the command line using Repetier Host, Pronterface or an OctoPi.
When you come to the terminal, send the CODE command M503.
Check for the line that has M205. If you see values for X and Y, you have jerk settings. J is the setting for junction deviation.
Print Test Print
The jerk/junction deviation test print is the same as the acceleration test print from Thingiverse. To ensure that the my results for changing the jerk values were not impacted by the acceleration, I set the acceleration value to 500, which was the default setting of my printer.
The optimal value for jerk that has been found by other users has been 7. I decided to start testing with a value of 7, then 10 and increase by 5 from there.
Junction deviation is slightly different. Start with a very low value, between 0.01 and 0.1. You will likely start to see ringing around 0.1. I recommend starting at 0.025 and increasing in increments of 0.025 (0.025, 0.050, 0.075, 0.100, 0.125, and 0.150).
Here are the settings I used for slicing the test print.
|Wall Line Count||2|
Edit GCODE File
As with acceleration, you will need to modify your GCODE file. Open it up in a text editor like Notepad++. Find the first layer by searching for LAYER:0. Set the Jerk to 4 using M205 X4 Y4. If you want to start at a different value, replace 4 with your starting jerk value.
Every 25 layers, increase jerk by 1. So I searched for LAYER:25 and increased jerk using M205 X5 Y5.
For junction deviation, it is still M205 but the letter is J instead of X and Y. Set your starting junction deviation using M205 J0.01. You can start at a higher value than 0.01 but junction deviation needs to be small compare to jerk.
Once you have your GCODE modified, save the file and send it to your print.
As will acceleration, you are looking for ringing and ghosting. If your acceleration is too low, you may not see ringing here as the acceleration has become a limiting factor.
Acceleration has a more significant impact on ringing so you will need to tune that or your jerk/junction deviation setting may not matter.
The ringing effect can be seen again after changed in direction. I started at a jerk of 7 but even that value had some ringing. This might mean that a lower value of jerk might work better.
All value of jerk in my test resulted in mild, though increasing, ringing. Since I like to print miniatures, a smaller jerk value will work better though the small movement in printing miniatures may mean that the print head never gets up to a high enough speed for it to matter.
If you are unsure about a value, you can change the 6 values and rerun the test. You can also print an object that you might have had ringing in and see if the changes help.
Jerk settings can be found under Speed in Cura and can be found by searching for jerk.
You can set a permanent universal jerk setting using GCODE but here you can change the jerk settings for different parts of your print to improve the exterior quality while improving print speed.