# TMC meghajtók - Klipper dokumentáció

Kihagyás

# TMC meghajtók

Ez a dokumentum a Trinamic léptetőmotor-meghajtók SPI/UART üzemmódban történő Klipper-ben való használatáról nyújt információt.

A Klipper a Trinamic motorvezérlőket is tudja használni "standalone módban". Ha azonban a motorvezérlők ebben az üzemmódban vannak, nincs szükség speciális Klipper konfigurációra, és az ebben a dokumentumban tárgyalt fejlett Klipper funkciók nem állnak rendelkezésre.

Ezen a dokumentumon kívül feltétlenül tekintsd át a TMC motorvezérlő konfigurációs hivatkozást.

## Motoráram hangolása

A nagyobb meghajtóáram növeli a pozicionálási pontosságot és a nyomatékot. A nagyobb áram azonban növeli a léptetőmotor és a motorvezérlő által termelt hőt is. Ha a motorvezérlő túlságosan felmelegszik, akkor kikapcsolja magát, és a Klipper hibát jelez. Ha a léptetőmotor túlságosan felmelegszik, veszít a nyomatékból és a pozícionálási pontosságból. (Ha nagyon felforrósodik, akkor a hozzáérő vagy a közelében lévő műanyag alkatrészeket is megolvaszthatja.)

Általános hangolási tippként, előnyben részesítheted a magasabb áramértékeket, amíg a léptetőmotor nem melegszik túlságosan, és a motorvezérlő nem jelez figyelmeztetéseket vagy hibákat. Általánosságban elmondható, hogy a léptetőmotor nem baj, ha melegszik, de nem szabad annyira felforrósodnia, hogy érintése fájdalmas legyen.

## Inkább ne adj meg hold_current értéket

Ha beállítunk egy `hold_current` értéket, akkor a TMC motorvezérlő csökkentheti a léptetőmotor áramát, amikor azt érzékeli, hogy a léptető nem mozog. A motoráram megváltoztatása azonban önmagában is motormozgást eredményezhet. Ez bekövetkezhet a "rögzítő erők" miatt a léptetőmotoron belül (a rotorban lévő állandó mágnes az állórészben lévő vasfogak felé húz) vagy a tengelykocsira ható külső erők miatt.

A legtöbb léptetőmotornak a normál nyomtatás során nem jelent jelentős előnyt az áram csökkentése, mivel kevés nyomtatási művelet hagyja a léptetőmotort elég hosszú ideig üresen ahhoz, hogy aktiválja a `hold_current` funkciót. És nem valószínű, hogy az ember finom nyomtatási műveleteket akarna bevezetni abba a néhány nyomtatási mozdulatba, amely elég hosszú ideig hagyja üresen a léptetőmotort.

Ha csökkenteni szeretnéd a motorok áramát a nyomtatási indítási rutinok során, akkor fontold meg a SET_TMC_CURRENT parancsok kiadását egy START_PRINT makróban, hogy beállítsd az áramot a normál nyomtatási mozgások előtt és után.

Néhány olyan, dedikált Z-motorral rendelkező nyomtató, amely a normál nyomtatási műveletek során (nincs bed_mesh, nincs bed_tilt, nincs Z skew_correction, nincs "vase mode" nyomtatás stb.) üresjáratban van, azt tapasztalhatod, hogy a Z motorok hűvösebbek a `hold_current` beállítással. Ha ezt használod, akkor mindenképpen vedd figyelembe ezt a fajta parancs nélküli Z tengelymozgást tárgyasztal kiegyenlítése, tárgyasztal szintezése, szondakalibrálás és hasonlók során. A `driver_TPOWERDOWN` és `driver_IHOLDDELAY` értékeket is ennek megfelelően kell kalibrálni. Ha bizonytalan vagy, inkább ne add meg a `hold_current` értéket.

## "SpreadCycle" vs "StealthChop" mód beállítása

Alapértelmezés szerint a Klipper a TMC motorvezérlőket "SpreadCycle" üzemmódba helyezi. Ha a motorvezérlő támogatja a "StealthChop" módot, akkor azt a `stealthchop_threshold hozzáadásával lehet engedélyezni: 999999` a TMC konfigurációs szakaszához.

