Jak to přesně funguje?
Cartographer je postaven na indukčním převodníku LDC1612. Tento čip vytváří oscilující elektrické pole, které indukuje odpovídající pole v kovu ocelového plechu (nebo přímo v podložce, pokud je dostatečně blízko). Následně měří rezonanční frekvenci tohoto pole a převádí ji na digitální signál, který zpracovává hlavní řídicí jednotka (MCU).
Rezonanční frekvence se mění v závislosti na vzdálenosti mezi cívkou a podložkou (nebo jiným kovovým materiálem, na který senzor reaguje). Čím blíže je Cartographer k podložce, tím vyšší je frekvence. Naprosto zjednodušeně funguje jako detektor kovů, jen je mnohem menší.
SCAN režim (Carto Classic)
V tomto režimu se Cartographer kalibruje pomocí příkazu CARTOGRAPHER_CALIBRATE a papírového testu. Tím se nastaví vztah mezi konkrétní frekvencí a přesnou vzdáleností od podložky a zároveň se určí vzdálenost mezi touto detekční úrovní a špičkou trysky. Díky tomu Carto ví, kde se tryska nachází při dané frekvenci.
Jistým problémem je však to, že frekvence je ovlivněna nejen vzdáleností, ale také teplotou cívky a čipu LDC. Pokud se teplota změní, frekvence se změní i při stejné výšce.

Teplotní kompenzace
Aby se tento problém vyřešil, používá se teplotní kompenzace. Ta sleduje teplotu cívky a upravuje frekvenci spouštění tak, aby byla výška detekčního bodu stále stejná.
Cartographer Survey – nová verze
Na rozdíl od starší verze Carto Survey nepracuje s absolutní hodnotou frekvence ani konkrétní výškou Z. Místo toho sleduje změnu signálu – konkrétně detekuje, kdy se rychlost změny frekvence změní.
Když se Carto pomalu přibližuje k podložce, frekvence se zvyšuje stabilním tempem, což lze znázornit jako sklon na grafu. Jakmile se tryska dotkne podložky, sklon se změní a graf se vyrovná. Cartographer Survey tento bod detekuje a tím přesně určí, kdy se tryska dotkla podložky.

Důležité je, že Carto stále indukuje elektrické pole do nejbližšího kovového povrchu (obvykle pružinový ocelový plech nebo podložka). Aby Carto Survey správně fungoval, musí se pod ním nacházet kovová plocha v dosahu několika milimetrů.
Výhoda Carto Survey
Protože systém sleduje pouze změnu sklonu a ne absolutní hodnotu frekvence, nezáleží na tom, že frekvence se mění kvůli teplotě. Díky tomu není potřeba žádná teplotní kompenzace – detekce bodu dotyku trysky zůstává vždy spolehlivá.
Cartographer můžete koupit zde:

Oficiální CZ/SK/EU distribuce
A to i ve výhodné variantě s CNC pro Stealthburner, nebo jiným kompatibilními toolheady.
Dost bylo teorie, pojďme si jeden cartographer nainstalovat….
„Předletová příprava“
Zde je seznam, který byste měli zkontrolovat a splňovat než začnete Cartographer touch používat:
- Cartographer musí být namontován tak, aby byl v rozmezí 2,6–3 mm nad špičkou trysky.
- Tisková hlava by měla být co nejpevnější, minimální vůle na lineárech atd.
- Správně připojit napájení (cartographer sestaven do pravého úhlu má piny přehozeny), vždy ověřte proti tomu co je napsáno na tištěném spoji a případně konektor přepinujte.
- Zkontrolujte napnutí řemenů A/B nebo X/Y a Z v případě 2.4
- Pokud máte Tridenta: zkontrolujte vodicí šrouby.
- Nad Cartographer senzorem nesmí být nic kovového co by narušovalo měření:

Sestavení Cartographeru

Pokud si Cartographer sestavujete sami, dávejte si pozor na správné sestavení a kvalitní pájení spojů. Používejte mikropájku. Sestavené to má vypadat takto:
Standard:

Do pravého úhlu:

