Klipper Pressure Advance Tuning - How to Guide
Introduction​
Pressure Advance in Klipper is designed to compensate for the side effects of instant speed changes that occur during fast print speeds. It reduces stringing, gives your prints sharp corners, and delivers a high print quality even at speeds above 100 mm/s.
But tuning pressure advance in Klipper and understanding its functioning can be puzzling to new Klipper users. So, in this article, we’ve gathered all the information you need to know about Pressure advance and set it up in Klipper. It’ll help you understand the benefits of this feature and how you can use it to sharpen up your 3D prints.
Let’s Advance!
Why do you need Pressure Advance in Klipper?​
The way Klipper functions, it uses a Raspberry Pi board to deliver fast print speeds while trying to maintain decent print quality. But, printing at fast speeds is challenging, and sudden changes in the print speeds can lead to stringing blobs and bulging print corners.
The primary reason behind these issues is the erratic flow of filament at high speeds. By design, the filament flow in a 3D printer is mainly dependent on the pressure within a nozzle. The nozzle must reach a certain pressure level before the filament can exit its orifice.
You can experience this in real-time without printing any object. Heat your hot end to the filament’s melting point, and try to manually push the material out of the nozzle using the extruder.
You’ll notice a slight delay between your push action and the filament exiting the nozzle. Similarly, once you stop rotating the extruder gear, there’s still a tiny quantity of filament that continues to flow out the nozzle. Now try to visualize this during a printing process.
The extruder suddenly accelerates and tries to push the filament out of the nozzle. But, due to insufficient pressure build-up within the nozzle, less filament exits the nozzle, thus leading to under extrusion.
In contrast, when the extruder decelerates instantly, there’s already a pressure build-up within the nozzle. This excess pressure will push out the filament, even when it’s not needed, to balance the system. This is why you’ll notice blobs and bulging corners in your prints.
So, to ensure high-quality prints, we need to stabilize the pressure within the nozzle throughout the printing process. And it’s where Pressure Advance steps in.
Pressure Advance in Klipper​
Pressure Advance lets the Klipper firmware control filament flow in the nozzle during the acceleration and deceleration moves. This fine control results in improved corners, reduced stringing, and blobs on the print, which can be typically more pronounced when printing at high speeds.
The way Klipper controls this flow is it approximates ‘pressure in advance’ during a particular print move. So, Klipper will increase the filament flow slightly prior to an acceleration move to compensate for any under extrusion.
Further, it’ll decrease the filament flowing into the nozzle just before the printer decelerates. This mechanism will adjust for the excess pressure within a nozzle and reduce the chances of blobs in prints.
It seems simple in theory, but a lot of math is involved in computing the exact pressure needed within a nozzle. You can find detailed information about this on Klipper’s Kinematics page.
Now that we’ve understood the basics of Pressure advance tuning let’s begin with the calibration process.
How to tune Pressure Advance in Klipper?​
Klipper uses a pressure advance co-efficient to compute the nozzle pressure. Your goal is to find this coefficient and set it up in Klipper firmware. Let’s begin with the process.
Configure Slicer Settings​
We’re using PrusaSlicer for this guide, but you can use these steps with any other 3D printing slicer.
- Open your Slicer and set the layer height to 75% of your nozzle size. We’ve set it to 0.3 mm as we’re using a 0.4 mm nozzle.
- Set the infill value to 0%.
- Set all the speed settings to 100 mm/s. It will help the printer to better replicate the effects of instant speed changes at high values.
- Disable any acceleration settings or set it to zero.
- Turn off the auto-cooling parameter. It might slow down the print speeds, skewing the end results.
- Disable any machine limits or Auto-Speed settings in your slicer.
Download Test Print, and Slice It​
Klipper uses a hollow cube model for tuning the pressure advance setting. It’s available on their website. Download the tuning tower print, and slice it in your slicer with the above settings. Once done, upload the gcode file to your Klipper web instance.
Configure Klipper for Test Print​
You’ll need to configure Klipper firmware to calibrate the speed and acceleration settings as required for the test print.
- Input ''' SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=1 ACCEL=500 ''' command in the Klipper console. It’ll slow down the speeds at corners, to highlight the pressure advance effects at the print corners.
If you’re using a direct extruder input ''' TUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=ADVANCE START=0 FACTOR=.005 '''
For Bowden extruder setup enter ''' TUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=ADVANCE START=0 FACTOR=.020 '''
During the printing process , you can notice in the Klipper console that the Pressure advance tuning value changes from every layer. It will be reflected in the finished print.
Once configured, start printing the test model. It should take approximately an hour to finish the print.
Calculate the Pressure Advance Value​
- Focus on the corners of the test print once it’s done printing. You’ll notice the corners in the bottom layers are slightly hinged or bulging out. In comparison, the ones on the top layers indicate under extrusion.
- In the middle, you’ll find a few layers with perfect corners. These layers will give us the ideal pressure advance tuning value.
- Use a caliper/ruler to measure the distance from the bottom layer to the layer with the best corner quality.
- Calculate the pressure advance value by inputting the measured height in this equation - pressure_advance = [start] + [measured_height] [factor]. (For example, 0 + 25 .020 would be 0.5.)
The pressure advance value will differ for every printer, and it’s alright if you get a higher or lower value. It should ideally lie between 0.050 and 1.000. Bowden extruders will have a slightly higher value owing to the distance between the extruder and nozzle.
Input Pressure Advance Value in Klipper​
- Open the printer.cfg file from the configuration section.
- Navigate to the extruder settings and input pressure_advance: 0.5 command at the end of the extruder section.
- Save and Restart firmware.
The Klipper firmware will exit the test mode and use the set pressure advance value in future prints. That’s it! You’ve successfully configured and set the pressure advance in your Klipper 3D printer.
Print comparison​
You’ll notice in the left cube how the corners are excessively sharp and bulging out. The edges of the print, too, are shabby and have incorrect extrusion. That is before applying any pressure advance setting in Klipper.
However, the cube on the right is printed after calibrating the pressure advance value. You can instantly notice the difference in the corners and the overall extrusion quality on the edges.
Final Thoughts​
Pressure advance is a nifty tool in Klipper that can help you achieve high-quality prints at fast speeds. And even though the calibration process might seem lengthy, as you’ll see, it’s pretty straightforward and quick once you understand its working.
Let us know how the pressure advance setting improved your print quality. If you have any suggestions or questions about this feature, feel free to comment below. We’d be glad to respond to your queries.