Általában a SpreadCycle üzemmód nagyobb nyomatékot és nagyobb helymeghatározási pontosságot biztosít, mint a StealthChop üzemmód. A StealthChop üzemmód azonban néhány nyomtatónál lényegesen kisebb hallható zajjal járhat.

Az üzemmódok összehasonlító tesztjei azt mutatták, hogy a StealthChop üzemmód használata esetén a "pozíciós késés" az állandó sebességű mozgások során a teljes lépés 75%-al nőtt (például egy 40 mm-es forgatási távolsággal és 200 lépés/fordulatszámmal rendelkező nyomtatónál az állandó sebességű mozgások pozícióeltérése ~0,150 mm-rel nőtt). Ez a "késedelem a kért pozíció elérésében" azonban nem biztos, hogy jelentős nyomtatási hibaként jelentkezik, és lehet, hogy jobban tetszik a StealthChop mód csendesebb működése.

Javasoljuk, hogy mindig a "SpreadCycle" módot használd (nem megadva a `stealthchop_threshold` értéket) vagy mindig a "StealthChop" módot (a `stealthchop_threshold` 999999-re állítva). Sajnos a meghajtók gyakran rossz és zavaros eredményeket produkálnak, ha a mód változik, miközben a motor nem álló állapotban van.

## A TMC interpolációs beállítása kis pozícióeltérést eredményez

A TMC motorvezérlő `interpolate` beállítása csökkentheti a nyomtató mozgásának hallható zaját, de ennek ára egy kis rendszerszintű helyzeti hiba. Ez a rendszerszintű helyzeti hiba abból adódik, hogy a motorvezérlő késve hajtja végre a Klipper által küldött "lépéseket". Állandó sebességű mozgások során ez a késleltetés közel fél konfigurált mikrolépésnyi pozícióhibát eredményez (pontosabban a hiba fél mikrolépésnyi távolság mínusz a teljes lépés távolság 512-ed része). Például egy 40 mm-es rotation_distance, 200 steps_per_rotation és 16 microstep tengelyen az állandó sebességű mozgások során bevezetett rendszerszintű hiba ~0,006 mm.

A legjobb helymeghatározási pontosság érdekében fontold meg a SpreadCycle mód használatát és az interpoláció kikapcsolását (állítsd be az `interpolate: False` értéket a TMC motorvezérlő konfigurációjában). Ilyen konfiguráció esetén növelhetjük a `microstep` beállítást a léptető mozgása közbeni hallható zajok csökkentése érdekében. Általában a `64` vagy `128` mikrolépés beállítása az interpolációhoz hasonló hallható zajjal jár, és mindezt anélkül, hogy rendszerszintű helyzeti hibát vezetne be.

Ha a StealthChop módot használod, akkor az interpolációból eredő helyzeti pontatlanság kicsi a StealthChop módból eredő helyzeti pontatlansághoz képest. Ezért az interpoláció hangolása nem tekinthető hasznosnak StealthChop üzemmódban, és az interpoláció alapértelmezett állapotban hagyható.

## Érzékelő nélküli kezdőpont

Az érzékelő nélküli kezdőpont felvétel lehetővé teszi a tengely kezdőpont felvételét fizikai végálláskapcsoló nélkül. Ehelyett a tengelyen lévő kocsit a mechanikus végállásba mozgatja, így a léptetőmotor lépéseket veszít. A léptető meghajtó érzékeli az elveszett lépéseket, és ezt egy tű csatlakozáson jelzi a vezérlő MCU-nak (Klipper). Ezt az információt a Klipper a tengely végállásaként használhatja.

Ez az útmutató az érzékelő nélküli kezdőpont felvétel beállítását mutatja be a (cartesian) nyomtató X tengelyére. Ez azonban ugyanígy működik az összes többi tengely esetében is (amelyek végállást igényelnek). Egyszerre csak egy tengelyre kell beállítani és hangolni.

### Korlátozások