X Carriage pro VORON
Pro stealthburner lze použít CNC nebo tištěnou variantu ke stažení zde: stealthburner x carriage
Pro změření vzdálenosti od trysky je zde: Cartographer probe nozzle offset tool
A na printables najdete i spostu jiných modifikací jako kryty jine x carriage mounty atd: printables cartographer
Připojení:
Cartographer lze připojit, dvěma způsoby, a to skrz USB, nebo CANBUS.
USB z tiskové hlavy až do RPI, nebo pokud používáte LDO nitehawk USB desku tak stačí Cartographer s USB firmwarem propojit krátkým kablíkem.
USB:

Zapojení USB konetoru je v tomto pořadí:
- Zem GND černá
- DATA + zelená
- DATA – bílá
- 5V červená
CAN:
Dávejte pozor na zapojení správných barev v konektoru, při instalaci do rpavého úhlu jsou barvy v konektoru naopak.
- Zem GND černá
- CAN H + žlutá
- CAN L – bílá
- 5V červená

Spousta desek k extruderu ať už od BTT, oblíbené EBB36, 42m nebo taky od Mellow nemusí mít starší verze konektor pro dalsí CAN zařízení a tak si lze pomoct a při troše zkušeností CAN vodice H a L připájet rovnou k desce. H je žlutý a L je bílý vodič. Vždy si nastudujte dokumentaci k vlastní desce.

Instalace modulu Cartographer Klipper
Naklonujte modul Klipper z GitHubu pomocí následujících příkazů, poté spusťte instalační skript:
cd ~
git clone https://github.com/Cartographer3D/cartographer-klipper.git
./cartographer-klipper/install.sh
Správa aktualizací přes Moonraker
Aby bylo možné udržovat nejnovější vydanou verzi , přidejte následující konfiguraci na konec souboru moonraker.conf.
[update_manager cartographer]
type: git_repo
path: ~/cartographer-klipper
channel: stable
origin: https://github.com/Cartographer3D/cartographer-klipper.git
is_system_service: False
managed_services: klipper
info_tags:
desc=Cartographer Probe
Po dokončení stiskněte SAVE & RESTART a nyní by se měla zobrazit v sekci aktualizací buď v Mainsail, nebo Fluidd.

Dalším krokem je aktuazace, případně přechod na jinou variantu CAN, nebo USB, vypadá s tou spoustou obrázků složitě, ale ve skutečnosti je to velmi jednoduché, jednodušší než flashnutí jakékoliv desky, nic tak jednoduše jsem ještě nepřehrával a neaktualizoval. Pokud je Cartographer správně připojen, deteková, tak je to pak opravdu hračka. Kdyby to bylo jednou takto u všeho …
Aktualizace USB firmware
Pro aktualizaci USB firmware zadejte:
~/cartographer-klipper/scripts/firmware.py -f usb
Vyberte 1. Find Cartographer Deivce

Automaticky nám to najde a vyberte jej: Select usb-katapult_stm32f042x6_[vaše USB UUID]

Vybereme 2. Select USB Firmware

Automaticky nám to vybralo poslední verzi: Firmware Selected: 5.1.0/Survey_Cartographer_USB_8kib_offset.bin potvrdíme volbou 4. Flash selected Firmware a potvrdíme: 1. Yes, proceed to flash

Stiskneme enter:

A máme USB firmware úspěšně aktualizován
Aktualizace CAN firmware
Pro aktualizaci CAN firmware zadejte:
~/cartographer-klipper/scripts/firmware.py -f can
Vyberte: 1. Find Cartographer Device

Vyberte: 1. Check klippy.log

Vyberte: 1. Select usb-Cartographer_[vase CANBUS UUID] v mém případě: 12095daa0ec7

Vyberte: 2. Select CAN Firmware

Automaticky to vybralo poslední verzi: Firmware Selected: 5.1.0/Survey_Cartographer_CAN_1000000_8kib_offset.bin na rychlosti 1M kterou mam nastavenou.
Vybereme: 4. Flash Selected Firmware


Máme vybráno jak zařízení tak firmware, potvrdíme: 1. Yes, poceed to flash a nahrajeme firmware

