Welcome to the Klipper Calibration Hub – a structured path to dial in motion, extrusion, temperature, resonance and reliability. Each guide below is purpose-built, minimal in theory, and focused on actionable measurement + adjustment.
Quick Start Sequence
Flow Calibration
Pressure Advance
Input Shaping
Max Volumetric Speed
PID Tuning (bed + hotend)
Run Current & Mechanical Checks
Tip: Re-run Pressure Advance and Input Shaping if you change belts, pulleys, hotend, nozzle diameter, or extruder gearing.
Calipers (0.01 mm resolution) for flow cube measurement
Accelerometer (if available) for Input Shaping – otherwise use visual artifact evaluation
Infrared thermometer for verifying bed / hotend overshoot during PID tuning
Recommended Order Rationale
Calibrating flow first ensures subsequent dynamic compensations (pressure advance) are based on correct extrusion. Input shaping benefits from stable extrusion and mechanically sound motion. Volumetric limits prevent quality degradation during high-speed profiles. PID tuning locks temperature stability so volumetric tests remain valid.
Flow Calibration
Calibrate the Flow of your Extruder in your Slicer
1 - Rotational Distance
Calculate your Rotational Distance for Klipper
Rotational Distance
From the Klipper Documents
On an extruder, the rotation_distance is the amount of distance the filament travels for one full rotation of the stepper motor. The best way to get an accurate value for this setting is to use a “measure and trim” procedure.
First start with an initial guess for the rotation distance. This may be obtained from steps_per_mm or by inspecting the hardware.
Then use the following procedure to “measure and trim”:
Make sure the extruder has filament in it, the hotend is heated to an appropriate temperature, and the printer is ready to extrude.
Use a marker to place a mark on the filament around 70mm from the intake of the extruder body. Then use a digital calipers to measure the actual distance of that mark as precisely as one can. Note this as <initial_mark_distance>.
Extrude 50mm of filament with the following command sequence: G91 followed by G1 E50 F60. Note 50mm as <requested_extrude_distance>. Wait for the extruder to finish the move (it will take about 50 seconds). It is important to use the slow extrusion rate for this test as a faster rate can cause high pressure in the extruder which will skew the results. (Do not use the “extrude button” on graphical front-ends for this test as they extrude at a fast rate.)
Use the digital calipers to measure the new distance between the extruder body and the mark on the filament. Note this as <subsequent_mark_distance>. Then calculate: actual_extrude_distance = <initial_mark_distance> - <subsequent_mark_distance>
Calculate rotation_distance as: rotation_distance = <previous_rotation_distance> * <actual_extrude_distance> / <requested_extrude_distance> Round the new rotation_distance to three decimal places.
Console Commands
G91
G1 E50 F60
Rotational Distance Calculator
Edit Printer.cfg
The value calculated should be pasted into your printer.cfg file under “Extruder”.
Calibrate the Flow of your Extruder in your Slicer
Flow Calibration
From 3D Print Beginner
The flow rate calibration is done in order to fine tune the amount of plastic extruded by the printer. Also known as Extrusion Multiplier, by calibrating the flow rate you can fix issues caused by under-extrusion or over-extrusion. Besides this, flow rate calibration can also improve retraction values a bit and help with bulging corners and layer seam.
If the extruder steps are properly calibrated, the flow rate value should be really close to a single digit value (1.00).
Measure the top of all 4 sides and place values below
Update Flow in Slicer with “FLOW” Value
Flow Calibration Calculator
Update Your Slicer
3 - Run Current for TMC2208/2209
Calculate your Run Current for your Steppers
Run Current
From the Voron Docs
Calculating Currents - To calculate the maximum Klipper current settings for a given stepper, follow this process: Look up the specifications for the stepper motor and locate the peak current limits of the motor. Multiply the peak current by 0.707 to determine the maximum current in RMS. This is the maximum run current.
Pressure advance does two useful things - it reduces ooze during non-extrude moves and it reduces blobbing during cornering. This guide uses the second feature (reducing blobbing during cornering) as a mechanism for tuning.
Use eithet 1-2 perimeters, or vase mode with 1-2 mm base.
Use a high speed that is around 80-100 mm/sec, for external perimeters.
aThe minimum layer time is at most 3 seconds.
Turn off any “dynamic acceleration control” controls in the slicer.
Do not turn the model. It has X and Y marks at the back of the model. Note the unusual location of the marks vs. the axes of the printer - it is not a mistake. The marks can be used later in the tuning process as a reference, because they show which axis the measurements correspond to.
Steps
Parameter
Value
Notes
Layer Height
0.2
or .25
Paerimeters
1
0r 2 0r Vase Mode
Line Width
0.5
Print Speed
100
0r 80
Top Layer
0
Bottom Layer
5
Infill
0%
If square_corner_velocity parameter was changed, revert it back to 5.0.
Count the “rings” on X and Y sides of ringing tower
Measure the distance between Rings
Input Shaping Calculator
Edit Printer.cfg
Add Below to Printer.cfg with above X and Y Frequencies
[input_shaper]
shaper_freq_x: <X Frequency> # frequency for the X mark of the test model
shaper_freq_y: <Y Frequency> # frequency for the Y mark of the test model
Then Run the following Steps in the Klipper Console:
If you see no rings add the following to the [input_shaper] section
[input_shaper]
shaper_freq_x: <X Frequency> # frequency for the X mark of the test model
shaper_freq_y: <Y Frequency> # frequency for the Y mark of the test model
shaper_type: mzv
** Video Coming Soon **
6 - Setting X and Y Offsets
Calculate and Setup the X and Y Offsets
Setting X and Y Offsets
From the Klipper Documents
Steps
X and Y Offsets Calculator
Edit Printer.cfg
** Video Coming Soon **
7 - Max Volumentric Speed
Calculate and Set Max Volumentric Speed (in Orca Slicer)
Setting Max Volumentric Speed
From Orca Slicer
This is a test designed to calibrate the maximum volumetric speed of the specific filament. The generic or 3rd party filament types may not have the correct volumetric flow rate set in the filament. This test will help you to find the maximum volumetric speed of the filament.
PID tuning is essential for maintaining consistent temperatures in your 3D printer’s hot end and heat bed, leading to better print quality. Here’s a breakdown of PID tuning in Klipper:
What is PID Tuning?
PID stands for Proportional-Integral-Derivative. It’s a method that helps the printer controller adjust heating power based on the difference between the desired temperature (setpoint) and the actual temperature reading from the sensor. By fine-tuning these adjustments, the printer maintains a stable temperature with minimal fluctuations.
PID Tuning Process in Klipper
Klipper offers a straightforward approach to PID tuning using extended G-codes. Here’s a step-by-step process:
PID Tuning the Extruder
Access your Klipper interface: Open your Klipper instance through the web interface (Fluidd, Mainsail, etc.).
Initiate PID calibration: In the console, enter the following command, replacing “extruder” with the actual name of your extruder if it’s different:
PID_CALIBRATE HEATER=extruder TARGET=205
For me, 205 typically works the best for PLA.
Use the following command to save the PID values into your Printer.cfg:
SAVE_CONFIG
PID Tuning the Heated Bed
Access your Klipper interface: Open your Klipper instance through the web interface (Fluidd, Mainsail, etc.).
Initiate PID calibration: In the console, enter the following command:
PID_CALIBRATE HEATER=heater_bed TARGET=65
I usually go with the bed at 65 for PLA.
Use the following command to save the PID values into your Printer.cfg:
SAVE_CONFIG
Explanation:
PID_CALIBRATE HEATER is the extended G-code for starting PID calibration.
extruder specifies that you’re tuning the extruder heater (replace with “heater_bed” for the heated bed).
TARGET=200 sets the desired temperature for calibration (you can adjust this value).
The PID calibration cycle: Klipper will now run the extruder or bed through heat up, cool down, and heat up again cycles. This collects data to calculate optimal PID values.
Obtaining results: After the cycle, Klipper might display the calculated PID values in the console. You can also find them in the “klippy.log” file.
Saving the new PID values:
Automatic saving: If configured correctly, sending the SAVE_CONFIG command might automatically save the new PID values in your “printer.cfg” file.
Manual saving: If automatic saving isn’t working, locate the pid_Kp line (for extruder or heater_bed) in “printer.cfg”, replace the values with the calculated ones, save the file, and restart Klipper.
10 - Testing a Bltouch, CRTouch, ora clone in Klipper
Testing a BLTOUCH or a clone in Klipper
Testing a BLTouch with Klipper involves several steps to ensure that the probe is functioning correctly. Here’s a simplified process:
Initial Setup: Make sure the BLTouch is correctly mounted and the pin is about 2 mm above the nozzle when retracted (1).
Self-Test: Power on the printer; the BLTouch should perform a self-test, moving the pin up and down. After this, the pin should retract, and the red LED should light up (1).
Control Pin Test:
Send BLTOUCH_DEBUG COMMAND=pin_down in the printer terminal to move the pin down.
BLTOUCH_DEBUG COMMAND=pin_down
Verify that the red LED turns off.
Send BLTOUCH_DEBUG COMMAND=pin_up to retract the pin and ensure the red LED turns on (1).
BLTOUCH_DEBUG COMMAND=pin_up
Sensor Pin Test:
With the pin down, send BLTOUCH_DEBUG COMMAND=touch_mode, then QUERY_PROBE and check for “probe: open”.
BLTOUCH_DEBUG COMMAND=touch_mode
&
QUERY_PROBE
Gently push the pin up with your finger, send QUERY_PROBE again, and look for “probe: TRIGGERED”.
QUERY_PROBE
- If the responses are incorrect, check your wiring and configuration (1).
Probing Test: Move the print head away from the bed and repeat the control and sensor pin tests to confirm the probe’s response when not near the bed surface (1).
Remember to handle the BLTouch probe gently and avoid touching the pin with your fingers, as it’s sensitive to grease and pressure. If you encounter any issues during these tests, it’s usually a sign to double-check your wiring and configuration settings¹. Always refer to the official Klipper documentation for detailed instructions and troubleshooting tips. Happy printing!