Klipper pressure advance is a feature that helps with corner overshots.
It uses extra extruder retractions while moving to eliminate problems with over extruding at corners.
Let me say thank you to all Klipper developers for this awesome feature and great faq pages on their GIT. Those graphs below were downloaded from official Klipper GIT.
How does it work?
Extruder retraction while moving helps with any overshots and over extruding at corners / edges.
These standard XYZ calibration cubes were printed with different pressure advance values from 0 to 0.8. You can easily see the difference in the corners.
Please note that these cubes were printed with a 0.3mm layer, 120 mm/s speed, 3000 mm/s^2 acceleration and 15mm/s jerk with a 1m bowden setup.
You can see in the pictures below that the difference between a theoretical, calculated extruder movement (filament flow in this case) and the real filament flow is different.
This is caused by many factors such as filament viscosity, gravity, friction, retraction.
There are three different Velocity x time charasteristics in this graph.
Nominal as a standard extruder velocity movement.
Pressure advance with it’s advantages.
And a Smooth PA which is a pressure advance with a pressure_advance_smooth_time parameter.
Use a high speed (in another words your desired printing speed) nad a layer height about 75% of your nozzle size – 0.3mm for a 0.4mm nozzle and zero infill density.
Open Octoprint/DWC2 and send this command:
SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=1 ACCEL=500
For a direct drive setup send this command:
TUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=ADVANCE START=0 FACTOR=.005
For a bowden setup send this command:
TUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=ADVANCE START=0 FACTOR=.020
This is your result (with a brim which you do not have to use)
Klipper GIT says this:
pressure_advance = <start> + <measured_height> * <factor>
<start> = Z offset
<measured_height> = distance between botton and the best corner spot
<factor> = factor in a pressure advance command before printing the model
In your case with a bowden setup it will be:
pressure_advance = 0 + 25 * 0.02
pressure_advance = 0.5
Modify configuration file
Open your printer.cfg configuration via OctoKlipper plugin in Octoprint or via SFTP, it does not matter.
Locate [extuder] and add this line with your pressure_advance value:
pressure_advance = 0.5
If you are wondering why the value in the config is 0.8… I was calibrating multiple 3D printers.
Just use your calculated value and you are good to go.
Calibrate your pressure advance
If you are not satisfied with your results, you can mess with the pressure_advance value.
The usual value for a bowden setup should be about +- 0.2 your calculated value.
I wanted to show you how much your printing results depend on the value, so have a look at these pictures one by one.
And how to calibrate it?
That is simple….
Just change the value in your configuration file, send it to the printer with a save button in OctoKlipper plugin or with a Firmware button in a case of modifying the file via SFTP.
Print the cube again and check the results.