Győződj meg arról, hogy a mechanikus alkatrészek képesek kezelni a tengely határértékének ismételt ütközéséből eredő terhelést. Különösen a szíjak nagy erőt fejthetnek ki. A Z tengelynek a fúvókával a tárgyasztalba való ütközéssel történő szintezése nem biztos, hogy jó ötlet. A legjobb eredmény érdekében ellenőrizd, hogy a tengelyen lévő kocsi szilárdan érintkezik-e a tengelyhatárral.

Továbbá, az érzékelő nélküli kezdőpont felvétel nem biztos, hogy elég pontos a nyomtatód számára. Míg az X és Y tengelyek kezdőpont felvétele egy cartesian gépen jól működhet, a Z tengely kezdőpont felvétele általában nem elég pontos, és következetlen első rétegmagasságot eredményezhet. A delta nyomtató érzékelő nélküli kezdőpont felvétele a pontatlanság miatt nem tanácsos.

Továbbá a léptető meghajtó elakadásérzékelése a motor mechanikai terhelésétől, a motoráramtól és a motor hőmérsékletétől (tekercsellenállástól) is függ.

Az érzékelő nélküli kezdőpont felvétel közepes motorsebességnél működik a legjobban. Nagyon lassú fordulatszámoknál (kevesebb mint 10 fordulat/perc) a motor nem termel jelentős ellenáramot, és a TMC nem képes megbízhatóan érzékelni a motor leállását. Továbbá, nagyon nagy fordulatszámon a motor ellen-EMF-je megközelíti a motor tápfeszültségét, így a TMC már nem képes érzékelni a leállást. Javasoljuk, hogy tekintsd meg az adott TMC-k adatlapját. Ott további részleteket is találhatsz ennek a beállításnak a korlátairól.

### Előfeltételek

Néhány előfeltétel szükséges az érzékelő nélküli kezdőpont felvétel használatához:

1. StallGuard-képes TMC motorvezérlő (TMC2130, TMC2209, TMC2660 vagy TMC5160).
2. A TMC-motorvezérlő SPI/UART interfésze mikrokontrollerrel összekötve (a stand-alone üzemmód nem működik).
3. A TMC motorvezérlő megfelelő "DIAG" vagy "SG_TST" tűje a mikrovezérlőhöz csatlakoztatva.
4. A konfiguráció ellenőrzések dokumentumban szereplő lépéseket kell lefuttatni annak megerősítésére, hogy a léptetőmotorok megfelelően vannak konfigurálva és működnek.

### Hangolás

Az itt leírt eljárás hat fő lépésből áll:

1. Válaszd ki a kezdőpont felvételi sebességet.
2. Konfiguráld a `printer.cfg` fájlt, hogy engedélyezd az érzékelő nélküli kezdőpont felvételt.
3. Keresd meg a legnagyobb érzékenységű StallGuard beállítást, amely sikeresen felveszi a kezdőpontot.
4. Keresd meg a legalacsonyabb érzékenységű StallGuard-beállítást, amely egyetlen érintéssel sikeres megállást jelez.
5. Frissítsd a `printer.cfg` állományt a kívánt StallGuard beállítással.
6. Hozd létre vagy frissítsd a `printer.cfg` makróit, hogy kéznél legyenek.

#### Válaszd ki a kezdőpont felvételi sebességet

A kezdőpont felvételi sebesség fontos választás az érzékelő nélküli kezdőpont felvétel során. Ajánlott lassú állítási sebességet használni, hogy a kocsi ne gyakoroljon túlzott erőt a keretre, amikor a sín végével érintkezik. A TMC motorvezérlők azonban nagyon lassú sebességeknél nem képesek megbízhatóan érzékelni az elakadást.

Az indítási sebességnek jó kiindulópontja az, hogy a léptetőmotor két másodpercenként egy teljes fordulatot végezzen. Sok tengely esetében ez a `rotation_distance` osztva kettővel. Például:

    [stepper_x]
    rotation_distance: 40
    homing_speed: 20
    ...

#### A printer.cfg beállítása érzékelő nélküli kezdőpont felvételhez

