Klipper Configuration

Finding the Serial or UUID

A small number of probes which shipped directly from Cartographer3D between mid and late February may have been pre-flashed with the incorrect firmware. If you cannot find a serial number or UUID, please follow this guide on how to re-flash with the correct firmware. We are sorry for any inconvenience caused.

Note, you need to replace the serial path or UUID with your probes serial path or UUID, this can be found by running the following commands

For USB based probes

ls /dev/serial/by-id/

For CAN based probes

~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0

Config File

if you are using an existing printer config, make sure you remove any previous reference to [cartographer] or [probe] in the saved section at the bottom.

#   Path to the serial port for the Cartographer device. Typically has the form
#   /dev/serial/by-id/usb-cartographer_cartographer_...
#   If you are using the CAN Bus version, replace serial: with canbus_uuid: and add the UUID.
#   Example: canbus_uuid: 1283as878a9sd
speed: 40.
#   Z probing dive speed.
lift_speed: 5.
#   Z probing lift speed.
backlash_comp: 0.5
#   Backlash compensation distance for removing Z backlash before measuring
#   the sensor response.
x_offset: 0.
#   X offset of cartographer from the nozzle.
y_offset: 21.1
#   Y offset of cartographer from the nozzle.
trigger_distance: 2.
#   cartographer trigger distance for homing.
trigger_dive_threshold: 1.5
#   Threshold for range vs dive mode probing. Beyond `trigger_distance +
#   trigger_dive_threshold` a dive will be used.
trigger_hysteresis: 0.006
#   Hysteresis on trigger threshold for untriggering, as a percentage of the
#   trigger threshold.
cal_nozzle_z: 0.1
#   Expected nozzle offset after completing manual Z offset calibration.
cal_floor: 0.1
#   Minimum z bound on sensor response measurement.
#   Maximum z bound on sensor response measurement.
cal_speed: 1.0
#   Speed while measuring response curve.
cal_move_speed: 10.
#   Speed while moving to position for response curve measurement.
default_model_name: default
#   Name of default cartographer model to load.
mesh_main_direction: x
#   Primary travel direction during mesh measurement.
#mesh_overscan: -1
#   Distance to use for direction changes at mesh line ends. Omit this setting
#   and a default will be calculated from line spacing and available travel.
mesh_cluster_size: 1
#   Radius of mesh grid point clusters.
mesh_runs: 2
#   Number of passes to make during mesh scan.

NOTE - The [cartographer] section needs to be above any other reference to either cartographer or probe within your Klipper config, for this reason I advise adding it near

If you want to use the probe for Input Shaper, please add the following to your config.

cs_pin: cartographer:PA3
spi_bus: spi1

accel_chip: lis2dw
    125, 125, 20

You then need to remove, or comment out your [probe] section.

Now add a safe_z_home section with the following inforamation.

home_xy_position: [your x-axis center coordinate], [your y-axis center coordinate]
# Example home_xy_position: 175,175 - This would be for a 350 * 350mm bed. 
z_hop: 10

You will also need to update your Z configuration settings, this will involve removing or commenting out your position_endstop: configuration.

endstop_pin: probe:z_virtual_endstop # use cartographer as virtual endstop
homing_retract_dist: 0 # cartographer needs this to be set to 0

If you are running Klipper Screen, add this Macro to your G-Code, this stops klipper screen doing a random bedmesh when you press Z Calibrate on it.

[gcode_macro PROBE_CALIBRATE]

You will now need to ensure that you update your Z-Tilt or QGL settings to ensure that Cartographer is over the bed when performing these actions. We will be checking these during the calibration phase.

Finally, you need to ensure you have a suitable bed_mesh section. Information can be found here

It is vital you complete the Calibration steps, without doing so the probe will not work properly and is likely to show TRIGGERED.

Last updated