Stiskneme enter

Zadáme své heslo na RPI a firmware máme zaktualizován.
Přehrání firmware z USB na CAN
Pokud potřebuje připojit Cartographer na CANBUS místo USB, máte na Cartographeru USB firmware z výroby tak postupujte podle tohoto návodu.
Po připojeni USB kabelem si jen ověřte že je Cartographer viditelný příkazem:
lsusb
A mělo by se objevit nové usb zařízení:
Bus 001 Device 009: ID 1d50:6177 OpenMoko, Inc. stm32f042x6
A teď je potřeba udělat dva kroky:
Krok 1: Nahrát Katapult CAN
~/cartographer-klipper/scripts/firmware.py -f usb -t
Najděte zařízeni: Vyberte 1. Find Cartographer Device a vyberte nalezené zařízení: 1. Select usb-Cartographer_[vase CANBUS UUID]

Vyberete: 2. Select USB Firmware

Vyberete: katapult-deployer s rychlostí vašeho canbus rozhraní. Všdy se doporučuje pokud to vaše zařízení umožní rychlost 1M což je varianta volba: 3. ./katapult-deployer-1m.bin

Krok 2: Nahrát CAN firmware
postupujte podle návodu na aktualizaci CAN firmware
~/cartographer-klipper/scripts/firmware.py -f can
Přehrání firmware z CAN na USB
Pokud potřebuje připojit Cartographer na USB místo CANBUS, tak postupujte podle tohoto návodu. Musíte mít funkční CANBUS a zařízení pripojeno.
Je potřeba udělat dva kroky:
Nahrát Katapult-USB
~/cartographer-klipper/scripts/firmware.py -f can -t
Najděte zařízeni: Vyberte 1. Find Cartographer Device

Jen nezapomeňte vybrat USB firmware: Vyberte volbu: 4. ./katapult-deployer-usb.bin

Krok 2: Nahrát USB firmware
postupujte podle návodu na aktualizaci USB firmware
~/cartographer-klipper/scripts/firmware.py -f usb
Downgrade firmware
Pokud rádi testujete betaverze, rádi si hrajete a stane se že v betě něco nefunguje a chcete se vrátit zpět tak lze nahrát starší firmware a to jen pomocí spuštění skriptu bez atributů:
~/cartographer-klipper/scripts/firmware.py

Vyberte: 4. Enable Advanced Mode
A zde: 13. Enable Show All Firmware

Při výběru firmware budete mít na výběr i starší verzi:

Nastavení klipperu v tiskárně
Nalezení sériového čísla nebo UUID
Je třeba v konfiguračním souboru printer.cfg nahradit sériovou cestu, nebo UUID vašeho snímače, které lze zjistit spuštěním následujících příkazů:
Pro připojení přes USB:
ls /dev/serial/by-id/
Pro připojení přes CANBUS:
~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0