A `homing_retract_dist` beállítást nullára kell állítani a `stepper_x` config szakaszban a második kezdőpont felvételi mozdulat letiltásához. A második kezdőpont felvételi kísérlet nem ad hozzáadott értéket az érzékelő nélküli kezdőpont felvételhez, nem fog megbízhatóan működni, és összezavarja a hangolási folyamatot.

Győződj meg róla, hogy a konfiguráció TMC motorvezérlő részlegében nincs megadva `hold_current` beállítás. (Ha hold_current használatban van, akkor a kapcsolat létrejötte után a motor megáll, miközben a kocsi a sín végéhez van nyomva, és az áram csökkentése ebben a helyzetben a kocsi elmozdulhat. Ez rossz teljesítményt eredményez, és összezavarja a hangolási folyamatot.)

Szükséges a szenzor nélküli kezdőpont felvételi tűk konfigurálása és a kezdeti "StallGuard" beállítások konfigurálása. Egy TMC2209 példakonfiguráció egy X tengelyhez így nézhet ki:

    [tmc2209 stepper_x]
    diag_pin: ^PA1       # A TMC DIAG tűhöz csatlakoztatott MCU tűre állítva.
    driver_SGTHRS: 255  # 255 a legérzékenyebb érték, 0 a legkevésbé érzékeny.
    ...

    [stepper_x]
    endstop_pin: tmc2209_stepper_x:virtual_endstop
    homing_retract_dist: 0
    ...

Egy TMC2130 vagy TMC5160 konfiguráció például így nézhet ki:

    [tmc2130 stepper_x]
    diag1_pin: ^!PA1 # A TMC DIAG1 tűhöz csatlakoztatott tű (vagy használd a diag0_pin / DIAG0 tűt)
    driver_SGT: -64    # -64 a legérzékenyebb érték, 63 a legkevésbé érzékeny.
    ...

    [stepper_x]
    endstop_pin: tmc2130_stepper_x:virtual_endstop
    homing_retract_dist: 0
    ...

Egy TMC2660 konfiguráció így nézhet ki:

    [tmc2660 stepper_x]
    driver_SGT: -64           # -64 a legérzékenyebb érték, 63 a legkevésbé érzékeny.
    ...

    [stepper_x]
    endstop_pin: ^PA1       # A TMC SG_TST tűjéhez csatlakoztatott tű.
    homing_retract_dist: 0
    ...

A fenti példák csak az érzékelő nélküli kezdőpont felvételre jellemző beállításokat mutatják. Az összes elérhető beállításért lásd a konfigurációs referencia dokumentumot.

#### Keresd meg a legmagasabb érzékenységet, amely sikeresen jelzi a kezdőpontot

Helyezd a kocsit a sín közepéhez közel. A SET_TMC_FIELD paranccsal állítsd be a legnagyobb érzékenységet. A TMC2209 esetében:

    SET_TMC_FIELD STEPPER=stepper_x FIELD=SGTHRS VALUE=255

A TMC2130, TMC5160 és a TMC2660 modellekhez:

    SET_TMC_FIELD STEPPER=stepper_x FIELD=sgt VALUE=-64

Ezután adj ki egy `G28 X0` parancsot, és ellenőrizd, hogy a tengely egyáltalán nem mozog, vagy gyorsan megáll. Ha a tengely nem áll meg, akkor adj ki egy `M112` parancsot a nyomtató megállítására. Valami nem stimmel a diag/sg_tst pin kábelezésével vagy konfigurációjával, és a folytatás előtt ki kell javítani.

Ezután folyamatosan csökkentsd a `VALUE` beállítás érzékenységét, és futtasd le újra a `SET_TMC_FIELD` `G28 X0` parancsokat, hogy megtaláld a legnagyobb érzékenységet, amely a kocsi sikeres mozgását eredményezi a végállásig és a megállásig. (A TMC2209 motorvezérlők esetében ez az SGTHRS csökkentése, más vezérlők esetében az sgt növelése lesz.) Ügyelj arra, hogy minden kísérletet úgy kezdj, hogy a kocsi a sín közepéhez közel legyen (ha szükséges, adj ki egy `M84` parancsot, majd kézzel mozgasd a kocsit középállásba). Meg kell találni a legnagyobb érzékenységet, amely megbízhatóan jelzi a végállást (a nagyobb érzékenységű beállítások kicsi vagy semmilyen mozgást nem eredményeznek). Jegyezd fel a kapott értéket maximum_sensitivity néven. (Ha a lehető legkisebb érzékenységet (SGTHRS=0 vagy sgt=63) kapjuk a kocsi elmozdulása nélkül, akkor valami nincs rendben a diag/sg_tst tűk bekötésével vagy konfigurációjával, és a folytatás előtt ki kell javítani.)

