😭Troubleshooting
This list is NOT exhaustive, if you need support don't be a stranger and please come and talk to us on Discord, we are more than happy to help. If you do think that something is missing, please let us know and I will add it as soon as I can.
Command Mismatch

Seeing the error above? This error shows yours cartographer is flashed with Survey 5.0 firmware however your printer.cfg/klipper is currently configured for firmware earlier than 5.0. Remove or comment out your [cartographer] sections, taking note of the offsets and then continue with the guide here.
General Troubleshooting
I'm getting weird errors after updating my scanner.py, what do I do?
Firstly make sure you have hit the RESTART KLIPPER button in your Fluid/Mainsail UI, this will force the refresh of scanner.py to the updated version.
Strange Bed Mesh or Touch issues
You should try disable any extra custom macros that affect BED_MESH_CALIBRATE or anything that influences GCODE_Z_OFFSET like KAMP adaptive mesh etc. Also try turning off or disabling the crowsnest or LED_effects plugins
Option 'pin' in section 'probe' must be specified
This can occur either after a Klipper update when the sym link occasionally gets broken, or if you have not installed the Klipper component during the install, either way the fix is the same, just re-run the installer below.
cd ~
git clone https://github.com/Cartographer3D/cartographer-klipper.git
./cartographer-klipper/install.sh
Unknown pin chip name 'scanner'
The following two issues are usually why you recieve the above error.
You are referencing cartographer/scanner before you have declared it in your config file. It is advisable to add the cartographer/scanner section just below where you declare your MCU's.
You have referenced cartographer with a capitilisation
[Scanner]
vs[scanner]
orcs_pin: Scanner:PA3
vscs_pin: scanner:PA3
This can happen when the symlink between klipper and scanner is broken. You can check your symlinks with the following command.
find ~/klipper/klippy/extras/ -maxdepth 1 -type l -ls
If they dont look right, or youre unsure, run the following
cd ~/cartographer-klipper
./install.sh
And then check your symlinks again. You should see scanner.py pointed to the cartographer-klipper folder.
mcu 'scanner': Unknown command: endstop_home
In [stepper_z]
you have set endstop_pin: scanner:z_virtual_endstop
this should be endstop_pin: probe:z_virtual_endstop
"Error importing numpy: you should not try to import numpy from" error
The error in a slightly different view.
This error usually occours when you have installed Cartographer as root rather than as a normal user (not always, but that is the only way I have been able to replicate it.).
In order to fix this, please update Klipper to the latest version either via your WebUI, or via KIAUH, once updated please access your Pi (or similar) via ssh
Run the the following command:
sudo apt install libopenblas-base
if the above doesn't work, please try the following
sudo apt install libopenblas-dev
Option mesh_main_direction is not a valid section in cartographer
You do not have a valid [bed_mesh] section in your printer.cfg, please check out this site for how to add one.
'Scanner' object has no attribute 'touch_location'
Make sure you have a `zero_reference_position: 125, 125` set under [bed_mesh], adjusting values for centre of your bed with X Y
CARTOGRAPHER_THRESHOLD_SCAN
does nothing
You're in scan mode. Do a PROBE_SWITCH MODE=touch
then SAVE_CONFIG. You may need to create a touch model if you dont already have one.
CARTOGRAPHER_TOUCH
does nothing
You're in scan mode. Do a PROBE_SWITCH MODE=touch
then SAVE_CONFIG. You may need to create a touch model if you dont already have one.
Scanner model 'default' was created for x
error
Your scanner model doesnt match your current mode. Please recalibrate so that youre new model will match.
Unable to parse option mesh_runs in section cartographer
You do not have a valid [bed_mesh] section in your printer.cfg, please check out this site for how to add one.
Unable to find your Cartographer USB probe via ls /dev/serial/by-id/
So there are a few reasons you might not be able to find your Cartographer probe.
A bug has been introduced in Debian Bullseye (which includes MainsailOS), which prevents the symlinks in /dev/serial/by-id/ from being created. If your printer can't connect to the MCU anymore after a system update, you can check if it is caused by that bug by checking the installed version of udev with
apt show udev
If your version is
247.3-7+deb11u2
or247.3-7+rpi1+deb11u2
you have the broken package installed and should use one of the fixes below. Take special care about the last number ("u2"). As of May 20 2023, this bug has spread to PiOS based systems as well. To Fix - Replace the corrupted udev file with one from upstream systemd:
# backup the existing rules file (just in case)
sudo cp /usr/lib/udev/rules.d/60-serial.rules /usr/lib/udev/rules.d/60-serial.old
# download the rule from the systemd main repo.
sudo wget -O /usr/lib/udev/rules.d/60-serial.rules https://raw.githubusercontent.com/systemd/systemd/main/rules.d/60-serial.rules
# reboot
sudo reboot
If you have a v3 probe, it might be flashed for CAN Mode, please re-flash it for USB Operation, this includes the Katapult bootloader, as this is used to change the operation of the probe itself. For more information on how to do that, click here
Check your USB Cable - If you have bought a flat pack, and your probe is a assembled for RIGHT ANGLE operation, you might have to re-assemble re-pin your USB cable in reverse.
Klipper environement running on Python 2
You will need to update your Klipper env from Python 2 to Python 3. the following guide is taken from https://klipper.discourse.group/t/process-for-migrating-to-python3/5292/3 There is another outstanding guide by EricZimmerman that I would highly recommend checking out https://github.com/EricZimmerman/VoronTools/blob/main/OSUpgrade.md\
{% hint style="info" %} Note - a minimum version of Pyhon 3.9 is required. {% endhint %}
sudo service klipper stop
# remove current klippy-env environment
cd ~
rm -rf klippy-env
# create new venv
virtualenv -p python3 klippy-env
#install new Klipper venv
cd ~/klippy-env
bin/pip install -r ../klipper/scripts/klippy-requirements.txt
Restart your pritner, and you should now have a wonderful Klipper environement running in Python3.
Klipper is showing my install as dirty?
Klipper will show any build as klipper as "dirty" if there are any untracked Python files within the folders, this is the same with all other python based plugins such as ShakenTune, LEDEffects and so on. Unfortuantly, there is no way around this at the moment. https://github.com/Klipper3d/klipper/actions/runs/4840565448
Missing Clusters or Sharp Drop in your Bed Mesh
If you get a sharp drop in your bed mesh, or missing clusters error after a scan, ensure that your probe is covering the entire bed. You may need to adjust your bed mesh accordingly.
Repeated No trigger on z after full movement
If you are getting the error No trigger on z after full movement
, and running a lower powered SBC such as a Raspberry Pi 2, or a BTT CB1, You are able to lock a single CPU core to your Klipper instance.
Esoterical has an outstanding guide on how to do so below.
https://canbus.esoterical.online/troubleshooting/timeout_during_homing_probing.html#experimental
Klipper freezes during scan/"timer too close" error
The cartographer probe sends quite a bit of data to the MCU during a scan. If the MCU is too busy, it can cause Klipper to freeze or throw a timer too close
error. Often, this is due to an underpowered SBC, such as Raspberry Pi 2/3, or the BTT CB1. You can try to reduce some of the load by (temporarily) disabling cameras or other intensive processes, or following the guide linked below to adjust your settings.
If all else fails, you could consider upgrading to a more powerful SBC.
https://canbus.esoterical.online/troubleshooting/timeout_during_homing_probing.html#experimental
Mcu 'scanner': command format mismatch: query_lis2dw
This happens when youre using an older version of klipper. If you for whatever reason cannot update to the latest version of klipper, you need to REMOVE the following sections from printer.cfg completely.
[lis2dw]
cs_pin
spi_bus:
[resonance_tester]
accel_chip: lis2dw
Option 'X' is not valid in section 'scanner'
You have a parameter within your [scanner]
section in printer.cfg that isnt valid. Remove X from your printer.cfg or check its written correctly. You can see valid parameters here
SAVE_CONFIG section 'scanner' option 'scanner_touch_z_offset' conflicts with included value
A common cause for this is having you [scanner]
section in an included config file and not in printer.cfg.
To work around this klipper limitation, remove scanner_touch_z_offset
from your included config and add it to printer.cfg.
Below is an example of what to have in printer.cfg.
This will allow klipper to save new offsets using the UI.
Last updated