Poznamenejte si buď sériové ID, nebo UUID.
V mém případě je canbus/katapult UUID 12095daa0ec
V printer.cfg je potřeba odstranit vše k předchozímu senzoru, například klicky nebo TAPu a přidáme toto:
#####################################################################
# SCANNER
#####################################################################
[mcu scanner]
canbus_uuid: 12095daa0ec7
#serial: /dev/serial/by-id/usb-cartographer_cartographer_
[scanner]
mcu: scanner
# Offsets are measured from the centre of your coil, to the tip of your nozzle
# on a level axis. It is vital that this is accurate.
x_offset: 0
# adjust for your cartographers offset from nozzle to middle of coil
y_offset: 22
# adjust for your cartographers offset from nozzle to middle of coil
backlash_comp: 0.015
# Backlash compensation distance for removing Z backlash before measuring
# the sensor response.
sensor: cartographer
# this must be set as cartographer unless using IDM etc.
sensor_alt: carto
# alternate name to call commands. CARTO_TOUCH etc
mesh_runs: 2
# Number of passes to make during mesh scan.
[temperature_sensor Cartographer_MCU]
sensor_type: temperature_mcu
sensor_mcu: scanner
min_temp: 0
max_temp: 105
Můžete si přidat i ADXL senzor:
[adxl345]
cs_pin: scanner:PA3
spi_bus: spi1
[resonance_tester]
accel_chip: adxl345
probe_points:
175, 175, 20 # pouzijte stred vasi velikosti podlozky
accel_per_hz: 100
sweeping_accel: 400
sweeping_period: 0
Upravte si taky nastavení pro bedmesh, rychlost by neměla překračovat 200, rozlišení meshe používám 11×11, ale klidně zkuste 30×30 🙂
[bed_mesh]
zero_reference_position: 175, 175 # pouzijte stred vasi velikosti podlozky
# set this to the middle of your bed
speed: 200
# movement speed of toolhead during bed mesh
horizontal_move_z: 5
# height of scanner during bed mesh scan
mesh_min: 40, 18 # pouzijte vasi velikosti podlozky
# start point of bed mesh [X, Y]
mesh_max: 310, 288 # pouzijte vasi velikosti podlozky
# end point of bed mesh [X, Y]
probe_count: 11, 11 # klidne nastavte 30, 30
algorithm: bicubic
Upravíme safe z home v mém případě pro Vorona 2.4 350 to bude 175,175
[safe_z_home]
home_xy_position: 175,175 # pouzijte vasi velikosti podlozky
# Example home_xy_position: 175,175 - This would be for a 350 * 350mm bed.
z_hop: 10
Upravíme nastavení endstopu pro osu Z takto:
[stepper_z]
endstop_pin: probe:z_virtual_endstop # uses cartographer as virtual endstop
homing_retract_dist: 0 # cartographer needs this to be set to 0
#position_endstop: 5 # cartographer needs this to be commented out
Print start makro
Je potřeba upravit start makro tak, aby se využilo funkce cartographeru, postup pokud máte vyhřátou tiskarnu a počkáte na roztažení všech profilů, lineáru atd … tiskárnu už mám nahřátou, tak ve stručnosti to vypadá takto: home all, QGL nebo Z_TILT, home Z, bed mesh, cartographer touch a tisk.
Příkazy s popisem vypadají pak takto:
Toto prosím nekopírujte, nebude vám to fungovat, je to jen zestručněno co vaše start makro pro správnou fukci cartographeru a mesh potřebuje!!!
[gcode_macro PRINT_START_EXAMPLE!!!]
gcode:
G28 ; Home všech os
M140 S{BED_TEMP} ; Nastavení teploty podložky (bedu)
M109 S150 ; Čeknání až teplota extruderu dosáhne 150°C
M190 S{BED_TEMP} ; Nastavení finální teploty podložky
G28 Z ; Home osy Z
M112 #Remove this line ; JE to vaše chyba pokud toto kopírujete!!!
QUAD_GANTRY_LEVEL / Z_TILT_ADJUST ; Provedení QGL nebo Z_TILT
G28 Z ; Home osy Z
BED_MESH_CALIBRATE ; Kalibrace podložky
CARTOGRAPHER_TOUCH ; Kalibrace osy z dotykem
M109 S{EXTRUDER_TEMP} ; Nastavení finální teploty trysky
PROSÍM NEPOUŽÍVEJTE TOTO - JE TO JEN PŘÍKLAD!!!
Kablibrace Cartographeru bez používání papíru 🙂
Pokud máme vše správně sestaveno a nenastal žádný magic smoke tak můžeme pokračovat v kalibraci. Původní návod je stále s používáním listu papírů jako za starých časů, ale už není potřeba …
V konzoli Mainsail, nebo Fluidd zadámě postupně:
Pro nastavení cartographer módu na dotyk
PROBE_SWITCH MODE=touch
Provedeme kompletní home pro všechny osy, pokud máte správně nastavený ednstop osy Z tak se tryska nezaryje do podložky, pokud si nejste jistí, tak se nachystejte na EMERGENCY STOP. Je lepší být připraven 😉
G28
Teď provedeme poprvé kalibraci bez QGL a Z_TILT,
CARTOGRAPHER_CALIBRATE
A nakonec uložíme konfiguraci tlačítkem Safe config v gui nebo rovnou příkazem:
SAVE_CONFIG
Po znovunajetí klippertu tiskárny a restartu si to zopakujeme jen s pár kroky navíc:
Provedeme kompletní home pro všechny osy
G28
Pokud máte 2.4 tak zadejte:
QUAD_GANTRY_LEVEL
U tridenta:
Z_TILT_ADJUST
Home jen v ose Z
G28 Z
Proovedeme scan prahu citlivosti.
CARTOGRAPHER_THRESHOLD_SCAN
Znovu zkalibrujeme dotyk:
CARTOGRAPHER_CALIBRATE
Poté doporučuji změrit a nastavit backslash, což je vůle na celé hlavě tisky při dotyku podložky, čím menší číslo naměříte tím jste na tom lepe. Změříte příkazem:
CARTOGRAPHER_ESTIMATE_BACKLASH
Výstup pak vypadá takto:
Median distance moving up 1.99571, down 2.00417, delta 0.00845 over 20 samples
V mém případě mi to změřilo: 0.00845 v printer.cfg v sekci scanner dopňte vaši změřenou hodnotu:
backlash_comp: 0.0085
A poslední věc co se doladí až při prvním tisku je jen drobné doladění z offsetu, pomoci GUI nebo Kipperscreenu. Doporučuji tisknou kostku 50x50x0.6 mm a drobně doladit.

