Z‐Offset Calibration (Coarse) - Phil1988/FreeDi GitHub Wiki

What is this for?

⚠️ Quick Context: This is the coarse Z-offset calibration (getting "close enough"). After this, you'll use test prints to fine-tune it perfectly. Make sure you've completed bed leveling first!


What is Z-Offset?

The Z-offset tells your printer the exact distance between the nozzle tip and the bed surface when it thinks it's at Z=0. Getting this right ensures your first layer sticks properly without being too squished or too far away.

Time required: 1 minute.


The Paper Test Technique

The "paper test" is the standard method for coarse Z-offset calibration: Slide the paper between nozzle and bed.

Feel for resistance: Move the paper. The paper should drag slightly but still move. Too tight: If you can't move the paper at all, the nozzle is too close Too loose: If the paper slides freely with no resistance, the nozzle is too far


Why do it different from the OEM?

This is "my" method and different from the OEM. What is different and why?

  • No preheat to saves time (about 15-25min depending on your printer model)
  • Calibration in front area of the bed for easier access

Calibrating the z-offset perfectly with a paper needs a lot of experience and is even then almost impossible. That's why you do it coarse here and then make it perfect on the next step on a real tuning print.


Prerequisites

  • Bed leveling completed
  • Printer homed and ready
  • Paper or feeler gauge (0.1mm recommended, but standard printer paper works)
  • Clean nozzle and bed surface

Methods to Calibrate Z-Offset

There are three ways to start the Z-offset calibration. Choose the one that works best for you:


Method 1: Using the Display Menu (Recommended)

This is the easiest method for most users.

  1. On the printer display, go to: Gear IconAdvancedNext PageZ-Offset

    image

  2. The printer will automatically start PROBE_CALIBRATE and show this screen:

    image

  3. Adjust the nozzle height:

    • Place the paper or card (provided by Qidi) between the nozzle and bed
    • Use the + and - buttons to raise or lower the nozzle
    • Slide the paper back and forth until you feel slight resistance (paper drags but doesn't tear)
  4. Once you've reached the correct position, confirm the Z-offset on the screen


Method 2: Using the Console in Mainsail

This method gives you more control and is useful if you're familiar with G-code commands.

  1. Open the Console in Mainsail

  2. Enter the following commands:

    gcode
    G28
    G1 X100 Y100
    PROBE_CALIBRATE
    
  3. Follow the same paper test procedure as Method 1

  4. Once satisfied, type in the Console:

    gcode
    ACCEPT
    SAVE_CONFIG
    

Method 3: Using a Macro in Mainsail

You can also use the "CALIBRATE Z OFFSET" macro if you have it configured.

  1. In Mainsail, look for the CALIBRATE Z OFFSET macro button

    image

  2. Click it to start the calibration

  3. Follow the same paper test procedure as Method 1

Note: Starting from FreeDi v1.40, this macro is included by default. If you're on an older version, you can add this to your macros.cfg:

# Probe Calibration
# For more information, see https://www.klipper3d.org/Probe_Calibrate.html
[gcode_macro CALIBRATE_Z_OFFSET]
description: "Calibrate the Z offset using the probe"
gcode:
    {% set max_x = printer.configfile.config["stepper_x"]["position_max"]|float %}
    {% set max_y = printer.configfile.config["stepper_y"]["position_max"]|float %}

    G28                                     ; Home all axes
    G0 Z10                                  ; Increase z clearance
    G0 X{max_x/2} Y{max_y-40} F6000        ; Move to bed center
    PROBE_CALIBRATE                         ; Perform probe calibration

Verification

After setting the Z-offset:

  1. The value should be saved automatically (or use SAVE_CONFIG if using console method)
  2. You should now be ready for fine-tuning with test prints

Typical Z-offset values: Between -0.5mm and -3.0mm (varies by printer model and setup)


Why Not Use Auto Z-Calibrate?

The Q1 Pro and Plus4 come with 4 piezo sensors under the print bed. In theory, this would make automatic Z-offset measurement possible. In reality, this does not work reliably for all users.

I tested the qidi_auto_z_offset adaptation by frap129 to make it available for open Klipper systems. It did not work on my Plus4, and it also didn't work when my Plus4 was a new unmodified (stock) system.

If you want to experiment with it, check the [auto_z_offset] section in the printer.cfg. It does work for some users, but I cannot include something I can't test myself and that only works for a fraction of users 😉


Next Steps

This coarse calibration gets you "close enough" to print, but it's not perfect. The next step is to fine-tune your Z-offset using actual test prints, which gives much better results than the paper test alone.


Next Step: Fine-Tuning Z-Offset with Test Prints →