A maximum_sensitivity keresésekor kényelmes lehet a különböző VALUE beállításokra ugrani (a VALUE paraméter kettéosztása érdekében). Ha ezt tesszük, akkor készüljünk fel arra, hogy a nyomtató leállításához adjunk ki egy `M112` parancsot, mivel egy nagyon alacsony érzékenységű beállítás miatt a tengely többször "beleütközhet" a sín végébe.

Ügyelj arra, hogy várj néhány másodpercet minden egyes végállási kísérlet között. Miután a TMC motorvezérlő érzékeli az elakadást, eltarthat egy kis ideig, amíg a belső visszajelzője törlődik, és képes lesz egy újabb megállást érzékelni.

Ha a hangolási tesztek során a `G28 X0` parancs nem mozdul el egészen a tengelyhatárig, akkor óvatosan kell eljárni a szabályos mozgatási parancsok kiadásával (pl. `G1`). A Klipper nem fogja helyesen értelmezni a kocsi helyzetét, és a mozgatási parancs nemkívánatos és zavaros eredményeket okozhat.

#### Keresd meg a legalacsonyabb érzékenységet, amely egyetlen érintéssel kezdőponton van

Ha a kapott maximum_sensitivity értékkel állítod be a tengelyt a sín végére, és egy "egyszeri érintéssel" áll meg, azaz nem szabad, hogy "kattogó" vagy "csattanó" hangot hallj. (Ha a maximális érzékenység mellett csattanó vagy kattogó hang hallatszik, akkor a homing_speed túl alacsony, a meghajtóáram túl alacsony, vagy az érzékelő nélküli kezdőpont felvétel nem jó választás a tengely számára.)

A következő lépés az, hogy a kocsit ismét a sín közepére mozgatjuk, csökkentjük az érzékenységet, és futtatjuk a `SET_TMC_FIELD` `G28 X0` parancsokat. A cél most az, hogy megtaláljuk a legkisebb érzékenységet, amely még mindig azt eredményezi, hogy a kocsi egy "egyetlen érintéssel" sikeresen célba ér. Vagyis nem "bumm" vagy "csatt" a sín végének érintésekor. Jegyezd meg a talált értéket minimum_sensitivity.

#### Frissítsd a printer.cfg fájlt az érzékenységi értékkel

A maximum_sensitivity és minimum_sensitivity megállapítása után számológép segítségével kapjuk meg az ajánlott érzékenységet a minimum_sensitivity + (maximum_sensitivity - minimum_sensitivity)/3 képlettel. Az ajánlott érzékenységnek a minimális és maximális értékek közötti tartományban kell lennie, de valamivel közelebb a minimális értékhez. A végső értéket kerekítsd a legközelebbi egész értékre.

A TMC2209 esetében ezt a konfigurációban a `driver_SGTHRS`, más TMC motorvezérlők esetében a `driver_SGT` értékkel kell beállítani.

Ha a maximum_sensitivity és minimum_sensitivity közötti tartomány kicsi (pl. 5-nél kisebb), akkor ez instabil kezdőpont felvételt eredményezhet. A gyorsabb kezdőpont felvételi sebesség növelheti a hatótávolságot és stabilabbá teheti a működést.

Vedd figyelembe, hogy ha bármilyen változás történik a motorvezérlő áramában, az indítási sebességben vagy a nyomtató hardverén, akkor a hangolási folyamatot újra el kell végezni.

#### Makrók használata a kezdőpont felvétel során

Az érzékelő nélküli kezdőpont felvétel befejezése után a kocsi a sín végéhez lesz nyomva, és a léptető erőt fejt ki a keretre, amíg a kocsi el nem mozdul. Jó ötlet egy makrót létrehozni a tengely kezdőpont felvételéhez, és azonnal elmozdítani a kocsit a sín végétől.