A po konci tisku jen uložit:
SAVE_CONFIG
Vypočtený z-offset po dolazení se uloží a máte hotovo.
Tisku zdar! 🙂

(pokud vidíte obrázek první vrstvy tisku voron kalibrační kostky, tak patříte mezi první čtenářezi první čtenáře toho článku, gratulujeme!)
Případné problémy a jejich řešení:
Frequency exceeded
Toto se děje občas na posledním firmware 5.1.0. Doporučuje se udělat downgrade na 5.0.0. Mělo by to být opraveno v betaverzi 5.1.3 a ta je v uzavřením testování.
Communication time out během homování
Pokud jste zkontrolovali všechny konektory u cabusu, nemáte nikde studený spoj ani poškozený kabela nevidíte žádné chyby a retranslace na canbus rozhraní tak je chyba trošku jinde. Je to obecný problém multimcu řešení, stává se to na canbusu, nebo i použití senzoru na USB. RPI3 při použití s USB kamerou a s canbusem vykazval mcu problém častěji, cpu nestačilo odpovídat … to na RPI4 není až tak časté, ale stále se to může dít. Divoká ledková diskotéka na toolheadu taky umí pěkně zatížit rozhraní a problém může nastávat častěji. Tak to moc nepřehánějte 🙂 On je problém v takzvaném multi mcu homing timeout … nedostane data včas od druhého mcu. „Opravit“ lze jen zásahem do souboru klipperu:
Stačí změnit TRSYNC_TIMEOUT hodnotu v souboru: “/home/pi/klipper/klippy/mcu.py” zde zvyšte z 0.025 na 0.050, původně zde je “TRSYNC_TIMEOUT = 0.025”, a po úpravě na “TRSYNC_TIMEOUT = 0.050”, a chyba “Communication timeout during homing probe” zmizí. Po updatu klipperu musíte upravit znova. Což je dost nepraktické.
Další a lepší variantou řešení je přejít na fork Klipperu se jménem Kalico – který má možnost nastavit timeout v konfiguračním souboru tiskárny v printer.cfg.
Fork = je velmi zjednodušeně jiná vývojová větev, jako Prusaslicer, z něj je Bambulab studio z něj zase fork Orcaslicer. Kalico je takový lehce upravený Klipper.
Zde to lze jednoduše přidat: multi_mcu_trsync_timeout: 0.025 a stačí jej zvednout na dvojnásobek 0.05 vice přímo v dokumentaci Kalico: https://docs.kalico.gg/Config_Reference.html#danger-options
Cartographer můžete koupit zde:

Oficiální CZ/SK/EU distribuce
A to i ve výhodné variantě s CNC pro Stealthburner, nebo jiným kompaktibilnimi toolheady.