# Touch calibration

{% hint style="warning" %}
This calibration will enable Survey Touch macros. A misconfigured touch model or printer can cause physical damage to your printer. It is *important* that you verify that everything is rigid, that all bolts are tightened. This should be checked frequently.
{% endhint %}

{% hint style="danger" %}

## Verify zero reference position!

Ensure that your `zero_reference_position` is set to a sensible value, usually the middle of your bed.

Verify this by issuing the `G0 X<blank> Y<blank>` command with the values from your configuration.

```
[bed_mesh]
zero_reference_position: <blank>, <blank>
```

{% endhint %}

{% hint style="info" %}
You *can* calibrate Survey Touch without homing Z. This means we can calibrate Survey Touch first and then use `CARTOGRAPHER_SCAN_CALIBRATE METHOD=touch` to skip the manual adjustments *and* get a more precise scan model.
{% endhint %}

{% stepper %}
{% step %}

### Home your printer's X and Y axes

```
G28 X Y
```

{% endstep %}

{% step %}

### Prepare to run touch calibration

{% hint style="warning" %}
**Ensure that your nozzle and bed is clean.**

**Ensure that your probe is between 2.6mm and 3mm above the nozzle.**

**Double check that your gantry and kinematics are rigid.**

**It is helpful to have a level bed.** Prefer running `QUAD_GANTRY_LEVEL` or `Z_TILT_ADJUST` if possible. This would usually require scan being calibrated.
{% endhint %}
{% endstep %}

{% step %}

### Start calibration routine

{% hint style="danger" %}
Keep your finger on the emergency stop button in case it does not stop at your bed.
{% endhint %}

Start the calibration by running

{% code fullWidth="false" %}

```
CARTOGRAPHER_TOUCH_CALIBRATE
```

{% endcode %}

Observe your nozzle to make sure it touches on the bed.

If it never touches the bed, refer to [#nozzle-never-touches-the-bed](#nozzle-never-touches-the-bed "mention")
{% endstep %}

{% step %}

### Save the calibrated model

Once done, you will be prompted to run `SAVE_CONFIG`. The Klipper firmware should restart and you will be able to use `CARTOGRAPHER_TOUCH_*`.

```
SAVE_CONFIG
```

{% endstep %}
{% endstepper %}

### Troubleshooting

#### Nozzle never touches the bed

You should ensure that your Z motion is smooth and clean. Gunk and noise that is not evident while moving up and down may be detected by Cartographer and make it believe it touched the bed. After checking everything, run `CARTOGRAPHER_TOUCH_CALIBRATE` again.&#x20;

If it is still a problem, you can pass in a `START` parameter. `CARTOGRAPHER_TOUCH_CALIBRATE START=123` where 123 is above the threshold it previously stopped at.\
If it stops without ever touching the bed and never finds a threshold you can increase the max threshold with the `MAX` parameter, `CARTOGRAPHER_TOUCH_CALIBRATE MAX=5000`.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.cartographer3d.com/cartographer-probe/installation-and-setup/software-configuration/touch-calibration.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