Jó ötlet, ha a makró legalább 2 másodperc szünetet tart az érzékelő nélküli kezdőpont felvétel elindítása előtt (vagy más módon biztosítja, hogy a léptetőn 2 másodpercig nem volt mozgás). A késleltetés nélkül lehetséges, hogy a meghajtó belső leállási jelzője még mindig be van állítva egy korábbi mozgás miatt.

Az is hasznos lehet, ha ez a makró beállítja a meghajtó áramát a kezdőpont felvétel előtt, és új áramot állít be, miután a kocsi elindult.

Egy példamakró így nézhet ki:

    [gcode_macro SENSORLESS_HOME_X]
    gcode:
             {% set HOME_CUR = 0.700 %}
             {% set driver_config = printer.configfile.settings['tmc2209 stepper_x'] %}
             {% set RUN_CUR = driver_config.run_current %}
             # Állítsuk be az áramot az érzékelő nélküli kezdőpont felvételhez
             SET_TMC_CURRENT STEPPER=stepper_x CURRENT={HOME_CUR}
             # Szünet annak biztosítására, hogy a meghajtó leállási jelzője törlődjön.
             G4 P2000
             # Kezdőpont
             G28 X0
             # Elmozdulás
             G90
             G1 X5 F1200
             # Állítsd be az áramerősséget nyomtatás közben
             SET_TMC_CURRENT STEPPER=stepper_x CURRENT={RUN_CUR}

Az így kapott makró meghívható a homing_override konfigurációs szakasz vagy a START_PRINT makró segítségével.

Vedd figyelembe, hogy ha a motorvezérlő áramát a kezdőpont felvétel során megváltoztatod, akkor a hangolási folyamatot újra el kell végezni.

### Tippek CoreXY gépek szenzor nélküli kezdőpont felvételéhez

A CoreXY nyomtató X és Y kocsiknál érzékelő nélküli kezdőpont felvételre is van lehetőség. A Klipper a `[stepper_x]` léptetőt használja az X kocsi kezdőpont felvételekor az elakadások érzékelésére, az Y kocsi kezdőpont felvételekor pedig a `[stepper_y]` léptetőt.

Használd a fent leírt hangolási útmutatót, hogy megtaláld a megfelelő "elakadás érzékenységet" az egyes kocsikhoz, de vedd figyelembe a következő korlátozásokat:

1. Ha a CoreXY-n érzékelő nélküli kezdőpont felvételt használsz, győződj meg róla, hogy egyik léptetőhöz sincs beállítva `hold_current`.
2. A hangolás során győződj meg arról, hogy az X és az Y kocsik a sínek közepénél vannak-e minden egyes kezdőpont felvételi kísérlet előtt.
3. A hangolás befejezése után az X és Y kezdőpont felvételét makrók segítségével biztosítsd, hogy először az egyik tengely vegye fel a kezdőpontot, majd mozgasd el a kocsit a tengelyhatártól, tarts legalább 2 másodperc szünetet, majd kezd el a másik kocsi kezdőpont felvételét. A tengelytől való eltávolodással elkerülhető, hogy az egyik tengelyt akkor indítsuk el, amikor a másik a tengelyhatárhoz van nyomva (ami eltorzíthatja az akadásérzékelést). A szünetre azért van szükség, hogy a meghajtó az újraindítás előtt törölje az elakadás érzékelő puffert.

Egy példa CoreXY kezdőpont felvételi makró így nézhet ki:

    [gcode_macro HOME]
    gcode:
        G90
        # Kezdőpont Z
        G28 Z0
        G1 Z10 F1200
        # Kezdőpont Y
        G28 Y0
        G1 Y5 F1200
        # Kezdőpont X
        G4 P2000
        G28 X0
        G1 X5 F1200

## A motorvezérlő beállításainak lekérdezése és diagnosztizálása

A `DUMP_TMC parancs hasznos eszköz a motorvezérlők konfigurálásához és diagnosztizálásához. A Klipper által konfigurált összes mezőt, valamint a motorvezérlőt lekérdezhető összes mezőt jelenti.

Az összes bejelentett mezőt az egyes motorvezérlők Trinamic adatlapja határozza meg. Ezek az adatlapok megtalálhatók a Trinamic weboldalán. A DUMP_TMC eredményeinek értelmezéséhez szerezd be és tekintsd át a meghajtó Trinamic adatlapját.

## A driver_XXX beállítások konfigurálása

A Klipper támogatja számos alacsony szintű motorvezérlő konfigurálását a `driver_XXX` beállítások használatával. A TMC meghajtó konfigurációs hivatkozás tartalmazza az egyes meghajtótípusokhoz elérhető mezők teljes listáját.

Ezenkívül szinte minden mező módosítható használat közben a SET_TMC_FIELD parancs segítségével.

E mezők mindegyikét az egyes meghajtók Trinamic adatlapja határozza meg. Ezek az adatlapok megtalálhatók a Trinamic weboldalán.

Vedd figyelembe, hogy a Trinamic adatlapok néha olyan megfogalmazást használnak, amely összetéveszthet egy magas szintű beállítást (például "hysteresis end") egy alacsony szintű mezőértékkel (pl. "HEND"). A Klipper-ben a `driver_XXX` és a SET_TMC_FIELD mindig azt az alacsony szintű mezőértéket állítja be, amely ténylegesen a meghajtóba íródik. Így például, ha a Trinamic adatlapja szerint 3 értéket kell írni a HEND mezőbe, hogy a "hiszterézis vége" 0 legyen, akkor a `driver_HEND=3` beállításával a 0 magas szintű értéket kapjuk.

## Gyakori kérdések

### Használhatom a StealthChop üzemmódot nyomás előtolással rendelkező extruderen?

Sokan sikeresen használják a "StealthChop" üzemmódot a Klipper nyomás előtolással. A Klipper simított nyomás előtolása, amely nem vezet be pillanatnyi sebesség változást.

A "StealthChop" üzemmód azonban alacsonyabb motornyomatékot és/vagy nagyobb motorhőt eredményezhet. Lehet, hogy ez az üzemmód megfelelő a Te nyomtatód számára, de az is lehet, hogy nem.

### Folyamatosan kapsz "Nem tudom olvasni a tmc uart 'stepper_x' regiszter IFCNT" hibákat?

Ez akkor fordul elő, ha a Klipper nem tud kommunikálni egy TMC2208 vagy TMC2209 meghajtóval.

Győződj meg róla, hogy a motor tápellátása engedélyezve van, mivel a léptetőmotor-meghajtónak általában motoráramra van szüksége, mielőtt kommunikálni tudna a mikrokontrollerrel.

Ha ez a hiba a Klipper első égetése után jelentkezik, akkor a léptető meghajtó korábban olyan állapotba programozódott, amely nem kompatibilis a Klipper-el. Az állapot visszaállításához néhány másodpercre vedd el a nyomtató áramellátását (fizikailag húzza ki az USB-t és a hálózati csatlakozót).

Ellenkező esetben ez a hiba általában az UART tű helytelen vezetékezésének vagy az UART tűbeállítások helytelen Klipper konfigurációjának eredménye.

### Folyamatosan kapsz "Nem lehet írni tmc spi "stepper_x" register ..." hibát?

Ez akkor fordul elő, ha a Klipper nem tud kommunikálni egy TMC2208 vagy TMC2209 motorvezérlővel.

Győződj meg róla, hogy a motor tápellátása engedélyezve van, mivel a léptetőmotor-meghajtónak általában motoráramra van szüksége, mielőtt kommunikálni tudna a mikrokontrollerrel.

Ellenkező esetben ez a hiba általában a helytelen SPI vezetékezés, az SPI beállítások helytelen Klipper-konfigurációja vagy az SPI buszon lévő eszközök hiányos konfigurációjának eredménye.

Ne feledd, hogy ha a motorvezérlő egy megosztott SPI buszon van több eszközzel, akkor győződj meg róla, hogy teljes mértékben konfiguráld a Klipper-ben lévő megosztott SPI busz minden eszközét. Ha egy megosztott SPI buszon lévő eszköz nincs konfigurálva, akkor előfordulhat, hogy helytelenül reagál a nem erre szánt parancsokra, és meghiúsul a kívánt eszközzel folytatott kommunikáció. Ha van olyan eszköz egy megosztott SPI buszon, amelyet nem lehet konfigurálni a Klipper-ben, akkor a static_digital_output konfigurációs szakasz segítségével állítsd magasra a nem használt eszköz CS tűjét (hogy ne kísérelje meg használni az SPI buszt). A tábla vázlata gyakran hasznos referencia annak megállapításához, hogy mely eszközök vannak egy SPI buszon és a hozzájuk tartozó tűkön.

### Miért kaptam egy "TMC jelentés hiba: ..." hibaüzenetet?

Az ilyen típusú hiba azt jelzi, hogy a TMC motorvezérlő hibát észlelt, és letiltotta magát. Vagyis a meghajtó abbahagyta a pozícióját, és figyelmen kívül hagyta a mozgási parancsokat. Ha a Klipper azt észleli, hogy egy aktív motorvezérlő letiltotta magát, a nyomtatót "leállítás" állapotba állítja.

Az is lehetséges, hogy a TMC hiba leállítása SPI hibák miatt következik be, amelyek megakadályozzák a motorvezérlőkkel való kommunikációt (TMC2130, TMC5160 vagy TMC2660). Ebben az esetben gyakori, hogy a jelentett motorvezérlő állapota `000000000` vagy `ffffffffff` - például: `TMC hibát jelent: DRV_STATUS: ffffffff ...` VAGY `TMC jelentések hiba: READRSP@RDSEL2: 00000000 ...`. Az ilyen hiba oka lehet egy SPI vezetékezési probléma, vagy lehet a visszaállítás, vagy a TMC motorvezérlő.

Néhány gyakori hiba és tipp a diagnosztizáláshoz:

#### TMC hibát jelent: `... ot=1(OvertempError!)`

Ez azt jelzi, hogy a motorvezérlő kikapcsolta magát, mert túlmelegedett. A tipikus megoldások a léptetőmotor áramának csökkentése, a motorvezérlő és/vagy a léptetőmotor hűtése.

#### TMC reports error: `... ShortToGND` OR `ShortToSupply`

Ez azt jelzi, hogy a motorvezérlő letiltotta magát, mert nagyon magas áramot érzékelt a meghajtón keresztül. Ez azt jelezheti, hogy meglazult vagy rövidre zárt vezeték van a léptetőmotorban vagy magához a léptetőmotorhoz futó vezeték hibás.

Ez a hiba akkor is előfordulhat, ha StealthChop üzemmódot használsz, és a TMC motorvezérlő nem képes pontosan megjósolni a motor mechanikai terhelését. (Ha a motorvezérlő rosszul jósol, akkor előfordulhat, hogy túl nagy áramot küld a motoron keresztül, és ezzel kiváltja saját túláram-érzékelését). Ennek teszteléséhez kapcsold ki a StealthChop üzemmódot, és ellenőrizd, hogy a hibák továbbra is előfordulnak-e.

#### A TMC hibát jelent: `... reset=1(Reset)` VAGY `CS_ACTUAL=0(Reset?)` VAGY `SE=0(Reset?)`

Ez azt jelzi, hogy a motorvezérlő a nyomtatás közepén visszaállította magát. Ennek oka lehet feszültség vagy vezetékezési probléma.

#### A TMC hibát jelent: `... uv_cp=1(Alulfeszültség!)`

Ez azt jelzi, hogy a motorvezérlő alacsony feszültséget észlelt, és letiltotta magát. Ennek oka lehet vezetékezési vagy tápellátási probléma.

### Hogyan tudom beállítani a spreadCycle/coolStep/etc. üzemmódot a motorvezérlőimhez?

A Trinamic weboldal tartalmaz útmutatókat a motorvezérlők konfigurálásához. Ezek az útmutatók gyakran technikai jellegűek, alacsony szintűek, és speciális hardvert igényelhetnek. Ettől függetlenül ez a legjobb információforrás.

Back to top